fbpx
Career advice Tech Careers

Career Advice for Software Engineers

Career Advice for Software Engineers

Disclosure: This post contains affiliate links. If you click through and make a purchase, I’ll earn a commission, at no additional cost to you. Read my full disclosure here.

Disclosure: This post might contain affiliate links. If you click through and make a purchase, I’ll earn a commission, at no additional cost to you. Read my full disclosure here.

This post provides career advice for Software Engineers, who are trying to decide the next steps in their careers. It includes advice on how to improve your skills, whether/how to switch to Product Manager, Technical Program Manager or Engineering Manager, how to find mentors, and whether to get an advanced degree (MBA, M.Sc.).

The questions are based on an AMA that I did on 6/11/2020 on the Blind website. I found the discussion really interesting and got lots of great feedback from the participants. As a result, I decided to restructure my answers in a searchable form and post them here as well.

Table of contents
 [hide]
  1. How to decide my next career steps?
    1. I am currently a SWE and thinking about my next career step. Should I stay as a SWE or transition to EM, PM or TPM? I’m also concerned about differences in compensation between the different roles.
    2. Based on your personal experience as SWE, PM and TPM, which role was your favorite?
  2. How to become a Product Manager?
    1. How to switch from SWE/TPM/Ops/Analyst/Consultant/etc to PM? I don’t have a business degree.
    2. How easy is it to do an internal transfer from a SWE/TPM/etc to PM within FANG?
    3. Should I switch from TPM to PM? What I don’t like about the TPM role is that I get paid less than PMs everywhere. Also, I have seen except Microsoft and Amazon, rest of FAANG don’t value their TPMs much and use them as coordinator, not drivers. What are your thoughts on the above?
    4. Do you think Analysts make good PMs, and do you have any words of warning or encouragement or even advice for people looking to transition?
    5. Have you seen any instances where Product Marketing Managers switched over to Product management? if so what are some of the skills marketing managers would need to obtain?
    6. Do you see successful product managers that don’t have a technical background?
  3. Differences for PMs between Google, Amazon, Microsoft (responsibilities, culture and pay)
    1. Overview
    2. Google PMs
    3. Amazon PMs
    4. Microsoft PMs
  4. Advice for New PMs
    1. What advice would you give for someone who’s transitioning from SWE to PM?
    2. How do you crush it at a new pm job? 
    3. How do you find out the most impactful new features?
    4. How do you decide whether a topic is one for you to have a strong opinion on, or one where you probe discussion from cross functional folks?
    5. How do you probe discussion? Often times I try and I don’t get much back from the meeting attendees
    6. How to get technical credibility with a dev team that has very senior engineers?
    7. I’m currently an intern. What advise would you give me as someone who is totally new to PM career?
    8. Any advice for a new PM, who wants to switch to FANG as a PM or TPM within 1 year?
  5. PM interviews
    1. What’s the most important personality trait/quality you are looking for when you are interviewing PM candidates?
    2. How can an interview candidate separate themselves for a PM role? It seems everyone uses the same frameworks.
  6. How to become a Technical Program Manager?
    1. How to switch from SWE or Tech Consultant to TPM?
    2. Is it possible to switch to a TPM without coding skills?
  7. How to become an Engineering Manager?
    1. I want to become an Engineering Manager. How would I know if I am on the right track for becoming a good Engineering Manager? Also what are the future career paths from being an EM?
    2. Do you feel an MBA is worth the time away from a career if you’re climbing the EM ladder?
    3. How to switch from TPM to EM?
  8. Graduate degrees (MBA/M.Sc.)
    1. Do you think an MBA is worth the time and money?
    2. Do you think that the MBA is helpful to switch to Product Management?
    3. Did getting your MBA have a significant positive impact on your career?
    4. Will an MBA help me get promoted as a SWE, become an Engineering Manager or a TPM?
    5. Do you think an M.Sc. is worth the time and money?
    6. Do I need an M.Sc. to a) get promoted as a SWE or to b) switch from SWE toan EM/TPM/PM?
  9. Mentors
    1. Could you share any learnings/tips to get great mentors/coaches for a PM to go up the product leadership path?
  10. Working remotely
    1. What are your thoughts on the future of PM/TPM roles in the post-COVID world? How will product management change with “remote working”?

How to decide my next career steps?

I am currently a SWE and thinking about my next career step. Should I stay as a SWE or transition to EM, PM or TPM? I’m also concerned about differences in compensation between the different roles.

It’s important for you to figure out what you want from your next career step. Are you after money? Prestige? Feeling stuck in the SWE ladder? Something else?

My advice is to think about what you enjoy doing the most.

I’ll be generalizing quite a bit, this is a very quick-and-dirty guideline to help you. You should become a:

  • SWE, if you enjoy designing features and writing code
  • SDM, if you enjoy managing people (and writing code, but much less than a SWE)
  • TPM, if you enjoy driving the execution, creating time schedules, coordinating multiple teams, managing the project, working closely with SWEs, communicate status/risks, etc
  • PM, if you want to define the product, own the user experience and product vision, enjoy presenting at conferences, working with non-engineering teams (e.g. sales, legal, marketing, etc), writing specs, but  being far away from the implementation/coding/design

The above list is ordered from most technical work (SWE) to least technical work (PM).

The important part is that if you stop being a SWE, then you will be doing much less (if any) coding. Are you ok with that?

Also, your skillset will determine your compensation ceiling. 

If you compare SWEs, PMs and TPMs at the same level, then SWEs will earn more. The only exception that I know of is Microsoft, where SWEs and Program Managers are paid the same.

However, your ceiling at SWE might be L5, whereas you ceiling at PM might be L7. And this changes the compensation discussion. So, don’t focus that much on the relative compensation between each role, but on the type of role that matches your strengths and interests.

Circling back to my initial point, my advice is for you first to figure out why you want to switch (money, burned out, more prestige in other roles, etc) and then decide which role fits you most (or maybe you’ll decide to stay as a SWE).

