Keshane's Blog

Path to senior software engineer

I recently applied for a promotion to be an L5 software engineer at Verily. While writing the promotion packet, I reflected on my career and wondered what exactly I have done better or differently in the past couple years to warrant my colleagues to recognize me as “senior.” Much like how being an adult feels the same as being a child, I still felt like a junior engineer faking it as a senior. While the promotion decision process is not yet complete, writing down my observations of the distinguishing attributes of technical workers higher in the corporate ladder seems like a useful exercise for my next promotion application (hopefully to the next level) and a useful guide for others embarking on the same career path.

First, some definitions and background on how levels at Big Tech work. Verily is an Alphabet company and was spun off from Google, so it follows that same heritage. Employees developing software are software engineers, commonly abbreviated to SWEs. SWEs straight out of college usually start at the lowest level (L3 at Alphabet) and can progress to L8 or higher. At those higher levels, the SWE is no longer churning out code, but is directing higher-level technical initiatives through meetings, emails, and slideshows. Other Big Tech companies have similar role expectations of each level; the only variations are the labels (L5, S3, etc.) attached to those levels. At Verily, L3 is a junior SWE, L4 is mid-level, L5 is senior, and L6 is staff. L7 and higher are super duper important to the company, but I admit I have limited knowledge of how to get there. Important note is that I will be discussing SWEs who are individual contributors (ICs); software engineering management is a topic that I do not yet have experience with.

Promotions are decided by groups (promo committees) of SWEs at least one level higher above you. They evaluate your work, as presented by you and your manager, and reviews from your peers to make their decisions. These committees could be composed of colleagues from your immediate organization or other organizations. I have not participated in any of these promotion discussion meetings before, but I have read a lot of internal and external documents on the process and gone through the cycle twice. These are my thoughts on the differences between a senior SWE and a junior SWE.

Experience

This is an obvious point in all industries, but I want to emphasize why it can’t be faked. With the availability of reading about any one’s experiences on the internet, being able to understand un-experienced situations has never been easier. This has been a major boost to productivity as people can find out how to solve problems new to them that have been solved by others. More importantly, you can learn what not to do.

There is, however, no replacement to having done the work yourself. Much like how a client would prefer to buy furniture from a woodworker with 10 years of professional experience rather than from a SWE who has read lots of articles and watched videos on the topic and started last weekend in his house, companies prefer to trust the judgment of someone who was made mistakes, learned from them, and knows how to evaluate the next situation to not make the same mistakes. It’s much easier to design new systems when you have already worked on similar systems.

Communication

As much as I would not like it to be the case, companies are run by people, not computers, and people can’t follow every instruction given to them. That’s why your communication skills are your most valuable asset. Any SWE can create software, but that software is useless if no one knows it exists, how to use it, or how it works. Being able to effectively communicate your ideas is an instant productivity multiplier since other people can buy in to your idea to support your efforts and offer meaningful improvements.

What does it mean to communicate effectively? It is the ability to summarize your ideas accurately with good enough grammar.

Why is the ability to summarize important? Understanding a new topic naturally takes a lot of effort for people, but if you’re able to distill the essence of your idea into a digestible under-three-sentence tl;dr, the audience has a much easier time of understanding the context and big ideas and creating their own mental models. Later sections can go into more details about your topic, but making sure the readers have a skeleton on which to hang those details greatly reduces their efforts. This is the same reason that essays start with a topic paragraph, academic papers start with abstracts, and news stories start with catchy headlines.

Why is grammar important? Grammar provides a pattern for the speakers of a language to structure their ideas. Deviating from that pattern adds more friction to understanding. Readers may divert their energy from commenting on ideas to commenting on syntax, and some readers may feel awkward about addressing grammar at all and misinterpret the author’s ideas. Of course, not everyone can be a fluent speaker in every language, but taking the effort to gain a basic grasp of your target language’s grammar and revising your documents for mistakes will pay off in the future.

Curiosity

Curiosity is the drive to discover Why? about anything. This trait doesn’t define senior SWEs as much as being a strong indicator that a particular SWE will quickly be able to level up to senior and beyond.

What does being curious look like? It’s the action of looking at a part of the system (as part of fixing a bug, writing a feature, or browsing), realizing you don’t know how or why a section works, and diving deep into that section until it’s fully understood. The realities of time pressure don’t allow these deep dives all the time, but investing time to do them when possible grants tenfold returns. By understanding one part of the domain you’re working on from top to bottom, you not only learn about how that part works, but you also learn about the existence of adjacent parts. Knowing where to learn more about these adjacent parts in the future allows a faster lookup in the future and helps expand your mental model of the system. The best SWEs do these deep dives early in their projects so that their later efforts, which usually have more time pressure, are more efficient.

Effectively, curiosity leads to self-sufficiency. When your team recognizes that you can execute independently and can share your knowledge with others, you know you’re on the path to advancing your career.