Hey friends 👋,
My first job as a software developer out of university was for a 30-year-old software consultancy company.
It definitely fell into the corporate category, not only did I have to wear and shirt and tie to work every day (this was later relaxed) but it had a very rigid corporate ladder.
Everyone was given a grade and there was a set career progression up to the different levels. They even had a full set of in-house training materials that had been written by other engineers over the years.
While I was there I got to work on several projects for even bigger corporate companies ranging from banking to defence.
Being in a very corporate setting had its own pros and cons. This will differ from company to company but some of them are likely universal.
👍 Pros of Corporate
- Well-established benefit scheme - being a 30-year-old company they had plenty of time to sort out the benefits package. Which included very generous employee pension contributions, cycle-to-work schemes as well as extra pay when travelling to customer sites. Although some of the benefits such as paternity leave were left at the legal minimum (2 days, seriously?).
- Reasonable working hours - especially as a junior developer working in the main office I worked 8 am till 4 pm every day and was home by 4.30 pm. Which was great when my first child was born.
- Less responsibility - I was a small fish in a big pond which generally meant I was only ever given small parts of a project to work on at a time. I am sure if I stayed longer this would have changed but it was a big part of being able to go home on time every night.
👎 Cons of Corporate
- Rigid career ladder - it was possible to go up the ladder quickly if you were good but you still had to go up one rung at a time. For many, it was more a case of time served than actual ability which dictated your place on the ladder.
- Lower pay - having less responsibility comes with having less pay. Given the slow career ladder that I had to climb, it was going to be a long time before I achieved a high salary.
- Less recognition - as a small cog in a big pond there was very little recognition for work well done beyond the immediate team. I am pretty sure the CEO didn't know who I was for the entire time I worked there.
- Depressing office - the office location was really nice but the office itself was a bit dull. I am not sure how much redecorating had been done in the 30 years since they started. The in-office perks included tea and instant coffee.
I did enjoy my time at that company but I was tired of switching projects all the time, especially when I had to work on different client sites. I wanted to be part of developing a product and seeing it progress over time.
After a few interviews, I managed to get a job at a payments startup in London. At the time they had around 30 employees in London and another 100 in another country. They had been around for 4 years already when I joined so it wasn't like joining a brand new startup that couldn't afford to pay salaries.
Working for a startup was very different to how I had worked before and again came with its pros and cons.
👍 Pros of Startups
- More Responsibility - given the small team I had to wear many hats. I worked on the database, created reports, did a bit of frontend and backend, as well as working on the client libraries. Anywhere I could lend a hand I did. They say the quickest way to learn a new language is to live in the country. Joining a startup is like that, you are thrown into the deep end and you need to learn how to swim to survive.
- More Recognition - within my first week at the company I knew the whole C-Level team by name and they knew me as well. I even got to show off some of my work to the CFO in person. That would never happen at a large corporate.
- Friendly atmosphere - when there are only 30 people in the office it doesn't take very long to know them all by name. I know companies try and say they are like one big family but when that family is hundreds or thousands of people it just doesn't work.
- Office perks - this might not be true for all startups but even as a small company we had decent coffee, free fruit, nuts and soft drinks available. It is a small thing but it beats having instant coffee or those instant coffee vending machines.
- Higher pay - with higher recognition for your work you also get more money. In some cases, you may even get some shares that could be worth something in the future.
👎 Cons of Startups
- Long hours - more responsibility generally comes with long hours. If something goes wrong on production you need to stay around until it is fixed. This was one of the hardest parts of working in a startup, especially with a young family at home.
“With great power comes great responsibility.” - Uncle Ben
- Lack of benefits - when I had my second child the company had to come up with a paternity policy. It also took them over a year to put in place a pension scheme and some of the other benefits. Luckily the higher salary made up for it.
- Lack of work-life balance - along with the long hours you also end up working out of hours and at weekends. If the company is small and you have a 24/7 product it can take a while to establish a proper on-call team. In the meantime, you end up checking Slack and worrying about what is happening at work when you should be spending time with your family.
I don't regret my time at either company but in hindsight, I wish I had worked at them in a different order.
Startups are a great place to learn new skills and hopefully get compensated highly for it. They are generally a fast-paced environment where everything is quite exciting. You get to take on lots of responsibility and be rewarded for it when everything goes well.
The downside is that they require a lot of your time and in a lot of cases, you can forget about having much of a life outside of work. If I was young and single with no children then a startup wouldn't be so bad. For those with responsibilities at home though it can be tough.
Depending on the company, working in big corporations can be easier. You generally have fewer responsibilities as you don't need to do the work of 3 people. You are more likely to get home on time as there are procedures and staff in place to take over for out of hours.
Obviously, all of this is my personal experience and every company is likely a bit different. If I were to do it all again I would work for a startup first when I was young and then move on to a corporate after having children.
Let me know in the comments what your experience has been.
❤️ Picks of the Week
📝 Article - Joins 13 Ways. This page has some great ways to think about database joins. I thought I understood joins pretty well but this page showed me a few things.
💻 Software - GitHub - orf/gping: Ping, but with a graph. I am a sucker for cool-looking console tools. So I had to install gping which gives you a graph of the ping time for different hosts. If you have homebrew installed on Mac or Linux it is just a case of running `brew install gping`. There is also Scoop and Chocolatey support for Windows.
💬 Social - Twitter DDOSing itself. It has not been a good week for Twitter. Not only did they have a problem with it DDOSing itself but now Meta has released Threads which is basically just a clone for Twitter built on top of Instagram. You can find me on threads here: Alex Hyett (@alexhyettdev) on Threads
👨💻 Latest from me
If you are wondering why it has been a bit quiet from me on YouTube it is because I am putting together a project for my next video.
Many of the videos I have done so far have covered software development concepts and haven't really needed code examples. In my next video, I am going to cover how to use GitHub Actions as a CICD pipeline but I wanted to have a full project with unit tests and integration tests to really show it off.
💬 Quote of the Week
Retirement is when you stop sacrificing today for an imaginary tomorrow. When today is complete, in and of itself, you’re retired.