How do you keep software engineering fun?

I won’t go into an entire diatribe around AI and its influence on software engineering. There is a ton of content ranging from influencers like Primeagen talking about this to written articles and social media.

My subjective starting point is:

  • LLMs are here, they’re not going away.
  • They have clear benefits impossible to ignore.
  • They undermine learning for juniors.
  • They cause skill atrophe in seniors.
  • The trajectory of sentiment if job satisfaction is negative.

What I want to know from people with software engineering as a day job, particularly those working in a team where they provide technical leadership is have you found ways to reinject the fun into software engineering. A basic response would be “just don’t use AI bro”, if that’s your solution fine - but unhelpful. For those of us who embrace it or don’t have a choice… I’m curious about if you’ve found something that helps the team stay motivated, gives encouragement and can make working in a team fun again. Any serious answer will likely be a nuanced trade-off discussion, I expect a “it depends” - that’s fine and still helpful. What’d be great is an example of how you managed to convince the business side that just optimising for productivity metrics is counterintuitively a bad move. I’ve had little success on that one in particular.

So yeah, how are you keeping AI from sucking all the fun out of software engineering without sticking your head in the sand and pretending as if it doesn’t exist and isn’t transformational?

I did not. But I work for a very small company where I have a LOT of freedom to do as I please without getting micro managed. I do use AI but mostly for small contained things or research tasks.

Uber blew threw its entier AI budget this year in the first 4 month. Pointing out things like this might work? As far as I can tell unless you are investing in local AI it is bound to get significantly more expensive (or worse for free / cheap plans).

Yes agreed it’s better in a small place. Earlier this year I worked for a consultancy with thousands of devs. Now I’m at a start-up with 14, so I get way more autonomy. It’s exactly in this environment where I want to improve things. The leadership is reasonable for the moment but at the end of the day it’s a startup, founder/CEO has their eyes glued to stuff they see on LinkedIn, reading Garry Tan’s blog etc. and the “100x your team’s productivity” messaging is like prosperity-gospel for beancounters. Even in this small team I find that it’s hard to keep the youngsters motivated, particularly around learning - the message they got is “you don’t need to learn anything except AI of course” So upskilling them a bit on Docker, AWS, Hosting, basic software engineering practices, bit of DevOps - they’re not as receptive as grads were even just 3 years ago. I honestly think they might not consider it worth learning how these things actually work; that to me is even more frightening than the industry layoffs.

So I’m hoping for tips anyone has figured out in how to make it fun the way it was 10 years ago. I don’t yet accept that it’s just over and we’ve got to get with the programme of agents doing everything.

2 Likes

citation needed.

Fuzzing on crack? Sure. Insane output of unmaintainable code? Yes, again. More efficient research (aka faster than stack overflow), sure.

But actually doing much for sustainable software projects? I have yet to see proof of that. Only thing I see in the real world it projects that use AI for writing code, go down in quality. Like MS, Spotify, macOS, github…
Happy to hear a counter example.

What about the millions and millions of bug reports and vulnerabilities discovered either with or by AI?

Im assuming they know you can just ask your favourite chatbot and it will give them mostly correct steps in a short time. Thats basic stuff.
And they wonder why this boomer (how they see you) insists in trying to teach them stuff they will 100% use an AI for anyway when on the job.

Its math class all over again, nobody back then was solving anything harder than basic algebra by hand anyway, especially on the job. Why do i even need to know how to solve integrals.

The only way to bring back their interest is to teach something they actually need.

So in this context, teaching them notions about the topic that make them better at prompting the AI to get there faster. You can try reframing the basic notions you are teaching them in this light, if its at all possible.

If all you are teaching them can be gotten in a second with a basic prompt you are wasting your and their time.

Sure we all hope the bubble is going to burst but the “learn this in case the machine oracle breaks” only goes so far. How many people learned enough math to handle anything complex “in case you dont have access to a calculator or smartphone”?

Welcome to the transformational aspect of AI, if its such a big tool a successful teaching curriculum has to keep its existence and use in mind, otherwise its just a repeat of school bullshit all over again where you mostly get taught obsolete technical information and old propaganda.

1 Like

@starshipeleven

