Tanvir Hossain (Lead Software Engineer @ InLoop), Khushbu Patel (Software Engineer @ Atlassian), Adrian Groch (Software Engineer @ Pendula), Artem Golubev (Dev Lead - Automated Retail @ Hivery), Alex Gurr (Head of Engineering @ Cloudwave), Jared Fraser (Director of Engineering @ Mr Yum), Dale Baldwin (Senior Software Engineer @ Culture Amp), Will Parker (Senior Software Engineer @ Smokeball Australia), John Wesley Salvador (Senior Software Engineer @ Zeller), Alan Truong (Head of Engineering @ EntryLevel), Tim Tang (VP Engineering @ Local Measure), Pratik Ghimire (Engineering Manager @ Car Next Door)
**Looking for a software engineering job right now? Head to our job board here.**
Tanvir Hossain (Lead Software Engineer @ InLoop)
Working as a Software Engineer in startups is very different to corporates. Usually you just don’t work as a SWE. You wear many different hats, like DevOps, Data Engineer, Optimisation Engineer etc (depending on the domain). If you are starting your career in a startup, it’s very good as you get to learn lots of skills to build your base strengths.
Khushbu Patel (Software Engineer @ Atlassian)
In established businesses, roles and responsibilities are very much defined. You know what you are assigned to and what you need to work on.
Startups are different. You can get your hands dirty and have an idea about how the whole product system works, starting from how the designs are finalized to customer service and how different problems are solved.
You also get more opportunities to expand your skills. If you are working in a startup as a BE developer, and you know Front-End as well, you will be given the chance to become a FullStack developer. If you like working in designs, there will be a chance for you to get your hands dirty in UI / UX.
Apart from that, your efforts will always show up as it’s just a small team. You will be visible to the other departments and CEO and CTO. Which is not possible when working for Giants. The connection to the Founders can give you an idea about the startup process without actually investing your finances in it. It’s like the university paying you for the education you are getting.
But there are some disadvantages too. You will have to work longer hours, especially in the early stage, as the company will not yet be making money. In addition, there is always the chance that it can go downhill and your efforts and ideas won’t matter at all. And watching the building on fire is never a good experience.
In my opinion, it’s more about your personality, and what you want to achieve. If you want to have peace of mind with money rather than an adventure or skills building, established business would be a safer option and vice versa.
Adrian Groch (Software Engineer @ Pendula)
I think the main difference is that you get more exposure. More exposure to not only things within your department e.g. engineering, but also other departments that you may not have anything to do with. For example, say sales or pre-sales, or customer success. In more traditional and established businesses, you usually have well defined teams and processes and functions of the business that handle each unit of work in a streamlined way. Within a startup, you’re literally working alongside these people and teams to get things over the line.
You also get more exposure within your department In larger companies, engineering teams are more defined and don’t really blur lines or step into each other's territory, i.e. backend, frontend, devops, qa etc. In a smaller company you usually have more people who are working across multiple disciplines until the business can grow to hire people for specific roles. You have the chance to learn and be exposed to things that usually a whole team is doing for you, which is great.
There are definitely pros and cons to both.
Artem Golubev (Dev Lead - Automated Retail @ Hivery)
Working in a startup vs established long-running business (especially a big successful one) is like driving a small yacht vs working on a huge cruise ship, if that makes sense. Big companies have processes in place, cultures established. When you join, everything is ready for you: your working place, your success plan, management is usually skilled and you know what to expect from them, your role is well defined with requirements and expectations, which are communicated to you clearly (you may not like it, but at least it is clear).
Life in a corporate: You have a team around you that consist of people of variable calibre and skills that have your back. The responsibilities are well defined and separated, you’ll see software engineers, QAs, DevOps, IT Ops, SecOps, solution architects, cloud architects, change managers, delivery managers, support, etc.etc. You can have a steady career cruise for as long as you decide to stay, and usually will focus on one or a small variety of things to make sure you do them well, like writing “good” (read scalable, maintainable, etc.) code. Once your code has passed the review, what happens to it next is not your concern and is most likely outside your control.
Life in a startup: Startup is a different beast. Startups also differ depending on what stage they are at. Early stage startups are an embodiment of chaos itself. Sometimes on the day you join you may not even have your computer ready because it was ordered too late and hasn’t arrived yet; or you’re given someone else's old beast that you’re afraid to touch. You very well may not have an appointed manager, but rather someone fulfilling that role (amongst million others) because there is no one else to do it. There is little to no practices established, there may be even no code reviews setup. There is always more work that needs to be done than people you have available and hours in a day. People wear multiple hats - the same engineer will write the code, create templates for cloud deployments and deploy things to production. It may very well be that their fellow engineer will have to test that code or in the worst case scenario the users will test it once deployed… A lot of fire fighting is usually going on too. There is no IT Ops, so any hardware/software issues you’ll have will be your problems to deal with. Also some people might find it stressful to be constantly at risk of the company running out of money and end up without a paycheck at the end of the month. You will have a chance to learn a lot of different things there, from cloud, to raising money for the business, from marketing to IT support, but coding most likely won’t be the #1 thing. Very soon you too will be wearing lots of hats, constantly changing them during your day. You’ll most likely not have time to dig deep into things though as time to market is much more important than the robustness of the solution, or the quality of the build.
For these reasons, I personally think that as a first job it is much better to go to an established company. You get to work in a stable environment without too much stress (if any) and hone your skills. For the first couple of years you’ll learn a number of best practices, and build your experience and knowledge in software engineering. Once you master that, you can decide if you want to go deep or go wide, i.e. become an SME or a jack of all trades (read go to managerial), and move to a startup if it suits you. Startups are much more fun to work in, IMO, but you need to know what you want from your career, your growth/learning goals, etc..
I’d suggest taking everything above with a grain of salt though, as it’s not a golden rule, and there are big companies out there that are no more than just overblown startups from the inside, and there are startups that have great engineering and people culture with managers who’ll support you and your career. Just, as a fresh post graduate, it is an extremely difficult task to distinguish one from the other.
Alex Gurr (Head of Engineering @ Cloudwave)
Consider spending some time at a bigger company, as well as at startups. It’s good to get exposure to different sized teams and different ways of working. Then you can unbiased-ly apply your knowledge and experience to new situations. Working in a corporate environment is completely different to a startup. This article shows some of the biggest differences between a bigger company and a startup.
Jared Fraser (Director of Engineering @ Mr Yum)
Startups tend to have less defined processes than more established businesses. A startup’s primary goal is to build and deliver a product to grab hold of an opportunity in the market. To do this quickly, they need to be able to operate and change their product rapidly. Processes such as scoping/planning, architecture design, and testing are often reduced in favour of simply building a product.
Pros (of working in a startup)
Dale Baldwin (Senior Software Engineer @ Culture Amp)
Pros (of working in a startup)
Startups can be a great place to work and build your career but it really depends on the startup, many early-stage startups can be stressful and aren’t great places to get the sort of mentoring and development you want to grow your career.
Many larger companies offer grad programs and junior engineering intakes that may actually give you a better career start than trying to get a flashy startup on your CV so make sure wherever you land it’s somewhere that is going to help you grow.
Will Parker (Senior Software Engineer @ Smokeball Australia)
Working at a startup can be great when you’re just getting started as it gives you exposure to lots of different technologies. Working at more established companies you’ll often find their software engineers are more specialist, focussing on specific areas such as frontend, backend or devOps. Startups don’t usually have the luxury of being able to hire large development teams so you’ll be expected to work on whatever delivers value across the whole tech stack. This can be a great opportunity to learn and also decide which side of development you really enjoy whether it’s creating pixel perfect layouts or beautifully interactive features on the frontend or whether you prefer the business logic heavy work writing API’s, building distributed systems and using databases on the backend.
However, working in startups can also be very fast paced and you have to be highly motivated to go out and do a lot of self-learning. Small startups likely don’t have as many developers working there and as a junior you may find yourself with less support when it comes to solving particularly difficult problems. In larger companies as a new software engineer you’ll likely be surrounded by lots of great developers who you can ask for support and advice from.
Although, this doesn’t mean you can’t find a startup that is supportive - it may be something you might want to ask about during the interview process.
John Wesley Salvador (Senior Software Engineer @ Zeller)
Alan Truong (Head of Engineering @ EntryLevel)
Before deciding between a startup and a larger organisation
Know what your goal is. In this market, software engineers are treated as kings. Everyone is hiring software engineers and this means you have options. When it comes to pay and benefits, the gap between startups and normal corporate / established companies are starting to close.
This means now you get to decide on other factors whether working in a startup is better suited for you?
Tim Tang (VP Engineering @ Local Measure)
For me, the defining characteristic of a startup environment is that the overall business goals of the company are less clear and are more prone to change. What that translates to from a software engineering perspective is that it requires a lot of flexibility to deal with constant changes happening around you.
Combine this with a very limited amount of resources and this creates a uniquely challenging environment that is different from established companies with clear revenue streams and more resources to explore and develop multiple products simultaneously. Startup environments require a great deal of discipline from your team and yourself to be constantly focused on only the most important priorities at the time.
Pratik Ghimire (Engineering Manager @ Car Next Door)
The major differences in my experience has been the sheer pace of growth, innovation, collaboration. Startups are generally fast paced and outcome driven where there are lots of growth opportunities, opportunities to wear different hats, solve different types of problems, and collaborate with other departments.
I personally have worked as software dev, scrum master, business analyst, product manager, team lead, and people manager in a span of two years. At times you will be required to learn tech or tools to perform the job and rarely have a structured growth framework to help with career aspirations. The process which worked yesterday needs to evolve tomorrow, so it will feel like chaos.
On the flip side, in an established business, the work is generally slow paced, productivity driven and hierarchical. There will be a defined piece of work, various levels of approvals would be required to make a change, an established process, career frameworks which helps in planning the future roles and also have a line of sight on what to expect in a number of years. There are also more benefits and less stress as redundancies are built into the teams.