Flexibility in Startups vs. Big Tech
This is part of a series on differences in working for startups vs. big tech companies. I am exploring various aspects of work that vary between them, to help aspiring job seekers make more informed decisions about where they want to work. This is mainly from the point of view of a software engineer, however some parts will apply to broader tech jobs. In this article I’ll consider flexibility.
Aspects of Flexibility
When you read the word “flexibility” you probably had an initial immediate thought as to what I meant. Depending on what exactly you assumed you then probably had an immediate thought as to which type of workplace better provides this type of flexibility. Typically, startups are thought of as having more “flexibility”, but as we’ll see that really depends on what we mean by the term. I think of “flexibility” as meaning any aspects of your job that can be modified to suit the preferences of the employee, in the goal of making them more productive, happier, or achieve their job effectively. Based on that definition we can consider several types of flexibility:
Flexibility in working hours
Flexibility in work location (remote or hybrid vs. in-person)
Flexibility in taking vacation or other time off
Flexibility in the roles you take on (when hired and over time)
Flexibility in what project you work on
Flexibility in who you work with
Flexibility in the tech stack
Flexibility in tools (hardware and software)
Flexibility in coordination and planning
Looking at these we see that they naturally group into three types of flexibility. I’ll go over each of those and how they vary between startups and big tech companies. There is also a Summary at the end if you don’t want to read all the details.
When and Where You Work
This is probably the most obvious type of flexibility that people think of when you use that word. It refers to the hours you are actually working and your physical location when doing that work.
Working Hours
This aspect of work can vary substantially based on your exact role and team. Although the stereotype is that startups offer much more flexibility in hours than big companies, this is not at all generally the case. Many startups have things like daily standups that you are required to attend, and they might be held at a very traditional time in the morning (say, 9am). If you are a night owl and want to have later hours this will not be to your liking. Big companies may also have the same, though since they have many different teams it’s going to really depend on which one you are a part of.
Similarly, some startups may be less concerned with “work-life balance” (i.e., working outside of traditional work hours, or on weekends), and may expect you to do this. Big companies generally make this more of a protected part of work, you will usually not be expected to be responsive during those times (unless you are on-call). However this too can vary substantially among employers, many startups now are also more protective of employees’ free time. A lot will depend on the demographics of your teammates. Generally, younger employees will be more interested in working longer hours and on weekends, though of course it depends a lot on the specific individuals.
Overall, if this factor is important to you, make it a priority to ask the specific manager and team you will be working with.
Work Location
Traditionally startups have been much more flexible in terms of remote work than big companies. This changed because of the pandemic but it seems to be rolling back somewhat, for instance Google is planning on most employees returning at least to hybrid work. Meta, on the other hand, continues to make it easy for employees to opt for full-time remote work if they choose. Still, I would be a bit worried to rely on this for a longer-term period. For example, Yahoo famously ended their work from home option in 2013.
In general, big companies are going to make it harder for there to be exceptions and these types of policies can change suddenly. Of course, in the current job market (because it’s so difficult to hire) I don’t expect companies to be happy letting go a significant fraction of their employees just because of where they want to work, but that can always change (and not all corporate decisions are rational).
Startups have many fewer strict rules, and generally find it more difficult to hire, so are more typically going to allow remote work. Still, that doesn’t mean every startup will do that, so of course it’s important to ask about it when you are considering a job.
A secondary aspect of work location is availability of different corporate offices. Large companies typically have a presence in many major cities. In case you are thinking you may move in the near future, it may make more sense to consider a job that has a presence in multiple cities. It’s usually much easier to transfer internally than to find a new job externally (although this isn’t guaranteed).
Overall I would say that startups win in flexibility of work location, but there is a large amount of variance among employers.
Vacation and Time Off
Big tech companies usually have fairly standard policies on vacation/paid time off. You will get some set amount of days that you can use (from 12 at Apple, to 20 at Google, and 21 at Meta). Generally you are able to use them whenever you want, assuming some reasonable notice. Your manager needs to approve this time, but in practice it’s almost always going to be approved without any issue. It’s not uncommon for employees to save up their PTO and take a long block all at once (4+ weeks). There are so many people working that it’s unlikely the absence of any one individual will cause any significant problems.
Startups very often have moved to an “unlimited” PTO. In practice what this means is highly variable, but studies seem to find that people take fewer PTO days under such systems than they would under a fixed model. Additionally, in many jurisdictions (such as California), your employer must pay out any unused PTO time when you leave your job; having “unlimited” PTO means they employer doesn’t have to pay you anything. Because PTO is “unlimited”, it’s not seen as something that you inherently get, which can make it more difficult to take time off. Approval may be harder to get, you may need more advance notice, and it may be harder to take a long period of time off. It’s important to get good insights into what the actual culture of taking time off is, at some places it may be considered bad form to take off more than 2 weeks/year, for example.
There are some exceptions, for example Netflix famously has unlimited PTO. But overall big companies have much better policies in this type of flexibility. I would consider “unlimited” PTO to be overall a negative aspect of any job.
What You Work On
Choice of Roles
Stereotypically, at a startup you will “wear many hats”, meaning that for any given role (such as software engineer) you will be involved in more varied types of work. For example, you may not have a designer, PM, or data scientist and may take on more of that product work. Or you may not have devops support and will need to do some of that yourself. There may be engineers involved in things like customer support or billing, that in larger companies would be handled by entire departments. This can be really valuable in terms of getting a wide range of experience. The downside is that without proper mentorship, if you don’t know what you are doing it’s a lot harder to pick up different types of work. For example, if you want to learn some UI design, while a startup might afford you that opportunity (because they need someone to do it, and no one has the knowledge), you also will lack anyone to actually help you learn. This can be very good if you are very self-motivated and invested. And even within software engineering, there is less likely to be strict roles like frontend, backend, ML, etc.
At a larger company there will be many more specialized roles, and you will slot into one of them. If you work on product, then you will likely have dedicated designers, data scientists, and PMs. If you want to be involved in that side of the work they will be happy to have your input, but any direct interaction may be seen as meddling. For example, your dedicated designer won’t like it if you ignore all their work and implement your own vision for the product. This can be a good way to learn about those roles, but you won’t really be able to get as much first-hand experience. Switching roles may be difficult because you might be required to go down a level or do a full interview loop (whereas a startup will make this all more informal). Within engineering, if you are viewed as specialized in some area (frontend, backend, ML, etc.) then you may find yourself more pigeonholed than at a startup. However you can usually get out of this by switching teams, and a large company affords more opportunities for learning about areas that you don’t have any experience in.
What type of employer gives more flexibility of roles really depends on how you think of it. At a startup you might be essentially forced into doing work you don’t like, because no one else will do it. This can be valuable, but also may make you unhappy or uncomfortable. And if you do want to learn about different roles there may not be anyone to help teach you. At a larger company you will have more structured roles you can learn from, but you also may be pushed away from working in those areas, because people don’t like it if you step on their toes. Some engineers do end up switching to some adjacent role (such as PM) because they find the work more enjoyable. If you don’t have experience with those roles a larger company is likely better for learning about them, though a startup may make it easier to ultimately switch once you have that experience. So there is a significant tradeoff in this dimension, depending on your exact career goals.
Choice of Projects
Startups should have only one main product they focus on. There will be different aspects to it, including frontend, backend, and various infrastructure or internal systems. But all will be part of the one product (and your excitement about that product should be a big factor in deciding to join). I would even argue that a key sign that a company is no longer a startup is that it fails this test. Conversely, a big company has many different products, many of which may not be externally visible (for example, running some data infrastructure only used within the company).
All this means that at a big company there is simply a much wider range of projects to choose from. Many types of work simply won’t exist at a startup. For example, startups probably shouldn’t be making their own error reporting frameworks or IDE, so if that’s your passion you will need to work at a big company. Similarly if you want to work on more core or lower-level things like frontend frameworks (consider React or Angular) or programming languages (consider Java, C#, or Go), these are going to be primarily developed at big companies. Even if you aren’t sure that you are interested in these more specialized areas, you may become so later, or it may simply be valuable to learn about them by talking to your coworkers.
Big companies will offer more flexibility in changing projects or teams as well. At a startup there is a large amount of work that has to be done and not a lot of people. That means you might be the only person working on, say, some critical billing service. You can’t really just leave that and do something completely different, since the business depends on it. Of course, eventually you can hire someone else and train them to take over for you, but this could take a long time. One of my acquaintances was stuck on a project he hated for over three years because he felt too bad to leave it; his employer only found someone else to take over when he actually threatened to quit. At big companies anything critical typically has an entire team focused on it, so it’s much less of an issue if one person switches. You will have much more flexibility in varying your work.
Choice of Team & Coworkers
The people you work with can be even more important than the projects you work on. Having someone to mentor you can be invaluable for improving and learning. Conversely, having a negative presence on your team can be very draining and hamper success. This is a big reason every employer has (or claims to have) a “strict interview process” that “prevents false negatives”. Of course, in practice this is never going to work perfectly. It’s important to talk to people you will be working with when deciding on a job, but others will be hired after you, and you may not have much input into that process.
Generally, at a big company you’ll have a lot more flexibility to avoid people you don’t like and work with people you do like. There are simply many more people and teams. At a startup you probably know everyone and there’s a good chance you interact with a large percentage of them frequently. In such a situation one bad actor could really ruin your experience. Additionally, there are probably fewer mentors available to help you, since everyone is focused on shipping, and in general startup employees skew younger. If you tend to be more finicky in terms of wanting to work with certain types of people, then a big company may be a better choice. You still might be stuck in an unfortunate situation, but it will probably be easier to fix without completely quitting the job. There are also likely better manager/HR procedures in place to deal with office conflict.
How You Work
Tech Stack
At a startup there will be a fixed tech stack. It’s likely that it’s using some “hipper” technology (whatever was flavor-of-the-month when it was founded) although not necessarily (the founders wanted to stick to something proven). But it’s going to be the same for everyone, since, necessarily, the startup has a smaller surface area. If you are happy with their stack that’s probably great for you, you don’t have to worry about using something else. But overall, it’s less flexible. You can’t just use a different stack for your new project because no one else will know it, which is a big risk for the company. If you want to learn something new then you won’t likely have as much opportunity to do that.
In big companies generally teams are able to pick their own stack. There might be some common shared infrastructure that everyone uses so you will have an incentive to go with it, but even so these are often API or RPC-based services so you can interact with them using almost anything. There are likely some common stacks that engineers at the company typically use, so you’ll usually have to go with one of those, but it’s not for certain. Even so there will be many more to choose from, they might have backends in a mix of Java, C++, Go, Python, etc. If you strongly prefer one of these for a new project it is probably considered fine. Compare this to a startup that likely uses a single language and wouldn’t be happy with you introducing a new one just for a single project. You will also more easily find mentors in whatever tech you are interested in, which will make it a lot easier to learn.
It’s an interesting way to look at it, because as a whole company a startup certainly has more flexibility in this regard. If a startup wants to rewrite everything in a new language it’s much more achievable than Google deciding to do it. Yet for an individual contributor the opposite is the case. You aren’t going to be changing the direction of the whole company either way (excepting some obvious situations like you are a founder or first eng hire, or are an extremely senior eng, but you probably know if you are in one of those).
Tools
Tools are a very important part of any engineer’s work. This is a broad category that includes computer hardware, your code editor/IDE, development environment, build/CI flows, testing, debugging tools, error logging/monitoring, analytics/dashboards, and anything else you use to do your job. Startups typically use various open source or third-party services for these (many of them from other startups). Bigger companies may use that as well but are more likely to have many of them developed in-house. Both of these can be inflexible in different ways.
At a startup it’s easier to introduce a new third-party tool (there won’t be as many rules stopping you). This can afford you more flexibility. However, you will have to spend more time supporting it and making it work with your existing systems, which may be discouraged. At a big company it is harder to introduce new tools, but there is probably a wider variety of existing tools to choose from. Different teams may also use different tools, so you’ll have a bit more flexibility in terms of picking one that is a good match.
Coordination & Planning
I find this is an oft-overlooked aspect of work. Many people I’ve talked to (especially those newer in their career) are used to a single way of coordinating and planning work and seem to think it’s the only way it can be done. And yet those ways are all different!
Startups typically use more structured coordination processes. There will be things like daily standups, biweekly sprints, and frequent check-ins. These are all important for a startup to make sure they are progressing, since the very existence of the business depends on rapid iteration. Conversely, startups have much looser planning processes. There might not be a clear roadmap past the current items being worked on, since plans change very frequently, especially in response to customer requests and feedback. If you want to have more flexibility in longer-term planning but less in day-to-day coordination then a startup will be better.
Big companies are typically the opposite. They might have some teams that are rapidly iterating more like the startup model, but in general teams are working on mature products and so focus much more on planning than coordination. They spend a lot of time making sure that the changes they are making won’t have adverse consequences and will actually solve the problems that exist. On the other hand, day-to-day work doesn’t need as much coordination. Because there is no existential threat it’s not as important to ensure everyone is working on the right things all the time and at a maximal pace. There is much more flexibility in day-to-day working styles. If you are more of an independent worker focused on longer-term thinking then this type of work environment will suit you better.
Summary
Depending on what type of flexibility you value most, a startup or big tech company might be a better fit. Of course, there is going to be a degree of variation based on the specific employer (especially since some companies continue to call themselves startups despite having hundreds or even thousands of employees), but to help narrow your search try to decide which factors matter the most and it can aid you in making a good decision. Here is a summary of which environment is better for the different types of flexibility:
Flexibility in working hours
Depends mainly on the specific employer, though in general big companies have more traditional hours (9-5) while startups may have more work outside of that range.Flexibility in work location
Startups are generally better.Flexibility in taking vacation
Big companies are generally better.Flexibility in your role
Startups are better if you value easy access to opportunities, while big companies are better if you value easy access to mentorship.Flexibility in what project you work on
Big companies are generally better.Flexibility in who you work with
Big companies are generally better, though it really depends on your specific team.Flexibility in your tech stack
Big companies are generally better at having more options. Startups can be good if you love the stack they are using, since you won’t have to deal with anything else.Flexibility in tools
Both startups and big companies don’t have a great degree of flexibility. Make sure to consider the specifics of the employer you are considering.Flexibility in coordination and planning
Startups have more flexibility in planning, while big companies have more flexibility in coordination.