DEV Community

Artjom Vassiljev
Artjom Vassiljev

Posted on


From software engineer to product manager. Startup founder's story

You can keep reading here, or check out Shipit blog for more of my ramblings.

In this post I will try to share my experience on learning product manager's job as a software engineer. What the job is like, what's involved, as an introvert can you be a become a product manager, and many other questions you might have.

Having worked in the IT industry for almost 15 years, I haven't met that many product managers. In fact, this number is just 2. Both in the startups building one product. Why is that?

The answer to the above question is actually simple: all other companies I've worked for didn't have a product. They were contractors for others and as a result needed project managers, not product managers.

Company founders often do many different roles at the same time, and one of my roles is also a product manager.

Product manager vs Project manager

Unlike an eye surgeon, a car mechanic, or a farmer, defining what a product manager is can be quite hard. The reason being is that in many organizations the role can involve various tasks blurring the distinction between a team lead, project manager, and product manager. Many startup founders perform product manager roles without even knowing about that.

I like the short and simple definition of Josh Elman:

Help your team (and company) ship the right product to your users

Wikipedia expands on that: product managers own the business strategy behind a product, specify its functional requirements, and generally manage the launch of features. They coordinate work done by many other functions and are ultimately responsible for the business success of the product.

By gathering the requirements from the stakeholders and shaping the right strategy for the product, PMs help their team and/or company to deliver the product users want.

While project manager may sound similar, it is actually a completely different job. Project managers are responsible for planning, procurement, and execution of a project, in any undertaking that has a defined scope, defined start and finish; regardless of industry.

Can an introvert be a product manager?

Being introvert myself I had a hard time talking to people, especially new ones. Just a thought of speaking in front of an audience, even a small one, was enough to give me a faint. Why is it all in past tense? Because I've learned to overcome some of these fears.

As an engineer you might not need to interact with others much. Being in a company of introverts also makes things easier. I remember talking to a colleague of mine over the messenger even though we were sitting right next to each other. This might sounds weird for extraverts, but it is absolutely normal for introverts.

As a product manager your rule is to figure out the direction your team and company should take in terms of product development and communicate that to them. This means you need to do customer outreach and research, you need to talk to unknown people, structure their feedback, and give it back to your team and management. You need to learn the skills of presentation and talk. You cannot just hide behind the keyboard like an engineer. But you also do not need to become an extravert.

In her book "Quiet: The Power of Introverts in a World That Can't Stop Talking" Susan Cain shares her insights on the power that introverts posess. We are the ones who prefer listening to speaking, who prefer to innovate and create rather than self-promotion. These are the traits that are extremely useful for a product manager. These are the soft skills that will help you talk to customers, competitors, prospective clients, and hold strong arguments in talks.

Yes, you need to change. Often times you will need to get out of your comfort zone to do your job. And you need to decide for yourself whether that career jump is right for you.

What makes a good product manager

As an engineer the answer to a similar question is simple, after all you've been building software most of your career. You know about TDD, differences between various languages and programming paradigms. You know the importance of software architecture and how to deliver software on time. You know about technical debt, ways to minimize it, and can communicate the importance of that to your higher management. However when you assume the role of a product manager, similar tasks applied to a different role become much harder.

It might not be hard for you to choose technology X over Y because you know how it scales, how it would allow you to tackle various future problems and reduce the technical debt. You can easily communicate that decision to your tech lead or even CEO. But the moment you start your job as a product manager, you lose the focus on what is important and start to work on what's obvious. This is the problem I had (and still do). I constantly have to stop and question my decisions. I have to ask whether this is important or not. I think one of the reasons for constantly falling into this trap is that as a product manager you don't have yes/no answers to the questions. As an engineer you might just check the answer on StackOverflow or a discussion on Hacker News and build your conclusion based on that. But you cannot Google an answer to the question (heck, you might even lack the question) whether feature X will have a bigger impact on your users than feature Y.

This can sound controversial to you, but you should strive to make yourself unnecessary. Your team should be able to continue working even if you decide to hitchhike Elon Musk's first flight to Mars. This is probably counter to what a software engineer would do, but it is important because then your team knows exactly what they need to do. They should have a clear understanding of the direction they're taking. Find some chaos, make the order out of it, repeat.

As a software engineer you are supposed to be an expert in... well, crafting software. You might have domain knowledge in automotive industry and know the algorithms for torque vectoring, or know how to support IE8 in 2020. But as a product manager you will not have a lot of answers. But you need to know what your team and people around you are experts in so you can ask for their help when making decisions.

There are a lot more things that make a good product manager. However if I were to pick one, it would probably be a leadership. Having worked as a tech lead for several software engineering teams taught me to important soft skills like listening to people, avoiding disagreeing in public, appreciating the opinions of others who are likely smarter than you.

You're a product manager, now what?

Switching from software engineer to product engineer might look like a soft pivot, after all, you're working in adjacent space, it is actually a hard career change that requires a lot of new knowledge.