For more information on each role, take a look at the differences between EMs, PMs and TPMs at my previous post “What are the differences between Product Managers, Program Managers, Engineering Managers and Marketing Managers?“.

Based on your personal experience as SWE, PM and TPM, which role was your favorite?

Each role has its own advantages and disadvantages.

I started as a SWE. I was really passionate about programming. I could never imagine myself doing anything else other than coding and designing. However, at some point this became tiring. Spending hours or days debugging code just to find that a bug was caused by a random pointer (or whatever typo). Knowing that it would be impossible to always be at the top of my game an know the latest hot language.

These are some thoughts that made me switch and get an MBA. It helped me get business credentials.

After that I became a PM. Amazing experience to own a product. You are responsible for the user experience end-to-end. It’s up to you to make the best product for the customer. And it’s also easily to measure by using the correct KPIs (customers, revenues, etc). The flip side is that it could be very stressful. You have to pitch your product ideas and get buy-in from everybody. And people just love to debate ideas forever. And I also missed participating in more technical discussions, as well as any references to debugging or writing code 🙂

The TPM is a role that has much less stress than the other two roles and is much closer to the technical side. You can go as deep into the product design as you want. And you have a much bigger view than any developer. Maybe even more than the PM in some areas., But it also has its own complications. You are responsible for the project plan, but the actual timelines are driven by developers. You have to commit to a launch date and explain why you missed that date, even though you neither gave the estimates for each task nor the ETAs.

That’s why I’ve switched between PM and TPM work a few times. At this point I miss writing code, but in order to become competitive in the SWE job market I’d need to spend a LOT of time and I don’t think that it’s worth it.

Career Advice for Software Engineers - How To Become a Product Manager

How to become a Product Manager?

How to switch from SWE/TPM/Ops/Analyst/Consultant/etc to PM? I don’t have a business degree.

It’s relatively difficult to transition to PM without a business degree. This is a much bigger jump than from SWE to TPM.

As a PM, you will need to stop focusing on the technical details and the implementation (i.e. coding) and focus on the customer (i.e. how will you create something that is valuable and find the best way to bring it to market). 

There are 3 main options:

  1. Apply within your current company
  2. Apply to other companies
  3. Get a business degree or a PM certification

Apply within your current company

The easiest way to switch to PM would be to try and switch in your current company.

Start by talking to recruiters in your own company. They can help you a lot. Ask them questions like:

  1. What is the process to switch from your current role to a PM. 
  2. Are there teams that are more open than others into hiring PMs from different disciplines? 
  3. How easy is it for people in your company to get accepted to PM roles?

In addition, you can collaborate with PMs in your existing company and then maybe take over some of their responsibilities:

  • Start by scheduling a coffee chat with the PMs in your team and tell them that you are interested in learning more about the PM role. Ask them about the PM role (what they like/dislike, day-to-day tasks, how they prioritize features, etc).
  • Share your goal of transitioning to PM. Maybe they could even become an unofficial PM mentor.
  • You can also ask them to assign you some PM tasks so that you can learn the basics of their job. Frame it that your goal is to learn, not to take credit for his accomplishments, so this deal could just be totally unofficial between the two of you.They’ll definitely be happy to offload some work to you. This could be the first step into transition to PM.

Apply to other companies

Another way is to apply for PM jobs in companies, which are more open to having PMs from other disciplines. This is also quite easy for startups. From the big tech companies, Microsoft is one that allows SWEs to apply to PM positions. In contrast, this is much harder for FAANG (Facebook, Amazon, Apple, Netflix, Google), which typically require previous PM experience.

If you decide to go through that route, then you keep in mind of the following:

  1. Make your resume and your LinkedIn profile more PM-centric. 
    1. Search LinkedIn and find what keywords are used by other PMs
      1. Can you show similar type of work in your resume? 
    2. For example talk about:
      1. Product vision
      2. Requirements gathering
      3. products that you launched
      4. KPIs that  you improved
      5. areas that you owned
      6. cross-discipline work that you did
      7. collaboration with sales/support/legal
      8. Working with customers, doing usability studies, etc
      9. presentations to conferences/leadership, etc
  2. Get referrals from people you know, in your target companies
  3. Utilize LinkedIn to send direct messages to people
    1. Find recruiters, who are hiring for PMs positions
    2. Find hiring managers, who advertise in their profile that they are hiring PMs

Get a business degree or a PM certification

The last option would be to get a business degree or a PM certification. 

The most relevant degree would be an MBA. However, it will be up to you to determine if indeed it makes sense for you to go through that route, since it is a considerable investment in time and money. I suggest that you also read my post titled “Is An MBA Worth It For Software Engineers?” to understand more about the value of the MBA.

You can also try to get PM certificates from accredited universities. For example, the University of Washington has a 9-month certificate on Software Product Management. There are also Product Management programs from General Assembly, Pragmatic Marketing, etc. They are much cheaper than an MBA, but their impact will also be lower. Make sure that you do you own research before relying in a PM certificate to help you get a PM job.

For more information on PM interview prep, take a look at my post on “How to Prepare for Product Manager (PM) Interviews”.

How easy is it to do an internal transfer from a SWE/TPM/etc to PM within FANG?

I can talk about Google and I think that it’s similar at Facebook. I don’t know about the rest of the companies.

It is quite hard. Transferring to PM (from any ladder) is one of the hardest (maybe the hardest?) transfer at Google. This is due to the law of supply and demand, since lots of people want to become Google PMs.

The options that you have are:

  1. Do a full PM interview loop with 5 interviews (1 technical). This would be same process/difficulty as any other external candidate
  2. Find a PM Manager, who will be willing to hire you in their team. This reduces the loop to 4 interviews (1 technical)
  3. Find an internal team, which will “hire/test” you to work as a PM for 6 months. Your actual headcount will still be in your old team (ie your current Manager will not be able to hire somebody else to replace you), so your current manager has to approve. You’ll do an interview of 3 rounds, get additional statements of support from the PM team that you’re working with, and also submit the artifacts of your PM work. If you pass, you join the PM team. If you don’t you return to your old team.

