Advice to young engineers

I still remember looking for the first time at the LinkedIn codebase. The code repository included more than two hundred (sic!) micro-services, thousands of libraries, and complicated build scripts. I was overwhelmed; how was I supposed to start my engineering career and this job?

Seeing my colleagues seamlessly navigate the codebase made me even more worried. I wasn’t going to make it, stuck on the simplest of bugs, unable to parse what was going on.

Starting a software engineering career is confusing. It’s not a lack of information; it’s the opposite. There are countless technologies, databases, and programming languages.

While possibilities are infinite, your time is finite; avoiding the common traps early in your career can save you from feeling hesitant about the job. There is no “right path” to growth and career success. It’s more useful to have important principles in mind and see where your career takes you.

Relationships matter

I heard “relationships matter” hundreds of times during my time at LinkedIn. It took me years to understand what it meant. There’s a myth in our industry that software is built by lone geniuses, but solving challenging problems is a team sport. A group of people will almost always deliver a better solution than an isolated individual.

More importantly, healthy work relationships will extend beyond the workplace and will be the bedrock for future opportunities.


Optimize for learning

**Compound learnings **are how most “10x engineers,” or how Staff/Principal engineers achieve incredible productivity. I am a strong believer that incremental progress sustained over months or years will turn you into an outstanding engineer. Improving by 5% each day will make you incredibly better than peers who didn’t try.

Beware though, as a young Software Engineer, don’t expect opportunities to behanded to you on a platter. Instead, take an active role in seeking out opportunities for your career development.


Depth before breadth

Few fields have as many options as Software Engineering. Don’t believe me? Look at the Wikipedia entry on the list of programming languages. I often see young engineers jumping eagerly from language to language. Or, they start a project, abandon it when it gets complicated, and move on to the next one.

After a decade in the industry, I strongly recommend against this approach if you want to build expertise. Mastery of a topic is acquired through hard work. And getting over the difficult hump is part of the journey.

In the long run, I believe that grit is what sets apart an “OK” engineer from a great one in the long run, above raw talent.


Understand the “big picture.”

It often takes years to understand that people who have come before you have built solutions that are not “bad.” I was guilty of Silver Bullet Thinking in my early years as an Engineer. That’s because I didn’t grasp the “big picture.” I chose to focus on a small part of the problem, and from that vantage point, most things feel deceptively simple.

I love Software Engineering and software design. It’s easy to forget that it’s a tool to solve problems. It’s essential to have a passion for the craft, but only focusing on the passion will not make you a great engineer.


0 Comment

New comment

Comments will appear after moderation.