Engineers are used to constantly learn new things. When you're still young, you're chasing new frameworks and technology in an attempt to try new things, compare different approaches. As you become more experienced, you appreciate the foundational knowledge. Switching between languages and frameworks doesn't cause much stress to you because you know the paradigms and algorithms. Learning about Redux was easier for me because I had some experience with Elm: two different technologies that share some foundational paradigms. In that regard product management is not much different: you need to constantly learn and analyze. Learn about new products on Product Hunt and Hacker News and what makes them great. Learn about product management and project management, product growth and design. All these adjacent spaces will become handy in your career. Knowing about mental models will also help you along the way. Farnam Street is indispensible in that and is something that I constantly read.

Networking is another thing you must start doing and that might be already familiar to you as an engineer. Going to conferences is amazing, but these are expensive and do not happen too often. Whereas meetups are cheap (if not free) and usually happen every month. Before you went to learn about some scalability problem another company had, or to listen to a story how they used framework Y to solve Z. Now you need to broaden the field and visit events about UI and UX, about products, product development. Hackathons are amazing not only for developers but also for product managers. If you're just thinking of switching the career, try to go to a hackathon and assume a role of PM to see if you like it or not, to learn what might work for you.

Finally, start building a real product. This is even easier to start as an engineer because you have the actual skills for the job. You can begin with the ideation phase, conduct customer interviews, prioritize the requirements for the MVP, design and build the actual working prototype, present it to users, gather feedback and iterate. All of it can be done with a side project which can also improve your chances of getting hired and succeeding in your job.

Many people ask how they can get experience as product managers before getting hired. And this is exactly how. I did a lot of side projects myself. I also started several companies and failed. Analyzing all of these failures and successes made me better at managing our current product.

Why do engineers become product managers?

This one is hard to answer obectively because it is different for every person. I didn't look to become a product manager. And in fact I am not. I am a co-founder of a company where I have to assume many roles, one of which is the role of a product manager.

I love learning and I will never stop doing that. I love challenges, and I want to overcome the fear of talking to new people. I want to build a product that people want to use. I want to be part of the team that does it. And this involves learning about product management.

It is not specific to engineers to want to become product managers. And one doesn't need to be trained in IT to become good PM. But if you find talking to people fascinating, if you love to grow your network and exchange ideas, if you want to build great products, transitioning from an engineer to a product manager might be easier for you than an outsider who has zero experience in software development.

So does a good product manager need to be technical? No. But having experience and knowledge in how software is built is a huge bonus.

Do product managers get paid more than engineers?

For questions like that the short answer is: it depends. As a general rule of thumb, the more responsibility you have, the more risk you take, the more experience you posess, the higher your salary is. A good product manager can early way more than a good software engineer. Alternatively, in a technological company a core engineer might receive disproportionally more than a product manager.

On average, software engineers receive a higher salary due to the market dynamics: there is much higher demand for developers than product managers. A small product company with 10-100 employees might need 1-2 product managers with 50-60% of their staff being engineers.

Naval Ravikant mentions the concept of "specific knowledge":

...specific knowledge is found much more by pursuing your innate talents, your genuine curiosity, and your passion. It’s not by going to school for whatever is the hottest job, it’s not for going into whatever field investors say is the hottest.

You gain specific knowledge through learning, not when someone teaches you that. Randall Munroe and Scott Adams have both specific knowledge they've built over the years that would be hard to teach you in a university course. Both of them are also experts in other domains and comics started as a passion that grew into their job. Likewise being a software engineer you might have specific knowledge that is hard to get elsewhere and that can be used as an advantage in your new role as product manager.

Patrick McKenzie also makes a very good point in his "Don't Call Yourself A programmer, And other Career Advice" essay:

Do Java programmers make more money than .NET programmers? Anyone describing themselves as either a Java programmer or .NET programmer has already lost, because a) they’re a programmer (you’re not, see above) and b) they’re making themselves non-hireable for most programming jobs.

"Talented engineers are rare — vastly rarer than opportunities to use them — and it is a seller’s market for talent right now in almost every facet of the field" - he continues, and this applies to pretty much any job. It is really hard to find a good specialist, even so a great one. And your compensation would depend a lot on what you can bring to the table and how much money you can help the business earn.

To sum up the long answer to the above question: if you have specific traits to succeed, you might warrant a higher salary as a product manager than an engineer.

Useful books and articles

When you end up in a role that I do not know much about, you start to learn as you go usually skipping the foundational knowledge in order to tackle the the urgent problems first. For me these were the customer interviews.

Interviews might sound simple - you just ask what the client likes about the product, what they would like to see, and call it a day. Right? Wrong! Such interviews might be useless or plain dangerous as they can guide your product to the wrong path. Rob Fitzpatrick has written a great and easy to read book called The Mom Test which lays out steps on how to conduct a good client interview. This is a book I keep returning to every now and then.

Here is a few more resources to get a more in-depth understanding of the role:

Top comments (0)

An Animated Guide to Node.js Event Loop

Node.js doesn’t stop from running other operations because of Libuv, a C++ library responsible for the event loop and asynchronously handling tasks such as network requests, DNS resolution, file system operations, data encryption, etc.

What happens under the hood when Node.js works on tasks such as database queries? We will explore it by following this piece of code step by step.