The level of difficulty would be the same regardless if you’re an internal candidate or an external candidate. However, obviously as a Googler you have access to internal resources (e.g. other PMs for mock interviews, access to the PM interview resources, etc).

Should I switch from TPM to PM? What I don’t like about the TPM role is that I get paid less than PMs everywhere. Also, I have seen except Microsoft and Amazon, rest of FAANG don’t value their TPMs much and use them as coordinator, not drivers. What are your thoughts on the above?

Focusing only on money is not the best way to judge a role. For example, investment bankers are paid much better than PMs or TPMs, but that doesn’t mean that you should become an investment banker. And, if you look at SWEs, they are also typically paid better than PMs and TPMs (same level, same ratings, etc). Does that mean that everybody should become a SWE? 

The most important fact is for you to find out what you enjoy the most. Some of the attributes that you mentioned are not the key ones.

Do you want to define a product and own the user experience? Be the person, who makes the decisions for everything user-related? Prioritize the upcoming features, external requests, etc? Get input from marketers, sales teams, researchers, etc and define to strategy for the product? Establish the KPIs for your product (eg we want to make $$$ within 3 months post launch or Y million monthly active users, etc)? If so, become a PM.

Alternatively, do you want to participate in the technical/design discussions with the engineering team about how a product is implemented? Provide your own input about whether they have checked all the technical requirements, eg the product will/won’t match the latency/throughout/etc requirements based on what the PM needs? Work with all the devs in the product, work with them to get their estimations, create a project plan and inform all stakeholders accordingly? Try to identify risks and make sure that there are mitigation plans in place? Inform all stakeholders when something bad happens and make sure that nobody is suddenly surprised when they find out that the launch date was moved 3 months ago and they had no idea? If so, become a TPM.

It’s not easy to enumerate all the tasks for a PM and a TPM, so I just wrote down some. Feel free to think of others as well.

The important part is where your capabilities align best. For example, you might have no technical skills so it might be difficult to become a successful TPM. Or you might hate talking to customers, so it would be difficult to become a successful PM.

It is true that in some companies (eg Google, Facebook), PMs get paid more than TPMs. In others (eg Amazon, Oracle) PMs get paid less then TPMs. And in some others they get paid the same (eg Microsoft and Tableau have one role, but people wear multiple hats). I would focus on what you can do best, not what a particular company is paying TPMs vs PMs.

I don’t think that the relative order for the compensation between PMs and TPMs in other companies (not the ones mentioned above) is black-and-white. I don’t have a full picture, but I expect mixed results.

Do you think Analysts make good PMs, and do you have any words of warning or encouragement or even advice for people looking to transition?

Literally anybody can become a good PM. The important part is to play with your strengths.

For example, a SWE will definitely know the tech stack better. A UX designer will be able to provide a better user experience.

An analyst has more quantitative skills. Focus on showcasing them in your role and during your interviews. Also find roles that suit you most. For example, you might find that it’s best to become a PM in a more mature product instead of a brand new one (this is just an example).

My word of warning (which I provide to everybody who wants to switch) is that when you switch to PM, you should forget about your previous role. You are not an analyst anyone, but a PM. So, you’ll have to stop focusing on your analyst tasks and focus on the PM tasks. Find the big rocks and move them. The reason that I stress about this is that it’s really easy to switch back to old habits when you transition. Remember that you’ll be paid to be a PM and your performance will be based on how well you perform as a PM.

Another word of warning is to not feel discouraged by other PMs, because eg they come from a tech background. They will have their own blind spots. Focus on what you know best and learn from other PMs.

Finally, before you decide to switch to PM, find people who have done the same jump as you want to do and talk to them. See if they can mentor you after your switch as well.

Have you seen any instances where Product Marketing Managers switched over to Product management? if so what are some of the skills marketing managers would need to obtain?

Yes, I’ve seen lots of people, who switched. One particular example is from a person, with whom we were working very closely at Microsoft. He was awesome because he knew how to build connections, talk to customers, do great presentations to showcase the value of the product and he played with all his marketing-related strengths. And the end result is that the products that he launched had great product-market fit and lots of great feedback from customers.

Here are my top 3 skills to obtain:

  1. Become technical: I think that being technical helps. This does not meet that you should learn how to code or to do design reviews. Instead, you should understand the competitive landscape and understand how to talk to developers. In the majority of your meetings you might be the only non-developer. You should be able to understand what they are talking about and not twiddle your fingers. Don’t afraid to speak up
  2. Learn how to talk to customers: As a PMM you’re doing outbound marketing, whereas the PM is doing inbound work. You will need to learn from customers and understand their business needs. Then you’ll have to be able to translate those needs to your developers, so that they can develop the best product.
  3. Be the driver of your product: Most PMMs are not involved in product development. Instead, they are handed a product and they need to find the best way to take it to market. As a PM, you’ll have to define the vision, bring new ideas to the table, sell them to execs and to your team, etc. You’ll need to become a leader without any formal authority, since nobody will report to you.

Do you see successful product managers that don’t have a technical background?

I do think that there are lots of successful PMs, who don’t have technical background. You should play with your strengths. A PM doesn’t show his/her value in the team by writing code or doing design reviews. This is the job of the engineering team.

A PM will show their value by being the voice of the customer and finding product/market fit. You need to have technical judgement, so that you can have a smart discussion with developers, but that’s it. It’ll be more important for you to spend your time talking to customers, understanding their needs and building a product that solves their problems.

So, find your current strengths and use them in your favor. When a technically-oriented PM talks about bugs, low-level design and architecture, ask them about users, case studies, product KPIs (Key Performance Indicators).

If you don’t have technical background, but still want to become a Product Manager, then your best chance would be to apply to companies that don’t have technical interviews for PMs, such as Amazon and Facebook. Microsoft also has a role called “Business Program Manager”, which does not have a technical interview.

