What I will do If I am an Entry-Level Software Engineer
As I navigate through my journey, I keep seeing that high-value engineers are not engineers who are the best programmers, but engineers who knows how to network.
If you would ask me how to become a high-value engineer five years ago, It involve compilers or gates or time complexity. However, if you ask me now, my answer will be to understand the reality of your industry and work backward from that understanding. In other words, understand the rules of your game and create the correct strategy to execute them efficiently.
Too many engineers, including myself, didn't know how to navigate through our career journey that would manifest into a profound career. Being in the technology industry requires learning to avoid becoming obsolete.
As I advance in my career, I've observed that the most valuable engineers aren't always those who excel at programming. They're not necessarily the engineers who are proficient in the latest programming languages and frameworks. These engineers may not be capable of solving Fizz Buzz or Leetcode hard problems within 45 minutes.
However, that doesn't mean not focusing on those hard programming skills and being a smooth talker will also not get you far in your career. The line between focusing on good and great engineers is blurred. Thus, many of us have a hard time on "what" to focus on instead of "how" since the internet has been bombarded with "how to" articles and resources.
Focusing on the wrong bucket at the beginning of your career can be detrimental and extend the process of maximizing your career capital. For instance, young people choose reputation, resources, or network over knowledge and skills. Employ jobs that require knowledge and skills.
Optimizing Your Career Capital
Steven Bartlett, the founder and podcast host of the Diary of CEO, illustrated five buckets to increase your career capital and become irreplaceable.
In the job market, your career capital is valuable if people are willing to pay more. A higher-value set of career capital can be represented by the demand curve shifting to the right — more people want someone with your career capital for any particular price.
Knowledge: What do you know? For instance, what kind of domain knowledge have you acquired to solve problems in the entertainment space?
Skills: What you can do? For instance, what programming language and other important skills can you do?
Resource: What do you have? This can be monetary resources or human resources to accomplish the job.
Network: Who do you know? Knowing the right people to reach out to and persuade them helps you accomplish your goal faster.
Reputation: What does the world think about you? Reputation helps build credibility, creating a flywheel effect on resources and networks.
As an entry-level software engineer, I would enhance my skills and knowledge. As I grow into a senior role, I will diversify my skills and focus more on my network and reputation.
However, skills and knowledge are conducive to network and reputation, and not the contrary.
Why do you need to Focus on Skills and Knowledge as an Entry-Level Engineer?
Because skills and knowledge are the essence of your career capital, with great skills and knowledge, reputation and network will follow.
Skills and knowledge establish trust, which is needed to develop a reputation.
Once you have a reputation, more and more people will want to connect with you. Thus, you will also increase your network.
This comes in a snowball effect; we call it the Matthew principle, where a small win will lead to another small win, and sooner or later, those wins are not as tiny as you see.
What to focus on as an Entry Level Engineer
You can focus on hard skills in the first 3 - 5 years of your tenure. This means coding, designing, and domain knowledge.
Focus on your skills by learning how to code well. Strive to become the "X guy/gal" of the company. For instance, I focused on great programming practice in my company's programming stack, Scala. Despite being a comfortable and borderline Scala expert, I also learned about distributed systems and payments. This specialized domain knowledge gives me an edge in becoming a subject matter expert in designing data-intensive applications.
Once You become The Subject Matter Expert
This is also when your coworkers and manager view your opinion more seriously. You start getting more high-impact projects, which can be critical to the company's business value.
How did you know that you have made it to become the subject matter expert?
When you realize your peers start asking your opinion on the underlying best practices and problems, and when they start to value your input.
I knew I had become the team's subject matter expert when other senior engineers asked me about the best coding practices to implement their projects. They will also contact me to ask my opinion on the systems and have considered my opinion on their technical documentation.
You will also realize that your manager has started to put you into more high-profile projects. High-profile projects are projects that will produce high business value. For instance, your manager assigned you to lead the effort of integrating a new alternative payment method instead of creating a cache for some internal project.
As you prove to be able to lead more successful projects, your reputation and network will slowly pick up. Suddenly, you realize that your name has been brought up in a couple of meetings with the upper management, and they begin to identify you as an up-and-coming high-value engineer.
From this point, your focus is mainly on your skills and knowledge.
You are a tech-savvy developer that everyone trusts to be able to produce high-quality software.
However, optimizing code and being good at system design is not enough to become a leader and a high-value engineer.
Diversity, Diversity, Diversify
By now, you can call yourself a senior engineer. Although there are various definitions of senior engineer, if you are given a project and can lead the project from beginning to end, you can count yourself as a senior engineer.
What I mean by diversification here is that instead of diversifying by learning multiple areas of programming language, which is beneficial to becoming a T shape engineer, you diversify by increasing your soft skills.
I am currently at this stage where, to go beyond the traditional ceilings of the engineering career ladder, I started to think of a person in business and an investor. Diversification is important because there is a ceiling for "just programmers."
By thinking about a business person or an investor, you start to think about human psychology, communication, business, and marketing.
You start to get involved more in office politics and understand what it means to be a high-value engineer.
Producing beautiful software is not a goal. Solving complex technical problems is not a goal. Writing bug-free code is not a goal. Using sexy programming languages is not a goal. Add revenue. Reduce costs. Those are your only goals.
When considering things from an investor or business perspective, it becomes clear that engineers are primarily hired to solve business problems and reduce costs. Business revolves around humans, so developing soft skills like communication and empathy can help identify and solve problems. In well-run businesses, recognition is typically given to those who successfully take credit for solving problems or achieving these goals.
I am currently at this stage of the process, where a lot of the feedback is about how to be a better communicator, give profound feedback, make effective mentorship, and make good business decisions that help the company grow.
Counterintuitively, you should also detach yourself as a "programmer" from a defined chosen stack.
If someone introduces themselves as a Java or .NET programmer, it's likely that they have already put themselves at a disadvantage. This is because, first of all, they have limited themselves to a specific programming language. Secondly, businesses often view them as cost centers instead of profit centers. This can make it difficult for them to be considered for certain programming jobs.
Engineers are hired to create value rather than just program things because the price of anything, including software, is determined by both its supply and demand.
Beyond Leadership
I am not at this stage of my career. Thus, I cannot give any tips and points on which route to go after becoming a high-value individual contributor. However, at some point in your career, you will need to manage other people, and management is another set of skills you need to learn that is irrelevant to being an individual contributor.
Conclusion
While mastering hard skills and domain knowledge forms the foundation of your career, the continuous evolution of your skills and the development of your soft skills propels you toward becoming indispensable in your field.
Start by honing your coding abilities and deepening your domain knowledge during the initial years. As you become the subject matter experts, the journey doesn't end with technical prowess. To truly stand out, diversify your skills beyond programming languages. Embrace the mindset of a business person or an investor. Understand that your role as an engineer is fundamentally about solving business problems and reducing costs.
Becoming a high-value engineer is a continuous learning, adapting, and evolving cycle. By focusing on a blend of technical expertise, soft skills, and business acumen, you maximize your career capital and contribute significantly to your organization. Remember, the key is not just to be a proficient programmer but a versatile problem solver and a strategic thinker, capable of adding substantial value to any endeavor you undertake.