I’m sort of with you, except that we have an accountability gap; I can’t hold Claude accountable for its errors. If our solution needs X, Y and Z - I need us to know those well enough so that someone can feasibility be held accountable for releases and code. If no one can pass the whiteboard test, that’s irresponsible use of AI which is ultimately on leadership. I don’t want this discussion to be around the “stick”, I’d prefer to hear if someone has found “carrots” for the team.

@ThisMightBeAFish

I’ve seen seniors build things with AI at ridiculous speed and the result was maintainable, testable and performant. They could’ve built the same thing without AI, albeit much much slower - but they brought their experience and taste into the process. I’ve also seen things, particularly on the UI side that I’ll humbly admit I don’t know how to build; I’d be able to figure it out probably, I’ve needed to build tons of things I had no idea how to when I started - we all did, that’s the job. And of course I’ve seen the slop you reference, lots of it.

So, one way we can help avoid the slop is improve the enjoyment of developers so they take pride in their work and don’t just become Claude-jockies. I’ve seen devs go from highly motivated self-starters to full learned-helplessness and hating their job in the last ~12 months. I’ve even noticed some of that in myself, so I quit my corporate consultancy gig and I’m now at a start-up where I can actually decide how I work and provide a better path for the small team.

I have regular individual check-in meetings with each team member, they’re not expressing the “OK boomer” attitude you describe, they want to learn but they don’t know if what they’ll be learning is useful. They actually ask me how I know some of the things I know, so they’re teachable and curious - but somewhere it’s undermined before they actually do the hard yards.

My theory is that it’s the fun factor. Claude is very impressive the first time you see it do something. But being impressed and enjoying your work are totally different things.

That’s what I’m fundamentally interested in learning about from this thread.

1 Like

I’ve found it very useful for personal work.

At work though, ooof, way too much unverified slop sent my way. The stuff is way harder to read and negatively impacts velocity and maintainability.

Management doesn’t care though, they’ve increased their targets without verifying and people are fleeing this sinking ship.

Juniors are happy since they have to put in less work and aren’t really interested in learning in-depth.

1 Like

I have a lot of thoughts on this matter as I’m currently living it myself from multiple angles. Although I’m “older” in the field, I’m one of those ‘perpetual kids’ at heart and have never thought of myself as a “senior”. I hope I don’t end up a broken record on the forum :roll_eyes:.

My feeling is that the loss of “fun” isn’t because an LLM can spit out quickcode or boilerplate; I think it’s because the tools have ripped the curtain back on how dysfunctional, bloated, and gatekept the traditional ‘corporate software ladder’ actually is.

For decades, the industry rewarded knowledge hoarding. People built entire careers on gatekeeping arcane syntax, obscure framework quirks, or tribal infrastructure knowledge (we all know the type and interact with them even on this very forum). That WAS (and they think still is) their leverage. It gave them status, safety, and authority without requiring them to be even decent mentors or prolific builders.

AI demolishes that moat overnight. A junior with decent architectural logic and an LLM can bypass five layers of senior gatekeeping in an afternoon. That terrifies a specific class of ‘seniors’, and their reaction is defensive resentment rather than curiosity. Afterall, they’ve already learned enough in ‘their’ lifetime right?

Worse than the hoarders are the empty suits, the middle-management and “senior-in-title-only” types who pushed far past their technical competence using corporate politics and 1980s-style bro-douche posturing. They hate AI because it’s an exposure machine. When an LLM can draft the spec, generate the scaffolding, and point out architectural oversights in seconds, the people whose entire job consisted of shuttling tickets, sitting in standups, and acting as self-appointed arbiters of competence are suddenly laid bare as the dead weight they really are.

On the junior side, accountability gets distorted from both directions:

Slopitty Slop-slop: Because young devs see the gap between their baseline and senior expectations closing fast, the temptation is massive to treat an LLM as an autopilot rather than an amplifier. If you just copy-paste without ‘grokking’ or ‘clauding’ the underlying failure modes, you end up with fragile systems nobody can debug when things hit the fan.

  • Leadership blows: The juniors who do want to learn the right way look up and see leadership either boasting about obsolete credentials or actively resisting learning modern tooling alongside them. Software development isn’t just low-level syntax wrangling anymore, it’s rapidly pivoting into higher-level systems architecture, orchestration, and project execution. But instead of teaching system design, seniors demand respect for knowing things the machine now handles faster, better and with less ‘back in my day’ bullshit. If you find yourself in a leadership role (or are now), In the words of one of my favorite movies: “…don’t be that guy”.