In contrast, most other companies, e.g. Google Product Managers do go through technical interviews. Also, Amazon has a separate role for technical PMs (called “Product Manager – Technical” aka “PM-T”) and Microsoft has the role of “Program Manager”. All these roles have technical interviews.

A technical interview for a PM typically is about system design questions and technical understanding. It most cases, PM interviewers don’t ask coding questions. For example, they might ask you to “explain the architecture of a product that you worked on” or “how Twitter works” or “what happens when you type www.google.com in your browser”.

Also take a look at my post on “How to Prepare for Product Manager (PM) Interviews”.

Career Advice for Software Engineers - Differences between Google, Amazon, Microsoft

Differences for PMs between Google, Amazon, Microsoft (responsibilities, culture and pay)

Overview

In theory, the role of the PM is always the same:

  • PMs own the user experience and drive the product vision
  • They have a very clearly defined output, which is the PRD (aka functional spec). All their thoughts could be written down in that doc. And they need to get sign offs from everybody before proceeding
  • They have a clearly defined way to measure their impact, which is the KPIs that they are driving, eg did their product get the $XX that they were expecting in the PRD? Did they get the Y thousands of monthly active users? (Etc)

In practice, their role varies among companies. I will explain the differences in between each company the corresponding section below.

From a very high level perspective, in my opinion:

  1. Total Compensation: Netflix > Facebook > Google > Amazon > Microsoft
  2. Culture: Google > Microsoft > (Amazon, Facebook, Netflix)

The following matrix has some more detail:

 FBAmazonAppleNetflixGoogleMicrosoft
Work-life Balance (average)Not GoodNot GoodNot GoodNot GoodGreatGreat
High PIP RateYesYesNoYesNoNo
Market pay percentile90%75%75%95%80-85%60-65%
Bottom-up or top-downTop-downTop-down, Top-downBottoms-upBottoms-upTop-down
Eng-driven or PM-driven PM-driven  Eng- drivenDepends on team

If you want to optimize Total Compensation, then it’s better to select high-paying companies, eg FB, Netflix, Uber, etc

If you want to optimize Work-life balance, then it’s better to select Google, Microsoft, etc

For more information, take a look at the following posts: 

  1. Cultural comparison: Inside the Culture of the Top Tech Companies
  2. Total Compensation comparison: Salaries for Software Engineers are On FIRE!

Google PMs

Google focuses a lot on hiring great people, developing them and maintaining them. Their TC is great, but not top of band (e.g. Facebook or Netflix might pay more). Lots of free perks (food, massage, gym, etc), but it’s also very difficult to get promoted.

Google is definitely engineering-driven. This means that even if the Product Manager has a great PM/functional spec (called “Product Requirements Document” or “PRD” at Google) they will have to convince the engineering hierarchy that this is something worth doing. If the engineers are not in favor, this the spec might not get traction. A good PM will have to drive without authority. This is not a top-down hierarchy as it is with Microsoft and Amazon.

However, the work environment at Google is great. I’m a huge fan 🙂 Googlers are great. And in most cases, I’ve found that engineers have strong opinions, but they are well-intended. You won’t find people, who just want to make your life hard for no reason.

The work-life-balance is great. There are definitely times when there is lots of work (e.g. when a high visibility project is getting delayed), but also times when things are much better. In general. On average, I think that it’s good wlb.

Google favors PMs with technical backgrounds.

The Google PM interview loop includes a technical interview, whereas the Amazon PM interview loop does not. In that sense, the Google PM interview is more similar to the Amazon PM-T interview.

Apart from that, the day-to-day tasks are similar between Google and Amazon PMs.

Amazon PMs

Amazon is top-down, PM-driven and focuses on the customer. Every decision is based on data. PMs are reporting their KPIs in weekly business reviews to leadership. Every idea need to be presented as part of a 6-pager that is full of data. They are evaluated based on the KPIs that they are driving. If they are not meeting their KPIs (eg the sales of their product had a dip the last couple of weeks) they need to be on top of it, understand the reason behind it and explain it to leadership. And the answer “I don’t know” doesn’t fly very far in these business reviews.

Amazon is a very competitive environment. Lots of stress, lots of people going into PIP. You’re as good as your last manager thinks. The flip side is that if you get along with the system, you can grow the ranks faster and show more impact.

Microsoft PMs

The Microsoft role for “Program Manager” is somewhere between a “Product Manager” and a “Technical Program Manager”. This means that one person has to do both jobs. Whether that person spends most of their time as PM or a TPM depends a lot on the product and the team.  Some are doing release management. Others are mostly following top-down goals, spend some time to write a spec and most of their time monitoring progress, triaging bugs, etc. 

I think, though, that the end result is that as a Microsoft PM you end up not having the time to do 100% of the tasks of a pure PM and 100% of the tasks of a pure TPM. For example, you might present in conferences, but not have a very close relationship with the sales or marketing teams (which might be good for PMs). And you might rely on the EM to do some of the project management work (which is core for TPM), in order to be able to focus on PM tasks. 

So, the Microsoft Program Manager role cannot just be categorized easily, as it varies a lot. Some teams are trying to do more Product Management work, but typically a Microsoft PM won’t participate in sales calls, organize UX studies and pitch new product ideas. I’m not saying that none do, but that most of them don’t. That’s why it seems like most Microsoft Program Managers, who switch companies, end up in TPM roles and not PM roles.

Microsoft is great for work/life balance. Their pay is lower, but also the working hours on average are lower. Yes, there are teams that work a lot, but I’m talking about averages here. You can also learn a lot here. Satya is doing a great job at transforming the company.

Advice for New PMs

What advice would you give for someone who’s transitioning from SWE to PM?

My biggest advice is to remember that you’re now the PM and not a swe. All the tasks that you used to do (write code, do code reviews, design reviews, etc) aren’t useful anymore.

