How To Climb The Career Ladder: Insights From A Black Senior Software Engineer
I recently accepted a role as a senior software engineer at Bloomberg, and I’ve been getting all sorts of questions. So, here’s what I did and the lessons I’ve learned along the way.
Anyone who’s gone through the process of getting that first job as a software engineer knows how difficult that process can be. Lucky enough for you, there are more exciting challenges you will face in your career journey. Becoming a senior engineer can be a very arduous process. This is because it requires tenure, growth in your mindset based on that tenure, and growth in your day-to-day role. The expectations are higher, and frankly, I love it.
How I was able to do it
I started my software engineer career at Etsy in June 2019. Some call it confidence, some call it ego, but I had a strong belief that I needed to be fast-tracked to a level 2 engineer due to my vast internship experience in college. But, as I would come to find, I was sorely mistaken.
In some of my early one-on-ones with my manager at the time, I asked questions like, “What can I do to demonstrate that I’m succeeding in this role?” and “How do I get to the next level?” I believe this was to my benefit because it set the tone that I was hungry for more responsibility early on. In response to questions like those, my manager put emphasis on “completing individual tasks without assistance from senior engineers” and breaking down projects into work to which others could contribute.
I took that advice and ran with it. That same year, my name was mentioned in conversations about a promotion. Maybe unsurprisingly, I didn’t get the promotion as I did not have enough time in the role. Still, my ego was a bit bruised because I had been putting in the work.
I didn’t get the promotion and my ego was a bit bruised, but after taking some time to think about it, I came back with a renewed spirit to secure that promotion in the next cycle.
After taking some time to think about it, I came back with a renewed spirit to secure that promotion in the next cycle. I ended up getting a new manager due to a rejiggering of the organization. After learning of my previous accomplishments and having worked with me for some time, my new manager was impressed. This led to me finally getting that promotion and becoming a mid-level engineer.
After becoming a mid-level engineer, my responsibilities changed a bit, and I started leading a bunch of projects. Around the same time, all the senior engineers effectively left the team: one transferred to another team within the organization, and the remaining two began working on a big refactor project. This meant I was the only engineer left on the API side.
As a result, I had the opportunity to play a major role in hiring three more engineers and leading a plethora of pivotal and ultimately successful efforts for the Etsy mobile app like list recommendations, updates reranking, new home-screen modules, multi-favorite list creation, and more. Due to the impact I made, my manager put me up for a promotion after about a year and a half as a mid-level engineer.
While I was elated that I was getting put up for promotion again, I was beginning to grow my desire for a new challenge. Etsy had been my first job after college, and though my promotion to senior was guaranteed, I decided to move to Amazon (here’s why).
With no product manager, infrastructure team, quality assurance analysts, or designated designer, I learned a new meaning of ownership. I was responsible for gathering my requirements, resolving my own infrastructure needs, designing solutions, implementing them, and testing them. In this role, I was even relied upon for suggestions of new work or problems/bottlenecks within the system. For these, I created design docs for my team to review and then implemented the solutions.
After a year at Amazon, I got an opportunity to interview at Bloomberg having applied for roles there earlier in my career unsuccessfully. This time I was prepared because I tried to stay in interview shape. I aced the interview and got my second offer for a Senior Software Engineer position at a big tech company.
The Mindset Change
An engineering director once told me,
“When you’re an entry-level engineer, you still require some handholding to get tasks done. When you’re a mid-level engineer, you require no handholding to get tasks done. As a senior engineer, you can hold others’ hands to get tasks done.”
To this day, I still think about this quote in terms of my impact on an organization. I think this is probably the best descriptor of what is required from the different levels of engineers.
As I became comfortable in my first entry-level role, I no longer needed excessive comments on my pull requests. In addition to that, I could pick up work with minimal debriefing and complete it. When I had a problem, instead of immediately reaching out to someone, I thought to research internal and external sources. I became a major reviewer of other engineers’ code. I left more questions on pull requests to discuss coding paradigms and raised issues about things like tests and graphs.
In becoming a senior engineer, I began thinking more about design. How something was constructed became a bit more important than the individual components. In addition, I would look for ways to improve the system in which I worked. This manifested in product ideas that I would share with a product manager at Etsy or bottlenecks I thought we needed to resolve at Amazon.
The day-to-day job change
If you look at some job descriptions for senior software engineers, you’ll almost certainly see a few similar words in the responsibilities/requirements section. Here are some of them.
This word is prevalent in job description responsibilities because it is basically why they’re hiring you. These companies want someone who can take an idea from the business/product folks and handle everything that goes into building the necessary software. This includes scheduling meetings to understand those requirements from the stakeholders, writing documents to capture your approaches to the design of the system, provisioning the infrastructure if necessary, testing, and becoming an overall subject matter expert on said system. This is likely to take up most of your time.
I alluded to this above, but having a solid relationship with the product team is essential as a senior software engineer. You can think of them as your customer because they set the business’ requirements for what needs to be built. When engaging with the product team, you’ll be having conversations about those requirements. Are they feasible in the given time range? Do the requirements have hidden engineering complexity? The answers to these questions will inform what you’re building, so you’ll occasionally find yourself negotiating with the product team.
This may be the “je ne sais quoi” interviewers are looking for in interviews. As I described in the article, The Famed Technical Interview, collaboration skills are constantly being assessed during the technical interview and during your role as an engineer. As a senior engineer, you’ll likely need to collaborate with engineers on your team, engineers on outside teams, product managers, designers, and more. Because you’re likely the backbone of whatever project you’ll be building, be prepared to be in constant collaboration.
All in all, all things you work for can become a reality. So if you want to become a senior software engineer, I hope you walk away from this story with rejuvenated energy toward that goal. Now that you better understand the transition from a junior to a senior engineer, I hope you can apply some of these concepts to your career.
Lastly, if you’re reading this, you or someone you know may need help getting their foot in the door as a software engineer in the tech industry. Luckily for you, I offer mock technical interviews, detailed resume reviews, system design consults, and general career coaching. So, if you’re interested, book a session with me today. Thank you!