When juniors see their mentors panicking, posturing, or pushing them toward busywork, learned helplessness is the natural result.

The OP mentioned founders glued to LinkedIn gurus selling “100x productivity crap”. That’s the classic corporate grift repackaged. Most modern software outfits operate on the Pareto principle at its worst: 20% of the people carry the entire technical load while 80% manage the optics, shuffle meetings, and sell other people’s ideas.

When leadership treats software like an assembly line where you just crank the “AI lever” to get 100x output, they aren’t building a sustainable engineering culture. They’re chasing vanity metrics for investors. If your daily reality is being an uncredited prompt jockey feeding a broken Jira backlog to juice an executive’s slide deck, of course the job isn’t fun. It’s soul-crushing.

Why I feel that software was fun a decade or two ago was agency, mechanical sympathy, and the thrill of building something tangible from raw logic.

The real unlock right now isn’t trying to fix broken corporate structures that were built to protect middle-management bloat and the bro-douche at the top. The unlock is realizing that the tools finally give individual engineers the leverage to bypass the circus entirely. Here are a couple of my own thoughts and realizations in the field:

  • What I try to teach is to treat AI as a force multiplier, not an oracle. It doesn’t replace the need to understand how the system fits together, it just eliminates the tedious friction between having an architectural vision and compiling a working test binary.

  • Give them high-velocity autonomy. An engineer with solid fundamentals and disciplined AI tooling is effectively a self-contained engineering team. You don’t need a committee of six ticket-pushers to validate an idea anymore. The ‘fake-it’ tools will float to the surface quickly.

  • Let them build real things and own the outcome. The fun comes back when you have skin in the game - whether that’s taking contract work on your own terms, building lean products, or contributing directly to open-source tooling where merit and clean code actually matter, not corporate pedigree and ‘playing the game’.

  • Most of all: It’s OK to break things, building it better is the fun part - celebrate how to fail then learn. I have a blast with a team when we can laugh at ourselves and giggle like school girls about how horrible our work blew up. Make it fun to fail, make it rewarding to fix and collaborate.

If a team wants to bring the fun back, leadership needs to drop the ego, kill the productivity theater, and give devs total end-to-end ownership over architectural problems. And if the company won’t allow that because they’d rather optimize for buzzwords, younger devs need to realize it’s completely viable to take their tools, maintain accountability for their own stack, and build their own path.

5 Likes

Thanks for the thorough reply, this is great. I especially like the quoted bit. I’m going to float this with the rest of the leadership to see to what degree we can action this. I also like the dismantling of needless bureaucracy.

1 Like

It’s not fun. That’s why they pay you to do it.
I personally use AI to answer questions or propose solutions. I know I learn better by doing, so I ask for basic examples and then implement by hand. When something doesn’t work I ask AI why.

Like I said

I have seen seniors build things very fast with AI at ridiculous speed, and the result contained errors that they would have never done, if coded by hand. Yes, the inital time to market was faster. But the quality was worse, and some time (maybe not all of it) that was saved during the inital phase, we spent on bug reporting and fixing later on.
So IMHO it is like taking out a loan. Sure you can buy lots of things in a very short time. But you will pay for it later on.

LLM can also work for certain projects where acccuracy is not important. It is like face detection in your photos, it does not really matter if the result is 100% correct. But for many things, you want a accurate result.
If LLMs are so great for coding, why does MS not fire up a million agents and fix Teams? Why does Spotify, who has not written a single line of code since dez 2024 (according to their CTO) gets worse by the day and not better?

I don’t want to turn this conversation into the Pro vs. anti AI conversation. It’s a useful conversation being had daily in a million places; we’ve established Claude Opus can greatly help us deliver.

