There's a third way. Don't go to Google. There are literally thousands of smaller places you can work for/in/with, some of them do pretty cool things. There'd be politics too, probably, but not as much as in Google, and you could control your destiny to a more significant degree. Small(er) companies - if you pick right - tend to have significantly better environment in that regard (not perfect, mind you, but better).
Or, if you want that specific experience and line in your resume, and of course all that sweet cash and stock, do it with the open eyes - don't expect it to be a fairy land where unicorns crap out rainbows, expect it to be a humongous bureaucratic corporation where you will get exactly your share of care and agency - the full 0.001%. Approach to it transactionally, know what you came for to get and what you are willing to pay for it, and if playing exhausting games is not part of it, get what you can for the price you're prepared to pay, and move on. Don't let the fact that you can't get some things for the price you're prepared to pay get to you and make you think you're somehow unworthy. If the price for getting title X in Google is behaving like you'd hate to behave, then you can't get title X at Google. So what, there are probably tons of things you can't get and always will be. Don't let it bother you too much.
This applies to being a leader in a volunteer organization, or being a leader in an open source project --- or being a leader in a corporate environment. In my experience the last is often actually easier and simpler than the first two!
As far as your goals are concerned, you should be clear to yourself what they are. For me, it wasn't primarily about the money. Sure, I'm at Google now, and I'm enjoying the compensation --- but I spent nine years at MIT before I moved on to VA Linux Systems (and doubled my salary, before equity --- most of which ended up being worthless).
If you know what your goals and desires are, the next trick is to understand what others' goals and desires are, and trying to help them achieve their goals while also making yours a reality. This is true whether you are working for yourself, or working at a big company. (And at a big company, sometimes it's a matter of finding the right team. Don't assume that just because you had a lousy time on one team that the characteristics of your situation are universal across the entire company.)
No. Politics is when 1 among the 3 people, wants more than his share using all means possible.
If you're making 200k on your own terms vs 250 at Google, I wonder who's better off. At that level of income, things like how stressful your work is, how interested in it you are, the length of your commute, etc. seem to matter more than earning another 50k of income.
Obviously everyone has their own circumstances but I think the obsession with earning as much cash salary as possible seems a little myopic.
So it is a significant trade off.
Early retirement is almost always an option for middle-class or better Americans. It's just a question of how much pain you want to put up with in terms of housing, lifestyle, where you want to live, whether you want great education for your kids, etc.
I used to agree with your comment but don't anymore. I have enough money at this point to earn 10s of K/year investing in real estate or doing something else. I don't because I like working in tech, being part of a team, using my education and talents, and generally working on making the world a better place.
I don't really want to "do whatever I want".
These guys are right: https://signalvnoise.com/posts/1930-mojito-island-is-a-mirag...
Your middle-class also seems to be a bit different than my middle-class, especially in cities where jobs are.
Wasn't my experience. Of course, YMMV.
> since you don't have clearly defined process of goals that lead to promotions and pay raises.
Looks like Google does have defined process. Did it help the OP? Doesn't seem so. Defined processes are good if they're defined with your goals in mind. If they are defined explicitly to prevent you from reaching your goals, they'd be only an impediment, and one that you'll fail to overcome, as "this is our defined process, we know it doesn't work in your particular case, but we can't start special-casing people, so you'll have to take one for the team here".
List them. Especially the ones where you do not need to sudy for several algorithmic puzzles.
I don't really see what the political game is here that he lost. What I think he failed to do was show impact in a clear a visible way.
Don't get me wrong, there is salesmanship required here in terms of clearly demonstrating your value, but it's not like Google was giving the promo to some other guys who always went out to dinner with his boss and sucked up to him, or the guy the boss went to college with, or the guy who throws his team under the bus to make himself look good. that is politics, "politics" being defined as acts that make you look good but are detrimental behavior to the team and the company. And I think that's what google is trying to avoid with their promo panels where you get feedback from peer, peer team managers, and make the judgement as an impartial panel.
Also I see this as a manager failure. Clearly this manager isn't well calibrated, because he continues to get "strongly exceeds expectations" and yet can't get you the promotion you obviously deserve if you strongly exceed expectations. They also should be helping you both with your promo packet so that you're putting your best foot forward, and talking to you about how you can improve and demonstrate your value when you do your work to make sure you can get an even strong promotion packet the next time. Given this manager failure, I'm not surprised the employee quit.
As a manager it's your job to figure out what my impact is.
If you make it my job to show what my impact is I (and everyone else you are responsible for) will simply spend my time coming up with ever more creative ways of doing this instead of engineering.
But hey, maybe I'm being silly and your company has no problems finding competent engineers, all your projects ship on time and under budget etc. etc. etc.
But as to your point, on the roles and responsibilities of managers and engineers, I mostly agree with your comment about the role of a manager, which as I said before should be responsible for working with the engineer both to show their impact, but also making sure they're actually doing impactful work.
I disagree that if it's your job as an engineer to show what your impact is that you'll come up with creative ways of doing this. You can try to come up with creative ways of showing impact, and maybe a promotion panel will agree with you, but maybe they won't and you'll be left without recognition (I've seen this happen before).
To your last comment about competent engineers, I don't know what company you work at, but at mine, shipping projects on time, and under budget, especially when they are large in scope and involve complex technologies or large teams that you've led, and especially when those projects have impact on the company's bottom line, those project are considered major impact and and those engineers are amply rewarded.
Wasn't the point of the article that the Grunt work that has to be done and makes things better for everyone in the future isn't rewarded at all? That work may have an impact on the bottom line of the company, but be spread out over years of maintenance and prevented (potentially disastrous) bugs. However, as the author states, it's almost impossible to quantify that.
You cannot tell your selection committee 'I refactored code and that'll save us probably 100 bugs in the next year, times 2 hours per bug, at $300 per man hour, a $60000 savings.'.
Whereas it's easy to tell them 'I built a new feature x, in the past 10 weeks it's been running it's improved sales by 3%, leading to increased profits over the next year of $60000'.
Both 'earned' the company the exact same amount of money, but the first one is much more speculative.
You make an interesting point, and I'd like to suggest an alternative lens to view it from, as a thought experiment. Let's say company X values work that benefits company X, and that's why they hired you and pay your salary. You've given two examples of promotion rationale, one in which you clearly and objectively demonstrated the impact of the work. And the other, speculative, as you say. Now speculative implies not necessarily real -- it's possible that your guess about how much it will probably save could turn out to be wrong. If you don't have a way to measure this, how do you know that it's the case? It feels good to refactor the code, but just consider for a moment the possibility that you could travel through time and see the future results of current behavior. What if you fast-forward and discover that refactoring that code had no benefit? Now return to the current time: is it actually worth doing? If you're spending time refactoring that code at the expense of developing the feature? Maybe this is why company X prefers to promote people based on actual impact rather than speculation.
Perhaps another solution here is to look for ways to measure the impact of that refactoring. Surely your bugs go through some kind of bug tracker, and you would be able to count the before and the after? Is there no line on no graph anywhere that shows an improvement attributable to the refactoring? Can peers at least speak to how crappy the code was before and how much easier it is to work with now? Perhaps the new employee got up to speed in record time because of it? If, at the end of the day, there's absolutely no way to show that this work was valuable, then perhaps... and here's the part we don't like to think about as engineers... perhaps it wasn't all that valuable. Here's the part we like to think about even worse: you could spend 6 months of your career working really hard on something that turns out to be a dud. And it may be entirely rational that you don't get a promotion on the back of that work.
I'm not saying this is how Google works, or describing any particular situation, but I find it valuable to consider different points of view.
If all features were equal, like widget production, we'd definitely be able to prove or disprove the productivity boost, but I haven't ever worked in a context where this is the case. There's no guarantee that feature implementation time will go down, maybe it did just not go up as much as it would otherwise, maybe people manage to make more useful features in the future, or at least not as much less useful as they would have been (we would expect utility/feature to go down as a system matures)
When I worked in a two-person team it was easier, of course, the time I spent on improving the code base I soon got back when I had to implement new functionality on a short deadline, this reflected well on me in performance reviews. The problem in a larger team is that it might be someone else who is able to implement a feature quickly due to my improvements.
My guess is that we should be lucky that there are guys like the OP who naively spend time on "low impact" code improvements even though they might not reap the rewards. Without them we would only have people doing the bare minimum to implement new features with a big ball of spaghetti as a result, where projects are abandoned just because no one is willing to maintain them any more. (does this sound like some company we know?)
I guess what I'm describing is that we might end up with a prisoners dilemma situation, where optimising for short term measurability represents defection.
You can't? Especially if you have documentation of the bugs that were previously happening, this is very solid evidence. Another one I've seen, "This would cause a weekly page a 2 am, and half the time ended up being an all day problem that needed to be put out. This no longer happens and is worth $X of engineering time."
I would agree though that second example "built a feature that saved $60000" is a stronger statement because it's so much more quantifiable to the businesses bottom line.
To go back to my original point though, we all (not just managers, but the entire team) should constantly be pushing to get ourselves to objective measure. The more subjective measures are used ("I refactored this code which is now easier to read") the more you allow the bad politics I outlined earlier where a boss and his buddy team up to get raises. It's very toxic and should be avoided at all costs.
Working at Google ruined my mental health. Granted, it hasn't been great to begin with, but being in SRE made my absolutely miserable. Every night, coming intellectually wasted and couldn't even work on my own project because of draconian IP clauses in my contract.
Quit half a year ago, went (back) into freelancing and I couldn't be happier. Don't care about the money or prestige anymore.
Is this standard Google policy?
Which is okay if you work on one personal project at a time, but breaks down if you hop from project to project with friends. Waste of everyone's time.
nail on the head... so many people don't get this simple fact that if you DO NOT have clients, you DO NOT have a business. You can't ever "pay yourself", some outside entity have to pay you for your product.
If you're doing b2b, yes admittedly you work for clients, yet a client is still very different from a boss (he can't order you around or give you "performance evaluations", etc.)
BUT if you're doing b2c and selling something to many anonymous customers you don't interact with, you're truly working for yourself; that thing can be a piece of software, an object, a novel, etc.
You also can't fire investors. Remember that before you go "work for yourself" and take seed money to do it.
In the last 14 months I switched to making physical products sold to end users (b2c) and it's great, but having clients wasn't that bad.
If you start that from day 1 you'd be 2 years ahead of the author.
Honestly, it sounds like a really shitty way to live. I personally prefer doing great work and having faith that it will work out.
It has, a lot slower than that, but I'm proud of the work I've done and enjoy my work daily.
Of course, this only works if you have managers you feel like you can trust and respect in the first place.
But that doesn't mean you should be consistently selfless all the time. If you think the projects you are working on aren't going to get you promoted, discuss it with your manager. Tell them some of your thoughts, and if they aren't amenable to giving you other work, consider moving to a different part of the organization.
- Your impact on revenue (if you work in ads)
- Your impact on search quality (as assesed by independent raters)
- Etc.
If you can "game" these, I think you are solid.My advice would be to try to come up with your own project ideas (related to what your or other very close team is already working on). Often times, people stick around in their teams for a long time and there is not much inovation -- you are a new guy can bring some fresh perspective.
People who get promoted the fastest are usually those who are self driven and start projects from their own initiative.
For example, if you see a problem, you should socialize a solution to that problem. If the feedback you get is "Yes, this is a problem, and that solution would be valuable", then go for it. Of the feedback is more meh in nature, then either convince people it is valuable or move on to something else.
Be organized in this process, write RFCs and design docs, document your conclusions. Then when it comes time to discuss impact, you will know (and can demonstrate) that you worked on impactful things.
Focus on demonstrable, measurable impact for your company's customers in the area that your team focuses on. If you do that, then you'll find that you're aligned with your boss and your boss's boss pretty much all the time.
You can argue for what you believe when you have data to back you up. If not, respect the judgment of your superiors. Figure out what your management chain wants to accomplish and then find the best measurable way to accomplish it. If you don't know. Ask.
Remember that the game is a long game. Software Development is unusual because many people expect to be "senior" 3-5 years out of college. In other fields, that will barely get you out of an apprenticeship.
I think about it this way:
1. Not all effort is equally valuable.
2. Not all value is equally visible/measureable
3. Not all value is equally aligned with your team/company's priorities
Find what efforts produce the most value that can be measured, in alignment with your company's priorities.
Usually when engineers feel like they have to "play the political game", they fall into one of these traps:
1. They are doing work that isn't actually valuable (e.g. an unprompted huge refactoring)
2. They are doing valuable work that is hard to measure (e.g. adding tests to a codebase without a plan to demonstrate improved developer velocity and/or product quality)
3. They are doing valuable, measurable work towards the wrong goals (e.g. building product-wide localization support without the company intending to localize their content)
The issue in Michael's case is not politics, and I don't know how HN gets on this stupid tangent about the "political game."
The issue--speaking as a Big Company engineer/manager--is quite obviously misalignment, either between Michael and his manager or between his manager and the committee.
If you don't know what your manager thinks is important or disagree with it, you have a problem. (Possible solutions: ask, argue, switch teams.) If your manager's priorities don't match the org's, you may also have a problem (depending on your manager's ability to protect you). (Again, possible solutions: discuss with your manager, discuss with your skip, move.)
The idea that there's a "political game" that you can play to get ahead is, mostly, belied by my experiences. It's probably true in some places some of the time, but it's unclear to me that it yields better results (faster promotion, greater happiness) than being smart and motivated.
My advice would be to just try to keep people happy, primarily your manager and your manager's manager. Some people are saying to focus on metrics that make you look good, and that might work at some places, but it won't mean people enjoy working with you.
My advice? Be honest, don't be scared to admit when you're at fault, solve problems, help people when you can. Networking is great, but don't be the guy who only BSes and doesn't get things done. You need to be someone people like to work with. If someone needs to send someone else to you for whatever reason and they say "Go check with popcat, he's awesome and knows this really well", that person is going to see you in a positive light from the get-go. Reputation is more valuable than any metrics can be.
Also, communicate with your manager often. Suggest improvements, mention problems, and ask for advice. Put yourself in their shoes - What you you want them to tell you if you we're the boss? Listen to podcasts like Manager Tools if you want to gain knowledge of large companies operate. It will be a huge help when trying to land a big raise or promotion.
Once you have experience as a manager you'll appreciate how great it is having a"can do" person like this on your team.
This is a philosophy you can wear comfortably too, as it's not based on sucking up.
If you have a decent boss, they'll make sure you share in the glory.
If you haven't, you'll need to move on to some of the darker arts.
Next thing you need to know is the rules of the game in YOUR organisation. Every company is different and the rules are different. Google is unique, so at other companies the game is very different.
Then you need to move the needle on whatever matters. That might be improving metrics, that might mean becoming drinking buddies with the right people, it might be purposefully going to work for a failing team so you can be given the chance to take it over and prove yourself.
A lot of the book is simply explaining Psychology of people trying to gain power or in power what you need to do so you can manage politics. Things like not making your boss look lesser than you or not realizing that, yes, everyone has their place and you can't just say whatever you want AND ALSO get whatever you want. For a lot of people this needs to be explained and proven and the stories in that book provide good, if not a bit hard to relate, examples of the laws.
(Reading the book now on Audible. Pretty interesting, but the parent is totally right that it advocates a pretty dark/negative world view.)
My favorite book by him is The Art of Seduction, because it chronicles human motive in its most direct, unfiltered form. All influence is really thinly-veiled seduction.
To the grandparent, because I'm throttled on HN and probably won't be allowed to post much more, if this even goes through: the key to a successful career is the same as any other interpersonal success. Learn psychology and influence. Understand how other people see the world. However you see it, it's not how most other people see it. Resist the temptation to assume that your assumptions and defaults are valid for others.
You have to accept the existence of the game to really have success, but you don't necessarily have to embrace it. Indeed, many successful entrepreneurs are successful entrepreneurs because their personal tolerance for the game is sufficient to make sales, but not sufficient to suck up to a cadre of bosses for years on end.
Whatever you do, you will not be reasonably free until you get a baseline of "fuck you" money established and invested in a diverse set of safe, reliable instruments and institutions. Once this happens, take heed not to become too ostentatious and comfortable, or you will become Martin Shkreli; someone who didn't do anything actually wrong, but allowed himself to become the subject of the public's contempt. It is probably best to keep a low profile and live an unassuming lifestyle, grateful to be one of the few with freedom.
-----
P.S., tried to post, and yep, throttled. I can't post for some more time now; this is because I was politically imprudent and criticized YC darlings, including some companies they've invested in, on HN. I will save this and repost later.
Egalitarian facades from BigCo or PowerfulPerson are just that: a facade. And the people in power, no matter where their power lies, will be happy and cooperative as long as your conduct is biasing people in a direction that is favorable for them. But never expect them to sit idly by while you threaten or criticize them, even if the ultimate impact is small or indirect. They know that big collapses start out as small cracks, and they proactively and subtly work to stop these.
Never mistake the cooperation, praise, or accolades of a group or establishment as representing anything other than their satisfaction that your conduct is helpful to them in the immediate moment. One of the most common and simultaneously most fatal mistakes I see is the assumption that satisfaction with one's conduct is implicit or automatic. That past positive responses guarantee future positive responses. The truth is, no one cares about you personally. They like your thing because it gave them what they wanted. If you disregard that for your next thing, they will have no qualms whatsoever about dismissing or disregarding you.
Human response is a "hits business"; there is a formula that makes people happy. Meet that formula, and you will be rewarded. Deviate, and you won't. It is fickle, timing is important. Music, movies, and video games are all optimized "hits" businesses with billions of dollars at stake, and even they have misses more often than not.
Everyone is irrevocably and intrinsically self-interested, as a biologically-dictated matter of individual survival. Do not expect anything else. Do not try to fight this -- you can't. You cannot undo the eons of evolution that have dictated it. Good system design understands and incorporates this unchangeable reality by triggering psychological phenomena that are biologically interpreted as pro-survival when they're acting in concert with the system, and not doing so when they aren't.
Please note that despite the acknowledgment of this reality, this is not necessarily a nihilistic or pessimistic worldview. These things are not automatically bad. They are just components of the human psychological system that enables our survival. They can be used or abused, for good or for evil.
An insistence on remaining ignorant of human action and motive based on the religious tenet that "people are nice" only leaves one liable to more manipulation. That is exactly what the worst, most ravenous predators want, because it allows them to operate virtually undetected. All the better if they can get the duped to engage in a hostile charge against those who are finding enlightenment (and they usually can).
Anyone who wants to operate effectively within the system must know and understand it. Don't shy away from this reality. Accept it and use it for good. We have way too many timid people who have been programmed to take what they're given and shut up, and not to inquire into how the system works. It doesn't have to be that way.
Running a start-up can be a pretty good gig, too.
Just to be pedantic, I'd say if you've got enough in savings to live without further work-based income & retire, then you are "working for yourself". You paid yourself via saving that money up to "work" on whatever you want. Even if it's just a tan & cirrhosis. :)
The thing that had the biggest impact on my quality of life since I left the corporate world is the ability to say no.
A thread full of people talking about how bad working for yourself is had me questioning my upcoming decision to quit and try to do something for myself, and what you said is the biggest reason why I want to. I love hard work, but I don't love pointless work. I already do some low pay contracting on the side, but it's with a couple of small companies that trust me 100% so they never tell me "no". Don't get me wrong, they will question the hell out of my decisions and I've changed quite a few in response to the questions, but at the end of the day they trust me to do what's best for them.
I already have the house paid off, have no other debt, and have low 7 figures in reasonably liquid investments. Working for myself has been a dream of mine as long as I can remember. I don't need much money, just enough to get by.
Anyway sorry for the rambling. Just wanted to say thank you, you made me feel better about going into work today. Maybe I'll make today the last?
I believe it more resonates with the fact that your livelihood does not depend on a SINGLE SOURCE.
Sure, a business is responsible for it's clients (notice the plural here), and if some of them leave, it may lose profit, yet it does not completely goes under.
Whereas an employee is fully at the mercy of the employer.
The difference is, you don't have one boss... So your risk(s) are well diversified (or, at least better than if you're an employee).
If I employ a brick layer I can easily judge the quality and rate of their work, it's easy to compare with the guy I hired last week.
Contrast that to programming where there is no physical artefact, it's not like we can measure lines of code or numbers of files and derive some value, in most cases less lines of code is better.
People know this so instead of doing good work they start to play games to get ahead.
That's not to say a good leader can't fight against it but to think it's not there is naive.
I have personally worked at at least 2 companies now that I would describe as "non political." This was achieved by having small, well-defined teams. One company had extremely clear paths for promotion and raises, the other had no framework whatsoever. In each case, the culture was defined every day by a manager - company 1 was the sales division lead, company 2 is the CEO who sits several desks to my right.
I not only think it's possible to have a non-political system, I've lived it twice. I think cynicism is easy, and that's why people call folks like me "naive."
What can a higher-up do to prevent the political game?
This. But to take it further, you better be ready to hustle your ass off. Because you need to bring money in which means meeting new clients 24/7/365.
Good luck. It’s an impossible amount of work to do alone so hopefully you have a good network.
The "trick" is being socially skilled and interested in others, to get them to trust you with jobs that are large enough so you don't have to be constant lookout for new assignments. (I do not mean to imply that you lack social skills). I have a small client pond (50-75 contacts on first name basis) where I'm becoming the big dev fish and people have started sending referrals my way nowadays.
Your point about going it alone is valid - I chose to partner up because of the crazy amounts of context switching solo operations require.
SWE did good work, got passed over for promotion several times, got mad and quits cushy software job to freelance. Everyone sympathizes because everyone thinks they do promotion-worthy work.
Yes, you might have customers to answer to, but you can always tell them to fuck off if you want.
You suffer the consequences and reap the rewards. Your actions, small or large, matter.
Yes, working for a corporation is safer and more stable. In the grand scheme of things, this is the risk-adverse, safe thing to do.
The OP may waste years of his life, or he may not. He may end up poorer than when he left or he may not.
You never know until you try. Take it or leave it.
So it's all fit & personality.
It's similar to having FU money as an employee but on steroids.
My point is less applicable to freelancers with one/few customers and more directed towards operators that manage product/service oriented businesses with dozens/hundreds/thousands of customers.
> single client
You described the difference.
In regards to rewards vs consequences, my point is that in a workplace you're abstracted away from the direct results of your actions (as OP mentions in his post).
You can be rewarded for other people's contributions (while having made no contributions of your own) and vice versa. When I worked in corporate, this lead me to experience a somewhat "wtf is the point" type of existential crisis.
When you're running your own shop, you have a much more "direct" relationship to your actions and the resulting outcomes. Not just in terms of costs and rewards, but also in terms of just seeing the direct "value" your actions provide. I mean think of all the countless cubicle jobs or professional services jobs where the sum of your productivity is basically meaningless, just random filler designed to keep the machine moving... (think of all the business consultants spending 80 hours week at the client site putting together decks that no one will read or remember in a few months)
It's the process overhead that most people complain about. Instead of adding value to the company, much of your time is spent on managing process for the sake of process.
For example, defining your work to maximize the chance of promotion may only correlate with company value.
I can relate to this. I became bitter and angry when I did not get promoted several times and was told that the company expects "more". I became a person I am not proud of.
My question is how does one extricate onself from such a bad place?
What makes so sure? Have you started your own thing? Glad to hear about your story/lessons learned.
Simply be realistic: the company will not be perfect, will not be accurate in assessing value, but it will not necessarily be evil about it. It will simply be imperfect, just like anyone else including yourself. There are always reasons why things work the way they do. The ability to understand and work with those reasons is a valuable skill that a CS program will not teach you.
I disagree. There is a whole category of people who want high reward for their efforts. There exists no way to get high rewards or royalties outside of starting your own venture. The downside is the risk of course.
I do agree that you shouldn't be angry, but there are so many new ways to exist and survive these days.
I basically mess around writing software—something I like doing—for 6 hours a day, attend a few meetings, and every month somebody deposits a ludicrous amount of money into my bank account. And I'm not even working for one of the larger companies with correspondingly better salaries.
I'm certainly not going to become a cash millionaire off the back of it, but I'd wager that in aggregate the amount of investment one makes into a stable job at a large software company pays out more on average.
People routinely get paid £100k straight out of university to write code in London, just not in the tech scene. Total comp in the financial sector with 5 years experience is commonly £200k.
Which is not 'ludicrous' but more than you might imagine from seeing £40k job postings in the web dev sector.
Total comp of £200k/year is clearly possible but also just on the investment side (not writing software for support systems) and usually involves some risk (i.e. income is volatile). Finance easily pays 2x that of tech in London but only because tech doesn't pay very well. A lot of startups pay programmers not more than you'd get with any other office job which is clearly not comparable with the US.
don't be so sure. invest 10-20% wisely and you may be one sooner than you think ;)
My point is opportunity cost. Unless you have a very clear idea of what you want to do/build--which many people do--you're better off with a day job.
I see a lot of people essentially rage-quitting (let's be serious, that's what happened here) and then wasting years of their life working bottom-of-the-barrel contracting/crappy startup jobs because they "don't like big companies". I made this mistake and it's cost me enormously in money, time, and career development.
That's basically what I am doing for exactly those reasons. But I don't think my jobs are crappy.
I traded stupid amount of money for more freedom to choose what I work on. I don't want to be a monkey on a keyboard nor do I want to put with the bureaucracy of a big corporation.
Or am I getting it terribly wrong? My brief view of a large organization terrified me and I don't want to work in such a place. Are big places really that much better if I am basically paid the same amount of money?
A lot of software engineers fail to realize that at a corporate gig you get to focus on being a programmer. Once you move out on your own, you also take on the job of sales, accounting, HR, etc. Your next step is hiring people to handle those jobs but that moves you from writing software to being a manager. Running a business is a different set of skills from software engineering so be prepared to learn something new.
Having one boss that can fire you sucks, having 100 clients that can fire you is fantastic (you can also fire them).
Now it is difficult to get to your necessary X number of clients (I'm 44 and on startup #8). But not having to deal with stupid inane bullshit incessantly while working is like winning the lottery.
My current full time employment is run like a middle school popularity contest. The company is so shittacular I don't think I've been at worse in my ~30 years of working. This is saying a lot as I've also worked in fast food, construction, healthcare, my own shitty startups, a MLM, among many others.
I busted my ass at a startup for years and also lost the political game. So I'm speaking from experience here.
You can either get all mad and worked up and pissed off about it, and waste years of your career (as I did) being pissed off, stubborn, and refusing to change. Or figure out how to play. I'd like to think there are places with better politics but I think it's pretty endemic of large organizations. I'd love to be proven wrong.
The thing is, "working for yourself" is so flawed in so many ways. In the first place, nobody "works for themself". You might work for customers, or clients, or whatever, but not "yourself". Second, you're a lot better off working at a good company -- MUCH better off -- unless you have a pretty damn concrete idea of what you're doing. In addition to the income, the big company will provide better networking, more credibility for anything you do subsequently (whether a new job, fundraising, hiring--ANYTHING), it's an all-around better gig.
I'm just trying to save you a lot of wasted years and time here. Take it or leave it.