I'm speaking in front of 200 people tomorrow on the topic around software development for startups. There are hundreds of books written on this so I'll try to condense my learnings from most.
Even though we're a startup company at cenario, I stopped hiring software engineers, hell I tried to unlearn and relearn a few things in the journey as well.
Confusing I know - I still have to grapple around the entirety of it all but the honest truth is being a software engineer alone will get you easily fired or unvalued in a startup.
You need to fire yourself from that role and re-hire yourself as a product engineer. I've referenced this point multiple times in my previous articles and I really stand by this.
I don't think this necessarily applies for larger companies when they're hiring specialists and algo heavy engineers, however in a startup you need to think about the product, the marketing and most important the customer.
There is a significant disconnect in larger firms from the creator (developer) to the end user, all the way from hierarchy, to Project Managers, to Product Managers, to Marketers, to Execs etc - but in a startup, if you push code up... it's up.
So whats so special about being a product engineer that a software engineer can't do? A few things:
1. They carry a get shit done attitude
Sure some engineers carry that too, these statements aren't binary or exclusive but address the vast majority. When you look at github discussions or you look at conference events where people share their discoveries, it's all based around the engineer - not as much around the customer.
So yes, product engineers have a get shit done attitude, keeping in mind that they need to push good work out, but are quick on their feet to understand how much of debt some technical decisions will be vs others. This will be understood better over time, and even after a decade of programming, I can confirm that there is no right or wrong answer, its extremely situational based.
2. Business first, software second
You should toughen up and realise that building on the latest and greatest tech will not make you a better engineer. You almost NEVER have as much a good reputation for being the engineer for a bad startup as you may of a good startup, even though your code in the bad startup might be worthy of awards and your code in the good startup might be worthy of firing. It's inherent you see - good code isn't coincidentally in good companies, its because the companies made the smart decision of hiring mini-CTOs, people who understood that their customer mattered as much as their code.
This doesn't mean you give up all morals and build on PHP(I'M JOKING :p), but it kinda does. Not PHP but any language that is deemed unfit just because it's popular or not. You do a direct risk analysis on what will get me to my next goal ASAP. Whether that's faster iteration, more features or modularised code bases.
3. Customer first, business second
It should all come down to how you can make the life of the customer as easy as possible when you're solving the problem for them. Sometimes business requirements become business requirements and not customer requirements, and if you're just a software engineer by title, you will be doing what you're told to do because thats the limitation you have, at least the limitation I had a couple of years ago.
By stepping out of that box and understanding that if the business requirements step outside of the customer requirements, you get to voice your opinion and more importantly add the kicker to your "opinion" by justifying it with your technical abilities, techies are badass, we're the makers, so in the end if we have the knowledge around consumerism AS well as execution, it'll make us bulletproof.
So yes, if you're in a startup - don't work as a software engineer, work as a product engineer. Your impact will be 10X I kid you not.
People will take you ALOT more seriously, you'll climb the ranks faster, your code will matter a lot more, and the impact will be at scale. Your work matters and there should be no reason why more people shouldn't experience your genius code, the way you can make that happen is by being product focused and ensuring your customers are having the best time of their life.
As with any post, I'm always always looking to learn and become better at what I do, so I'd love to hear what you have to say, good or bad π
If you liked this, definitely follow me on for the similar stuff:
twitter: twitter.com/@veebuv
linkedin: linkedin.com/in/vaibhavnamburi
instagram:_veebuv
Latest comments (35)
Love your post.
It's giving me a really good way on how I should work now.
Thanks for sharing.
Thank you for this article and great recommendations. I think it will be useful not only for software engineer.
No problem at all Julia! Thanks for taking the time to comment
Articles like this are a good wake-up call, but I'm sure the author would be saddened to see this become Dogma.
I've been recently reflecting on a startup that encountered ~2 lost years due to too much "move fast and break things": I just think teams just need rationale discussions about the trade-offs at every stage, and to come to a close-to-concensus. Easy to say, hard to do.
Hey @coolman!
You're not wrong in saying that sometimes building at velocity without discussing the repercussions can hurt and sometimes even kill a business (has happened to me)
I think if anything I'd like people to take away from this is to be more outcome driven than feature driven. This can translate to faster dev, focus on customers or move fast/break things. In the end, as we all know - in startup land pace is everything (unfortunately), pace to build until you hit PM fit and then pace to maintain what you've built
I've written about refactoring and rebuilding your code. And if it's necessary to do so, it needs to be done.
Again you're not wrong π and I'm glad you raised this comment!
What advice would you give to an intern in a startup?
Try be as useful as you can and break the stigma that interns are a money sink.
Go learn after work about the code base, talk to your leaders, take them out to lunch and ask how you can help them be better at their jobs
You summed up the original intention behind the Agile Manifesto from 2001. The reason engineers are far from the customer in big companies is not because the company is big, it's because the company is wrong.
Granted we're not a startup, we came to your conclusion a few years ago - mainly due to ours having been involved in developing products for startups AND being startup founders ourselves. We're also coming from Romania - an ecosystem that abounds in tech skills and tragically lacks business skills.
So you can imagine we're trying to bridge that gap and we start from recruitment and company culture (our CTO phrased this as 'growing a startup culture in an agency' here: around25.com/blog/startup-culture-...).
The results? We started to change as a company; currently, we're switching from outsourcing agency to a product development one and the transition is sure taking a lot of work. Especially when you realize hiring software engineers into product engineers means hiring only knowledge-thirsty individuals who never cease learning by themselves :)). It's not a small feat for sure.
Another thing we do is we try to create learning opportunities that involve product development and this is how taking part in our local Startup Weekend competition became a yearly tradition (as our CEO explained here around25.com/blog/rome-was-not-bui...).
Couldn't agree with your post more & hopefully our insights will serve others looking to change their approach.
i.kym-cdn.com/photos/images/newsfe...
LOL HAHA
I just realized that I am a product engineer regardless of what my profile says.
Great article.
:D
Could not have been penned it better! You summed up my 4 odd years startup career as a full stack developer. Keep us inspiring! :)
Haha very kind of you! We are an odd bunch indeed! Keep smashing your role!
Interesting take. Thanks for the post!