A lot of effort needed to be shifted from the development side to the QA side, and that’s holding us. We don’t just use AI to spawn tons of slop PRs - I have rules set in our repos that agents are allowed to do code or tests, never both - they’re not allowed to change existing tests without confirmation either. It’s not perfect, sometimes I believe it’s too restrictive but a free for all with agents is a snowball of crap no one can vouch for.

I’m very familiar with the cons, I’ve been bearish on this for years but this year I had to acknowledge that the benefits can outweigh the costs, at least on the surface. This second-order effect of tanking developer satisfaction is what gives me more pause than code quality to be honest. If the code were consistently stellar but the team was miserable I’d throttle back AI use on that alone… but before I do that I’m trying to learn from other leaders how they balance this with their teams.

Thanks for the input, I do agree with some of the points you raise even if I’d also push back on other points.

2 Likes

Not sure if it’s how you mean it, but if your point is development work does not need to be fun then I guess I just fundamentally disagree.

I’ve found people and teams do their best work when there’s creativity and enjoyment in it. Doesn’t mean it’s a kindergarten and we’re playing around and experimentation all the time, but if basically all of it’s a miserable slog justified by “well you get paid well so suck it up”, how can I expect to keep the people I invest time into to stick around? I’ll have the dead-sea effect within a year. Since I got out of corporate FinTech consulting, it’s no longer viable to treat people as interchangeable or for churn metrics to just become accepted. In that game it’s the reality and it’s a necessary evil for the model to work. I’m fortunate enough to be able to help create a different incentive structure.

These incentive structures change when you have 10, 30, 100, 500 plus devs. I’m optimising for the 10-30 phase of our company in a time of great uncertainty within the development industry.

2 Likes

By not working as a software engineer! I used to, up until Pretend Intelligence made it not fun.

The PI made it not fun in a few ways:

  • Confidence that you’d still have a job in a year (rightfully) dropped massively, it really kills the vibe! I get the feeling many leaders are biding their time, waiting with glee until they can lay off more pesky workers.
  • The job itself, just kind of sucks. Code review wasn’t something people loved, now it’s most of the job - reviewing coworker generated PI slop for errors. Proposals, designs, emails, messages, blog posts, PI generated. I just can’t be bothered reading and reviewing that sort of stuff…
  • I don’t like developing a professional dependency on proprietary SaaS things like Claude. It is not where I think technology should go. Maybe local LLMs will save the day, but my work wasn’t going to fork out for good ($$$) GPU when it’s likely inferior to what OpenAI and Anthropic are selling and every single other dev in the company is using cloud LLMs.
1 Like

I wonder if hackathons would be a solution. We started doing hackathons at my work a few years back I think we did about 3 of them. It was very fun, lots of new ideas and innovations. Being a small office it was able to be cross teams so it wasn’t just devs in the teams. Everyone presented what they had built or tried to build after the 24 or 48 hours.

It was great for team building and helped push creativity. Of course the business did stop to focus on it save for active sales work or tech support. But the momentary drop in productivity pushed new ideas into the business some that ended up being implemented and bought people closer even across depts and it was… FUN

Obviously the projects needed to be business focused not personal projects. I’m not sure if that always needs to be the case as spurring creativity is probably going to increase skills. Whenever I’ve looked at new hires I’ve tried to find ones that do coding as a hobby not just for work… There weren’t many to be honest. I hope my decade old GitHub with 150 repos helps me get a job one day.

1 Like

I’ve started fiddling again with electronics and microcontrollers like the RaspberryPi Pico to get a tangible end result such that even if I use AI at least I still get my hands dirty in a way and no one can point out for the sake of argument that Claude et al can do the same thing in less than half the time.

Professionally though? Eh, it’s really not as fun or engaging as it used to be. It’s not really the code generation that gets me down by putting my intent into English instead of TypeScript or the huge amount of code skimming I have to do, what really irritates is the LLM speak and reading prose that wasn’t written by a human (warts and all, both).

1 Like

As someone who’s relatively new to working in the software realm, agentic coding was really challenging for me at the start. At the time it really took off, I was surrounded by incredibly talented senior devs. They were able to leverage agents so much bc of their years of experience, but I struggled bc I was still relatively new. It was challenging to articulate this to them due to the curse of knowledge, and likely their own excitement about being able to build instead of manage.