Instead, you should focus on improving the user experience. Learn about your customers and improve their user experience. Your main output will be the PM/functional spec, so make sure that you document everything there and you get sign offs from all involved teams.

Make sure that the project that you’re working on has high visibility. Your perf will be evaluated based on everything that you launched. If you didn’t launch anything or if you launched low visibility projects, then your perf will suffer.

Finally, go for coffee chats with other PMs and learn from them. What are their main tasks, how they prioritize their features, how they work with the engineering team, etc. Play the “I’m a new PM” card and learn from experienced PMs.

How do you crush it at a new pm job? 

This depends a lot on each company. For example, at Google typically you have 6 months, where you are a Noogler and your main job is to observe and learn. Facebook is more like “work fast and break things”.

Some ideas:

  1. Talk to as many people as you can. Play your “new PM” card as much as you can and network. Do 1:1 video conferencing calls with your teammates, other PMs, engineering managers, etc. Learn from them.
  2. Establish credibility within the engineering team. If you are a technical person, then use it as a strength. Since you start new, ask the Technical Lead to give you an overview of the technical stack. Ask questions and show that you understand what is happening.
  3. Gather as much data about your product as possible. What metrics are being tracked? Are they becoming better or worse? What do your customers say about the product (returning back to question #1 as well). Use this data in your favor to drive discussions.
  4. Try to find something that nobody else has done in the team and can provide lots of value. Observe and find what is missing. This is easier shown by examples:
    • In one of my teams I found out that there were lots of design docs, but there was nothing showing the full architecture. So, as a new PM, I talked to all the engineers, who knew small parts of the full picture in great detail and managed to create a technical doc with diagrams explaining the full stack in detail. And since I could talk semi-intelligently about a bunch of components, whereas each engineer only knew a small piece (in much more depth than I could ever go), I got lots of visibility and credibility
    • In another team, I spent some time understanding the competitive landscape and the gaps with the product in great depth. And I presented this to the whole team with lots of details. They were very familiar with their product, but not so much with competitors, so I got credibility there as well.

How do you find out the most impactful new features?

This depends a lot on the product that you working on and the type of data that you have available to you. In general, there are 3 approaches that help:

  1. Customers: via user studies, direct communication with strategic partners, enabling more “direct” channels for them to provide feedback, etc. In general, make it easy to get feedback from customers.
  2. Competitors: What are they focusing on? What are the competitive gaps with your product? What is your differentiation? You should know the competitive landscape really well. Analyze all their key announcements, especially during their key conferences, etc.
  3. Sales team: Your sales team is generally a hidden gem. They talk to customers a lot. They could either be new or existing customers. What do your sales teams know about your product that you don’t? Have you participated in a sales call?

How do you decide whether a topic is one for you to have a strong opinion on, or one where you probe discussion from cross functional folks?

Data is what matters. Can you collect the data and make your point? You should make a point to listen to everybody’s opinions, but in the end it’s data that matters, not opinions. This is something, where Amazon excels at.

How do you probe discussion? Often times I try and I don’t get much back from the meeting attendees

If you don’t get traction during a bigger meeting (which is a bigger problem now that there is no face to face) try to meet in smaller groups or even 1:1 before the meeting. Find the key people, whose opinions you value most (or whose sign off you need) and meet with them for 30 minutes before the big meeting. Tell them that you value their opinion and would love to get their feedback in order to build a more solid solution.

How to get technical credibility with a dev team that has very senior engineers?

As I wrote in a previous answer, what matters most is data about the customer experience. And there are 3 main ways to get this data (pasting from my previous answer:

  1. Customers: via user studies, direct communication with strategic partners, enabling more “direct” channels for them to provide feedback, etc. In general, make it easy to get feedback from customers.
  2. Competitors: What are they focusing on? What are the competitive gaps with your product? What is your differentiation? You should know the competitive landscape really well. Analyze all their key announcements, especially during their key conferences, etc.
  3. Sales team: Your sales team is generally a hidden gem. They talk to customers a lot. They could either be new or existing customers. What do your sales teams know about your product that you don’t? Have you participated in a sales call?

From that point on, what I’d do is:

  1. Spend some time and understand the above.
  2. Gain credibility by presenting your findings to the engineering team.
  3. I’m sure that you’ll find some areas that they had no idea about. It would also help you create some stack ranking between the upcoming features
  4.  When the team is focusing on something that makes no sense to you, based on the data that you have, challenge them. Ask them for the reason why something is prioritized higher or lower than you think.
  5. Find some neglected area that you think deserves more attention and make your case. Write a spec, add the data and present it to the team. If they accept your spec, then this is something that you own (i.e. a start). Rinse and repeat with more areas.

I’m currently an intern. What advise would you give me as someone who is totally new to PM career?

  1. Focus on the customer. Your goal is to understand what would the best way for customers to use the product (what features are the best ones, what is the best user experience, etc) and it’s not about the technical side of things.
  2. Make sure that your manager is happy. The most important person, who will make the decision about your offer is your manager. Make sure that you’re in sync with him, you keep him in the loop, ask for feedback, etc. If he’s happy, then he’ll give you the offer
  3. Communicate everything that you do. Communication is key regardless of whether you are writing emails or specs. Make sure that your written spec is solid. If you send any type of status emails, make sure that it’s clear to everybody a) how you are doing and b) how the team is doing
  4. Enjoy your time and learn. Meet people, talk to everybody. Make connections. Ask them about their experiences in the company. See if this is a company, where you’d like to work in the long-term.

Any advice for a new PM, who wants to switch to FANG as a PM or TPM within 1 year?

