Growing into a Senior Engineer
I remember while finishing my master’s degree, I started thinking deeply about what it means for one to be a senior engineer while applying for jobs. In the process, I came across this amazing read, which got me more curious about the topic. This blog is somewhat of an attempt to define what makes a person a “senior” engineer, and not an expansion on the day-to-day responsibilities.
Looking at open roles and job descriptions at tech companies, most of the openings look like hiring for a “senior software engineer” or equivalent. The only thing that would come to my mind when seeing these titles, is that one has to have lots of experience to get those jobs. Now that I got the “senior” in my job title, my view on this has changed a lot. In my opinion, it is really just a title that organizations use to rank people in a hierarchy based on responsibilities, deliverables, compensation, etc. But one thing for sure is, what an actual senior engineer means is different. As one of my former managers puts it, a senior engineer is someone “who can get things done”. In other words, if you were to have a project that needs execution, this “senior” person will be able to build the product and deliver results. That’s maybe a layman’s definition, but it’s straight to the point. But let’s try to break that down for a second. In order to build stuff, having good engineering skills is only part of the equation. Nonetheless, there is more to it. Skills like management, hiring, user experience, UI, and maybe a bit of sale are all essential to build a product for customers. This means that senior engineers aren’t only great engineers, they’re also great at different stuff.
From an engineering perspective, I also find that with experience, engineers build a strong notion of abstraction for everything. Programming languages are no longer defined by their names, but by the potential, they unlock. Topics like latency, redundancy, availability, and most importantly scalability start to take over their conversations and discussions rather than small product features or “how do I implement this algorithm”.
Worrying about systems design problems and architectures is probably a good inflection point towards growing into a senior engineer, and can be seen as “this person is maturing”.
Another trait of a senior engineer is the ability to assess the consequences of design decisions, being able to use technical debt strategically and wisely, instead of leaving it for trial and error. It’s very rewarding to reach this level in one’s career because from that point on, one has the superpower of building stuff, which opens opportunities like taking critical roles at startups, or managing projects with 1+ million users. It’s like god power, you can build whatever your imagination can think of. And from that point on, engineering will be put in the great hands of economy creators and builders.
Of course, people at that level of skillset have the market working for them. People with great talent are in high demand, with lots of people ready to throw money on the table to have them build stuff. I am certain that my views on what a senior engineer actually is will grow over time, and I’ll be able to see this from more dimensions. I wrote this blog to document my thoughts, so that I will be able to reflect on them as I gain more experience and exposure inside the tech industry.