
‘Product engineers’ vs ‘Software engineers’ in startups - fagnerbrack
https://dev.to/veebuv/never-work-as-a-software-engineer-in-a-startup-4a4p
======
5trokerac3
I agree with the title, but disagree with the article. If you're at all an
experienced software engineer, you should avoid working as a "software
engineer" at a startup, because you'll most likely be worked to the bone for a
pittance in equity.

You're much better off either finding a VP or C-level position at a much
smaller startup, or doing your own side project. At least when you're working
at 3am, because the only client wants something by tomorrow, you'll know that
all the net will go into your own bank account.

~~~
Techonomicon
I'm tired of the whole "if you're doing x at a startup you're foolish"

You only live once, it's amazing to be an engineer now and have all the
choices of being able to actually work somewhere that you ENJOY working at,
that you align with and find interesting. If that job happens to pay you $250k
/ year then great, but if it pays you _only_ $150k and you actually enjoy half
your waking hours then seems like you're the real winner.

~~~
5trokerac3
But in startups that whole "work somewhere or on something you enjoy" is a
front. Programming is programming, as long as you find a challenging problem.
Everything else is ego.

Some of the most gratifying work I've done is on extremely tedious problems
for majorly boring products. The fact that the product is boring and technical
lowers the amount of drama around it, allowing you to focus on the programming
you love.

The most stressful and least gratifying work I've ever done was on the
multiple "sexy" and "ground breaking" products I've worked on. Those products
attract snake oil salesmen and shady execs looking to make a quick buck, and
who make daily life at the company a nightmare.

Another thing is the $250k/$150k numbers you give. That shows a very valley-
centric view. There are parts of the US where you can work for tier 1-2
companies and where that same $150k is the equivalent of $300k in the valley.

~~~
Techonomicon
> "work somewhere or on something you enjoy"

Definitely not true, and a generalization. I've worked at the shittiest of
shitty culture game startups in the early 2010s to places that really strive
to build a great culture for everyone at work, is empathetic, and cares about
putting employees on a career track they care about.

Just because you haven't been at such a place doesn't mean it doesn't exist.
Just because you had a bad experience doesn't mean that speaks for everyone.

At this point you can definitely work for interesting startups remotely, I've
personally consulted for several in the past year on the side. They use
interesting tech, have great people, and are working on interesting problems.

~~~
5trokerac3
> Definitely not true, and a generalization... Just because you haven't been
> at such a place doesn't mean it doesn't exist.

That in itself is a false assumption and generalization.

Are we talking product or culture? Because, if it's culture, then startup vs.
established company doesn't matter anymore. Either can have good or crap
culture, and what is good/crap is wholly subjective, and usually more
dependent on where the employee is in their life than the company.

For example, I could care less what amenities I have and how nice everyone is
if I don't get to go home and put my kids to bed except once in a blue moon. I
could care less about working from home if I'm expected to crawl out of bed in
the middle of the night and work during fire drills that always seem to
happen.

The question is, are you in programming primarily because you love the art,
are you in it to stroke your ego, because it's bleeding edge, or a combo of
both?

Startups convince low-level employees with minuscule equity that they should
care as much about the company as the founders through stroking of egos. I'm
not making the argument that you shouldn't work for a startup, I'm making the
argument that working as a everyday software engineer at a startup is almost
always a bad, long-term career investment for experienced engineers.

------
dustinmoris
Great article. Here are some examples of how you know if you have a software
engineer or product engineer at your startup (real experiences from me):

CEO: We need to add a product search to our website so customers can easier
find the products which they like.

SE: Ok - and walks off and builds a search box into website.

PE: Ok - walks off and builds a search box into the website. Also logs all
search queries with zero results into a big table to give the startup a better
insight into products which customers want, but couldn't find.

Another example...

CEO: We need some real time messaging into our communication channel (Slack)
when a customer order couldn't be fullfilled during packaging, so customer
support can pro-actively reach out to the customer and notify them about
whatever the problem was.

SE: Goes away for a few days and builds a complex real time notifications API
which needs to hold state about which notifications it has already sent and
which not. Uses latest fanciest tech for that.

PE: Starts asking critical questions. Why does it have to be real time? What
time are most orders being packed? What time does customer support staff start
actually working? Turns out after 10 minutes of asking the right questions
that a real time messaging service is overkill if most CS staff only starts
working after all the packaging is already done. A simple stateless daily
report being sent once to the Slack channel is completely sufficient and does
the job just as good if not better than a real time solution. PE walks off and
implements this in a couple hours and has the majority of the week still free
to do more impactful work.