Here is my advice:

  1. Understand the differences between PM and TPM and decide if you want to be one or the other. Please look at a previous answer, when I pointed out the differences (or read my blog post, which has many more details – What are the differences between Product Managers, Program Managers, Engineering Managers and Marketing Managers?)
  2. In your current role, you should network with as many PMs and TPMs as possible. Go to lunches, learn about their experiences, their products, what are their painpoints or their current problems, how do they solve them, how do they figure out the biggest rocks for their products. Play the “I’m a new grad” card and learn from as many of them as possible. Your most important role as a new grad is to learn (so that you can show your value to FAANGM afterwards)
  3. Work on products that a) you enjoy and b) are critical to the business. Quantify your impact. Make sure that you understand what you are working on and you can talk passionately about it in an interview setting. Understand your KPIs (Key Performance Indicators), so that you can “translate” what you did in the financial space to something that will be understood by somebody in the tech space.
  4. Make sure that you have a great manager. Somebody, who can help you grow and cares about you. If your manager is not like that, then switch teams.
  5. Find mentors, especially other people, who did the same jump as you (from the financial sector to the tech sector). Meet with them and talk with them about what helped them in this transition. Especially, if they are currently working in FAANGM they might be great referrals.
  6. It doesn’t hurt to read about PM and TPM interviews. What types of questions are being asked? How would you answer them today? What are your current gaps? And then find ways to build strong answers by taking the best corresponding career moves going forward. Take a look at my post on
  7. When you feel you are ready, talk to recruiters in LinkedIn, who are recruiting for FAANG PM positions
  8. Interview with as many of them as possible, get multiple offers and maximize your TC
  9. The faster you switch, the faster your TC will increase, which will be very important when compounding starts kicking in.
  10. Try to stay in your current (PM) position for 1 full year, though. And try to launch something during that year
How to Prepare for Product Manager Interviews

PM interviews

What’s the most important personality trait/quality you are looking for when you are interviewing PM candidates?

I’m not sure, if there is one personality trait/quality that is the most important one. Some companies (e.g. Google, Facebook and Amazon) have a specific set of qualities that you are evaluated on during the interview and you need to get good results in all of them.

