Context: I am a senior principal engineer at Fastly, in the Office of the CTO group, leading API strategy for the company.
The management path isn’t the only way to be a technical leader. I don’t wish to become a manager; I tried it briefly (73 days to be exact, I counted) and decided managing other people wasn’t where my passion lies. I like being an engineer. In particular, I flourish in a strategic technical leadership role.
Sometimes this is a strange territory in organizations - many senior engineers, particularly women, are encouraged, or self-select, to move into people management. That may be because those engineers are seen as, or stereotypically expected to be, better at work that involves a lot of communication and coordination, and developing other people. Or perhaps because it’s the only path where promotion is feasibly offered. I say ‘feasibly’ because often the upper end of career ladders for Independent Contributors (ICs) could be paraphrased as “we’ll know it when we see it”, which can leave those who haven’t sufficiently proven “it” in a frustrating limbo.
I’ve chosen to cultivate a path for myself that enables me to dig into complex technical and product problem spaces and help lead technical and strategic direction for my organization, as an engineer but not a manager.
Technical leadership is a difficult path to be promoted into or hired for. Some companies won’t hire very senior engineers, preferring to groom them over years from within (which is particularly peculiar when they would hire very senior people managers). Other companies just don’t quite know what to do with these very senior engineers who want to… stay engineers. Especially when it comes to performance reviews.
"It took me three years to get a GC compactor to even work"— Aaron Patterson (@tenderlove) October 12, 2019
"Yes, but what's important is what you did last quarter"
"Literally nobody has ever accomplished this"
"Sure, but you need to do it in a quarter"
Despite the obstacles, and having seen the majority of my peers switch paths to become a people manager, I have deliberately chosen to stay on the engineer track and try to cultivate it to my needs. My motivation is mostly about continuing to do work that I love. I enjoy the creativity of engineering work: I love solving a problem from initial paper scribbles all the way through to shipped product and knowing “I made that.” As a strategic technical leader, I enjoy having meaningful influence right at the start of that process. I love being parachuted into a situation, figuring out which problems even need to be solved, and then figuring out a solution that will address them. My formal education was in Sculpture, but I’ve chosen to work professionally developing software since 2001. I’ve worked very hard to become an engineer and I want to stay here.
I love building tools for developers to be more successful at what they do. I beamed with pride when Microsoft, during the opening keynote of their big MSBuild conference last year, mentioned two projects I had created and delivered. To have engineers I greatly respect use and value my work is a delightful honor.
I got goosebumps on your behalf! :) https://t.co/GzMNdJU8bK— Chad Fowler (@chadfowler) May 7, 2018
I’ve also found that I can have powerful cultural impact in my organization as a senior engineer rather than manager, like helping cultivate a healthy code review environment or improving an inclusive technical interview process.
Very senior ICs have the privilege of more time to focus and create, and fewer constraints to stay inside a given box. After earning some trust as the tech lead who nurtured, developed and shipped GitHub Apps, I persuaded my boss to let me have some solo time to just explore what the next thing for our platform could be. An initial month of exploration into what GitHub might do to integrate better with third party data enabled me to write a thorough strategy, including a plan of action and a prototype, that won praise from people across the company. Some whom I had no idea were even paying attention. From there I recruited a small strike team that created the Checks API, and our work laid the foundations for several innovative features, including GitHub Actions.
That autonomy is earned, of course, through years of delivering on both big and small tasks. There might be many unknowns in their roadmap, but very senior ICs have proved to be a good risk. When given the support and space to identify and solve problems in depth, senior ICs can bring a level of creativity and perseverance that will reward the company in spades.
I find there’s a lot of wonderful material out there about engineering management, and even tech leads, a role that varies substantially but is often seen as a stepping stone towards management. But less so for engineers who want to remain ICs while also progressing their impact and influence in the organization. Particularly around strategic work, which can be viewed as less “technical” and lower status than the work of an engineer who goes deep on a niche technical area. I’ve never quite understood why that is: I believe that in any organization there’s room, and need, for both.
So what does the more strategic work of a very senior engineer look like? It might include:
- Tackling technical challenges that span multiple technical and organizational systems.
- Researching and identifying the problems that could be worked on, a year or two from now.
- Developing prototypes to further explore and support ideas that come from that research.
- Ramping up strike teams to help build a thing.
- Looking at the big picture including cultural, product and technical challenges, to help inform choices that would be best for the org, perhaps with a 2-5 year view.
- Forming strategies, writing proposals and pitching them across the company, for new architecture, systems or approaches.
- Talking to engineers, technical writers, product managers, interface designers, sales people, lawyers, execs, competitors, peers, and users. Getting people onboard. Marketing ideas. Moving things forward.
- Acting as an advisor with internal teams, or in customer-facing groups.
- Sometimes being the voice for change, sometimes being the voice for not change. Always weighing up trade offs, always listening.
- Being slightly independent of the normal cadence of regular engineering project work. Probably having little guidance or oversight. Possibly being somewhat isolated. Being OK with that.
- Using that position of independence and power to support and influence other cool/hard/interesting challenges in the organization.
- Not being afraid: to question the status quo, to push back on decisions you think would be harmful, or to tackle challenges in unknown territory.
I want technical leadership roles to be a viable path for more engineers. In the coming weeks, I’ll post about how to build strategy and technical leadership skills with the goal of deliberately cultivating a long-term career as an engineer.