Transcript
Shane Hastie: Good day, folks. This is Shane Hastie for the InfoQ Engineering Culture Podcast. Today, I’m sitting down with John Gesimondo. John, welcome. Thanks for taking the time to talk to us.
John Gesimondo: Yes. Thank you. Glad to be here.
Shane Hastie: Now, John, you were recently a QCon speaker. But before we get into that, tell us a little bit, who’s John?
Introductions [01:09]
John Gesimondo: Sure. Yes. I’m John. I’ve been a software engineer for quite a while now, I guess about 15 years. My undergrad was actually in business. I’m a self-taught engineer. But with enough time and diligence, you can do anything. I’ve been working at Netflix for the last six years, doing various things, mostly internal tools, and this will be relevant later, but I have ADHD and definitely some traits of autism. I’m super keen on software in the tooling space, and then I really enjoy optimizing life, especially thinking about mental health and how that touches on technology.
Shane Hastie: Your talk, Achieving Sustainable Mental Peace at Work, with the twist, using Gen AI… What brought that about?
Using generative AI for mental peace [02:07]
John Gesimondo: Well, organic. I basically just started using generative AI for basically everything in my life. There’s people at work that made fun of me for this. It’s actually hilarious, but I, in the early days, tried to apply Gen AI to everything I could possibly think of just as a pure explore. When things are brand new, it’s nice to know what they’re capable of. I really pushed the limits, and I found quite a lot of sticky areas with a lot of value that were actually in this work adjacent/work support, I guess, space. Maybe you could call it the socio side of sociotechnical. There’s been a lot there that has really helped me out at work, so tried to turn it into a framework and give it as a talk.
Shane Hastie: Let’s dig in first there… You’ve been using that to support the socio side of the sociotechnical systems. Why is mental such a challenge for us in the software engineering space?
Challenges of mental health in software engineering [03:20]
John Gesimondo: Oh, man. Software is just really complicated, the way that it’s actually made. Then, it’s obviously also technically challenging. There’s a lot of needs being managed and a lot of communication and organization. Then, I find that there’s a temporal nature of everything that really messes with it.
If you can manage to get the usual corporate stuff, let’s say, compared to a non-engineering situation in a corporation, it’s already hard. There’s a lot of organizing. You have cross-functional difficulty aligning goals and all this type of stuff. But then, with software, you have this added element of the temporal nature of “why are things the way they are? Who knows actually how this software works? Why did this person make this decision? Oh, they don’t work here anymore”. That creates a whole other aspect of things that makes it impossible to really keep things structured and predictable and on time.
You’ve also got incidents that happen. You have support rotation. You have this need to focus. But then, at the same time, there’s so much work that’s going to interrupt you by the nature of how this whole thing works. Quite a lot of forces going on here and most of them don’t have good answers. That leaves you with difficulty.
Shane Hastie: You said you came up with a framework. What is the framework?
Overview of the Sustainable Mental Peace Framework [04:58]
John Gesimondo: The concept that we’re trying to get to is sustainable mental peace, which I call basically a steadfast calm while you’re in the middle of work chaos.
If we accept that work chaos is inevitable based on the reasons we just gave, then there’s not much you can do to control the environment permanently. Therefore, you have to take matters into your own hands to make sure that you can deal with living in that environment in a peaceful way. That’s where the framework comes in.
The framework is specifically limited to stuff where you can use generative AI since that was the topic of the talk. The way that I framed it is… starting from the most unstable, is basically having tools to recover quickly from emotional difficulty. Then, next up is getting unstuck when you’re stuck. Then, the next is to enhance your planning and communication skills because proper planning and proper proactive communication can save you so much of the interruptions I was just mentioning. Structure often, in this area, gives you a sense of calm. That’s very helpful.
Then, after that, now, we’re in a state that’s more stable. You’d want to try to add more time doing the things that you intrinsically enjoy and attempt to shortcut the things that aren’t really bringing you any personal value, which we now have some tools to do. Then, lastly, try to do some divergent thinking to keep things interesting, and to see opportunities, and to have some fun sometimes.
Shane Hastie: We maybe work through the different stages. It feels to me almost like a Maslow Hierarchy Pyramid. If we start at that base, recovering quickly from emotional difficulties, that just… The stereotypical engineer is considered not to have emotions. But of course, we’re all emotional beings and do respond. How do we recover quickly?
Stage 1: Recovering from emotional difficulty and getting unstuck [07:24]
John Gesimondo: Yes, definitely. I think I can group the first two, so recovering from emotions and overcoming stuck points. I think they’re very similar. They’re both often emotional in nature. When I say recover from emotions, I’m thinking a more acute situation, like some trigger big or small, or sitting in a room with someone that you really don’t like, or something… Things happen. It’s just… creates these unstable mental states. For being stuck, it’s a milder version, but it’s as practically important.
How do you do this? In either case, basically, we’re looking at a AI therapy/AI coach model. With the “recover from emotions”, I recommend using prompts that actually mention some therapy techniques, so using CBT technique or using IFS, which is Internal Family Systems, can sometimes help. Especially if the person using this already goes to therapy, this is extra helpful because it’s like having the tools that your therapist may have already gone over with you available to you at any time, and you don’t have to run the whole thing yourself. You’re still having that interaction which really helps open up.
For overcoming stuck points, it’s a blend. It’s like sometimes you need a coach, which AI… Again, similarly, you can just prompt, in a way, to ask, “Be my coach. Help me through this. Get me back to taking action”. But in other times, it can start the work for you. Sometimes you’re stuck because you have blank page syndrome, for instance. You don’t have to deal with that anymore. You can generate a crappy draft that you hate, but at least you can be the editor now, instead of a person staring at a blank screen. I think those two… You’re looking at using the AI as a coach/therapist.
Shane Hastie: Then, moving into the next level, the planning and communication, getting better at that.
Stage 2: Enhancing planning and communication with AI [09:53]
John Gesimondo: In this case, now you’re looking at, again, a mix. I guess, in this one, you’re looking at actually doing things in the standard way. I think that this one touches on the neurodivergence themes a lot because this is where, at least in my experience, as someone with ADHD, my thoughts are very scattered. Actually, getting them into a structure that other people understand is not a free exercise.
Now, with copilots and such, that exercise can be actually fairly close to free, I would say: dumping a bunch of bullet points and making sure that I covered everything, and asking for a review and to expand the set of points to a proposed audience, like, “If I were this type of person, what would I say? If you were that type of person, what would you say?” Agreeing on the content and then refactoring. Put it in programming terms, the whole thing into exactly the way that the target audience would expect to see it. You can even get that down to quite local. Giving an example and a prompt, in this case, is super helpful for structure, tone, language.
As much as I love creativity, as a neurodivergent person, when it comes to planning and communication, the less creative the end result is, the more buttoned up and structured and follows-what-people-expect it is, the less people will ask you questions and interrupt you later. They’re the reason for these things. At least in my experience, the way I’m using this is as a shim. I call it the neurodivergent planning shim. You’re just taking away the code-switching that I would have to do to write this myself and delegating that work to the AI.
Shane Hastie: But it starts, of course, with your knowledge, what you’re providing it.
John Gesimondo: Yes, exactly. But that’s the fun part, at least for me. The back and forth in that middle process, when it’s about agreeing, “Is this the right content?” is really fun. Asking different personas… “What would this person say? Would that person say?” It’s a lot more efficient than actually asking those people, which, of course, we’ll do anyway later. But it’s a nice creative brainstorming at the beginning, and then just speed run me through the structuring part because my brain structure… not a natural fit, I will say.
Stage 3: Maximizing flow and enjoyment in Engineering Work [12:42]
For the add time in flow bit, this is all about… Each of us have different parts of engineering that we like to do the most. Even when you look within what I’ll call, I guess, the core loop of engineering, of actually writing code and testing it, documenting it, and getting feedback, and all of this stuff, even within that process, there’s a lot of preferences.
Even within writing the code, there are preferences. Some people like to do more theoretical stuff. Other people like to do the structuring and architecture and system design. I think that with the flow aspect here, what you’re hoping to do is spend more time on the parts you really like and less time on the other parts, and especially don’t get interrupted.
Previously, before AI was around, we all had to go to Stack Overflow and read through all kinds of different correct and incorrect answers for our problems. When you have to do that in the middle of a working session, it takes you out of the flow of everything.
Now, with copilots, we often get that information at the snap of a finger. That’s already helpful. But on top of that, I recommend tuning your overall time spent coding to be tuned towards the areas that you really deeply enjoy/that feel immersive for you and do that using any latest frontier tooling that you can find. The cool thing is that this is currently where the frontier moves the fastest, is in the copilot space. This one’s super fun to keep up to date on.
Shane Hastie: And then divergent thinking.
Stage 4: Enabling divergent thinking and creativity [14:35]
John Gesimondo: Yes. Divergent thinking is really interesting. I think this is a strength of neurodivergent people. I mean, there’s a reason why “divergent” is in the name. But, in a sense, it’s interesting because this whole framework is helping neurodivergent people and others. But for neurodivergent people, it helps them be a little more neurotypical for less cost. But in this case, this is the flip. This is like, “Help neurotypicals be more neurodivergent”.
It’s funny. My story is I’m looking for a place to live. I was considering different suburbs or, back to San Francisco, in the city. I just was stuck in… There’s trade-offs everywhere, and nothing’s capturing my attention. Sometimes when I’m in this situation, including at work, the answer is zoom out and get a little more divergent with the thinking. In this case, I asked ChatGPT for some ideas of… I asked it for some housing ideas. It gave me a normal list, and then I asked it, “Get a little more divergent with this list”. It came up with some really funny stuff.
One of them is the tethered air home. This is a living pod suspended from cables between skyscrapers, or cliffs, or large trees. Nice hammock-like structure; could be retractable, and can retract the ground level when needed. Not bad. There’s one that was really funny, which was a distributed home network, so instead of one location, your home is spread across multiple cities. But its cloud-connected lockers store your essentials, minimizing the need for luggage. I don’t think that’s how the cloud works. I don’t think that’s how physical systems work but sounds good.
Anyway, it really got me very unstuck. Now, my mind is open to… I don’t know how to explain it. That’s what happens when you do creative thinking. It just got that problem a little bit shaken up into some new directions. You can do that at work. I think especially when you look at career, or you look at people being technical leaders, you want to spend some time thinking about what could be. Sometimes, these crazy ideas turn into… They spark some actual practical ideas. It’s a fun process.
Shane Hastie: As a neurodivergent person, what has your journey been and how has the environment supported or inhibited you?
Personal journey with neurodivergence [17:40]
John Gesimondo: Well, I didn’t know I was neurodivergent until during COVID. There’s, I guess, two eras of this journey: unaware and the aware stage. I think the only time that being unaware was blissful was certain parts of school. I actually am a very, very curious person so whenever I was interested in the topic that was in that class, I did quite well. It was miserable when I wasn’t interested, but that didn’t happen that often, luckily for me. That was I will call the mostly blissful unaware period.
Where it was no longer blissful is when I started working. I think the further I’ve gone in my career, the more difficult it’s been, to be honest. As a junior who’s just expected to learn all the time, it’s school-like. It’s somewhat structured, depending on the environment. My environment was very structured, so that was great.
During mid-career, there’s a lot of learning to be done still, and a little bit more confidence, I think, in your abilities. You start to get to know your strengths, something that helps. There’s this linearish feeling/sense of learning. It’s clear that you’re getting smarter and better at this job, even if you just look at a maybe two-week basis. Even within a sprint, you’re like, “Oh, wow. That was hard. Now, I could do it again much faster”. It’s great.
Then I think it gets a little difficult after that. As a senior, it’s like the structure lines start to blur. I think that’s especially true at Netflix, but I’m sure it’s true of many places. But the structure starts to decrease, and, as you get even further past that, you’re expected to add some structure for the less tenured folks.
This is where I think the burden of planning and communicating and structuring things in ways that other people can understand and being able to manage… I don’t have an answer for this one, but being able to manage the worker… The maker schedule and the manager schedule getting mixed in your calendar is brutal when you have ADHD.
I think this is where the rigor of my systems has had to increase a lot lately because of pursuing being a technical leader. I mean, I think, for a lot of people… They just wouldn’t. But I think, in good and bad ways, my achiever side is stronger than my neurodivergence side is suffering. That means build the tools, learn the processes, add the rigor to the systems, and rely on AI so that I can have my sustainable mental peace and be able to achieve what I’m looking to achieve.
Shane Hastie: You said you got a formal recognition during COVID. What difference has that made for you?
The impact of formal neurodivergence recognition [21:03]
John Gesimondo: Oh. Yes. It helps and it hurts. I know there’s a lot of mixed feelings about finding out that you’re neurodivergent later in life. But I think, in a practical way, for me, it’s mostly been beneficial because you really have to understand that you experience things differently than the people around you to get to some point that you can do something about it.
If you don’t know that, then it feels like the world is gaslighting you all the time. Someone proposes a system, like, “Oh, just use a task list to organize your tasks”, and that system doesn’t quite work for you… Well, if you don’t know that you have ADHD, then it just makes you feel like, “Oh, something’s wrong with me, or I’m lazy, or I didn’t try hard enough”.
But if you do know you have ADHD, then you know that you should check… “Is this an ADHD problem, or is it a me problem?” You’ll find out, in this example, that it’s an ADHD problem. You just find an alternative, or you give yourself extra care and patience on the journey of trying to figure out how that works usually to find a workaround, or find support tends to work better. Definitely need patience either way.
I often see this analogy with glasses. It’s like if you don’t know that your vision is bad, and then someone’s talking to you about something that’s a little too far away, and you can’t see it, you don’t have anything to work with there. It’s a crazy feeling, like, “What are they talking about? Should I say I don’t understand what they’re talking about? Because they sound pretty confident about it. Everyone else knows what they’re talking about”. Then, it’s like, “Okay, now I wear glasses. Okay, great. Well, now I know that if I’m not wearing my glasses, then that’s the problem. I can’t see the thing because I don’t have my glasses on”.
It just gives you this sense of certainty, even though that doesn’t fix the problem, but it does make you feel better about it. You understand the problem. Then, you can start the road, I think, from there, of looking for solutions. I shouldn’t even say solutions. I think that’s a little unfair. There’s no solution per se, and there’s no… We don’t have to go fully down that road, but no need to solve the problem. But you do need to adapt if you want to work with a majority neurotypical people at work, which is usually the case.
Shane Hastie: Thank you for that. Good insights there. If we swing back around to flow, you mentioned vibe coding when we were chatting earlier. What’s it like, and how do you get into that? In the swing of that today?
Vibe coding and the future of AI in development [24:02]
John Gesimondo: Yes. Vibe coding is so fun, sometimes. Vibe coding, we’ll say, is… For those that are not familiar, I think most engineers know about copilots, like GitHub Copilot, for instance, been around for a while. But the latest frontier of this is to have an agent-based copilot, so you’re giving it one instruction.
It can go do an entire loop of work of many different back-and-forth prompts, and you can either approve each step, “Oh, I want to write to this file”, accept, “I want to write a test now”, accept, or you can just click the auto approve, and you can just sit back and watch and hope for the best. This is what we call vibe coding in the AI developer community. It’s a fun time.
For those listening that haven’t tried it, even managers, please try it because it is probably one of the most exciting yet jarring experiences I’ve had in a while, and I hear that from others as well. The jarring part is just… It’s the closest you get to that, “Are we still going to be having jobs in the next year?” But it’s just… I don’t know. It’s a mind-blowing experience.
It really flips everything that you think you know about what’s difficult, what’s easy, how I’m going to do my work from now on. When should I use this? What is it good at? But let me tell you, on the other side of it, it’s so hard to abstract any actual lessons from these experiences. What is it good at? You just try, and you find out. You’re either really delighted, or you’re basically trying to pair with a under-educated intern. One of those two, and you don’t know until you try.
Shane Hastie: Lean into the unknown and experience the flow.
John Gesimondo: Totally, totally. I see a lot of people… I guess we could combine this with divergent thinking as well because that allows you… If you’re coming up with what you think are crazy ideas, and they’re in the software space, it is easier than ever to make a prototype through vibe coding, especially that, because I think the big open question is, “What kind of code quality are we making for the maintainers of all this stuff?” But if you want to just play around and make a inspirational prototype of something, it’s never been easier. Just open up your favorite vibe coding copilot and pray.
Shane Hastie: The tester in me shutters.
John Gesimondo: Absolutely. Absolutely.
Shane Hastie: John, some great insights here, and some really interesting stuff. If people do want to continue the conversation, where can they find you?
John Gesimondo: I think LinkedIn would probably be best. My username on there is jmondo. I’m occasionally active on Twitter as well, or X, and that’s also @jmondo. I’d go with that.
Shane Hastie: Thank you so much.
John Gesimondo: Thank you.
Mentioned:
.
From this page you also have access to our recorded show notes. They all have clickable links that will take you directly to that part of the audio.