Over the past 15 years I have hired hundreds of software engineers, many of whom were either interns or young people starting out in their career. I believe a key to this success is my genuine desire to help grow the careers of my recruits. If your teams have a great experience then word gets around.
I believe young engineers need to do the following if they are seeking to join a company that will put them on the path to success:
- Go to the epicenter
- Build stuff that matters
- Focus on your passion
- Find a great mentor
- Ignore company size
- Avoid companies with silos
Go to the Epicenter
Most industries have a primary geography where new ideas originate and emanate: Los Angeles for film, Paris for fashion, Houston for oil and gas and, of course, Silicon Valley for the Internet. You are best served by beginning your career at a company based in its industry’s epicenter for several reasons:
- Opportunity. That’s where you’ll find the highest density of high quality job opportunities should you wish to find a new employer.
- Relationships. It’s easiest to build a network of compelling personal relationships where you find the most meetups, tech talks, and other informal industry or profession related gatherings.
- Access to capital. You should build a reputation in the geography where you’re most likely to find the most top-tier investors if you someday hope to start your own business.
Build Stuff that Matters
Your learning will grow at the fastest rate if you work on stuff that matters. This velocity can be attributed to two primary reasons:
- Spotlight. The greater the importance of the project on which you work, the greater attention you will command. You’re far more likely to get constructive feedback if people care about what you are doing.
- Experimentation. Solving cutting edge problems often demands experimentation with new technologies and platforms.
The best companies to join will offer you the opportunity to ship real products and infrastructure that impact the business. For internships, this means you get to work alongside full-time engineers rather than being assigned to projects that nobody cares about.
Focus on Your Passion
You’re far more likely to engage and grow if you choose an employer whose mission has personal meaning to you. For example, many of us at Wealthfront are incredibly passionate about improving the lives of our clients by using software to automate high-quality financial services and making them available to everyone at low cost.
Find a Great Mentor
The functional skills required of a high-caliber software engineer evolve at a very fast pace. The theoretical training you receive in school is intended to help structure how you think, not prepare you in the mechanics and toolset to write outstanding code day-to-day in the commercial world. Although you can learn these skills on your own, you will learn more and improve at a much faster rate working alongside the best.
That’s why you want to join a company with a reputation as a technical innovator. Great engineering mentors are typically found at companies that offer hard technical challenges and have a strong engineering culture. The best mentors are often the technical managers who are most respected by the senior engineers. Finding a great mentor is one of the biggest levers available to accelerate your career.
Ignore Company Size
Great engineering mentors reside at companies of all sizes. Coding best practices are broadly similar between both large and small companies, provided both are on the leading edge. That should come as no surprise because engineers need to solve many of the same root problems, no matter what the size of the company.
Failure at a small company with a great engineering team is not as risky as you might think. Even if your employer fails, recruiters are quite knowledgeable about which companies have recruited great technical leaders and are desperate to hire their disciples. Perhaps even more surprising is engineers from failed companies with great technical reputations are far more vigorously pursued than engineers from successful companies that lack killer technical reputations.
Once again, the most important consideration is the quality of people from whom you can learn.
Avoid Companies with Silos
To maximize your technical credibility and career trajectory, you want to gain a broad exposure to different technical challenges, software practices, programming languages, and tools.
Your opportunity to gain this breadth of experience is directly related to internal organizational silos and company politics. Choose companies with minimal internal silos that encourage engineers to collaborate broadly across different problems and teams. This environment enables you to most rapidly develop your foundation skills.
Upon joining Wealthfront, one of the first things I did was align how we hire engineers with these criteria. We are building a company and culture where every young engineer can benefit. If something doesn’t matter, it gets deprioritized or outsourced. Our truly engineering-driven culture has attracted outstanding engineers who are not only great mentors, but sought out by other top Internet companies who want to learn from our methodologies. We organize in ad hoc project teams to achieve our goals, expect everyone to understand our metrics, and encourage everyone to work across our stack. New grads and interns immediately make a difference because everyone builds stuff that matters.
We aspire to not only disrupt the financial services world, but to improve the practice of software engineering as well.
Control Your Destiny
If you’re a software engineer early in your career, make sure to look for a company with an outstanding technical team from which you can learn at a rapid rate. You are most likely to find such a team at a company that is engineering-driven. And, it rarely hurts if they are also experiencing momentum in their business.