EDIT: Product engineers with a real "get shit done" mindset are invaluable not
only to startups but even well established companies. They are the ones who
really drive success through good communication, great understanding of the
business, all the different parties and the tech which they have to their
availability to find the best solution for any given problem.

~~~
yoz-y
So a 'product engineer' is a 'good software engineer'? Unless you are a drone
you should always ask the questions of why something needs to be done before
implementing it. The engineering part of software development has to be done
before you start typing on a keyboard.

~~~
C1sc0cat
The product engineer is just a software engineer with more experience is the
main take away here.

~~~
anilakar
So... instead of Product Engineer and Software Engineer, the titles should be
Software Engineer and Programmer, respectively.

~~~
C1sc0cat
Possibly but that grade inflation boat has sailed a long time ago.

------
mothsonasloth
I worked at a startup as the first Dev, it was a shock for me having to now
consider things like:

* What company laptops to buy?

* Assess the merits of AWS and GCP and make a decision.

* Divine an architecture that will get the product to the customers ASAP but will last at least a year with growth before needing a major rethink.

* Present to customers, board members and potential investors about the tech.

Eventually I was coding around 60% and doing these other things around 40% of
my time.

I guess this would be what a CTO does, so it was a great taster for me however
I did get burned out with it after a year (plus working in London was taking
its toll as well).

For any developer who is quite senior, I would recommend trying it. I learned
a lot about myself.

~~~
jermaustin1
What about London took its toll? I've been contemplating a switch from NYC to
London. I know it will be a 30-50% pay cut, but I've been told by other's who
have lived and worked in both that it is worth it for the better work/life
balance.

~~~
new_here
Haven't worked in NYC but I've worked in London for 3.5 years and am in the
process of leaving/going remote because I don't rate the quality of life here
at all and I'm exhausted from it. Things that take its toll for me:

1\. Too. Many. People. You can barely book a restaurant or get a seat
anywhere. 2\. Nothing works. Trains, airports and mobile network reception.
3\. Commuting. Rush hour is crowded, the tubes are disgusting, getting
anywhere across town takes at least an hour so you rarely want to risk
trekking somewhere unless you know it will be worthwhile/you can get in. 4\.
Renting / moving house is super stressful. Estate agents are constantly
exploiting you.

A whole bunch of my friends raved about London a few years ago which is why I
came out but I don't think it is what it used to be. That being said, there is
a lot of opportunity here and you can earn well if you hustle. I'd suggest you
look at starting out as a contractor.

I think there are better places to live and work in tech, in other European
cities like Berlin, Stockholm and Amsterdam.

~~~
C1sc0cat
Never had a problem getting a set in a restaurant in London - and Compared to
NYC the Tube is heaven.

Typical Londoner complains that they have to wait up to 10 minutes for a bus -
compared to the rest of the UK where you might get two busses an hour and they
stop running after 6:30.

------
arpa
Would people please stop shitting on php. It's no better nor worse than let's
say, ruby. It gets shit done. It is a valid tool very widely used in the wild.

~~~
sterileopinions
There are decades of history behind every criticism of PHP? Do you just want
people to ignore them?

PHP can be a bit of a punching bag, even when it's not topical. But it's not
exactly unwarranted.

~~~
dangerface
Every language has valid criticism, you use the right tool for the right job.
When you single out one of your tools as "bad" it just highlights that you
don't understand what job the tool is for.

learn your tools.

