"Four growth strategies for individual contributors"
Below is an article originally written by Patrick Shields, Principal Software Engineer at PowerToFly Partner CircleCI, and published on March 3, 2020. Go to CircleCI's page on PowerToFly to see their open positions and learn more.
There's not a right or wrong career path for software engineers. Some find a natural niche as leaders and work into management positions where they end up leading teams and designing career paths for others. Conversely, some thrive and become leaders by developing their own paths as an individual contributor (IC). Pat Shields, CircleCI's chief architect, recently wrote about his experience growing as an individual contributor, including advice about how engineers on the IC route can succeed in their careers. We're reposting it here.
My first real job in programming started on July 5th, 2007, which means I have just over twelve years of experience as I write this. It's a lot more than nothing, but probably not much more than something. Ten years seems to be about the right amount of time to get good at something, though some amount of natural talent or sheer drive can make it go faster. But growth is not as simple as waiting it out and talent does not supersede the need for experience.
"Players get to that intermediate level where they can already play pretty good, and that's kind of a dangerous period because they tend to start playing only the things that they can play, rather than the things they can't." - Pat Metheny
In fifth grade, I went to a school where I was required to take a French class. I showed no particular aptitude or interest in the language, but was happy to pass through the lessons. After two years, my family moved and I started at a new school where I was able to choose Introductory French or Spanish. I chose French, effectively repeating the previous two years. I have little to no memory of these classes, but I believe I passed through them with ease. After those two years, we moved again and I started at a High School. I was offered a choice of languages to study and I elected for … a year of Introductory French. I was the star pupil of the class, having repeated "Je m'appelle Pat" and "Où est la discothèque" as required for the previous four years.
The following year I entered Intermediate French and the skill gap between myself and my peers immediately dwindled. Despite my five years of experience, I didn't advance much beyond a few simple phrases and a halfway decent accent. I muddled my way through the next two years, but squandered my experience and gave up learning the language after high school. Many of us make this same mistake in our careers. We optimize for a skillset that is easy to gain or stay within the confines of limited expertise. Quite a few folks just don't get the opportunities they need to grow. I have found a few strategies that have helped me grow, and I'd like to share them along with some ideas about how you might apply them.
Assume you are smart enough to understand
In my first job out of school, I worked with some of the most brilliant folks I've ever met. Most were affiliated with Yale via either its computer science department or its high performance computing lab. During my job interview, Nick Carriero asked me if I was familiar with Junit and I tried to pretend I knew what it was beyond a window in Eclipse. I was surrounded by very experienced, very educated, and very accomplished folks. The one benefit of this was learning that in those walls I would never, ever, be the smartest person in the room. To follow along alone was an accomplishment.
Those folks were much more than smart. They were mostly twice my age or more, had studied rigorously in academia or cut their teeth on hard industry problems, and all had a tremendous work ethic. I didn't have their innate talents or that experience, and I was in no danger of being able to do what they did. But that didn't mean I couldn't follow along and learn. So I tried to ask dumb questions and to restate things until I got them right. Being wrong or not knowing something hurt still, but it hurt a little less every time the light bulb finally went off.
Most of what you need to follow the work of those around you is just patience and curiosity. When you encounter things in your work that you don't understand, ask someone to help you figure it out. It could be a piece of code, a system design, or even a business concept like margin. You won't become a quick expert but you will gain a breadth of knowledge. More importantly, you'll learn how to ask questions and learn from those around you. Give yourself space to do good work
Real talk: everywhere you go there will be haunted forests, tech debt, and organizational challenges. Every opportunity comes with constraints. Often, those constraints lead us to choose the lesser of two evils or the best of a bad set of options. In my experience, it's easy to over-dramatize the evil or inherent bad-ness, but the point is that it feels bad. When you consistently do work that you don't take pride in, it's challenging to invest yourself in growth. Engineers in this situation often begin to imagine some panacea that would fix things. If only things were functionally pure or fully asynchronous or crash-only or written in Idris or Rust or actually Go would be preferable, then we could do things the right way. Or so the thinking goes. We convince ourselves that we are talented and great, if only we weren't limited by the things we cannot change.
Don't get stuck thinking that you can't do good work unless something you can't control changes. Find opportunities large or small to try to do something in a way that you are proud of. This can be as small as writing a few methods or functions that you think are great or running a larger project in an exemplary way. When I've done this, I've found that some of my great ideas were great and some were pretty sketchy. If I hadn't put them into action, I'd have missed the opportunity to figure out which ideas had merit.
Focus on the outcomes
As programmers, we spend most of our time living deep in the "how?" Programming is quite literally the process of filling in all the details. Many of us experience frustration in our jobs because we are forced to reckon with ambiguity that our coworkers and peers can shrug off. Earlier in my career, I used to say that there was nothing more terrifying than a meeting that ended in agreement because that just meant you hadn't figured out the details yet. That's a pessimistic extreme, but it's also a fear born out of experience.
By and large, the conferences we go to, the blog posts we read, and the conversations we have focus on the "how?" We talk about programming languages, databases, agile methodology, distributed systems papers, or GraphQL. But for most of us, those are tools to help us do something else. Our stakeholders don't care about the tools, they care about the outcomes. The earlier you are able to focus on outcomes, the more you'll be able to connect with your stakeholders, learn from them, and then help them succeed.
This is a huge topic and a never-ending quest, but you can start by always knowing the answer to the following three questions:
- What problems am I trying to solve for my stakeholders?
- How do I know when I'm done?
- How do I know if it solved the problem?
No matter what process you use, or don't, and no matter who your stakeholders are or how big your organization is, if you know the answers to those questions, they will guide towards a path that is focused on generating outcomes rather than just generating more details.
Do whatever you want, but do it loudly
I was a year or two out of school when I first heard the phrase "It is better to beg for forgiveness than ask for permission." It's an old phrase, sometimes attributed to Grace Hopper, but variations have circulated for many years. There are some organizations where creative thinking and empowerment are still frowned upon, but I think this quote misses the mark nowadays. It's still true that asking for permission will likely get you stuck in the mud. The receiver of your request will likely feel the need to do due diligence on the request before passing judgement and, well, it's not likely their top priority or they would've been asking you for the ideas. It's the request that slows things down, not the knowledge of the approach.
I've taken to using a variation of this phrase: "do whatever you want, but do it loudly." If you feel confident that you have a great idea and know how to complete it, go ahead, but first announce it to anyone who will listen. You want to avoid surprise and rumor. By keeping everyone abreast of your actions, you are giving them the knowledge they need to provide you with feedback and a mechanism to do it. I often provide a little space for feedback even, by saying "Unless I hear from you by the end of your day tomorrow, I'll be proceeding." I'm not asking you to vet the approach for me, but if you know I'm headed towards dragons, let me know.
Stay focused on growth
No matter what strategy you choose, as soon as you have the security to do so you should start thinking about your growth. "Where do you want to be in 5 years" is a great question, but sometimes it's impossibly difficult to answer. These strategies won't help you pick a direction, but they'll help you get the most out of wherever you are right now. If you find you can't use these strategies, either because you don't have enough support from your peers and management chain, or because the work model is so inherently broken, it's probably time to look for another opportunity when you are able. Along the way, be proud of your growth and what you've achieved, but don't give up on challenging yourself.
It's been six years since Sarah Cooper graced us with her 10 Tricks to Appear Smart in Meetings. But how on earth can we appear smart in our new virtual world, in which for many of us, going to work is just sitting in one long series of probably-not-necessary Zoom meetings?
1. Dial in.<p>Dialing in rather than joining via the link instantly boosts your credibility. Who calls into Zoom meetings? People who are still busy and important enough to be leaving their houses! But you needn't actually be one of those people, or even more than a foot away from your computer to pull off this maneuver. (Remember, this article is called *seeming* smart, not being smart.)</p><p><strong></strong><em>Bonus: </em>If it's a large meeting at which attendance will be taken, the person running the meeting will inevitably ask, "Who's calling in from 443-322-2121?" That's when you raise your metaphorical hand, jump off mute, and say "[Your name] here. Really looking forward to hearing your perspective on [meeting topic]." And voila! You've stolen the meeting spotlight.</p>
2. Don't come on camera—ever.<img lazy-loadable="true" src="https://assets.rebelmouse.io/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpbWFnZSI6Imh0dHBzOi8vYXNzZXRzLnJibC5tcy8yMzQ0ODU5OS9vcmlnaW4ucG5nIiwiZXhwaXJlc19hdCI6MTYzNjMwNjI3OX0.4fLyq2CvkZAJ7n_03esZepY37mOdyGdDdTEUYt5XEU0/img.png?width=980" id="bc7e6" class="rm-shortcode" data-rm-shortcode-id="fbbf21cc5d8c863b30654ae6993b04f5" data-rm-shortcode-name="rebelmouse-image" /><p><br></p><p>Much like the "dial in," this technique works because it makes you appear aloof. If <em>The Crown has </em>taught me anything, it's that the key to maintaining a sense of mystique and prestige is to keep people at arm's length—and if you absolutely <em>must</em> touch them, wear a glove.</p>
3. Only communicate via chat.<p>Once you've mastered the art of staying off camera, you can level up by communicating exclusively via the chat box. Don't come off mute at all, even if the speaker asks your opinion. You are the elusive chatter and you will not be forced into actually participating in said meeting.</p>
4. Ask to share your screen.<p>Being aloof is great, but it's all about balance. Sprinkling in some active participation will really shock and impress your colleagues if you catch them off guard, so save this technique for when you've strategically <em>not </em>participated in a string of meetings.</p><p>Spend a few minutes prior to the meeting prepping a few inspirational slides with words like "synergy," "optimization," and "redefining 'culture'", or spend a few minutes poking around in Google Analytics. </p><p>Then wait for the opportune moment to say, "Can I just share my screen for a moment? I have some really interesting data I'd like to share...." and BAM — brilliance established.</p>
5. Show off your Zoom-saviness.<p>Try saying, "You know you can mute people, right?" to the host when they beg whoever's got the lawn mower and crying baby in the background to put themselves on mute for the nth time.<br></p>
6. Create an alter ego.<p>This tactic requires commitment, but the pay off is certainly worth it. Join the Zoom meeting from your normal account + name, and then join it again on a second device from an alias. Have your alter-ego ask some probing or stat-based questions in the chat and have the answers ready ahead of time. It should work something like this:</p><p style="margin-left: 20px;"><strong>Your alter ego Charlene</strong><strong>:</strong> "Does anyone know what percentage conversion rates increased by in Q2?"</p><p style="margin-left: 20px;"><strong>Real you</strong>: *doesn't miss a beat* "It looks like Charlene has a question in the chat. That would be 36%."</p><div>Never mind that no one on your team knows who Charlene is or why she's at this meeting, they'll be too blown away by your brilliance to notice. (Bonus points if you use this strategy in conjunction with techniques 1, 2, 3 or 4!)</div>
7. Place an obscure object in your background that exudes intelligence.<img lazy-loadable="true" src="https://assets.rebelmouse.io/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpbWFnZSI6Imh0dHBzOi8vYXNzZXRzLnJibC5tcy8yMzQ0ODYxOC9vcmlnaW4ucG5nIiwiZXhwaXJlc19hdCI6MTYwNzk5Njg2Mn0.V9_-3Ij3v_QndseqlrXRt5Nn39EJ97-itjls5zzYPf8/img.png?width=980" id="a369d" class="rm-shortcode" data-rm-shortcode-id="604a2f04b53c2e3bc801bfa5256f367b" data-rm-shortcode-name="rebelmouse-image" /><p><br></p><p>We're talking a telescope, or perhaps a hardcover copy of <em>War & Peace </em>(no one need know that its only purpose in your life is as a makeshift yoga block).</p><p>If you don't have any suitable props at your disposal, do not despair: download some screenshots of Sheldon's apartment from <em>Big Bang Theory </em>or the chalkboard in <em>Good Will Hunting </em>and use those as a virtual background.</p>
8. Ask "Is this really the best course of action given the current climate?"<p>Economic collapse, COVID, racism… No need to specify whether you're referring to one or all of the above; just sit back and watch your boss squirm amidst the ambiguity.</p><p>This strategy pairs very well with techniques 2 and 3. You can prep additional vague-but-probing questions ahead of time and pepper them into the chat box throughout the meeting:</p><ul><li>How will this scale?</li><li>Do we really have the bandwidth for this right now?</li><li>What's the value-add here?</li></ul>
9. Remind everyone that you have a paid Zoom account.<p>"Oh, it looks like we're getting the 40-minute warning. I have a paid account, do you want to switch to my room?" It's helpful, with just a touch of condescension. Everyone knows condescending people are smart. And everyone knows that people with paid Zoom accounts are super important.</p>
10. Tell everyone you have a hard stop.<p>When pressed for details, share your philosophy on "work-from-home" balance and how committed you are to getting up once an hour to walk to your refrigerator.</p>
11. Ask the screensharer/host to "pull something up" for everyone.<p>Ask the presenter to navigate to a screen that only you know how to navigate well. Laugh maniacally while they suffer from crippling performance anxiety. Let them struggle for as long as is tolerable before saying, "Oh you know what? I can just share my screen if you want. That would probably be easier." BAM you're the hero. Don't worry, no one will even pause to consider that you could have proposed this course of action from the start.</p>
12. Say Zoom fatigue as many times as possible.<p>If you're too tired to employ any of the other strategies, just say "I know everyone is experiencing a lot of Zoom fatigue, so we can keep this meeting short." Then hang up as quickly as possible. Meeting averted! </p><p>After all, there's no better way to demonstrate your intelligence in a virtual meeting than to demonstrate why it wasn't really necessary in the first place. </p>
I sat in front of my CEO to discuss several complaints of racism. I was new to my role as a Culture Director. I was nervous about his reaction to the complaints. But I also knew he strongly supported developing this new department; I knew that he would take the right steps. So I was shocked when I heard him say sheepishly, "I don't know, Noelle...all of this stuff about racism. I just don't see it. I don't even see color. I'm pretty much color blind."
A five-step framework for addressing systematic racism at work
The world has changed in the past few weeks.
We're watching corporations and organizations across the world come out in support of Black lives in droves. Many of those organizations are doing so for the first time in their history.
Living in the midst of a pandemic has brought about a whole host of changes and challenges for workplaces and employees. One of the most notable? Virtual interviewing. With most on-site interviews on hold for the foreseeable future, it's important that you be prepared to make a great first impression—virtually.
Women Founders & CEOs Share Their Tips
If you're anxious about looking for a new job right now, you're not alone. We've talked before about how you can land a job in the midst of COVID-19, but today we wanted to share advice from some of the experts who spoke at our inaugural Diversity Reboot Summit.