The easiest one to talk about (because they are public) are the Amazon leadership principles (https://www.amazon.jobs/en/principles).

Looking at those principles, the one that stands out is the “Customer Obsession”. A PM needs to be obsessed with customers, in order to be successful at his tasks. However, this doesn’t mean if you get high grades for customer obsession and low points for something else (e.g. this candidate has no bias for action and does not think big, but is very customer-obsessed), then you’ll get the offer. You need to show all of them.

I can share some personal red flags:

  1. Candidates, who tend directly focus on a solution and spend a lot of time discussing about features without tying their solution to some customer-impacting KPI. For example, if I ask you “How would you improve Google Maps” and you respond “I’d add this new feature to do XYZ”. This is very popular with SWEs, who want to switch to FANG. This is the #1 reason that people fail PM interviews. Make sure that you master these types of questions.
  2. Candidates, who have no structure in their responses. In a PM interview, you need to show a structured approach for every type of question. Jumping around from one place to the next without guiding the interview is a big no-no. Even questions like “do you think that Google should buy Twitter” should have a structured answer explaining pros and cons, etc. Just saying a yes or no and trying to explaining your personal opinion, doesn’t work.
  3. Providing non-creative solutions that don’t solve the initial question, especially if a candidate keeps telling me that it does. For this one, I’ve done multiple mock interviews, where this happens and then I ask the other person why (because at mock interviews it’s easy to learn the thought process afterwards). In most cases it’s obvious to the other party that their solution is not working but they feel like they have to show something, so they stick to it, even though they don’t believe it.

How can an interview candidate separate themselves for a PM role? It seems everyone uses the same frameworks.

This is like asking “how can somebody differentiate their resume? It seems that everyone uses the same template”!

A framework is just a way to structure your answer. The important part is the content of your answer!

  1. Learn how to use them in such a way that you seem natural when you answer questions, instead of mechanically applying a framework 🙂
  2. Do some mock interviews and get feedback on the areas that you should improve on.
  3. Be creative in your solutions. The framework just helps you structure your answer. It does not provide the content of your answer.
Career Advice for Software Engineers - How to Become a Technical Program Manager

How to become a Technical Program Manager?

How to switch from SWE or Tech Consultant to TPM?

It’s relatively easy for a SWE to switch to TPM. Most companies that I know of, would directly allow you to interview directly. I know a lot of SWEs, who prepared for the TPM interview, applied, interviewed and got hired as TPMs.

You don’t need an MBA, an MSc, a PMP or any other certification to apply. None of these would be valuable for TPM positions.

Some advice:

  1. Re-write your resume in such a way that you showcase your project management experience. Did you work with large teams, organize big projects, etc? What was the impact of your work? Everything should be viewed from the TPM lense.
  2. Find recruiters in LinkedIn, who are recruiting for TPM positions and have a chat with them. This will be much more effective than just submitting your resume into career portals and waiting for an answer.

For more information on TPM interview prep, take a look at my post on “How to Prepare for Technical Program Manager (TPM) Interviews

Is it possible to switch to a TPM without coding skills?

TPMs require technical acumen. You should be able to participate in technical discussions with your developers and actively contribute to them. Your developers will only trust you, if you show that you can hold your ground in a technical discussion.

Having said the above, a TPM will not need to code. In most (all?) cases they are not asked coding questions during the interviews and they don’t code in their day-to-day tasks.

As far as I know, all companies have a technical interview for TPM. A technical interview for a TPM typically is about system design questions and technical understanding. For example, TPM interviews might ask you to “explain the architecture of a product that you worked on” or “how Twitter works” or “what happens when you type www.google.com in your browser”.

For more information on TPM interview prep, take a look at my post on “How to Prepare for Technical Program Manager (TPM) Interviews

Career Advice for Software Engineers - How to Become an Engineering Manager

How to become an Engineering Manager?

I want to become an Engineering Manager. How would I know if I am on the right track for becoming a good Engineering Manager? Also what are the future career paths from being an EM?

The term “Engineering Manager” is slightly overloaded. In general, it corresponds to 2 different main tasks:

  1. People manager (i.e. grow your team, mentor them, support them, assigning tasks, etc)
  2. Technical manager (i.e. driving the product design, owning the development/maintenance plan, helping overcome technical problems, etc)

Depending on the company, an EM might have one or both of the above roles.

My top advice is that you should find what is being valued within your company and focus on that. For example, if you are expected to be a people manager, then make sure that you develop your people management skills and help your team grow. In this example, you should focus on driving the technical aspect of the product.

I think that the biggest issue that you might have as a new EM is that you might want to fall back to your previous SWE role. You might miss coding and you might think that it’ll be fun to write some code here and there. Please don’t. As an EM your most important focus will not be to write code. And many EMs, who fight against this might have problems going forward.

With the above, I don’t want to mean that you should never ever write any code as an EM. If you want to do it, please feel free. However, remember that this is not why you’re an EM now.

There is (almost) no limit to the EM path. You can go:

EM -> Director -> VP -> CTO/CIO.

Do you feel an MBA is worth the time away from a career if you’re climbing the EM ladder?

No, if you want to become an EM, then you don’t need an MBA

How to switch from TPM to EM?

Most companies will allow TPMs to directly interview for EM positions (and vice versa). I personally know a lot of people at Amazon, who switched from TPM to EM just by interviewing.

The role of the EM corresponds to 2 different main tasks:

1. People manager (i.e. grow your team, mentor them, support them, assigning tasks, etc)

2. Technical manager (i.e. driving the product design, owning the development/maintenance plan, helping overcome technical problems, etc)

As a TPM you have lots of experience in #2. What you need to show are your leadership experiences and people managing skills. 

Interviewers might ask you questions like:

  • How do you work with other developers? 
  • Are you seen as a key contributor by the dev teams that you work with?
  • Do you have any managerial experience (e.g. managing interns, vendors, etc)?
  • Were you a technical lead for large projects? 
  • Did you mentor people and help them grow in their careers? 
  • How do you help others grow?

My suggestion would be to talk to your EM and other EMs and find out how they did the switch.

For example, maybe the EM of their team left and they took that position.

It also wouldn’t hurt to reach out to recruiters from other companies in LinkedIn and inform them that you’re interested in EM positions for their companies.

Is an MBA Worth It for Software Engineers?

Graduate degrees (MBA/M.Sc.)

Do you think an MBA is worth the time and money?

I get this question a lot!

The answer is “It depends. What is your goal after the MBA?”

In general:

  1. It’s not worth it, if you want to:
    1. Stay as a SWE (e.g. get promoted to a Principal SWE)
    2. Become an Engineering Manager (or Engineering Director, etc)
    3. Become a TPM
  2. It might be worth it, if you want to:
    1. Switch to a Product Manager
    2. Switch to a non-technical role within a tech company (e.g. Product Marketing Management, Finance Management, Business Development, etc)
    3. Switch to a sector outside of high-tech (e.g. to consulting, banking, retail, healthcare, etc)

Typically, after the MBA you’ll get hired as a L4 at Google/Facebook or L60-62 at Microsoft. Amazon hires PMs with MBAs at L6 (i.e. gives higher title), but pays them same as (or less than) the other companies.

Here are some questions that you need to answer for yourself:

  1. What do you want to do after the MBA? What type of position, location and level do you want to be at?
  2. What is your current level and compensation at work?
  3. Would you be ok to study and take classes on top of your current professional workload?
  4. If the MBA program is not in the same city that you are currently at, then would you be willing to relocate to that city, in order to take those classes?

Also you should take a look at the employment reports from the programs that interest you. Search for “profile class <MBA program>”, e.g. “profile class Wharton” to find out the types of people that would be your classmates.

Finally, take a look at some additional thoughts about the value of the MBA titled “Is an MBA Worth It for Software Engineers?

Do you think that the MBA is helpful to switch to Product Management?

Yes, the MBA was critical in helping me get into a PM role. There are lots of people, who become PMs without an MBA, though, but it definitely helped me in 3 key areas:

  1. Recruiting: During the MBA program there is a recruiting phase, where companies interview all interested MBA candidates. This means that they come to you, instead of you going to them. I did a massive amount of PM interviews during the MBA.
  2. Business skills: The MBA helped me get out of my coding/programming mindset. I took classes with consultants, bankers, non-profit people, teachers, etc. Each person has a very different perspective and you learn from all of them.
  3. Value of the network: In a good MBA program, the graduate network is amazing. Lots of people will become Directors/CEOs in any function/industry/country that you can imagine. Assuming that you network well during the program, you have a massive amount of people that you can go to anytime that you need help This does not only help with finding PM jobs (as they can refer you to their companies), but with any type of job.

If you’re interested in an MBA program, you should take a look at the employment reports for that program. Each university publishes the industry/country/salary/function of their MBA graduates. You can see that e.g. some MBA programs might be very strong in Finance whereas others are in Marketing. Or that some programs are strong in Technology or that they have their majority of graduates in a specific area, etc. Google for “employment report <MBA program>” (without the quotes), e.g. “employment report Harvard Business School”.

In general, around 80% of the MBA graduates go into investment banking, consulting and technology (the exact percentages vary among each program). The rest is a bunch of areas, e.g. nonprofits, retail, etc.

From the MBA grads, who go into tech, PM is a very popular destination. There are others as well (e.g. finance, operations, supply chain, marketing, business development, etc). Think of the MBA as something that levels the playing field for everybody. It doesn’t matter what you did before the MBA. As long as you interview well, you’ll get the PM job offer. It doesn’t matter if you were a developer or a musician. And being a non-developer has its own advantages, since one of the biggest traps for ex-developers is to fall back into wanting to write code. For example, let’s assume that Spotify has an opening on their core product. Would it be better for them to hire somebody with experience (and connections) from the musical industry or an ex-developer?

For more information, take a look at my post “Is an MBA Worth It for Software Engineers?“.

Did getting your MBA have a significant positive impact on your career?

The MBA allowed me the following:

  1. Switch from SWE to PM. The MBA is definitely not the only way to do this, but this is what I chose.
  2. Explore different industries (consulting, retail, entrepreneurship) and find out that I really enjoy being in tech. If I had not done the MBA I would have been wondering about this forever.
  3. Network with a bunch of great people from all over the world, who are in any type of industry that you might think of.I would have never met them if I had stayed in tech.

Imagine being in a corridor that has a lot of doors. Right now you have the key to open only one door. Let’s call it the PM door. You have no visibility in any room, apart from the one behind the PM door.

The MBA is a program that gives you a master key to open most (all?) other doors. You can now open any door that you like. You might spend some time in that room and decide if you like it or not. And you might find that there are some rooms that a) you had no idea existed and b) you enjoy them much more than the PM room. Or you might find that the best room in the world is your initial PM room. Both of these options have value for you, don’t they?

