My question is. Is that really how big companies operate? Or are there exceptions? For me that means that I have to accept to just provide defined outputs to some defined inputs (for decent wage). Or avoid such companies if I'm not able to accept it.
I managed to stick out for about a year after the startup I’d been working for was acquired by a multinational. I’d been an early engineering hire at the startup, and by that point was a technical lead for one of the teams. On being acquired I got promoted to technical lead for the newly formed division, which in practice meant endless meetings about every aspect of what we were doing. I’m talking eight hours a day on Teams calls, and a couple of hours writing things up between them.
One thing I’ll never forget is that an early task I picked up was working out how to tell if someone had opted out of marketing communications. I naively went in thinking it couldn’t be that hard, just look them up in the system that tracked these things. When I left we still didn’t have a decent solution. I’d spent months on calls with everyone up to the Data Protection Officer, and the closest I ever got was something we thought might work. For all I know they’re still trying to work it out 18 months later.
In the end I hated that job so much I took a ~50% pay cut and left a five figure retention bonus on the table to get out. I’m now happily back in a startup writing code every day, solving interesting problems, and laughing whenever someone complains about how much process and documentation there is.
Consulting: Limitless income, low job security, high value interesting work
Megacorps: High income, medium job security, meaningless work
Startups: Medium income, low job security, sometimes meaningful work
Open source: Low income, low job security, work that lasts forever
I balance a mix of Consulting, a Startup job, and Open source these days. I tweak the dials between those to keep myself optimally financially comfortable, challenged, and happy.
Would never work full time at a megacorp again for any amount of money though. The toxicity, politics, and pressure to put profit before people do not work for me. At most I will solve a high value problem that interests me, take my contract fee, and move on to the next thing.
——
Questions to ask yourself when looking at job so you can be picky:
- What industry are they in (helps determine if it’s interesting)
- Their place in the industry (helps if there’s growth)
- What is the next frontier for the industry (helps determine if you are going to be laid off)
——
And when they interview you, be sure to interview them, especially if you get to talk to technical members:
- What does your specific team work on (helps determine whether their work is interesting)
- How big is the team (helps determine if you’re gonna be a cog)
- What kind of inter-team collaboration goes on, including non-technical teams (helps determine the culture)
- Talk to me about your architecture (helps you determine the tech you will be working on)
- Ask questions about why they built in that way (if they cannot answer these, I would run)
- What’s their release process like (you’re almost looking for key words here)
Don’t be afraid to ask. I asked questions for like an hour before deciding this job was for me. It should flow like a conversation with a friend though.
If you're a plumber, do you want to be responsible for building a brand new skyscraper with top of the line pipes, or do you just want to show up to your dead-boring factory maintenance job, fix the things you know how to fix and go home to your wife, kids and/or hobbies - which is where you draw satisfaction from life.
Hackernews is slanted towards the "build the latest and greatest and be the best software developer ever". The people who are just average, or good enough for their job, but don't care about staying current with the bleeding edge of tech (like what's posted daily on HN) aren't here to give you a contradictory opinion.
However, working in a huge company does bring all sorts of things, including many you list, that I dislike. As a result, I very strongly prefer working for smaller outfits.
But everything's a tradeoff. There are different upsides and downsides to huge companies, tiny companies, and every size in between. the trick is to be clear with yourself about what tradeoffs are best for you.
They aren't monoliths. Your experience could be totally different in a different part of the company. 300k people is going to create a ton of variance.
That said, I've found the larger the company, the more politics matters. And the more politics matters, the less your performance matters, and the more the other things matter.
Personally, if given my way, I might never work for a company over ~50 people, again. (I'm working for a small firm now. And pretty happy overall.)
The ability to walk up to high management and get a fairly straight answer on what is going on, is something you simply can't get in a 300k company.
That there's more streamlined processes to me is a good thing, because it actually frees my time up. Small companies just have so much more overhead and chaos relative to the size of the business.
this is it. it's not that it's boring, it's that it's POINTLESS. the bigger a company gets, the more it's burdened by its processes. and that comes directly at the expense of your career and satisfaction, if you like, y'know, actually building stuff. if you like to wrangle process, which is a career unto itself, then well, enjoy, you're in the right place.
In such case you'll find yourself spending most of your time fighting to not become a complete bureaucrat, and eventually using only the minority (if any) of your time doing actual work.
However there's plenty of people that's there to "strategize", to "synergize", they're on online calls all day long, it's all career path and promotions and (hopefully) golden parachutes for them, so they'll call it exactly the opposite of "dull". What you call "dull" is actually _their goal_.
On the flip side, startup environments are way less dull but way more punishing, and may not be for everyone, or may not be for every stage of life.
Consider Google: they invented Borg, MapReduce, GFS, etc. because of their sheer scale. Microsoft (disclaimer: I work here) has MSR. Xerox had PARC. There's tons of fascinating tech buried inside, things you'll never find at start-ups.
It's easy to become invisible and embed yourself into your team's narrow silo, but you can make a monumental impact by doing the opposite of that.
Maybe it's preference, but I much prefer to work in a small company where you can actually influence decision making. I've worked at some large companies and now I am independent and I also work in a very small company with half a dozen people. I much prefer it because it feels like there is real meaning in what I am doing.
Large companies can give you some meaning too but you have to fight for it there, and work against the bureaucracy, which I hate so I left that life behind.
For every cool project, there are probably a dozen legacy programs that need work. Fixing broken can be interesting - but leadership needs to be interesting in improving things vs seeing how long they can drive it without changing the oil. Flee those organizations or be the agent of change.
Individuals can matter, but generally one has to have impact beyond their 'day' job. An excellent line order cook won't really have impact. A sous chef / master sergeant can change an org, which can also change something larger.
Don't underestimate the domain knowledge. It really helps to understand what the business actually does (or needs to do). Coding to a spec without understanding the why usually produces mediocre results, which is often the norm.
But of course, it can be worthy for the salary which enables you to do some real fun driving, riding, skippering, piloting on some real bad ass vehicles during the weekend. Friday evening, Saturday and Sunday the cog becomes the captain
I've worked in startups and small companies as well, and while I liked what we worked on, it never really got used by a lot of people, and sometimes felt like I ultimately wasted my time, even if I learned a lot during it. Meanwhile for large corporations I've worked on applications (and been the primary builder of applications) that have been used by millions of people.
Sometimes the slow pace (it's not always slow, in some ways be thankful it is, I've worked some nightmare situations before at some corporations) is nice, you can keep your head clear for your own projects before or after work, or just let yourself relax on a Friday or whatever.
Really depends on the project though. Don't let yourself be assigned to a legacy product if you can help it, especially if it's not being used to win new business, just maintain existing business. That seems to be where most of the problems you're complaining about lie.
There are days when I miss the large amount of autonomy at startups, but I don't miss the intense stress to get something made quickly, or the hours that crept up to 50, 60, 70 hour weeks.
I don't have any time or energy left to work on my video and board game designs if I'm working that intensely and that long during the day.
As for getting to know people, I think you can get to know some people, just don’t expect to get to know everyone. When I was in the office my section of the office had about 20 desks and it was connected to another room with about 40 more. The 3 people right around me I worked with and talked to all the time. Another guy who was pretty close, was on the phone a lot and did something else, but on many occasion we spoke. Ask him one minor question about what he’s doing and he’d talk to you about it for 3 hours. The room of 40, there were a few people I knew decently well and I’d go to lunch with a few of them extremely often. Occasionally someone would organize something outside of work which also gave some opportunities to see what people were really like.
It’s definitely a different type of vibe and not for everyone. The upsides with a big company are often more stability, benefits packages, they usually pay decent, and there is more opportunity to specialize if you’re into they. The downside is that you’re mostly a cog in the machine.
Yes, processes for getting things done are dull and frustrating. Team leads often urged minimizing time spent on them by using political clout with the gatekeepers to expedite them.
Tech was not too exciting, all the open source stuff used were mature, vetted by security folks/scans, and possibly had in-house layers built on top of it.
Did get to see where my projects fit in end to end, including contributing to data shown in a widget high up on their mobile app’s dashbord, and also to several thousand internal users who are movers and shakers.
Standing up a new REST API and exposing it to the internet required much upfront design and lots of approvals. But at the end of the day it’s to ensure minimal risk while making maximum impact on the tremendous customer base.
Pay was not approaching the FAANG stratosphere. Had two WFH days per week. Office had a section of a floor reserved for the group, and hotdesking with “soft” reservations based on history of actual desks used.
Overall did learn a lot about tech, business, and leadership, but the cog feeling was still definitely an undertone.
There are projects that can only be done by large entities and part of the boredom you feel is the systems "work" if workers are equivalent/replacable units.
This means one of two things:
1) You will work with similar independence to a developer at a smaller company—but spent 10-20% as much time directly working on code and related things, with the rest going to tracking down people and systems to get what you need to start/proceed/complete a feature.
2) Or, someone else will do all that for you, you’ll have far less independence, and will basically just be killing detailed Jira ticket exactly as assigned. But you’ll write a lot more code and such.
It's just that statistically speaking one has fewer chance per 1000 employee to work on something fun without being dragged by company culture in a huge company.
But then again, you might find some really fun and interesting pockets within those big companies.
I'm a project manager for a small software product at a large company. I like to think that my little space within this huge company is an enjoyable place to work. While I am responsible to stakeholders to make sure we accomplish certain major tasks, I get a bucket of funding to allocate as I please. My team and I can decide on our own what tools to use, what languages, how to structure our development schedule, etc. It's all very not-behemoth-like.
But go across the hall (figuratively speaking -- my team works mostly remote) and you might find an abundance of process and bureaucracy. I've been there too. And admittedly, that may well be what the majority of the company is like. But if you can find a project / group / etc. that suits you, you may be happy working there even if the style of the rest of the company isn't to your liking.
In the past you could carve out a community at the office, make some friends, realize your work is kind of bogus, and go home on the weekend.
In our new hybrid wfh world everyone seems much more closed off. So now you’re just doing bogus work on slack/zoom from the spare bedroom without the sense of community or consistency.
If you have a family to take care of this probably still sounds like a good trade.
There's really no avoiding it. You're trading your life for money - that's how jobs work from an employee perspective.
As it takes a lot of time to go through the process of changing things, make sure to invest time in deciding what that change should be (and how to structure it in a way that it's easiest to go through the process) instead of making the change that you would do if you would work on the code base yourself.
You can work in a large company, and still accomplish amazing things. But you have to avoid at all costs not being in an area of bright, intelligent people with leadership that protects it from having to be just another cog in the machine.
You go bigger. Business units now. Deliver consistent performance. All units is not Skunkwork. Just machine. Big unit. Transistor in company CPU. Eventually company as well is just transistor in nation CPU. Nation just transistor in Earth CPU.
- How is tech debt addressed? Are teams allowed to work on tech debt to keep the overall codebase functional. This one is fairly obvious, but a lot of bigger companies have allowed tech debt to get out of control which impacts the experience of writing code and/or accomplishing anything. The worst of these will layer in absurd processes rather than addressing the tech debt. - How does the work the team is doing now roll up to the overall strategy of the company? If the hiring manager can’t answer that question it means the company likely runs on politics rather than a coherent strategy.
The thing is effeciency isn't what you actually want to maximize.
It's not surprising that a small team of 5 people in a startup can build 1 thing faster than a team of 5 in a big org.
The orgs goal is to keep adding anything that makes a net profit even if means a loss in effeciency caused by the extra overhead of being more complex, bigger and slower.
At big companies the attitude is almost like: clock in, do the minimum, clock out
I used to work at a startup and it was probably the funnest time of my whole career despite the bad pay
I wouldn’t go back but I do miss it sometimes
> My first impressions is that everyone knows only quite narrow field of the project
When you reach an employee count that can sustain it, this is the "optimal" way to organise a company. Division and specialisation of labour is how Big Corps operate. At that size, one person can't know almost-everything like they can in a startup. They most likely don't even know everything about their own product, depending on its size.
> Next thing that really struck me was how hard is to just approach someone and get to know him
This is both a function of the people themselves, and the amount of stress and/or deadline pressure they're under. In both cases you can imagine people not having time to get to know someone new, particularly if they're not on the same team. This is not an insult, it's just a function of prioritising who and what to interact with in a company of ~300K.
> As there are people sitting next to each other that have way different work.
This also exacerbates the above and is one of the key reasons I loathe hot-desking. If you're going to colocate people you should colocate people on the same team where possible. That is a hill I will die on.
> it is hard to approach someone since most of the people spend large amount of time on online calls
Also common at Big Corps, but there's also an explosion of this since covid / remote work normalisation, etc.
> Therefore you really never know if you can approach someone and don't look like an disturbing idiot ... I mean the people are actually pretty nice, they are not stupid at all, but everything just seems so dull.
Assume everyone is friendly. "Excuse me, sorry to disturb you, [I'm new here] ..." is a great opener if you're worried about this. Their reaction will tell you whether your initial assumption is valid at that time in that context.
> And I have feeling like it really does not matter if you are really good or under average.
Different companies handle performance very differently. My advice is to not tie your worth or goals _specifically_ to the company's performance measurements, but look at your own personal growth as the yardstick for how satisfied you are with your role and progress. Then only interact with the company's performance model where necessary to succeed within the box the company is imposing.
> I feel like we are dealing with not that much of complicated technical products, but the complexity of work is created by all the processes (SAP, etc.). And I have feeling like it really does not matter if you are really good or under average
Complexity of technical products obviously varies wildly within a company and across companies, but in general yes: process is a defining hallmark of a Big Corp. Process is essential for replicating the success they've achieved and maintaining the redundancy needed to take risks and fail.
> and suddenly can understand why startups can undercut such behemoths.
I think this half of the key observation. The other half is: every bet a startup makes runs the risk of killing the company. A Big Corp can make 100 bets and fail every single one of them, and still operate successfully as a company.
But that doesn't mean they're any more likely to win any individual bet -- innovation is hard -- they can just make a ton more of them without going bankrupt. They can only do that because they've built an enormous, redundant, safe, "dull" system that has the best chance to grow over time with their existing successes.
The only way a startup can compete with this is to find the one thing that a Big Corp can't/won't do, hasn't noticed, won't admint, can't move fast enough to capture (e.g. new technologies), etc, etc, and successfully execute on it, fast, with an entire company of like, 10 people.
Scary if you're betting with peoples' livelihoods, intense, and requires an enormous breadth of knowledge across 10 people to operate in all kinds of roles. But certainly not dull.