~~~
triceratops
It's funny you should mention tools. This article uses exactly that analogy to
explain why PHP is an awful tool for any job.
[https://eev.ee/blog/2012/04/09/php-a-fractal-of-bad-
design/](https://eev.ee/blog/2012/04/09/php-a-fractal-of-bad-design/)

~~~
arpa
Actually, hating on PHP is much older. Heck, if we are to descend into depths
of history, let's go straight to the unix haters' handbook and let's find out
just why the most ubiquitous and popular server operating system sucks on the
most fundamental level.

------
nateburke
One dynamic that is not discussed explicitly here concerns junior/mid-level
engineers who perhaps didn't get the offer at Google/fb the first go-around
and are working at your startup as a fallback. They probably don't care about
executing strongly on your startup's mission in year one as much as they care
about their own careers/CVs. As they should. Things they might talk about
implementing that probably won't help your new business:

-distributed systems

-hand-rolled ML

-react

-hiring dedicated QA professionals so that they can focus on coding algorithms

If you say no to all of this and tell them to go write another rails view for
the admin dashboard, they will simply quit. The challenge is to find the right
balance between "product engineer" tasks and tasks that will show the engineer
that you genuinely care about their career outside of the next BD stunt.

Having some sort of secondary bottom line helps enormously with this tension,
in my experience.

------
onion2k
The author believes working as a software engineer in a startup is fine so
long as you have the title "product engineer" rather than "software engineer",
as if your job title actually matters.

~~~
chrisseaton
This is an uncharitable reading of the article. They aren’t just suggesting a
different title - they’re suggesting doing a different job - shaping the
product rather than just implementing it.

~~~
onion2k
It's not a different job though. _Everyone_ at a startup shapes the product.
That's just what it's like working at a startup. That doesn't mean developers
in startups aren't software engineers.

~~~
ljf
OK, not a title - a different mentality then - I've seen a lot of a lot of
people in general, who just want to do what is asked, and never want to ask
why or actually help change things/the product for the better.

------
josephwegner
I read this article with a bit of hunger and nostalgia to return to my former
life as a startup engineer... but I think upon further thought I'm leaning
against it again.

As a bit of history, I worked as an engineer at startups for most of my early
career. Mostly frontend work, all SaaS businesses. I enjoyed it. I wore many
hats, and got to think about the customer a lot. I didn't like always worrying
about my paycheck and job security. 2 years ago I transitioned to a Platform
Support Engineer at Heroku. Now I manage folks on that team.

The thing I loved most about startup life was getting to be engaged in every
facet of the business - my voice carried weight in technical aspects,
financial aspects, support, culture, etc. I have a natural aptitude for things
beyond just programming, and think often about the larger business and
customer impact. It was great being able to speak up and leverage those parts
of my brain.

However, part of me thinks that perhaps the joy I found in being involved
everywhere was that it made me feel smart. I felt like I could be an expert in
every domain. But that's not really realistic, is it? Today I work in a very
small domain with a limited breadth of responsibility... but I am _the_ expert
on developer support. There is no one else in the organization (outside of my
team, of course) that can challenge my thoughts on support, because I am the
expert. Similarly, I would not dare challenge the expertise of our finance
team. I know quite a bit about finance, but they blow me out of the water.
They're specialized, and undeniably make better decisions than me.

Is it really that much better to feel smart and make average/bad decisions
based on intuition? I'm not sure. I think as far as output goes, specializing
is better.

------
halfmatthalfcat
But what if I want to join a startup so I can build out the stack of my dreams
while accomplishing whatever business goals are set?

I’m assuming if you _join_ a startup, rather then creating or co-founding one,
there’s already a product person on board.

~~~
marcinzm
>But what if I want to join a startup so I can build out the stack of my
dreams while accomplishing whatever business goals are set?

The article would argue that the startup has a higher chance of failing then
since you're focusing on what you personally want rather than what the
business/customers need. Startups aren't big companies, the business goals are
always "get as much of this done as possible as soon as possible" rather than
"we need X by Y." You can't execute on the minimum needs of the business and
expect success.

>I’m assuming if you _join_ a startup, rather then creating or co-founding
one, there’s already a product person on board.

In a traditional company the product people (ie: those who define product and
how product interacts with technology) includes engineering management (CTO,
VP Eng, etc.). It's not just the people with product in their titles. In a
startup, however, there isn't a deep hierarchy so that job falls onto everyone
in engineering.

------
ck425
Shouldn't all 'software engineers' be 'product engineers'? I don't really get
his point, all he's describing is what any good engineer should be doing
anyway.

~~~
explorigin
In short, it would be wrong to expect all software engineers to be product
engineers. It takes more than code-monkey experience to foresee markets needs
and develop to them. In some ways it's the difference between a mechanical
engineer and an industrial engineer. One makes machines, the other optimizes
processes.

~~~
PopeDotNinja
Just an FYI, saying 'code-monkey' at work can get you in trouble in some
places. The sun is setting on the use of 'xxxxx-monkey'. Unintended cultural
references & all that.

------
jasode
Fyi.... This type of advice has been given in many essays using different
words. Probably the one that HN is most familiar with is _" Don't Call
Yourself A Programmer,"_[0]. Another variation on the same theme _" avoid
being paid for code"_[1].

tldr: try not to be just a "code monkey" but shift your perspective up the
value hierarchy so you can provide _business solutions_. Try not to be an
interchangeable and commoditized "cog in the wheel".

IMO, what this essay leaves out is that many people self-select into "product
manager" type roles because that's _more interesting and fulfilling_ than
coding all day long. On the other hand, other types of programmers prefer to
stay "heads down" and just code instead of interfacing with customers.

[0]
[https://hn.algolia.com/?query=don%27t%20call%20yourself%20a%...](https://hn.algolia.com/?query=don%27t%20call%20yourself%20a%20programmer)

[1]
[https://news.ycombinator.com/item?id=18227768](https://news.ycombinator.com/item?id=18227768)

------
thedancollins
Take two software startups. StartupA hires nothing but the stereotypical
"software engineer". StartupB hires nothing but the stereotypical "product
engineer". Which startup will be more likely to have a future?

~~~
onion2k
The one with the founders who are best at selling.

~~~
stuntkite
Selling alone can get me a couple years worth of runway but I've been in two
where overselling before ops/process where at a stable velocity everything
choked so bad it forced the biz to pivot (not in a fun or good way).

What OP is calling a "product engineer" is a good perspective for people that
don't quite get that we live in a cash ecosystem and love to write good code
but a lot of people hired as product engineers haven't written any code in
decades. Hiring for that title is as clear as mud. Even if I have one that'll
make my day in my company I might still need a senior dev that understands
this stuff but wouldn't bother calling himself a "product engineer" for fear
of getting crushed by the wheel of chasing customer expectations without
qualifying them.

At the end of the day no matter what decisions the "product" team makes, as
the "software developer" I need to make things happen and that takes leading
the narrative enough that I don't get hung out to dry. Engineering
predictability and its communication is the key to all success. Something that
has helped me wildly has been the Microsoft book Software Requirements (3rd
Ed) [0]. The system it lays out for planning, analysis, and risk mitigation is
something everyone should read if they want to be more effective. It doesn't
even have to be applied dogmatically.

If I can respond with a common lexicon of a vision and scope with a well laid
out requirements spec then there isn't an issue with product, c suite, and dev
communicating and everyone making money. It still shocks me every time I'm in
a new org how hard that is to pull off even with the instructions. If comms
and velocity track then there's enough wind to fill the sales sails.

[0]
[https://www.amazon.com/dp/0735679665](https://www.amazon.com/dp/0735679665)

------
soulchild37
This is a variation of patio11’s “Don’t call yourself a programmer” article
[https://www.kalzumeus.com/2011/10/28/dont-call-yourself-a-
pr...](https://www.kalzumeus.com/2011/10/28/dont-call-yourself-a-programmer/)

------
Dirlewanger
Aside from the clickbait title and the rough writing, good article. The key to
excelling as a developer isn't your technical prowess, it's your soft skills,
which includes understanding the business you're in and how to interface well
with stakeholders in other divisions.

------
purplezooey
Some of this is OK. But I've been at companies that just "do what the customer
wants in the next quarter" and nothing else. It is usually a shit show. You
need to blend long term thinking with customer focus. It's very hard to get it
right.

------
julius_set
Great article, BUT there are no examples of what the hell a product engineer
ACTUALLY does.

It might be good to point out that data driven development is key. A product
engineer collect insights with each feature that is created backed BY ACTUAL
DATA and not armchair hypothesis

------
w8rbt
Hire "problem solvers" who have CS degrees and pay them to solve your
problems. They should have a practical bent and should accept 80% solutions
(good enough). That is key to getting stuff done. Avoid non-pragmatic roles
(architects) that like to talk and draw a lot, but not do anything.

------
auvi
If everyone follows this advice then who will implement the system? Outsource
to external professional firms? We already outsource to accountants, lawyers,
ad agencies etc.

~~~
9HZZRfNlpR
Cheap labour and automating/using what is already out there. That's how the
cycle goes, eventually writing the code will be a low paying factory job. Our
industry is extremely welcome to new comers and not protecting it like doctors
etc do.

~~~
rvz
> Our industry is extremely welcome to new comers and not protecting it like
> doctors etc do.

The protecting nature of professions that involve impacting the life of an
individual such as the healthcare, aviation, transportation etc is indeed
justified. I would need very strong qualified AND certified candidates if the
requirement was to write safety-critical software that ensures the safety of
humans or animals; especially in self-driving vehicles.

Startups in the tech industry can easily undo mistakes or revert it, along
side bootcamps training up anyone to make a career-change into the profession.
Doctors cannot afford to make mistakes that risks danger to life. Thus, they
require years of training/studying in medcial school to become fully
qualified.

So yes, eventually eveyone (including doctors, lawyers, etc) will have the
perk of being able to write code and will assist in the automation of their
jobs, but not exactly absorbing or replacing their skills.

