In this post I’m going to be brutally honest about the good, the bad & the ugly realities involved when working as a software engineer, within a startup. It certainly isn’t how Hollywood might vision it, it likely isn’t as exciting as a lot of people might think.
It’s safe to say that if you’re looking for something pretty easy going, a standard 9-5 gig where you go home, switch off & pay your bills. The startup life certainly isn’t for you, that’s not a negative reflection on those that do want a simple & straightforward job, after all, who doesn’t want an easy life?
Working as a part of a startup can be an insanely rewarding experience for a developer, there’s less red tape, there’s more freedom & usually your input has much more weight behind it. However, unlike a lot of the blog posts out there that talk about working as a software engineer within a startup, where it’s all fun & games, that’s simply not a true representation of the situation.
Working for a startup can be an absolutely amazing experience; scenarios where you deliver so much value to the customer that they’re happy to pay a significant amount of money for a specific feature. It’s times like that where you appreciate the environment that you work in.
Working as a part of a startup teaches you to try to be as pragmatic as possible. It’s very unlikely that you’ll have 3 months to work on something. A month would even be a stretch in my honest opinion. So you have to really sit there & think about a relatively solid design before you start coding. At the same time, you can’t think of a design that’s so sophisticated that it’s ready to scale to the moon & back. Obviously, that’s pretty unrealistic for a seed stage startup or an early startup to think about, perhaps when you’re at the growth phase, maybe, the context may dictate that.
Working within a startup requires an extreme amount of dedication as a software engineer. God knows the number of times where I’ve continued to work late into the night or during the weekend. Again, working as a part of a startup isn’t for someone that’s looking for a fun & easy going job, there are some days where I feel like I’m drowning in requests.
You’ve likely heard the term that when you work for a startup, you need to wear many hats. Amusingly, I don’t think a lot of people know just how many hats one has to wear. In my current role, one of the many hats that I wear is customer support; where I’ve simply not had enough time sometimes to deal with the software development side of things. That’s one extremely strong point for QuoteOnSite; we value customer support among the top of our priorities.
Since working at QuoteOnSite, I’ve suffered with burn out, I’ve suffered with hardcore imposter syndrome. There are times where I’ve simply felt stupid, frustrated & even angry. There have been times where I’ve just fantasied about staring at a wall for a weekend because my mental fatigue has hit that limit.
That’s not a reflection on the company I’m a part of; but rather the reality of trying to deliver a product that works for SME’s, through to large scale enterprises. All while having a company of no more than a handful of people. For reference, I’ve worked in some small companies before now & even they’ve had development teams with more personnel than the entirety of QuoteOnSite.
Then there’s the enterprise agreements, sometimes you have to accept the fact that you’re going to be working on something that doesn’t really expand the product, it likely won’t diversify the streams of revenue, etc. But rather, you may have to deliver a very specific solution for one company & then hope that it either works for other customers, or, they’re prepared to pay a pretty penny for the project work that’s specifically tailored towards them.
While I don’t consider this good, bad or ugly, I feel it’s a very interesting subject matter & it’s something that should be brought up anyway. When working as a part of an early-ish stage startup, you need to be able to implement some form of scalability. Doing that on a very tight budget is not an easy feat & realistically, it requires some clever, if alternative thought processes.
One relatively simplistic solution is to adopt a more asynchronous architecture, e.g. the use of queues, but in the event that you need some real time solution, in the event that you need some big data processing jobs, etc. Usually these kinda tasks are easy when you’re a part of an extremely large organization where you can just have some load balancer, maybe multiple nodes, maybe even multi regional K8s clusters, etc. My point is, it’s not too hard when you have the budget, it’s hard when you don’t have the budget & you don’t have the staff.
I’d love to progress towards using K8s for the majority of our solutions, but we’re such a small team, it’s not realistic with all the configuration that one needs to consider when using K8s, be that security or simply networking. K8s is a powerful beat, but it’s very much a beast when it comes to configuration also.
It is an extremely rewarding job working as a software engineer within a startup, your code isn’t just some solution that sits behind the scenes & no one will ever know about it, etc. It’s 90% of the time something that users will actually make use of & in the cases where they won’t, you know that they’ll still have some value from that feature.
But at the same time, I wouldn’t recommend working at a startup for most people, it can be extremely stressful at times, mentally exhausting, etc.
One might ask if it’s so bad why do I work at a startup? The short answer being that I love the challenge, I left my comfortable job at Lloyds Bank to work for a small startup. Sure, my job was 1,000,000 times easier working at Lloyds, hell yeah it was, but I was bored & for me, it wasn’t a very rewarding job. At least in my current position, when the storms settle, I feel extremely satisfied, there are times where I feel a strong sense of pride. Not just for the technical implementations, but I feel a strong sense of pride for being able to deliver such a large amount of value, more often than not in a very short amount of time.
Long story cut short; that’s why I choose to work at a startup & one that I genuinely believe can go the distance too. I think the product itself is great, sure there’s an immense amount of work for us to do, but in general, the product is pretty damn awesome!