When I say tech company, I'm talking about companies where software engineering skills actually matter. where a O(n²) algorithm also will cost your business. In my definition of a tech company there are tons of new things happening. Look at the spaces like AR, self-driving, rocketry, and machine-learning, and computational photography — no one in any of those fields is doing the same thing they were doing even 2 years ago.
How would you describe the difference between those two types of companies?
I'm finally to the point where I'm confident enough with my career to actually make noise and complain about things that I'm tired of dealing with which I wasn't in my 20s, but now I'm dealing with my complaints not causing any change in the end.
Some of the reasons
1. boredom of doing the same thing over and over in a different languange/framework
2. Still have to get "permission" from (possibly younger) manager before doing anything.
3. Have to leetcode after work to switch jobs.
4. Have to keep learning latest framework after work.
5. In direct competition with new comers who are much hungrier and with ppl who don't have many personal responsibilities.
6. Honestly, it feels a bit weird to be the oldest person on the team by a huge margin.
7. Younger devs assume you might be bad at your job to not grow in your career and don't give you much respect.
> 1. boredom of doing the same thing over and over in a different languange/framework
Sounds like being stuck in the same junior developer position for the rest for your life. Not really common.
> 2. Still have to get "permission" from (possibly younger) manager before doing anything.
What's wrong with that? Age in no virtue per se, and really it's the same situation in military, business and other organisations elsewhere.
> 6. Honestly, it feels a bit weird to be the oldest person on the team by a huge margin.
Not in an appropriately senior role.
> 7. Younger devs assume you might be bad at your job to not grow in your career and don't give you much respect.
Never an issue if you can step in and do their job if necessary.
Example: the almost universally used service infra where I work is a nightmare of excessive context switches and tuning to avoid starvation/deadlocks. Why? Because the kidz who developed it apparently didn't read enough to know that the basic paradigm it's based on is known to have such problems. The people around me think this is normal or inevitable, and just live with it, but even the person who did most to popularize these ideas recanted a decade ago. Too bad; we're just stuck with it, because it's the young folk who refuse to learn.
Your older coworkers probably haven't lost their "building muscles" and aren't reluctant to learning anything. They're reluctant to repeat or build on past mistakes. Overall, your comment seems like a good example of how older programmers are often misrepresented by those who don't share their experience. Let people represent themselves.
... In some fields of software engineering!
There is a whole world of Software Engineering outside Web/Infrastructure. There are plenty of Software Engineering fields out there where slow changing standards and toolchain reliability are considered a valued feature.
That said I don't disagree with the need for self-study in Software Engineering, I just disagree that this need originates from some issue with the high churning of languages/tools/frameworks(which is local to Web/Infrastructure)
In the last three or four years, I’ve been going back and forth between C# (.Net Core) using Visual Studio and Javascript (Node), Python, and Go using VS Code. The setup was. 1. Download VS/VS Code 2. Install appropriate extensions .
It makes no sense to me to try to stay up to date with front end development when front end developers are rapidly becoming a commodity with a bunch of boot camp grads. The money isn’t worth it.
In my 20's I used to enjoy coding just for coding itself. I was always excited to learn a new language, a new library/framework/etc.
When I reached 30-ish, I was more interested in building things. The "coding" part was more of a chore to be honest, I just liked doing it because there was a product to build to solve problems. And the thing is, I can probably build any product with the languages I know today. So many of these "hot new things" are just rehashing ideas that have been around for decades.
After decades in the field, I feel like I'm mostly always doing the same thing. Grabbing data from here and there, making sure I rate limit and fail gracefully, serialize shit and deserialize a response, or vice-versa. Writing software is just plumbing and it's infuriating when people just keep changing the size and shape of the pipes just for the sake of it. That's why to me the actual product being built is more important than playing with tech just to play with tech.
I went to school for CS and ended up being a data janitor. I get paid FU money to do what is essentially ETL in many fancy and various forms. All the excitement is gone.
Got half a mind to switch to interior design.
Do I need any of that or is it worth it? Surely not. But the freedom I feel now making 3x what I did when I worked in retail is something I can't really put into words well.
I also think there's a frustration limit. Like if your spouse is being a jerk, the kids are being dicks, and the plumbing broke you don't want to mess around with a new technology. You want something easy and easy is what you already know.
>I feel so broken because of it and I know my next job is going to be a third of what I'm paid now because it won't be software.
I would not do that. You're probably just burned out. Take some time off and switch jobs before switching careers. Especially one that will pay 1/3 of what you make now. At least start saving up 2/3s of your salary for a while to see what it'd be like.
I'm currently saving about half of what I make. Finances will be easier when I'm not the only one with an income and my partner is days away from a very probable job offer.
I'm wanting to transition to project management and eventually product management. Product management can pay pretty well ($150k+) once you're established. I can afford to not really save much for 5 years until I'm back into six figure income.
It's shitty because it doesn't advance me at all, there's no room for growth, no opportunity for learning something that would be meaningful at literally any other job, there is zero social aspect to it since I'm 100% remote and work on projects alone, all my coworkers are on the opposite coast of the country.
I have tried using my free time to get more familiar with ML/AI stuff but my brain just shuts down as soon as I begin to try. I would love, in theory, to transition towards AI work but the learning curve feels so steep. But the pay would be great, I think there is an absolute shit ton up upward room to grow, I could probably work on some pretty interesting problems (though I'm sure there's tons of "make ads more effective" ML jobs out there too). Maybe if I take some time off work I can try to get back into it, spend 6 months learning, and try to get an entry level ML job.
Fast forward to 2016, I was married, with a step son who was a freshman, tired of working on yet another software as a service CRUD app at my 3rd job since 2008 as an IC, and jumped on an opportunity to be a dev lead at a medium size non software company.
I thought the next step was to either stay a hands on dev lead/ “architect” and just muddle along for the next 20 years, go into management, or go the r/cscareerquestions route and “learn leetCode and work for a FAANG” and move to the west coast.
Neither sounded appealing. Then management decided to “move to the cloud”. I didn’t know anything about AWS at the time and saw how much the “consultants” were making and that opened my eyes. If these old school netops folks could pass one certification, click around in the console and make. $200K+ a year, imagine what I could do if I knew AWS from the infrastructure and dev ops side and I knew how to develop and architect using all of the AWS fiddly bits.
It took three years and teo job changes in between, but I really like consulting. It’s the perfect combination of development, high level architecture, customer engagement and you never know what you will be doing in three months - or in what language.
I started looking for a job and got lucky that another company was trying to build an in house development department led by a new CTO. They had outsourced all of the development before.
The new CTO was very forward looking and wanted to make the company “cloud native” and improve the processes. He only had a high level understanding of AWS as did I. He took a chance on me and I became both the de facto “cloud architect” and the person he called when he wanted a customer facing project done from the ground up without having to deal with the slow moving “scrum process”.
I was quite happy at the company and would have stayed a couple of years probably even knowing I could make more money somewhere else and then Covid hit along with an across the board pay cut.
I was still not really looking, a 10% pay cut at a time when we couldn’t travel or really go out was an inconvenience but not earth shattering.
Then a recruiter contacted me for a software development position at Amazon. I wasn’t willing to relocate or do the leetCode monkey dance but we talked a little and then she forwarded my information to a recruiter on the AWS side.
I saw the interview process was basically a high level technical interview to determine whether I knew the basics of AWS (I did) and all about the Leadership Principles. I knew I could answer the “tell me about a time when...” questions with the best of them and the interview process was going to be fully remote.
To keep a long story from getting longer - I work at Amazon as an AWS Consultant from the comfort of my own home in the suburbs in a low cost of living area.
Anecdotally from our conversations, I would say that they see computer programming as being less valuable than people programming. My friends do have lots of ideas for things and one in particular will keep saying that he wants to "re-learn iOS dev" or "learn Elixir", but he never does. I've started down the path of learning how to angel invest, which is where I'm trying to learn my people management skills.
> Would you trade places with any of those friends?
Absolutely not.
> Would either of them trade places with you?
I doubt it.
> Do you have an 'exit' plan out of software engineering or do you plan to stick with it to the very end?
I'm already on a trajectory where I won't need to work a traditional job the rest of my life. None of my friends who are climbing the management chain are anywhere near that. I honestly love building and learning (I just finished up a 3.5 day hack-a-thon yesterday). My next path will lead me either to building a company, helping people start tech-enabled companies or helping someone co-found a company. Unless I become a CEO, I don't plan to stop programming.
Actually I'd say that's a sign of maturity. They've grown wise to the idea that our industry has a fetish for reinventing the wheel and refuse to take part in it.
Hey! Objection!
I'm a software engineer and I have no need to keep up with random web frameworks popping up left and right. I'm fine writing my C++ and C#, thank you. I have to keep up to date but the stack evolves over a decade, not every quarter (or what ever the cadence is for web stuff).
Become an expert in a field and then it's irrelevant if you know framework xyz or not - it's no longer a critical requirment. It's critical you have domain knowledge, and what ever the tech stack is it's expected you can get up to speed in it just fine on the job.