This Is Not Your Last Job
v5.chriskrycho.com
v5.chriskrycho.com
I thought my last job (joined pre-pandemic) really could have been my "forever job." My "work persona" was the closest to my actual self in my whole career. It was fun and exciting and the people were amazing! We worked on a great product, shipping features and solving challenging engineering problems, using the latest tech.
But the pandemic absolutely decimated their amazing culture. Company growth slowed, focus shifted to cost cutting, there were a couple of annual merit increase freezes, company policies were incrementally changed to be less generous (the number of company holidays were reduced, sick time was tracked separated from PTO, etc.). All the best people left for new jobs by that point, leaving behind, well... the people that couldn't leave. The culture bar wasn't upheld in hiring, and the company culture diluted further. The company that emerged at the beginning of 2023 was a mere shell of the company it once was and I had to leave.
A corollary to the second law of thermodynamics is that everything goes to shit over time - including companies and culture.
I always keep my running shoes around my neck and stay prepared to change jobs.
The sad part is that the culture that was so nice wasn't predicated on future growth. It wasn't like we ran out of runaway or anything and suddenly couldn't afford the perks. None of them cost dollars that would actually appear on the budget and productivity's tanked so not really sure what they bought here.
I genuinely don't understand "symbolic cost cutting" where they just artificially make it shittier to work there. It just makes people quit— and if you're thinking, "well that's why" they're desperately trying to get people to stay and will do anything as long as it's nothing.
Reminds me of a bill hicks bit:
> I was in Nashville, Tennessee last year. After the show I went to a Waffle House. I'm not proud of it, I was hungry. And I'm alone, I'm eating and I'm reading a book, right? Waitress walks over to me: 'Hey, whatcha readin' for?' Isn't that the weirdest fuckin' question you've ever heard? Not what am I reading. but what am I reading FOR? Well, goddamnit, ya stumped me! Why do I read? Well... hmmm..I dunno...I guess I read for a lot of reasons and the main one is so I don't end up being a fuckin' waffle waitress
I’ve found that my pursuit of knowledge and intellectual stimulation is very involuntary.
I secretly want to work at the gas station, and in the kindergarten. I never had a job like this. The few non-programmer jobs I had, I automated.
That's like saying, "I do not expect English to be the primary language I use for the rest of my life." Think about what it would be like if you had to work in China and speak Chinese because all the jobs went away in America. Is that good for you? Probably not. That's what the industry does to software engineers every few years with all these languages. It keeps the engineer down by preying on his curiosity with distractions that put him at a disadvantage.
How does the effort to satisfy curiosity keep the engineer down?
I don't. There really isn't much that's new that shows up. Spend your time exploring stuff people have already done, then learn whatever version of it this employer is using as needed at work. For example, at one job I needed to learn Ruby for a project. But here's an object-based, single dispatch, dynamically typed, interpreted language with some warts. You figure out what they call the inevitable things that are there in such a language and what the warts are, read some code to get a sense for the idiom, and then get on with life. If it's your first such language it feels challenging. If it's your third or fourth, it's just filling in the blanks. SQL Server has lots of warts and differences from PostgreSQL, but the stuff you expect is all there under some name. Any distributed database has to solve the same problems as any other one.
So don't worry about the new things. Worry about the old things with staying power, and the underlying designs and principles and patterns of thought that get reused again and again.
Interested in learning the cloud and immutable operating-systems? Write the infrastructure-as-code to deploy a Minecraft server on Fedora CoreOS to Azure.
Interested in learning C#? Build Flappy Bird using Monogame.
Interested in learning how the networking stack works? Write your own TCP client.
Interested in data analysis? Create dashboards to track your budget using Streamlit, Python, and Pandas.
etc
As Bob Ross said, "Talent is pursued interest".
When I get off work, I shut down my computer and live my life.
“Life” was a part time fitness instructor that was more of a hobby than a job, running races with friends, hanging out, etc until I was 35 and then married (still married) and spending time with my wife and (step)kids until the youngest one graduated in 2020 and doing a lot of traveling with my wife post Covid including doing the “digital nomad” thing for a year.
I’ve been in this industry professionally since 1996 across now 10 jobs. I have only done any coding outside of work for 3 months and that was in 2008 and only because I had stayed at my second job for 9 years and I had become an expert beginner.
https://daedtech.com/how-developers-stop-learning-rise-of-th...
I will volunteer to work on projects that give me exposure to new to me technology. If that isn’t available, it’s time to change jobs.
I started my career programming in C across mainframes, PCs, and ruggedized Windows CE devices for the first 15 years, and working in strategic cloud consulting for the last 6 including 3 working directly at BigTech.
I’m completely different. Most of my side projects are code. I briefly gave up spare-time coding in 2017 for CrossFit, and in 2001 for kayaking, and in 2022 for studying Chinese. But it always comes back. I just love to code.
I sure would like to find other things as interesting.
I mostly had R&D-like positions, and working in a new field all the time. I’d like to acquire more domain knowledge outside of finance to grow my own business somewhere, but learning new things has just been so tempting.
I hope you didn’t decide to give up fitness for coding in your spare time and you are now balancing the two. I still work out around 3x a week.
> and in 2022 for studying Chinese
We moved to Florida two years ago. I keep starting to learn Spanish and giving up on it. There is an entire culture I feel like I’m missing out on.
You gotta find someone to talk to.
In my case, I talk with my mother-in-law every time she's here.
Currently I'm transcribing some of her diary entries on the first day of my son's arrival.
(This weekend I rearranged my entire network rack at home while changing out the UPS battery for the first time in... eight years... And then I added support for a leak detection sensor to my home automation code. Most fun weekend I've had in months!)
> If that isn’t available, it’s time to change jobs.
From what I've seen most people want to keep their cake and they want to eat it too. They're not willing to change jobs. They're also not willing to work on anything outside of work. Then they complain that their careers are stagnating.
Then again I'm biased. I work on stuff out side of work and I change jobs every 2-4 years so I can work with new technology.
Get your breadth on HN. Get out of here for depth.
It’s entirely possible that what we’re doing now is the last project we’ll all work on (I’m planning ten years on this project)
Rather than debate that, let’s just make our current projects as awesome as possible
Maybe I'm wrong. But I just don't see it. I see it greatly increasing the productivity of developers, and removing the need for certain tasks, but not removing the need for them entirely.
I’ve been using Cursor for a month or two, as it’s a great speedup and a big step forward in DX. I’ve also been periodically browsing r/cursor, to see if I can pick up any workflow tips. I can see a clear distinction between fellow devs using it as a powerful coding tool (as intended), and the no-code folks trying to use it as an application generator.
A few of the latter have some success and showcase the things they’ve built, but the majority who post on the subreddit vent similar frustrations :
- Trying to build an app one tab press at a time without understanding the code, so unable to fix inevitable problems when chat is unable to.
- Relying heavily on the Composer or Agent features, which sometimes merrily erases chunks of code or entire files. Unable to recover work because unaware of Local History or VCS.
- Running out of fast response credits because 500 are bundled per month. The ideal workflow is to give harder things to Claude or O1, and delegate easier things to gpt4o-mini (which is unmetered). But that only helps if you know which tasks are harder or easier.
It’s not, obviously, but I wouldn’t want to be in the bottom 50% … you can end up being the person who fixes the LLM-generated code but that’s awful.
Just like there are lots of layoffs now, but also many areas of new growth, it’s hard to imagine how the opportunities will evaporate.
Stay flexible and don’t drink the “end of the dev” kool-aid. Don’t paint yourself into a corner - especially not a corner that is ripe for LLM-efficiency takeover.
You guys are too focused on whether AI can code. The story is much much bigger than that.
> the master control system needed for the Optimus/droid future
all righty then.
I love my job, but I can’t see myself doing it for the rest of my life. I have greater ambitions than that, and what’s stopping me from pursuing them is that implementation of big things is really hard. If AI makes implementation much easier, then that makes pursuing those things really worthwhile.
Because, to be blunt, if you don't have that something, why would an AI doing the grunt work help you? Everyone else will have the same advantage.
And if you do have that something, why let your day job stop you from tackling it?
I just don't understand why AI would change anything fundamentally for you.
I know how to talk to people, I have 30 years of industry experience and I’m technical and up to date. Other people have that combination of skills but it’s rare enough.
I doubt AI will be getting to that point in my lifetime, but if it did, it would be amazing
Software is nowhere close to done "eating the world". I see endless opportunities to apply software to remove drudgery; anything that helps me do that faster is a win.
Fair enough. It's a very approximate model tho; even C++ is operating at a very high level of abstraction. To me, what's more important is what it does, not how it does it. To use an LLM effectively you absolutely have to understand what it's doing; for software, that's the code it generates and the domain/ecosystem the software operates in. Conceptually, it's not that different from what senior ICs have been doing for ages, when they delegate to less-senior ICs
Good for you wanting to grow and stretch your limits. I do too!
I just prefer to not do so at the expense of my team, coworkers, and community. RDD is inherently selfish, and I’ve personally been burned by others doing this kinda stuff. Maybe a false dichotomy, but I’m thinking you’re ignorant to the problems you’re causing others, or you are aware and are just a bit antisocial.
Open to having my mind changed though!
That being said, yes people can take it to the extreme just to put something on their resume...working on unrelated nonsense at the expense of the team. I've been on the receiving end of this and can't stand this immature behavior.
In fact, the two times I've experience it, it was the least concretely useful person on the team (but not a junior). When their BS is called out they ended up leaving one way or another instead of changing behavior.
This is different from someone who loves learning and applies broadly learned lessons in day to day work.
Chris is one of the most thoughtful and insightful engineers I can think of. He has a love of actual programming, but also deeply cares about how programming and technology have an influence on us as programmers and the rest of the world.
Given that, this post is him expressing his interest in learning technologies because they look interesting and potentially useful, but also giving reasons to _keep_ learning over the course of your career rather than getting stuck in a rut.
I whole heartedly agree that it’s important to keep learning over the course of your career. And I believe you that the author is aware of the nuance. But I think it’s also incredibly easy to read this piece as “add rust to your .net shop because it’s good for your career”.
I don’t know the author. But if I had to pull numbers out of thin air and take a guess, I’d venture 95% of .net shops where an engineer said “let’s do this new thing in rust” was overall a terrible decision for the team and a good decision for the individual engineer, everyone else be damned.
It’s wholly unfair of me to criticize the author specifically without knowing the context of the problem he was solving. My original comment was not worded well, but it was not as directed towards the author as it reads as, but more as a general counter commentary to the point the author was making.