Craft, Apprenticeship, and Rediscovering Joy in Software Engineering?

Hi everyone. I’m Jenny. I have 25 years as a professional software engineer, none of it with Clojure, though historically, I love Clojure the most for side projects.

I am burnt out. I’m now 45. I hit some sort of wall and my body has crashed, forcing me to confront a lifetime of complex trauma. I’m having serious capacity and executive function issues, and don’t know if I can hold down my day job (I work in San Francisco as a founding engineer at a seed stage startup providing infrastructure SaaS for AI-powered workflows. It’s in Go. I find myself hating Go.). Over the years, I’ve cultivated a robust meditation practice and I do a lot of deep inner work. There’s a lot of somatic-focused psychotherapeutic healing. And I’m in the throes of facing the deep seated survival-anxiety-terror that powers my perfectionist paralysis.

All of this is to say that I am experiencing an existential crisis with burnout and depression in the background. And I’ve fallen out of love with software engineering and computer programming. Applied AI is not work I find fulfilling, and I prefer building deterministic systems from first-principles understanding to being a pseudo-biologist whispering to non-deterministic and stochastic compute.

My dream is to find a much emotionally easier job somewhere that takes the craft of building and maintaining systems seriously, somewhere I can apprentice. Ideally a Lisp or even a ML. I’m so tired of startup pivoting. Yes, it’s important and necessary. (I’m a failed technical co-founder myself.) No, my nervous system can’t handle it.

I feel boxed in because the expectation for someone with 25 years within toxic recruiter culture is that I’m either performing strictly at a principal or distinguished level or I’m damaged goods. At least, that’s how it feels. Maybe I need to get away from SF and Silicon Valley. IDK.

Anyways, I’m strictly not putting out feelers for work.

Instead, I’m looking for kindred spirits. Maybe you’re burnt out too. Maybe not. But for sure you are drawn to the slow, polished sheer craft that is possible in software engineering. Do you build for fun? Want to collaborate in real-time? I actually want to pair with people on fun things. I find software-on-the-side to be so lonely. One thing I want to work on is a relational database engine that offers cell-level data lineage out-of-the-box. I find myself staring at a blinking cursor when I approach it. Maybe the emotional stakes are too high for me with this specific project. Maybe I just need to do something stupidly fun. IDK.

Bonus points if you’re in the SF Bay Area and can hack together in person.

9 Likes

Hey there! Just wanted to drop in to say that you are not alone! I’m very much drawn to the craft of building solid reliable systems from first principles although I’m much younger in my career and not so versed in Clojure. I will say that I feel pressured to become fluent in AI technologies because of how the market and job prospects are moving, but deep down I want to slow things down and build with more soul. Have you ever considered being a mentor at Clojure Camp? You’d be able to pair with others (juniors) learning Clojure and it might be fulfilling and joyful to see understanding unravel in real time. You might even be able to build people up to the point where they could hack on some of those projects you’re interest in!

1 Like

I lived in the Bay Area for about 25 years, and I never liked the “hustle” of Silicon Valley and the whole VC/startup circus. It can be a brutal work environment, and it can destroy your work/life balance.

I was lucky: I worked for Macromedia in SF for six years and it was a very chill, fun place to work. Then Adobe bought us, and they were stiff and starchy – I lasted a year before I quit in frustration. Since then, I’ve mostly worked from home, either consulting or for a very relaxed startup-like company that never took external funding.

I’ve been a software developer for about 45 years at this point. I’ve become very cynical about the industry and, right now, the job market in IT is an absolute mess. I’m not quite at retirement yet but I do not want to face the HR/recruitment engine again – it’s become a horrible “numbers game” and those of us with lots of experience are either expected to be in a top-tier role, as you said, or you’re “too old” and you can’t get into the less stressful, lower roles (I applied to and was rejected from a mid-tier engineer role – “you’re too senior; you’ll be bored”, I was told, even years ago!).

I’ll give another +100 to Clojure Camp. It’s fun helping beginners (and even non-beginners who just want to improve their craft), and there’s no pressure to take part in every activity, every week: sometimes I open up just one afternoon a week for 1:1 mentoring, sometimes I open up every afternoon, sometimes I join the various group activities, sometimes I skip everything for a week.

The other thing that I’ve found very rewarding is to work on OSS projects. You can pick and choose what you work on, you can pay as much (or as little) attention to the “craft” aspect as you want, and there’s the joy of solving fun and interesting projects – and then seeing many of your peers using your software and providing direct, honest feedback.

I just moved to Ohio, to get ready for retirement whenever that happens. Life is a lot more relaxed here, people are really friendly, it’s a lot cheaper!

Regarding AI: because I’m near retirement and have a fun, relaxed work environment now, I can view “learning AI” as a bit of a hobby to do as much or as little of as I feel like. No one is pressuring me to work with AI; my job doesn’t depend on it – I can just experiment and have fun.

4 Likes

Perhaps I’m risking stating the obvious in this reply, but I still think it might be useful to lay things out explicitly, at least from my own perspective.