I’ve gotten better with agents since then, but there’s still a ton I need to learn. It’s difficult, especially with the external pressure to set a higher pace of business. Hackathons can be helpful, but the participants need to have autonomy in their ideas. I was at an org where one year they let groups pick their projects, and the next it was assigned from the product roadmap; that sucked all the fun out of the hackathon for me.

It’s challenging to learn given a tool that can seemingly do anything you need it to. For instance, I started learning a new programming language recently, and I’m trying to use LLMs to help expedite the process. I still am working thru leaning the syntax and patterns manually, but I know I could just have an LLM write the code for me. It takes effort and willingness to learn, sounds like your juniors have that, so they probably need the opportunity/time.

Spending time on something that doesn’t move the needle for the business is always a challenge, but I suspect that’s what’s needed. Give them small challenges (1-2 hours max) and tell them they’re not allowed to use any AI tools. If/When they get stuck completely, they should ask someone for help, not an LLM. Struggling thru problems is how I learn best, and from experience it’s the same for many others.

I also wonder if group PR reviews should come back? I never participated in one but I did hear about them before I got into software. Again, it can be rough bc it’s a time sink and people don’t generally like reviewing PRs (plus it’s another meeting). Despite those aspects, I could see a group PR as beneficial since it would give senior devs a chance to teach the juniors, even without trying. An offhanded comment or question about changes, can really make a difference, but an online review is unlikely to be seen by others if they’re not reviewing or responsible. I’m sure that’s not a popular idea, but it’s an idea I think is worth trying. I go out of my way to read/review PRs that have nothing to do with me bc I learn a lot. One company I worked for did weekly “system review” calls where someone shared what they were working on, kinda like a group review but more sharing than reviewing.

You might also suggest they add some lines to their AGENTS.md to challenge them about why or how a decision was made, or to explain (always concisely) why it makes more sense to pick a certain path (when the LLM chooses the direction). The tools that make learning harder, bc we end up doing less, can absolutely be made into useful learning tools (assuming the outputs are read). I have my agents write a “lessons learned” document for every project. It helps the agent avoid making the same mistakes, but it’s also useful for me, and sometimes I ask the LLM questions about its entries so I can gain the knowledge from its mistakes (forking the sessions to continue the work while asking questions helps a lot here).

Regardless of AI tools, I think the biggest thing that can help people learn and grow, is an environment that permits failures. Be clear about what type and where failures are “safe” and let the juniors make mistakes there. Fear of failure holds people back and can prevent people from leaning. Confidence generally comes from the mindset of, “I can figure that out,” but without working thru failures, that confidence can’t be built. This is something I haven’t seen at many larger orgs, but smaller startups tend to accept mistakes will be made, it’s important to be clear about what’s a ‘safe’ mistake tho.
I also find that environments that encourage questions and challenges can help me grow. I do it everywhere, but I often have to tell people that I’m doing it bc I want to learn and not bc I’m trying to be a jerk. Not everyone is like that, but fear of failure or looking “dumb” can hold people back from asking questions. I’m the idiot who will ask the “obvious” or “silly” questions bc I don’t have that fear, but I know others do. I think having an environment where failures and asking questions are allowed is absolutely key.

One last idea that’s more stick than carrot, is to simulate a Claude outage, or early limit overage. Have them try to do at least one step without an agent, this is especially difficult when mid “vibe” on a project. It’s a real problem they’ll have to face and learning how they can tackle that is likely to be a huge help. Might be tough to avoid using the tools, but it’s a great learning opportunity. Maybe during the next outage, check in with them to see what they have going on and how you can help them get unstuck (if they are).

I assume most of not all of them got into software development for a reason. That’s probably something to ask about too. Knowing their “why” might help you understand what it is they’re most interested to learn about. The fact they want to learn is great, hopefully these ideas give you some ideas on how to help that. Personally I’m the most excited when I leaning something new, and especially when I get to use or share that knowledge. I suspect that for most, learning is the means to some end, for me it’s what I love, so asking about their interests will probably help figure out what they’re most interested in learning.

2 Likes

Thats so dirty omg… its like corporate being excited saying they bought pizza but its one hawaain pizza and they sliced it into 32 pieces for a team of 40.

1 Like