by Zhia Hwa Chong
How to become a rockstar engineer
Being a software engineer is no walk in the park, but being a rockstar software engineer, or the elusive “10x engineer”, is even harder. In my experience, the best engineers I’ve worked with share some common traits that I’ll put forth in this article.
If you’d like to learn more about passing technical interviews, you can check out my courses here where I coach software engineers on how to prepare and ace coding interviews.
(If you’d like to watch instead, here’s the video version)
1: Build Lasting Relationships
A rockstar engineer is made, not born. Contrary to what others might think, intelligence alone simply isn’t enough to be a rockstar engineer. A rockstar engineer is able to uplevel all those around them, and helps increase the overall productivity of the team.
One of the most critical skills for a rockstar engineer is building lasting relationships.
Building lasting relationships requires soft skills — something that often doesn’t come naturally to software engineers. Most engineers I know care about facts, details, and precision. As such, sometimes they come across as confrontational and disagreeable.
Yet a lone wolf cannot survive on its own.
Try talking to your customers — clients, PMs, sales reps — as much as possible. Build a personal connection. Know what their pain points are. Understand why they do the things they do. Once you have a deep understanding of what your end users actually care about, you will be able to solve issues beyond the superficial and, ultimately, bring 10x value to the team.
2: Understand “Why”
Understand the scope of your work and why it matters. I’ve met many engineers who struggle to tell me why they work on the things they’re working on, and how their work fits into the bigger picture.
A rockstar engineer understands why their work matters. This will guide you to learn how to prioritize work because you have a deep understanding of how your work fits into the bigger picture. Thus, you’ll be able to prioritize work accordingly and find out the high-leverage projects.
As you become a more senior engineer, you’re expected to understand your work’s impact, scope and how it fits into the bigger picture. At some point, you’ll be the person driving and advocating for those changes yourself, and you’ll need to rally others around your cause.
3: Expand Your Scope
Newcomers to a team typically have a well-defined scope of work. However, what you should learn early on here is that you always want to expand your scope.
As you’re working on projects, you should think proactively about how you can improve things, like how you could be improving the hiring process, documentation, or maybe code style.
I like to think of this as the onion analogy (one of my mentors taught me this). Your area of competency is the core layer of the onion, and then you have a layer outside of that, which consists of external factors that could potentially affect you.
Now the gap in between your core competency and the outer layer — that’s where uncertainty and anxiety lie. As you grow as an engineer, you want to learn how to expand your set of core competencies so that you can minimize that gap.
When you are actively thinking about how to improve things and making things better, that’s where you grow your skills not just as an engineer but also as a leader.
A practice you might try today is to sit in and participate in more meetings. Learn about what your coworkers are concerned about, and offer your insights and solutions — it never hurts to try.
If you’re looking to improve your coding or system design skills, check out the courses here where graduates have gained valuable skills that helped them land jobs at Facebook, Google and so on. Classes are limited, so if you’re interested, fill in this form and I’ll reach out to you with more details!
4: Offer to Help
In most companies, there are always broken things laying around within the company. Due to shifting priorities, limited time and resources, most things remain broken.
That’s where you can come in to help.
First, offering to help gives you insights and exposure to codebases that you might not otherwise learn about.
Secondly, offering to help others with solving their problems allows you to build relationships (see Tip#1) and also grow your expertise in the long run. And if you’re also able to demonstrate your ability to jump in and make lasting improvements, that’s even better.
I call these people the Passionate Executors — people who have strong execution abilities and also have a strong passion for helping others around them. Passionate Executors are like your neighborhood Spiderman — they have superhuman abilities and aren’t afraid to jump into the stickiest (pun-intended) situations without expecting any reward.
5: Read Profusely
Reading is one of the highest leverage activities any newcomer can do. Many junior engineers are heads-down focused on writing code all day; they’re not really spending time to read and understand what they’re working on.
My advice is that if you’re joining a new team, take your time to find and read documentation, design docs, meeting notes, anything and everything that you can find that is lay around your company.
Reading documentation allows you to understand the context and history of how things became the way they are today. You can learn about why certain components are designed in a certain way, what were the requirements the engineers had to adhere to, what trade-offs were made in the design and many more.
If you put in the time to read, I assure you that you can be the subject matter expert in no time.
Books for further reading
- The Senior Software Engineer
- The Effective Engineer
- 7 Habits of Highly Effective People
- How to Win Friends & Influence
Check out the tools ? I recommend for every aspiring software engineer on my website here: zhiachong.com/resources
Go to http://bit.ly/interviewcourses to read more about courses available for technical coding, system designs and more.