On the emotional side of things, I find that it’s very similar to the somewhat cynical “money makes money” stanza. If my current long-term stable state is me being perfectly content or even happy, a lot of crap could be happening to me every day without making a dent in that overall state - there’s enough good to always compensate for reasonably bad things. If the stable state is poor, it doesn’t take much to worsen it and it can easily become a deep hole to pull yourself out of.

Given that, it makes sense to focus on obtaining and sustaining that good state.

So even if you find immense joy and satisfaction in something but doing that something exhausts you emotionally, it’s probably not a good thing to be doing right now. Maybe later, when the stable state is better, but not now.

This makes perfectionism especially pernicious - at the emotional level, it converts your energy into satisfaction (I’ll repeat just in case - that’s my own perception of things, I have no idea of any consensus on anything that I’m writing about). It’s a demanding trait that certainly doesn’t make things easier when you’re at your low.

It’s unlikely that you can just mentally turn it off. I think I have managed to learn how to do it, but often it still takes a decent amount of effort to do so. What takes significantly less effort is re-framing what “perfection” is in that -ism.

Without resorting to self-delusion, that re-framing can only be approached from the perspective of your goals. So things like “making a product” or “writing good code” or “helping others write code” are unlikely to be good goals here, in the context of perfectionism.

But some things could be good goals because for them “perfection” is not something tedious and/or demanding. I don’t know what such things could be for you, but here’s a sample list of programming-related things that I personally find distinctly net-positive when it comes to satisfaction and perfectionism:

  • Debugging things where the complexity is just right (so probably not some gnarly bug in an sprawling enterprise software with 1500 microservices and AbstractSingletonFactoryBeans). Fortunately, most of the bugs are like that in things that I have to deal with, and then they become fun puzzles. The mental goal is to solve the puzzle, the implementation of the solution could be left imperfect for now, or even left out entirely
  • Continuing the above - leaving detailed TODOs with a description of what’s not perfect when there’s no time/energy/desire to make something perfect. It’s a task that’s easy to complete, it offloads a whole bunch of information from you, it prevents forgetting, it lets others know. And there’s little to perféct unless you strive to become the Hemingway of programmers. :slight_smile:
  • Again continuing - going through old TODOs and cherry-picking things you’d have fun working on right here and now. Some TODOs might even have a speck of nostalgia in them, making the rediscovery more fun and adding to the satisfaction of completing them. Of course, it still has to be net-positive when emotionally you’re not at 100%, so keep an eye out for anything that might make your inner perfectionist twitch
  • Tailoring your setup to you, with the goal of it working the way you want. Even if the perfectionism does get in the way, the end result will still be something you yourself use all the time, becoming a ceaseless source of tiny satisfaction hits
  • Helping others with small problems. That’s one of the reasons for why I’m often active on the Clojurians Slack. It’s easy to make something perfect if that something is just a brief exchange helping someone understand the new syntax in Clojure 1.12 or something like that
  • Learning something small. It might even involve writing code - as long as there’s not too much of it so there’s no room for incessant perfection. Just watch out for scope creeps - it’s easy to start learning about hash tables and to end up reading papers on various hashes and related DoS CVEs

The common theme here is full or near full independence. Basically a sabbatical. It’s incomparably harder to get back to 100% if you have someone or something else dictating what you should and should not do.

Unfortunately, the reality for most people is that money still has to be made and a proper sabbatical is impossible. I’ve been there while I was at my lowest, but I got lucky that I got a new job that was actually fun and reinvigorating for me at the time, and I climbed out of that hole. But it also means that I can’t really suggest anything here beyond the trite “it’s important to strike a balance in everything” and “increase the probability of luck”.

3 Likes

Happening to me. I have been obsessed with Software Engineering since I was a young teenager. After about 12 years I’ve fallen out of love with the industry as well. I’ve been working at McDonalds (my first job) for the last 8 months and I’m enjoying it too much to go back to my profession. I very confused with myself and how I ended up here.

1 Like

I am a now retired software engineer with 50 years experience in the software industry. I hit the wall at about your age. Seriously. How many times can you write a loop without hating doing it? At that point I went into management. I did that for about fifteen years. The best managers are those who have done the work (also the worst managers, but I was lucky enough to be a people person that I understood not to yell at people, micro-manage, or do any of the other pathologies that sink a team). During that time, I learned how to debug people problems, how to report up. and a lot about software methodologies and team-building. About then I got laid off from my management job and started a career as a consultant, meaning that I was writing software again for other people. I learned a lot about requirements, talking to customers and tax laws. Now I’m retired and can work on my own projects. I’m getting a paper together to submit to the ELS 2026b conference, on a new version of Lisp I used LLMs to help with.

The secret to avoiding burnout is to always be learning. I’ve worked in a dozen different product domains, companies of different sizes, and different roles. In each I’ve had to learn many things. It’s kept me fresh and engaged in the industry. Again, writing too many while loops will burn anyone out. Start learning new things. It doesn’t need to be software either. During my time in industry, I wrote a Master’s Thesis, started a couple bands, learned to produce and record albums, and a few other things. The secret is to always be learning. Keep your neurons plastic (oddly enough, models of neutral plasticity was the topic of my MSCSb Thesis).