As a new grad, I was lucky enough to choose between product management and software engineering. I talked to a lot of people in both roles at different companies before ultimately joining the APM program at Google, which was a phenomenal experience. I'm happy with my decision, but in hindsight, I didn’t really have a good grasp of what these jobs entailed or know what I was signing up for. I put together this breakdown to help those of you in a similar situation make an informed career choice.
Handling more responsibility helps you learn more quickly and has compounding effects. This is something you want to optimize for early in your career. Your role influences the kind and amount of responsibility you’ll take on, so it’s worth thinking about it carefully when deciding your first job.
Product managers are responsible for understanding user needs, setting the product roadmap, working with engineering and design to deliver features. You are ultimately accountable for the product's success or failure.
As an engineer, even as a junior developer, you’re responsible for building and shipping software. This might be for a user facing product or back end infrastructure. You are accountable for the quality and rate at which you ship as well as the scalability, performance and reliability of your code.
PMs are closer to business critical decisions and their work impacts many other people in an organization, so they’re likely to get more responsibility early in their career. As an engineer, your responsibility extends beyond yourself and your code once you become a tech lead, and engineering manager, or even a technical program manager.
You focus on gaining skills and becoming a good engineer first whereas PM-ing is more of a trial by fire.
The day-to-day for a PM and engineer are drastically different. PMs work with various stakeholders such as design, engineering, sales, legal, marketing, and business development. Your job has two parts. The first is the strategy component. This involves identifying opportunities, prioritizing them, selling a vision and getting buy-in from relevant stakeholders. The second is execution, which involves writing product specifications, working with engineering and design to actually build the feature while navigating trade-offs along the way. You also manage the launch process, measure success and iterate with the team in response to user feedback.
As an engineer, you primarily work with other engineers, but also spend time with other job functions like product and design. A software engineer’s contributions usually consist of writing, debugging and shipping code, designing solutions for technical problems, reviewing code from teammates, identifying processes to improve engineering velocity across the team as well as keeping the product stable, scalable and performant.
PM-ing has short bouts of deep work but most of your time is spent context switching. Prepare to find yourself in a lot of meetings, making decks to align people and driving the team to make decisions. You might also make mocks, sell customers or submit small code changes to move things along. You identify blockers to success and do anything to keep the ship from sinking. Engineers spend much more time heads down building. You’re in fewer meetings and hopefully have fewer distractions. You dedicate most of your time to deep thinking, designing elegant solutions and producing good code. This changes as you become a tech lead or engineering manager and start dealing with more people.
PMs will learn how to:
Engineers will learn how to:
You might prefer product management if:
You might prefer engineering if:
Both roles vary a lot based on your company and team. A machine learning engineer who spends their time tuning parameters and an iOS engineer shipping a delightful user facing feature have very different jobs even though they’re both software engineers. Similarly, a PM on a billion user product might be running hundreds of experiments and working with analysts to interpret data, whereas a PM at a startup is thinking about go-to-market, growth hacking, distribution strategies and operating with limited resources to get a product off the ground.
You can always transition between the two roles later. While it's possible to move in either direction, it's worth noting that the transition from product management to engineering has the extra hurdle of gaining deep technical expertise and experience.
Keep in mind that careers aren’t linear. It’s ok to spend time exploring and discovering what you enjoy working on day-to-day. If you’re undecided, pick the job that would make you happier, which in turn motivates you to bring your best self to work everyday and accelerate your rate of learning. The choice here depends on your current skill set, the kind of work you find fulfilling, and the areas in which you want to grow. Hopefully, you pick the job that’s right for you and have a blast doing it!
Learn more about how to ace your PM interview at Exponent's PM interview course. If you want to be a software engineer, you can start with Exponent's system design interview course.
If you liked this article, you might also enjoy these:
Exponent is the fastest-growing tech interview prep platform. Get free interview guides, insider tips, and courses.Create your free account