I had done my calculations about the pros and cons of the MBA and made an informed decision at the time.

Would I be closer to FIRE if I had not done the MBA, but stayed in tech as a SWE? Maybe.

If I had not done the MBA, would I be wondering in my whole life about what would have happened, if I had done it? Definitely.

Will an MBA help me get promoted as a SWE, become an Engineering Manager or a TPM?

No. The MBA is a business degree. All these roles rely on technical skills.

Do you think an M.Sc. is worth the time and money?

There are 3 cases, where I believe that M.Sc. is worth it:

  1. If you want to work in the US, but don’t have a work visa for the US, then getting an M.Sc. is the easiest way to get one.
  2. If you want to get advanced knowledge in a specialized area, e.g. Machine Learning, Artificial Intelligence, IoT, Computer Vision etc
  3. If you feel that you are weak in computer science fundamentals (e.g. in networks, databases, operating systems, etc.) that are required for your job as a SWE (e.g. if you don’t have a CS degree or if you didn’t take the relevant classes during your undergrad)

You won’t need an M.Sc. to:

  1. Get promoted as a SWE (e.g. get promoted to a Principal SWE)
  2. Become an Engineering Manager (or Engineering Director, etc)
  3. Become a TPM
  4. Become a Product Manager
  5. Switch to a non-technical role within a tech company (e.g. Product Marketing Management, Finance Management, Business Development, etc)

Do I need an M.Sc. to a) get promoted as a SWE or to b) switch from SWE toan EM/TPM/PM?

No.

If you are already a SWE, then you have the appropriate technical skills for all these positions. In addition, an EM/TPM/PM position is less technical than a SWE position.

How to Prepare for Product Manager Interviews - Behavioral Questions

Mentors

Could you share any learnings/tips to get great mentors/coaches for a PM to go up the product leadership path?

Here are some that come to mind:

  1. If your company has an official mentorship program, register for it. For example, Google has multiple, Amazon has none.
  2. Identify PMs that you think are doing great work and grab coffee with them very often. Ask them about their product, how they get feedback from their customers, how they establish and measure KPIs, how they prioritize features, etc. Ask if you could join a customer call, a ux study, their team meeting, a sales call, etc with them
  3. Ask your manager, if they can find you a mentor
  4. Ask your PM peers, who are their mentors
  5. Look in LinkedIn and find somebody, who was at your role (or similar) a few years ago and is now at the role that you want to be at. IM them and tell them that they followed the path that you’re interested in, so you’d love to have a coffee chat with them and learn.
    • Ask the same questions that I wrote above. Try and see if there is something that you can do for them. For example, they might say that they are interested more in learning about an area that you know about. Or they might mention that they are trying to do a competitive analysis for something but they have no time. See if you can use this to somehow keep meeting with them. You can also directly ask people “Can you be my mentor”, but if they don’t know you at all, it’s just hard to justify the time commitment.
  6. If you have finished an MBA program, find the alumni from your class that are in PM roles (preferably higher levels than you) and (re)connect with them.
  7. If you don’t have an MBA, then maybe search for PMs who finished the same college as you and use that as a way to start the connection
  8. If you are from a country that has relatively few people in the US (or in tech) then you can find PMs from that country and connect with them.
  9. If you are female, then search for organizations about women in tech. In this case, I believe that it’s easier to message a female PM that is higher up in the hierarchy (eg a Director or even a VP) and ask for their time, because they might be more willing to help.
    • This is the similar principal as “few people from your country in the US”
  10. There are websites, which connect mentors with mentees. Some of them you need to pay, some are free

Working remotely

What are your thoughts on the future of PM/TPM roles in the post-COVID world? How will product management change with “remote working”?

I believe that we’ll all be working from home for at least 6-12 more months. Until that point, we’ll also be video conferencing. This affects quite a few areas, e.g.:

  1. No more quick corridor chit chats: It used to be very easy to walk to somebody’s desk and discuss/brainstorm about a solution. Now it’s more about setting up a meeting or IM.
  2. Much less face-to-face time: Pre-covid is was much easier to network within the company. Grabbing lunch as a team, going for coffee or a walk, used to be so simple. Now it’s just so tough
  3. People with young kids vs those who don’t: I see a huge performance difference between these 2 groups. What I’ve seen is that it’s REALLY REALLY difficult for people with young children to perform well, especially if both parents are working full-time. However, I’ve heard from people without children that their productivity is actually skyrocketing, because they don’t lose time going to/from work, no long lunches, working 24/7, etc.

PMs and TPMs will have to adjust to the new world, like anybody else:

  1. Business communication: Make sure that you keep touch with the developers and partners as much as possible via IMs, meetings, emails, etc. Communication is key. If you don’t show up online, then people will have no idea what you’re doing. That’s a double edge sword (i.e. great if you want to coast, but tough if you want to excel).
  2. Personal contact: Remembering to IM people just to chat about random things, since IM is not only for business-related tasks now. Use them to build personal connections
  3. Rallying the troupes: It’s important to make sure that the whole team still feels connected. A PM/TPM should be a key person in helping with that. Is there a way to organize some game time as a team? Can you spot who is struggling and offer your help?

Recommended Articles

1 Comment

Leave a Reply

%d bloggers like this: