Retiring sounds good right about now.
Retiring sounds good right about now.
I'm with you. If I had another skill, I'd give up computers entirely. Maybe have a smartphone, and that's it. But only for limited use.
I wish I could build things with my hands, or play an instrument, or just be good at something else, and let the tech world pass me by. I used to love technology because it was fun and interesting. It's no longer either of those things.
Maybe you can segue into that?
Or maybe you can build and test drones. And the noise from the spinning propellers adds to the mystique of robotics development.
Not saying you have to keep working in tech forever, but I don't think it's objectively stopped being fun and interesting.
I disagree with this and feel this thinking makes peoples lives miserable thinking they're somehow wasting their lives and makes people take plunges in life that they later regret.
I feel there is space for an attitude that, to learn a craft you need to toil and master it with deep dedication and practice. Mastery, will bring with it naturally that joy that we seek.
I think if people consider their craft as bigger than themselves, with an attitude of humility and learning they will get the happiness and satisfaction of building things. Rather than seeking a job that's somehow obliged to give you that happiness juice..
Its short, only a few short paragraphs - but it has one key piece that I've found myself oft quoting to people:
> Maybe this is what people mean when they tell us to "find our passion", but that phrase seems pretty abstract to me. Maybe instead we should encourage people to find the hard problems they like to work on. Which problems do you want to keep working on, even when they turn out to be harder than you expected? Which kinds of frustration do you enjoy, or at least are willing to endure while you figure things out? Answers to these very practical questions might help you find a place where you can build an interesting and rewarding life.
> I realize that "Find your passion" makes for a more compelling motivational poster than "What hard problems do you enjoy working on?" (and even that's a lot better than "What kind of pain are you willing to endure?"), but it might give some people a more realistic way to approach finding their life's work.
--
I enjoy software development - and I do so because I enjoy solving those problems. To me, software development is like being paid to solve sudoku puzzles all day long (and yes, I watch cracking the cryptic from time to time)... well, at least when I'm not in meetings.
One of the important skills that I now realize that the dreaded math classes that I disliked (integrations and eigenvectors - ugh) was about the skill of continuing to solve the problem rather than giving up (and searching for the answer). Yes, there's a place for people who go to the back of the book or Stack Overflow for the solution - but many haven't learned the hard skill of continuing to solve the problem when its not easy.
As an aside, it is interesting looking at the history of other submissions from the same author - https://news.ycombinator.com/from?site=uni.edu
Trying to progress in your chosen craft when you find the actual challenge to be sheer tedium is deeply demoralising and can affect other aspects of your life. In my case it lead to feelings of helplessness and pointlessness.
Such a great link - states the problem succinctly and provides an excellent heuristic. Thanks for sharing.
Thinking that life would have been better with someone else, is just an escape for the mind which makes people miserable!
The secret is to roll up your sleeves, and put in the work!
Though that will change soon thanks to a fantastic liquidity event.
I'm looking forward to leaving this industry in a couple of months and living comfortably on my low- to mid-seven figure exit.
Just became a real estate agent.
I'm now trying to decide whether I should attempt a medical degree to become a doctor. It will take ~7 years, a lot of unpaid study and work during that time, and after 10 years, if I'm lucky enough to become a consultant hospital doctor, I'll still be paid less than I am now, both per hour and per annum. As I'm in my late 30's with a mortgage and family who are dependent on me, it's a big, big commitment and risk to take.
Still, I vastly prefer my time spent with my pre-hospital medical colleagues and with patients to that which I spend working in software. I get an incredible amount of "life satisfaction", or whatever you might call the sentiment, for this part of my professional life - the only other time that comes close is my time in the military.
Also, the pay is less than a normal software developer.
I am well aware that software developers on the whole have much better than average remuneration, so it's understandable that positions in other fields will attract lesser pay. However, another point which I didn't labour above (because I'm not sure if it's universal or in my own country only) is that student and junior doctors are expected to work absurd hours, often double the 48 hour per average week limit set by the EU Working Time Directive.
I'm currently (as in right now taking a break from) studying for the HPAT standardised test in my country in preparation for applying for medicine in the coming academic year. Although it's not particularly complex, I'm aware that if I had spent the time that I dedicated to my EMT qualification and now the HPAT, I probably could have added hundreds of thousands to my annual income as opposed to a decade of ~€15 ph labour.
This isn't so much a reply to you at this point as a lament about medical care is undervalued. I'm a competent software developer at best.
Check out the uni job boards.
Have you reviewed how much sleep deprivation would be involved in the path towards being a doctor? It differs depending on the path, but middle-age and lack of sleep may be very hard (source: have multiple surgeons in my near circle). But it is very specific to the path you pick, of course.
I am currently trying to see if I can find a niche in healthcare, away from my software manager job, but am taking it slowly. For me, the 7 years of school are impossible, so no doctor for me. This comment is not meant to be in any way discouraging, and it may be presumptuous of me, as you have perhaps spoken to multiple doctors in the field interesting to you.
The feeling of tipping the needle towards keeping someone alive is incomparable, best wishes with your path transition, whatever it ends up being.
Yes, I have. My first career (maybe employment path) was as an enlisted soldier. It took some modification of sleeping patterns to go from probably the laziest teenager you can imagine to an NCO at age 18.
In Ireland, where I live, all junior doctors work absurd hours and call shifts. Theoretically, they all opt out of the EU working time directive. As a long-standing proponent of labour rights and as one of the few prospective doctors who may not require a salary to fund legal action, it would be my intention to go through the (even without free-out-of-hours-labour) ridiculously exploitative process on my own, and fight for EU-backed terms for myself as a test-case for my future colleagues.
Of course, even many doctors consider the "crucible of fire" an essential part of becoming a doctor, so it would be an uphill battle that would only affect a precedent in one tiny country (Ireland).
I have no interest in becoming a martyr. I also have no interest in becoming a doctor. I have an interest in being able to provide the highest level of pre-hospital trauma and medical care to patients in distress.
In Ireland, that means becoming a doctor. Unfortunately, becoming a doctor who works reasonable hours might require becoming a martyr.
>I am currently trying to see if I can find a niche in healthcare, away from my software manager job, but am taking it slowly. For me, the 7 years of school are impossible, so no doctor for me. This comment is not meant to be in any way discouraging, and it may be presumptuous of me, as you have perhaps spoken to multiple doctors in the field interesting to you.
I didn't in any way read your comment as contradictory. In fact, this is almost exactly how I how felt. At some point in the last five years, I became aware that all my military first aid certs were out of date, and began my training as an EMT. Once I passed all the tests (which involved a lot more study and testing than any CS degree exam I ever took), I began to volunteer.
As an EMT, which at least in Ireland is 1/100th of a medicine degree, I became involved in more critical care cases in my first year than a junior doctor might see. Due to the SAR nature of my role, there is unfortunately a high likelihood of exposure to death, but every experience is a learning experience.
However, if your goal is to help people in acute distress, then becoming an EMT (or even lessor qualification) who can act as an immediate cardiac first responder is a great option.
> The feeling of tipping the needle towards keeping someone alive is incomparable, best wishes with your path transition, whatever it ends up being.
This is such a truism that I feel huge parts of the healthcare system relies on it. It's certainly true for me. I honestly feel it would be true for many others if they could see the direct benefit of their efforts.
I am aware that this is an absurdly long and rambling response to your comment - I reckon that I’m probably struggling in the same position as you. If you want to DM me, please do - I’m very open to feedback.
My latest foray before the current re-attempt, I was only able to secure part-time EMT positions, (volunteer with pay), but to get to a position with a regular schedule that would fit my other obligations would require going to more school than I could do at the time.
Whenever one talks about medicine / patient care with fellow practitioners, it is also fascinating to note how different we all are and that the field can accommodate many, of those willing to pay the price.
EMT to the general populace was not something for me, I found dealing with families in distress more emotionally draining than any unconscious patient, regardless of their state. So what would work for me, it appears, is either work removed from patient family interaction, or medical systems work, whatever it may be (innovation, tech collaboration with surgeons, etc. They are starting to use 3d modeling side-by-side during surgery now, etc)
Yes, the family is probably in the worst stress of their life, and, if you have the luxury, one aims to include them in your care protocol, attempting to at least assess their level of distress so they don't suicide or collapse in the next 24 hours, but you also have a huge ticking clock for the primary patient...
It's been over forty years and many organisations haven't learned a damn thing from it. I don't blame developers for it, there are no dicks and idiots involved here.
Read one of those books now and it will still feel like an epiphany.
I think they all have weak spots but any one of those will indeed illuminate one on how broken pretty much every place is. I’d like to try working at bridgewater where there are less games played.
One thing I’ve noticed is pretty much nowhere wants to acknowledge and act on employees emotions (for better or worse).
I love this comment https://news.ycombinator.com/item?id=16603929
And this article is pretty good:
Couldn't agree more. I'm an SDE1.5 at best, working with a guy that's probably a 3.5. Writes code that's way over my head sometimes, and always well-tested and elegant.
Lately I've been helping him by debugging issues in eg tsconfig and various JS build fuckery, and it's been both a relief and a surprise that even really brilliant people struggle with a lot of the same stuff I do. It's not (just) that I'm stupid and unintuitive – the tools are too, even for experienced engineers.
However, I still find satisfaction in learning new things, trying to be better each day, overcoming new and more challenging problems and solving riddles in a nicer and more elegant way. I fail in all these things, too, of course - but it does give me a sense of purpose. And I don't appreciate any tool that comes my way, I'm picky that way. I love Python for its stdlib, React for its declarative nature, C for its simplicity... and avoid dealing with the JS build system of the month as much as I can. Enough to understand, but I try not to lose too much time and mental energy on them.
That said, if I didn't enjoy programming, I would be happy to move to management or even leave the industry to become a carpenter. I think that as long as you do something meaningful and also help other people (so that you can live off it), it doesn't matter much what that thing is.
would you go for project management in particular or are there other paths?
25+ years in, I get little joy/fun from constantly 'fixing things' that shouldn't have needed fixing (or nearly as much fixing) had people planned ahead, or communicated, or tested, or just listened to the people they'd hired that do these things (plan/communicate/test/etc).
My personal plan, instead of retiring, is to work on inventing solutions to the issues plaguing large and complex software projects. One of my primary sub-goals under this mission, is to create a new programming language that'll handle complexity excellently, while also making it hard for a programmer to write bugs in it (strong static type system, deep static analysis, thorough linting, some kind of automatic proofing or verification, paradigms that make writing bugs less likely, paradigms that handle modularization and complexity gracefully, etc).
Overall, when there are big problems in the world (poverty, human rights abuses, climate change, bad software), I want to try to use my skills and abilities toward solving those problems, rather throwing my hands in the air, and giving into hopelessness.
The problems with software engineering aren't technical. They are organizational, political, and cultural.
You are describing one set of organizational and cultural problems with software engineering that can only be solved through a cultural and political approach
Other organizations and cultures have different sets of problems.
Then the code base becomes a mass of spaghetti that at this point the revolving door of devs have to both figure out and keep alive in ever increasingly stressful situations until they either burn out or move on for greener pastures perpetuating that cycle.
So far in my career the split is 60:30:10 places who don't care about actual engineering and run their business on crap, those who recognized things are biting them but the amount of inertia you need to counteract things and rebuild is huge and then the very fine percentage of places that actually have a good culture around engineering.
The first is horrible because you're a fungible asset and the job is miserable the second is better but still bad because at this point they do see you as valuable but you're going to be spending your time digging them out of a grave and then the third is just a magical experience where you're valued and the codebase isn't constantly a light breeze away from collapsing.
The majority of the industry is in position 1 and I guess we'll see if it ever makes it to 2 or 3.
Worth noting that I made high salaries and could work from home in every case but it would be correct to say I continue to enjoy programming in spite of the industry.
I also don't think it's a coincidence that companies who are in group 3 are typically leagues ahead of 1 and 2.
It seems like businesses want the expertise of a 20+ veteran, but want to hire 18 year olds, so they can pay them less, and dangle silly trinkets like free cafeteria food in front of them.
Oh and, why is it taking so long to work on it?
The place I work instead can charitably be described as "a victim of regulatory capture," but at least I'm working in a business that I believe has a legitimate reason to exist.
Thankfully, I am not required to work, and have been having the best time I could imagine, since giving up on working for others. Instead, I work with people for free, on projects that I think are constructive and give back to society.
I am working from home, doing something that I enjoy tremendously. I'm doing the best work of my life. I just got done refactoring a fairly large backend that I wrote a couple of years ago, and am actually thrilled at the quality (and quantity) of my work. It's driving the application that I'm developing. I wasn't satisfied with some of the popular offerings, and had already written the backend as an exercise, so I used that, instead. It just needed a bit of tweaking to fit the new application.
I love programming and system design. I'm really good at it. I write code every single day of my life (My GH profile is solid green, and it's not "gamed"[0]).
It's just that I found others are not interested in working with me. It hurt, as I had spent my entire career, working on teams, but I rubbed some dirt on it and walked it off. In the aggregate, I'm actually glad that I went through that.
They want senior level to help them maintain legacy systems or lead the upgrade to latest tech stack.
If backend is your specialty, market oneself as expert in backed solutions using latest stack. The fundamental CS principles never change. Learn the basics of cloud, containers, orchestration, micro services, and inform recruiters about experiences delivering solutions in latest stack.
The recruiters will be rushing to your profile and demanding interview slots.
Good luck.
The backend was just a more challenging project. I won't go into all the reasons that I wrote it, but it works a charm. A dedicated backend engineer could probably do better (actually a dedicated backend team. I'm fairly productive). I'm just glad I have a use for it. I was assuming it would never be used. I wrote it on a lark. Took seven months, but it was fun. I do stuff like that. A number of years ago, I taught myself to program Android, but decided I didn't like it, and never followed through.
As far as recruiters...They do rush to my profile. I have a lot of nice buzzwords.
As soon as they find out how old I am, though, the call suddenly has "connection problems," and I never hear from them again.
I've taken to making sure that my age is clear upfront, just to save time. It's amusing how quickly they start discouraging me. They start by lowballing me, and when I make it clear that I would have no problem working for low wages (I do it for fun, and I don't really need the work), they start trying to find other reasons I wouldn't want the job.
Like I said, I bailed on the rat race. It was just making me grumpy.
Become an expert in latest tech stack and experience in delivering solutions to clients. These positions are extremely difficult to fill, so recruiters are more open to older software engineers.
Open the door to yourself by expanding opportunities, vendor companies, contracts, freelance, start your own company, etc. There are so many problems in software and so few high performance engineers, globally.
Sometimes, you may be the only person in the world with that specific tech stack and experiences. Demonstrate the solutions and many companies will have to bring you on board, FE or contract at least.
For most companies, the age thing isn’t the issue. It’s that older software engineers have stagnated and won’t be able to keep pace. When you demonstrate high performance and solution delivery, age becomes less of an issue.
Never even comes up. Like I said, I've been doing this for a loooooong time. I have a massive open-source portfolio[0]. Much of it is days (or minutes) old. I've been surfing the leading edge for my whole career.
No one ever even looks at it. I've learned that if they give me a binary tree test, I might as well just end the process. They want kids straight out of college.
In one case, I was approached for an ObjC job. I sent them links to several repos (shipping apps that they could build, run, and test) that used ObjC.
They completely ignored it, and gave me a 50-line binary tree test in Swift. They also dinged me for using quality coding/documentation techniques.
I did OK, but not great. I generally do mediocre at leetcode. I spend exactly 0.0 hours, practicing it.
It really isn't my imagination. It's real. I have a Facebook "friend," that is a young man. Nice guy. We get along great. We don't mix, too often, as we travel in different circles, but neither of us has any problems with the other.
His profile background is a desert scene with "SHUT THE FUCK UP, BOOMER" over it, in big text.
If it was "SHUT THE FUCK UP B***H" or "SHUT THE FUCK UP N*****R", he would be [rightly] excoriated and shunned by his appalled friends.
But as long as it's oldies, he's actually cheered on.
This is the current environment that those of us "of a certain age" have to deal with.
Kicking back at older folks has been something that has been going on for thousands of years.
The difference, in my opinion, is that companies are now often run by twenty-something CEOs. In the "old days," the companies were run by older folks, and there was always a cultural structure in place, that ensured that youthful exuberance and rebellion would be tempered by experience, age, and meticulousness. It was enforced by fiat; sometimes, to a fault. I think that we need to have a hybrid; not one over the other. Most of the teams I worked on, had a great mix.
Nowadays, no one wants "Grandpa" saying annoying things like "I have found that I can't rely on system garbage collection, because of the memory and performance hit; especially in threaded applications."
So, the solution is simple. Don't hire oldies. You'll be selling the company before the system goes pear-shaped, anyway, so...win/win.
In my case, I like to design and implement software architectures that are supposed to last for many years, and have significant effects on the lives of vulnerable people, so I don't do a slapdash job. That's basically heresy, in today's world. Some time ago, I read a comment that basically went "If you do not get physically sick, looking at the code in your MVP, you are spending too much time, worried about code quality." That's kind of a "zeitgeist," right there. The very fact that I could pick up a project that I wrote on a lark, two years ago, blow the dust off, give it a couple of tweaks (actually, it was a refactoring that took a couple of weeks. Bit more than "tweaks," but I was adding additional functionality; not fixing deficits), and use it as the backend for a fairly advanced app, shows that the way I do things has merit.
When the full time offers slows down, I’ll take on vendor and contract positions. When the contract positions slow down, I’ll start my own vendor or consulting company. I’ll hire younger sales and product people to be the face of the company.
I always look for solutions to problems, implement the solutions and make adjustments when needed. This is the kind of solution oriented mindset that helps get offers and land clients.
There are so many software engineering problems and so few people that can deliver the solutions. There’s no real competition, younger or older. There are enough to go around for everyone.
Good luck to you.
On the other hand, someone telling other people how to handle ageism should definitely be prepared for such a question.
Conditional on the person I replied to's comments, if he/she is 60 I can perform a particular probability update, if they are 20 then I'll perform another probability update.
tl;dr : if you tell people how to handle aging, your own age becomes relevant.
It’s like any other problem, there are solution options. Some people switch to management. But ageism affects management too.
Focusing on the age doesn’t help I any matter. Age is simply proxy for stagnation to most people. The common euphemism is you can’t teach old dog new tricks.
Focus of solving problems and delivering solutions utilizing latest tech stack and design patterns. Effectively demonstrate these dynamic abilities and open the doors to opportunities.
Not necessary. I'm living the dream, right now. I worked for many years, to get to where I am now.
The fact that I'm not valued, simply as a function of my age (I'm 58, BTW), is annoying; a bit hurtful, but not crippling, at all.
As a matter of fact (not theory -fact), I'm more productive that I've ever been in my life, I learn more quickly, and more holistically, than I ever have, I use tools more effectively than I ever have, and I am enjoying what I do, more than I ever have.
There's the most positive thing that ol' Freddy once said: "That which does not kill me, makes me stronger."
I had to go through the rejection and humiliation to reinforce and realize my own sense of confidence and self-reliance.
I can tell you that the folks I'm working with right now, are basically pinching themselves.
Have you considered that this might cause you to be perceived as a hobbyist?
I don't care. If anyone perceives me as such, then they are just another person that didn't bother to click on the link, and find out more about me. I'm not particularly interested in working with folks like that. I don't hide a thing. Maybe the [0] thing is confusing, so I'll do it inline, this time: https://stackoverflow.com/story/chrismarshall
It's all out there, for anyone that wants to find out. I guess that it's a sign of the times, that no one is willing to do that. I was a manager for a couple of decades, and would have killed for that kind of information. I can't even image hiring an employee, based only on a short schoolboy test.
Of course, that cuts both ways. People may look at my code and articles, and decide they don’t want to work with me, but at least they are making an informed decision.
I worked for 27 years, for one of the most conservative Japanese corporations in the world, and had a position of ultimate trust. If you know anything at all about this kind of corporation, then you know what that means. I strongly suspect that it would be very, very difficult to find anyone as Honorable, Reliable and Dependable as I am.
The entire tech scene is built around hiring ADHD kids, paying them sick money, and keeping them for 18 months. There's a vast industry, based around providing cultural and technical infrastructure to support this. The fact that you need to test applicants with leetcode says it all. There's no Trust, no Integrity, no Honor, and no Loyalty.
That goes for both corporations and employees. Everyone is out for their own goals; damn the company, the employee, or the team; let alone the customer (who are treated as product, these days).
I am a person of tremendous personal Integrity. Word is Bond. That goes as much for free, open-source efforts, as it does for paid ones. I have an enormous, years-long portfolio of very, very high-quality code, dozens of articles on Medium and my own sites, going into great detail about my personal philosophies and processes, and a decade of checkin history.
If no corporation values that, then that's OK with me. I know some folks that can't afford to hire me, but value my Integrity.
And, as far as "carrots and sticks," they have these new-fangled things called "contracts." I hear they work fairly well.
Had I not tried the self employment route I'd probably have starved to death or had to work at a gas station and then starved. I wasn't really ready for it either but that was the option. I live and breath programming and absolutely love it. I have since I was in my early teens. At this point though it's looking more and more like I'll have to do something else to get by. I actually always did want to be able to work on my own projects, but if I have to work in other fields then that will likely be the end of it. I won't be able to make enough to do anything but work.
I think it's just a hostile field in general at this point.
The industry is crazy competitive, right now. This is because of all the money to be made.
This has been both a blessing, and a curse.
One of the big reasons that I am not in a hurry to shack up with some company, is that it can easily make a joy into a horror show.
I would suggest that you learn discipline and structure, just on principle (since the industry doesn’t seem to value it). At least, you will be happy with the work you do, and that is worth more than you can imagine.
But generally I enjoy it and are not planning retirement. Will just maybe work less.
I tried that. After 6 weeks of watching TV I restarted my business and went back to work. Retirement is a living death.
Being passively entertained, bleh. It's also why I have a very limited appetite for "see the world" traveling. I can only look for so long, then I need to be doing something with a purpose.
I've seen what happens when people retire. They suddenly get old and lose their vitality. They become boring people.
My plan is to work until they carry me out in a box.
https://metro.co.uk/2018/08/08/man-turned-desert-forest-plan....
I figured out I can make a few dollars a minute sitting in front of a computer screen or I can make 0 dollars a minute sitting in front of a computer screen. Those are my two choices.
The choice is pretty clear.
But I didn't. I tried. It didn't happen.
I have to face facts, I might just be a worker bee.
(When I was a kid, I'd ski until utter exhaustion and could barely walk. But things don't work like that for the adult me.)
I guess that depends on your financial situation. When I've been between jobs it has always stressed me out. I haven't been in a situation where I was worried about making rent or buying food, but I was worried about finding a new job.
Classic "it is the other people" cope out. We all are willing participants in building that mountain of mostly garbage, and there is still huge civilization progress enabled by it.
What is it about those things that you find to be the problem?
Genuinely asking.
no one works as a team anymore. everyone gets their project, and they sometimes chat about it, but the whole group dynamic has been lost. this is huge. it almost guarantees that someone is pissed off because they dont have a voice. and that at least two developers are working at cross purposes. that someone is off diligently working on their piece without a real understanding of where it fits in.
in the absence of group coordination, there generally is little or no technical management to prop up the group. requirements are dumped on engineering without the valuable back and forth about what makes sense (and how or why)
no one tests anymore. we've all decided that those 8 units that the cicd runs on every commit is somehow adequate. alot of places dont even try to triage bugs anymore or even keep information in tickets so that someone down the line might figure it out
no one plans anymore. there is no more grand arc of the project. we just do what we can get done this sprint, and pick up a little work for the next one.
no one reads anymore. technical design discourse used to be the most important thing to do. now if you write up a draft, no one really wants to read or discuss it beyond grammar corrections
same for reviews - i've been at organizations where every PR was a chance to really get into the design choices and the tradoffs. now you're lucky to get some useless style comments
the scope is radically reduced. what used to be a glorious exercise in world building is now reduced to a choice of which large modules to use and the application of just enough glue to stick them together.
no one feels responsible anymore. the project is a mess. i've got my part and I'm doing the best I can.
One complaint I have about some agile implementations is that it takes away individual ownership and reduces larger problems to a series of less interesting choices. I agree with a lot of your other points though.
- Employers Once the application is shipped to the production team is moved to a new project or contract is terminated. Day after said release you have a legacy system that over time will just get worse. Maintenance even in big tech companies is a problem (Google). Employers would either drive a hype train and re-write their systems every year or reject any attempt to modernize legacy app. Rarely companies invest into giving time and opportunities for people to learn new things. And finally Dead Sea effect combined with Price's Law lead to some truly dysfunctional teams.
-Companies that don't know how to recognize valuable work, so they only track output.
-Cult of the hero.
-Places where learning is not part of the job, both in terms of technologies and in terms of business (as it turns out, people still learn, the bad way).
-Focus on individual performance but demands of teamwork.
-And of course, all the kinds of abusive relationship, work edition.
What really gets me is my employers hiring engineers for $500k per seat and they can memorize their way through Leetcode interviews but can't even structure small programs in a modular, easy to understand way, and when it comes to larger pieces of software, it's complete chaos.
Software engineering is extremely difficult. High performance engineers are rare and valuable. Some times, they become jaded and burn out.
This is my career and my craft, so I'm inclined to ride the waves and trends in software engineering. Negotiate for above average salary while maintaining my tech stack and producing at above average output.
Most people don't understand what it takes to develop and deploy software solutions. They only see the unicorns like Google, Facebook, and think software engineers are common. They don't see the vast swaths of land of failed software startups and dreams and incompetence in software engineering.
Most people in software engineering doesn't know or comprehend basic data structures and algorithms, which form basis for all software solutions at scale. Yet, they are filled into dev position slots by HR/management and asked to develop complex systems.
To have long term career in software engineering is like any other trade. Observe how the game is played, learn to play the game and play the game right.
A software engineer with basic skill stack and right long term view can ride the software wave for decades, just by understanding basic CS principles and utilizing them to develop solutions. Switch jobs regularly and negotiate hard for salary and levels.
I’ve been at my current role for almost 7 years. It doesn’t pay nearly what I could be making elsewhere. I’ve interviewed and been offered better money, but it means giving up the kind of work I do now for something less interesting.
I’ve turned down those offers and stuck where I am, even though it means less money. As my wife told me when we were talking about this: This is the work that you’re going to be doing every day, and that has to be worth it.
That said, there is a cost to my career sticking here instead of moving around.
High performance software engineers negotiate for higher salary and the type of work environment and type of projects. They work to live by taking control over their salary and project assignments.
Sometimes, they have to work on less interesting projects. They deliver solutions. At the same time, they regularly have conversations on other more interesting projects. Make sure they line up more interesting projects in the roadmap.
There’s more risk in stagnating position than taking control and regularly switching jobs for higher salary and more interesting projects.
There are significantly more software engineering problems than people that can deliver solutions. High performance software engineers can have their cake and eat it too.