Hi fellow programmers,
Your personal interests matter, right?
It is in your interest to keep growing as a developer, being able to pursue your own dreams, living your life outside of your job, and so much more.
These interests aren't always respected by employers. Please take a moment to read about my experience working at a startup with rougly 30 employees, most of which are not developers.
tl;dr at the bottom
To begin, let me tell you about myself. I am a mid 20s male living in a Northern EU country. I have about 4 years of professional programming experience. The startup was my second job. I love programming, and I am the type of person who codes in their spare time as well as a hobby. I'm very motivated to grow as a developer who recently started their career.
I am also ambitious, and would like to one day have my own parttime or fulltime programming business selling products and or services. This was part of the motivation for me to start working at a startup: to learn more about building such a business. Being able to create a product from scratch is one of those things I've always loved about being a developer.
Starting at a startup
Before I started my first day on the job, my employer asked me if I could pick a laptop I'd like to work with, so I spent some time researching a laptop and found a good one.
I was so excited for my first week on the job. This was going to be a real step up from my last job, which was a fine first job but I couldn't grow my technical skills any further there.
The first day: I arrive at the correct time, but the people who were supposed to set me up with my gear weren't in the office yet. That's fine, I didn't mind the wait.
When they finally got there it turned out they didn't have a laptop prepared for me. I was then given an old laptop they had laying around. I was then told they weren't going to order the laptop they asked me to choose. Every developer would be working on the same type of Lenovo laptop. Not what I wanted, but also not that big of a deal. The research for a laptop was a bit of a waste now, but oh well, not a big deal.
After getting my machine setup with Linux I was going to start working on an existing SaaS of the company. This was great, except there was no developer onboarding, and they were using their own framework which was poorly documented. Not great, but I was able to look at the source code and ask questions to the framework's authors because they fortunately were still employed at the company.
A few months later I was tasked with a solo project for which I only had a month of time and I also needed to use the company's framework. I ended up needing to do a lot of "hacks" because the people who wrote the framework didn't have the time to help me out. I would've missed the deadline if I was going to wait for their help.
These are all pretty inconvenient things, but it wasn't the end of the world. The lack of support for newhires was a common occurence during my time at the startup, however. I've seen other newhires using their own laptops for months because the employer didn't manage to get their gear in time.
Not being allowed to do programming work outside of my job at the startup
My employer prohibits their employees from doing any paid work related to tech outside of their job. They are however allowed to do anything that isn't related to tech.
This means you cannot make a website for someone else, or launch your own product like a SaaS or an eBook.
For someone with my ambitions this had killed my motivation to code outside of work. Not only did it suck to be less motivated, but this restriction also prevented me from growing faster as a developer because I just ended up spending less time coding outside of work. It also made me less productive at my job.
To be honest, I doubt this is actually enforceable in my North European country, but at the time I did not feel like risking getting fired over it.
Being the ambitious person that I am this however was a good reason for me to start looking for another job.
No trust to allow working from home
Working from home was not allowed. That was fine with me, I wanted to be in the office anyway for face to face mentorship (which I didn't get, more on that later) and to get to know my colleagues. And then Covid-19 happened. We all started working from home fulltime since April.
The Sunday night before we would start working from home we got an email instructing us to install some sort of employee monitoring software on our work laptops. This software measures your activity level throughout the day by monitoring how much you use your mouse and keyboard. I believe this isn't allowed as per the GDPR and it didn't really feel right to me (lack of trust), but the software was also configred to take a screenshot of your desktop every 15 minutes, which essentially made this spyware and this is also a huge violation of the GDPR.
Naturally, some employees made remarks about this and refused to use the software as it a breach of their rights as EU citizens. Our boss claimed their legal counsellor said it was within their right, but it clearly was not. After a lot of debate our employer ended up turning the screenshot feature off, but the message was clear: they did not trust us enough to just do our job and did not respect our privacy.
Lack of direction
Management was very poor. For the first year I worked at this startup we weren't even following agile, scrum or similar methodologies. We just had a backlog and a daily "standup" meeting with only the developers. That's it.
This ended up being really demotivating because we were just mindlessly going from task to task, without any real idea what was important to the business.
Occasionally someone from management would join the meeting when they had changed their minds about something. This always happened sporadically and without discussing anything with the development team.
Lack of personal growth, no mentorship
This startup had multiple small offices. I was under the impression that I would be working with other developers face to face, but that didn't end up being the case. I was the only developer in my office location. I only saw the people I worked on the same project with during the daily standup meeting, which was just a Zoom call.
This wasn't good for my morale, since those other devs were all working in the same office and had a noticably better bond as colleagues. When I was hired it was never mentioned to me that I would be the only dev in my office location.
Ever since finishing that solo project I mentioned earlier I had not really worked on any interesting projects. It was a lot of the same stuff over and over again.
When I was in the interviewing process for this company they mentioned that employees are expected to be flexible.
I don't mind working overtime much. Especially at a startup it was to be expected.
What I did not expect, and what I do mind, was that we didn't get compensated for working overtime at all. No pay. No leaving early on another day.
When I worked overtime I asked if I could leave early on another day. My manager said "we don't do that here. It wouldn't be fair to the others who frequently do a lot of overtime". When I learned that others do a lot of uncompensated overtime I genuinely felt bad for them. Why would extra work that benefits the company not result in compensation, especially if it occurs frequently? It just does not make sense.
It makes me so angry when employers exploit their employees. These people have families and personal lives too. While they are hard at work during overtime, their managers are just enjoying their spare time. It's disgusting.
The boss always said they're a "work hard, play hard" kind of company. I suppose the "play hard" part of that generally didn't apply to their engineers.
This company also did not bother to write tests for their code. My first employer also didn't do this, but the work I was doing there was much simpler.
At this startup we worked on SaaS applications which are the main source of income for the company. Not writing tests has many disadvantages as you probably know, but combining this with uncompensated overtime has resulted in some pretty terrible events where bugs that could have been prevented by tests had to be fixed in evenings or weekends without any compensation except a good pat on the back.
The other developers also didn't seem to be interested in writing tests. I had tried to convince them that we needed to at least test some critical things, but those tests probably still don't exist.
No signs of improvement over time
By the end of my time at this job the senior developers still didn't have time to help out newhires. Even though they wrote the framework, they also didn't bother writing documentation for it. Things still broke occasionally because there were no tests, resulting in uncompensated overtime. When I left there still weren't any tests.
My salary was good enough. After leaving the company I noticed that larger companies did generally offer more money and better benefits though.
My advice for those considering working at a startup
If you're a junior, be sure to ask how they will mentor you and help you grow. But I would urge you to look for a larger company where they actually have the resources to help you grow.
Most importantly, ask them about things you think are important. I know this sounds obvious, but not being able to make any money outside of my job wasn't obvious when I signed the contract.
My experience at a startup has been pretty bad. No respect for the employees, software that screenshots our desktops for employee tracking, no compensation for frequently occurring overtime, poor management, no mentorship, being the only dev in my office location, not being allowed to do my own thing outside of the job, uninteresting projects.
But hey, at least we had a foosball table.
If you're considering working at a startup, consider this before signing a contract:
- Find a company that enables you instead of one that holds you back
- Ask how they manage their projects and if they write tests
- Make sure you get the gear you need when you start the job
- If you want to work from home, ask if that's allowed and how much
- Ask how they will help you get started at the job, if they have employee or developer onboardings etc.
- Know what their overtime policies are
- Consider how much you value a good work life balance
- Ask what kind of work you are allowed to do outside of your job
What are your thoughts on working at startups? Should juniors consider this at all?