Decaf Coffee, Tech Specs, and Claude Code

TJ Miller (00:00)
Hey everyone, welcome back to the Slightly Caffeinated Podcast. I'm TJ Miller. Hey Chris, what is new in your world?

Chris Gmyr (00:04)
and I'm Chris Gmyr

Hey TJ, so yeah, kind of busy week, kind of getting back to things and just busy with all the things. Busy at work, busy outside, get a bunch of scout things to do, have family coming into town this weekend for my daughter's third birthday party. We're just doing a small thing, but like a couple of cousins and my mom are coming into town. So yeah, just a lot of things to juggle. not yeah, not too bad though.

TJ Miller (00:29)
Yeah.

busy. Yep.

Chris Gmyr (00:36)
But yeah, taking a half day tomorrow, just coming out early in the afternoon to go pick up my mom from the airport and just trying to fit everything in where I can between today and tomorrow.

TJ Miller (00:47)
Yeah, man. I, jeez. Yeah, you've had a very eventful last couple months, You've just been going.

Chris Gmyr (00:51)
Yeah.

Yeah, totally. then, yeah, then the following weekend, Mother's Day is that Sunday. So if you have forgotten or need to do anything that is definitely on the radar. But my wife, we booked her a weekend away like a little cabin kind of clamping spot for that weekend. So she's going

TJ Miller (01:00)
Cheese.

I need you to.

Chris Gmyr (01:19)
next Friday to like midday Sunday. So she's coming back Sunday for lunch, dinner, whatever. So kind of giving her a break from the craziness of the last month or so and taking the kids like a hundred percent for like all my travel and stuff like that. So it's like, yeah, Mother's Day weekend, go for it. So I love the kiddos by myself. So I have to find something to do next weekend to keep them busy, but we'll get there when we get there.

Gotta get through this weekend first.

TJ Miller (01:45)
Yeah, jeez, I gotta get some Mother's Day stuff done too. Holy smokes. I can't believe it's that time already.

Chris Gmyr (01:50)
Yep, totally. So yeah, what's new in your world?

TJ Miller (01:54)
man, I feel like I've just been absolutely running for the last week. Full court press getting prepped for PHP tech. Very like in the weeds working on like workshop and talk stuff. Been a little buried at Geocodeo, which has been great. We're like working on some really cool stuff and we're also as a team like prepping for Liricon, which will be great. Yeah, and I just.

trying to find time to keep Prism moving along in the midst of all of it. But I think Prism is just going to get real slowed down over the next, through PHP Tech, honestly, because I'm just going to be so buried with that. Yeah, we got Science Olympiad kicking off again. So not this weekend, but next weekend is that Saturday is the big competition.

So that'll be the big and the last tournament. So we're doubling up this week. We're practicing tonight, Thursday, tomorrow on Friday. And then we've got Thursday next week and then like the big competition. So just a couple of practices left. The other parents in the team asked if we could double up. So I figured I'm actually getting snipped next week on Tuesday. I am expecting to like work on like be able to be back at it on Thursday.

Chris Gmyr (03:07)
Yeah, should be alright.

TJ Miller (03:08)
Uh, for, I

should be all right to sit around and coach, uh, watch kids write code. Um, so that should be fine. And then, uh, I couldn't, so I can't double up next week, but we doubled up this week and then yeah, Saturday is the big competition. It'll be, I have no idea how they're going to do.

I definitely feel like we're better, well, like much better prepared than we were last time. But I still don't know how it's going to shake out in the end. we'll see.

Chris Gmyr (03:37)
Yeah, yeah, totally. Yeah.

TJ Miller (03:39)
We're just,

we're still running through AI quizzes and just like having like, we sit down for an hour and I just basically have AI like pump out a bunch of like practice quiz questions and give explanations. I think we talked about this in the last episode or maybe the episode before that, but yeah, basically like give it practice questions and just generates more practice questions. And then whether they get it right or wrong, it gives them the explanation of the answer. So that gives them like that opportunity to learn. that's, I'm having them go through that explanation every time too. So it's like,

Chris Gmyr (04:00)
Mm-hmm.

TJ Miller (04:06)
got the question right, read through the explanation. So hopefully that just gets them super prepared. The only thing we didn't practice for is actual practical coding, because there's two pieces. There's a multiple choice test, and then there is a workstation that's got set up with a Python compiler, and they've got some question that they actually have to code around. We haven't done a ton of practice on that. I'm just hoping that like,

the knowledge transfer from all of the quizzing also helps them there. But I really wanted them to get their fundamentals down, which is where we're just like drilling this quiz stuff like every, every time we sit down.

Chris Gmyr (04:43)
Yeah, yeah, big push towards the end, but at least, yeah, it'll be off your plate very soon.

TJ Miller (04:51)
I'm excited

for it to be off my plate. think Alice is about done with it too. Like my son, uh, practice is getting, trying for him to get through. So, uh, I think he's, he's ready for it to be over also. Um, but yeah, it'll be, it'll be good. I hope they, I hope they do well. I hope they do better than last time. It'd be really great if they could place. Um, but this is an even bigger competition than the last one. So there's.

I

I don't think they're in a place, but...

they're certainly in a significantly better spot than they were last time.

Chris Gmyr (05:27)
Yeah,

do you know how many groups there are total?

TJ Miller (05:29)
I don't, I don't, more than 30, I think. It's like the whole, the whole county, like all, all the schools in the county basically participate, it's like county wide. So, uh, it would be a lot. Cause that, like that also, so that's public schools, but also like private schools and everything too. And like there, there is like a homeschool team also. So there, it's going to be like more than 30 teams for sure.

Chris Gmyr (05:54)
Yeah, yeah, totally. Well, yeah, hopefully the last few practices and go around and the trial tests will be beneficial.

TJ Miller (06:05)
Yeah, yeah, I really think so. They've been getting stronger as they've gone through the quizzes. The one thing I wish I would have, I wish I would have had time to like build something so that we could, like, I don't think it would be too much to toss something together with like Laravel and Prism to like do this, but to actually be able to keep score so we could like track week over week if they're like getting more right or if they're not, because I honestly don't know and I don't really feel like scrolling through chat history to like figure out what they went right or wrong.

Chris Gmyr (06:32)
Yeah.

TJ Miller (06:34)
So it would have been nice to have like some sort of tracking around it, but I don't know. Maybe like if I was is up for it, maybe we'll do it again next year and we'll get like a little bit more dialed about it, but we'll see.

Chris Gmyr (06:44)
Yeah, yeah, cool. That would actually be a pretty sweet project to do it in Lirwell and Prism and maybe have it tag the questions as themes or just categories or something like that. And then as it's scoring things, can be like, well, conditionals need some work, but variables are like, good to go. So.

TJ Miller (07:02)
Exactly.

Yeah, like categorize

these questions and then be able to track those categories so we can like even focus in on even more of like, all well you guys like have like almost all this stuff down, but like you said, like conditionals are a real struggle. Let's just spend the entire session today doing nothing but conditional work, you know?

Chris Gmyr (07:21)
Yeah, yeah, totally. Cool.

TJ Miller (07:23)
Sick

man, you wanna talk some coffee?

Chris Gmyr (07:26)
Yeah, so today in our little coffee segment, I thought it'd be fun to talk about if you ever drink decaf or do drink decaf.

TJ Miller (07:35)
I have, I don't actively now, however I've considered it. like, as, I mean, I dunno, so my like caffeination schedule is like, I wake up, I have a cup of coffee. Optionally, I go with like a second caffeine dose, whether that's an iced coffee, another hot coffee, an energy drink.

something I basically like it's either like one or a single or a double dose of like caffeine in the morning. And then typically around like I try to hold out until like two o'clock and then I'll caffeinate again. And again, that's like totally up for grabs energy drink coffee, iced coffee. You know, depending on what like the day looks like, maybe I'm taking Laurel out on a coffee date or something. But like typically around two o'clock, it's like a re caffeination. But there are definitely times where I that I get around to like four o'clock.

maybe five o'clock and I'm like, kind of want another like warm drink and maybe not caffeinated. That'll fade in the summer, but like, I like the taste of coffee. like, there's definitely times like later than two that I want caffeine and like coffee, but probably shouldn't. And so I've started to like consider having some like, trying to find like a really good decaf to be able to still have some coffee, but like,

not stay up all night because as I've gotten older that's definitely like affected me more and more.

Chris Gmyr (08:53)
Yeah, yeah, totally. Yeah, I don't really drink it. I've only drink it like, I don't know, maybe a small handful of times. Like, my wife has been pregnant, like we got her like a bag of decaf and just made like a half pot like specifically for her. So she would like drink half of it, like save the next half and just to throw it in the refrigerator and drink the

TJ Miller (08:55)
I don't know, about you man?

Chris Gmyr (09:23)
the cold other half like the next day, just so she could have something. But for that we got counterculture slow motion, which is really good. I had it a couple of times and it's super tasty. So if anyone is looking for a good decaf, that's a really good one. But now it's just, I don't know, caffeinated beverages. We only typically have one cup in the morning and that's about it.

TJ Miller (09:29)
Mm hmm.

Yeah.

Chris Gmyr (09:45)
and try and get that done by, I don't know, 11 or so in the morning to make sure that it's out of our systems before, way before bedtime. Cause I tend to go to bed pretty early too, somewhere between like nine and nine 30. So just got to get the caffeine out of the system way before then. So.

TJ Miller (10:04)
Yep.

Yeah, I'm typically like in bed by eight, hanging out, watching TV or whatever. And then I'm asleep by 10, like for sure. So yeah, I got it. I got to watch the caffeine intake.

by it.

I don't know, like that's the problem too. Like it's hard finding a good decaf. Like that's definitely part of the problem is like it, like the process in which you remove the caffeine from the coffee, like absolutely alters the entire experience for the most part. So it's like, it's hard to find one that like uses a good method and does it well.

So, I don't know, I'm not opposed to the idea, but it's been a hard sell for me.

Chris Gmyr (10:50)
Yeah, yeah, totally. And because we don't like drink at that often or like have that.

as part of our routine, like I'm just not going to get, you know, a whole bag of decaf coffee to sit for months and then it goes bad or, you know, whatever and not use it and waste the money. Yeah. So it's like,

TJ Miller (11:03)
stales out. Yeah. And then like, what are you gonna do

with a grinder? Am I buying like, like pre ground? Because like, I'm not going to be changing the beans out in my grinder to like grind up some decaf or because like my grinders got a big old hopper on it. Like I'm not emptying that out or measuring beans to grind for my no, no, I'm not doing that. This is just the so it also starts to get really like inconvenient with the ways I consume my coffee to

Chris Gmyr (11:14)
Yeah.

Yeah.

Yeah, totally. Before when we were doing the caffeine and non-caffeine coffee, I would pre-dose the beans, like weigh them and put them into the grinder, empty it out, and then do the decaf after that same thing. So we didn't keep the beans in the grinder. Now we do, because we just drink the same thing, and we go through it pretty quick anyway. So it hasn't been worth taking them out. We're doing the single dosing.

TJ Miller (11:48)
Right.

Chris Gmyr (11:55)
I don't know, until it comes into the routine or we want to have something a little bit later. But we have so much other stuff that we could drink. We have different teas that are ⁓ non-caffeinated. And typically always have ginger and lemon and stuff like that, too, to do a warm tea like that, which is just warm flavoring, basically. So I was like, we probably don't need tea calf.

TJ Miller (12:03)
Yeah.

Mm-hmm.

Yeah, yeah, I mean, same. And we're back into the summer months and my wife was spent in a good chunk of her youth in the South. So like we always have a pitcher of iced tea going all summer long. So like that, like we got like a pitcher iced tea pitcher, cold brew. So there's like, you know, there's still caffeine in the iced tea, but I've never had, I've never been up until midnight going, you know, just like damning the iced tea that I drank. It was too much caffeine. So

Chris Gmyr (12:26)
Yep.

Yep.

TJ Miller (12:42)
So there's always that too.

Chris Gmyr (12:43)
Yeah, totally.

TJ Miller (12:44)
Cool, man. So I see you wanted to talk some tech specs and technical research. I'd love to hear a little bit more about this.

Chris Gmyr (12:51)
Yeah, so something that I've been basically working on since day one at the new gig at Rula is like we have a brand new team. We basically have like a fully fleshed team right now, but everyone's new, even my manager, and we've been tasked with like a bunch of like small projects within like larger like projects for other teams. And like we just started getting some word on like our own kind of greenfield projects.

And with everyone ramping up in various stages, so a lot of people have been ready to code. Some people are still doing the team and company onboarding. So we've needed some work to do. ⁓ So part of my responsibility is writing up these tech specs, which are basically like scope documents flagging unknowns and things that we need for other teams and stuff like that.

TJ Miller (13:28)
Yeah.

Chris Gmyr (13:41)
So this is a relatively newer process for me, because in past places, either the engineering manager has done this, or a PM, or something like that. And then I come in and put the technical aspects in there. like, well, this is going to be really hard to do, or this is going to take a lot more time, or we don't actually have this built out as the assumption is in the spec. So I'm putting some flavor and extra info in there.

TJ Miller (14:07)
Mm-hmm.

Chris Gmyr (14:07)
Here,

I'm basically doing that whole process myself, because on our team specifically, we also don't have a product person or a PM. So that kind of falls on me too. So basically for, I don't know, the two months or so or something like that, all I've been doing is writing and reading other tech specs and trying to unblock the team so that they can get some tickets and work done. But.

TJ Miller (14:13)
Nah.

Chris Gmyr (14:30)
Part of this process like a lot of it is relatively new but the thing that's a little Takes a little bit to get used to is like we're obviously like I said a brand new team Basically everyone's new to the different tech stacks and like just understanding the new business, right? so these tech specs basically have to scope out everything that we want to do in one way or the other and

Also calling out like I said, unknowns, risks, to do's like questions for other people to answer. like knowing, trying to figure out like what you don't know in a brand new situation is really challenging. And it's been a lot of like diving into other teams like Slack channels or their documentation or different code bases and repos. We have a whole bunch of repos and services and things like that of varying.

technical stacks and whatnot. it's one, a lot of work to build one of these tech specs. It takes a lot of time. It probably takes around a week with other things to do to get one written up for the draft to be done for review for others. So to get to that stage and then put it out to the broader engineering team or a specific smaller pods.

TJ Miller (15:25)
Mm-hmm.

Right.

Chris Gmyr (15:44)
and be like, well, we got to take into consideration like this or that, or what about this? And it's like a lot of things that you just haven't uncovered. So it's been an interesting balance of not getting caught up in my brain of like, you're just not doing good enough with doing the research or figuring out these things to trying to take that and be more

TJ Miller (15:50)
Yeah.

Chris Gmyr (16:07)
open and grateful for the feedback and these learning opportunities. So it's just like a really hard kind of balance to. I don't know walk and like I really want to like my the perfectionist than me like really wants to get like everything uncovered and like all these questions out in the open and like make sure I leave like.

TJ Miller (16:30)
Mm-hmm.

Chris Gmyr (16:34)
no stone unturned and then you get to the end and it's like well you missed like the stone over here and that stone over there and this boulder you know and it's like man like that kind of hurts but trying to be more open to it in those moments and being really grateful and like everyone's been you know super nice and helpful and no one's said anything like negative to me about anything it's just like a learning process but like I'm

TJ Miller (16:56)
Yeah.

Chris Gmyr (16:59)
taking that on myself in my own world and be like, man, I should have found that or should have did this or should have done that. And it's a really hard paradigm to mentally switch. it's just, like I said, a lot of work to get to the end. It'd be like, well, you missed half this thing over here and stuff like that. So I was wondering, just to put that out there, and then wondering

TJ Miller (17:17)
Yeah.

Chris Gmyr (17:21)
Does GeoCodeo do any sort of text backing or scoping docs or shaping docs? Or what has your experience been in the future with some of these things?

TJ Miller (17:32)
Yeah, man, that's so tough. I mean, I know you and I have a ton of experience with like various RFC processes from our time working together at Curology.

I don't know. It's such a tough thing. So I want to address the mental aspect of it too, where it's just...

a bit about like being a perfectionist and just like wanting to do well that like you end up like putting that pressure on yourself to like really excel at that. And I think something about that too, that

I think it's like forgotten in some of these transitions or just like not forgotten, but like, I don't know, is important about these types of transitions is like for a long time, we based our sense of productivity on not necessarily like the volume of code, like output of like code written to a certain extent, right? Like I got this feature done, that feature done. Like I got fixed to that bug. Like, and

Those are typically a little bit more like black and white tasks too, where it's like, it's either done or it's not, the thing works or it doesn't. And I think writing text specs and doing technical research is like so much more of a gray area. it's like, so there's just not that like finite-ist. I don't know, I'm struggling to find the word, but there's just like, there's not that like finality to.

that task. always, like you'd always do more research. You could always spend more time fine tuning a tech spec. Like, so there's another piece of that too, where it's just like, when, when am I actually done with this? Like, when am I at to the point where I'm ready to share this out to other people? And then getting that feedback, like, can be really tough too, because it's like, it is such a gray area and

And on top of that, you're new in a new tech stack and a new company. And there's all sorts of legacy there and trying to keep all of that in mind and still downloading all of that information as people have that feedback. You're going to get more feedback earlier in the process than later. Let's say a year and a half from now you're writing a tech spec, right?

Like you're going to probably get way less feedback on that than the ones you're writing now, just because you know so much more you can fill in those gaps. So it's like a high volume of feedback at like a sort of vulnerable time too, that like I think just adds to that pressure. And so I absolutely feel that like, especially like missing something like sort of critical or like missing like an edge case.

Chris Gmyr (19:40)
Yep, totally.

TJ Miller (19:55)
that ends up being kind of transformative to the whole thing, because that happens, right? You uncover something, and now it's like, well, we've to think about the other half of this project different. ⁓ And that feels really bad to miss those things, but you'll never catch them all. You just won't. And I mean, as far as things at Geocodeo, definitely not something like what we had at Curology, where we had this really in-depth RFC template and process and

Chris Gmyr (20:06)
Yep, totally.

TJ Miller (20:22)
I mean, there's we had like 40 people weighing in on those RFCs and it just it got to be a lot. Whereas the Geocode, there's like five of us total, like not even all engineers. There's like five of us. Right. So. I'm pretty sure it's five. I don't feel like counting right now. It's like five. Maybe. So it's a lot smaller. Right. So that's the point is it's really small. And so for us.

Chris Gmyr (20:38)
It's a lot smaller for sure.

TJ Miller (20:43)
What we typically, like what I've seen so far, like we've been kind of evolving our project management too. So we'll like, we work completely inside of GitHub projects for all of our project management. GitHub released like a really nice like timelines feature too, to be able to put together like burn down chart, like Gantt charts, I they're Gantt charts, not burn down charts. Which is like really nice to be able to like forecast and plan and kind of see the broader picture of like all the projects in motion.

we'll typically have like a main ticket for the feature and that gets, depending on what it is, like, depends on like how far it gets broken down. Like this project for implementing the new plan type had a lot of details. Like we just like worked on a new project for a new plan type. And we went, like the ticket went like pretty into detail because it requires just a lot of details and like a lot of different changes and little pieces.

And then like Matias came through and gave like his technical, like, I mean, he's built all of it. So he came in and just like added a couple of paragraphs around like, here's where you're going to find certain things. Like this thing's got to get adjusted. We got to make sure we like check these things out. And so what I've been doing now is kind of taking these like bigger tickets that like describe what the work is. And then I further break those down into like additional GitHub issues. So I've got like, just, for me it's.

that's been so helpful to kind of categorize that work. And I've been using Claude for that too, just like, here's the bigger project, take your first stab at breaking this down into separate GitHub issues. And then I'll just massage those around a bit, because I'm really not great about that. But that at least gives me the first draft, and then I can fine tune it from there, which I'm good at that piece, but that initial breakdown is like, it's always been a challenge for me. But I found that to be super helpful.

But that's kind how the project management works around it. We'll tie PRs to issues and automation, and we've got a big can-band board for tracking status and stuff. So not big or super-depth. They're super-in-depth tech specs. But we definitely do some form of it, depending on what it is. The ClickHouse stuff, I did a ticket of nothing but research.

and like diving into all of that. So like that's what I try to do too is like I try to spin up tickets for specific research tasks and that helps keep me like focused on what I'm researching too. And then it's easy for other people to come in like early on and be like hey here's the things that I'm thinking about like researching. Do you see any gaps there? And then like kind of being able to fill that stuff in early and like that's what I try to do too is get like early feedback on all of this stuff.

so that it's not this like, spent all of this time, now I've got to go like readjust everything with all this feedback. Like if I can get somebody in the door at like an outlining phase, like I'd like to do that too. Just make sure that I'm like not missing anything, you know, critical.

Chris Gmyr (23:26)
We do a lot of research and we're like spike tickets too and those are really helpful.

TJ Miller (23:32)
Yeah. Yep, for sure. you know, that's my thoughts on it. Like I think it's definitely like a valuable process. think it's tough at larger. I think it's super valuable across the board. think it's much harder to execute on in larger teams and in bigger organizations just because it does become at a certain level, like you're hurting cats to get feedback. Like I remember that was a problem we ran into a lot at Curology is like we'd write these RFCs out and then we'd have to like.

spend time going around and like farming feedback for them. Which is difficult because it's like, no, this is the whole reason why I'm doing this because I need and want the feedback, you know? Like, I mean, at least for me, that's why a lot of times what I do them is like, I need and want the feedback on that stuff less than I like.

Chris Gmyr (24:07)
Yep. Yeah. Totally.

TJ Miller (24:18)
need to tease apart the details. It's so much more for me of like, need the feedback and visibility into like, what I'm doing and being able to like come back, especially bigger projects, be able to come back to it a week in after I've been heads down and very focused and to figure out like, all right, what are the next steps? What are like, what was this thing? So I think they're also important as like a historical document.

Chris Gmyr (24:40)
Yeah, yeah, totally. And these have been great to look back into as I'm doing my research on newer projects. It's like, oh yeah, we did a project on that, you know, a year ago. And here's the tech specs for it because everything's in the same spot in confluence. So it's been really nice to have those like artifacts that look back on and be like, oh, OK, here's the decisions. Why X, Y, or Z happened? Here's like a new project that hasn't been done yet, but has been spec'd out or didn't work out for some sort of reason. So it's been.

TJ Miller (24:53)
Mm-hmm. Yeah.

Chris Gmyr (25:09)
Again, really nice to have those like artifacts in there to build on. But yeah, it's just a mindset shift really. like you were saying before, between like, you know, our days were filled with code and knocking stuff out and feeling good about that. And then as we shift into the higher or like leadership positions in engineering, it's more about like the planning and organization and like writing things out clearly and like uncovering as many

TJ Miller (25:34)
Mm-hmm.

Chris Gmyr (25:38)
you know, issues as possible before we get, you know, into the project. So it just being okay with like that new version of work and what, you know, done is. So even with the tech specs, it's like, you're not going to get a hundred percent approval on everything. You're not going to close out all the open questions all the time. It just has to be, you know, 80 to 90%, you know, good enough. And then

everything else will be flushed out in the implementation and in the actual project. As long as we get close enough and enough of the unknowns known during that process and get valuable feedback, then that's kind of the win in the idea.

TJ Miller (26:14)
Yeah, it's just, as soon as I get to a place of confidence with it, I pretty much abandoned like the process of like feedback. It's like, no, I got enough feedback. I'm confident in this. Like I'm just going to roll. And unless something like urgent comes out of the feedback, like I'm just going to roll with what I got so far. Um, so I think that kind of falls around there, like that 80, 90 % mark. It's just like, once I hit confidence, like I'm good to go. So yeah, I think it's, it's a tough mindset shift. Um, it really is. It's a totally different type of work.

But I mean, it can absolutely be just as rewarding being able to unblock people.

Chris Gmyr (26:44)
Yeah.

Yeah, totally. It's been really nice to see the team jump in and starting to execute stuff and then uncovering different things. And everyone's learning together. So yeah, it's been a really good opportunity and just different way of working compared to past teams that I've been on. So I'm enjoying it. It's different. And again, a little bit of a mindset shift in there and trying to.

TJ Miller (26:55)
Yeah.

Mm-hmm.

Chris Gmyr (27:14)
taper the perfectionism. Sure.

TJ Miller (27:16)
Yeah,

no, it's I mean, I still I still at Geocode, you'll like want to know there's places I've not worked in and been exposed to and I want.

I'm still at that place where I want to know all the things. The most recent project I was on, was like, all new area of the code base, all new set of concepts. And it was just like...

I don't know. I don't know.

Chris Gmyr (27:38)
Yeah, totally. So yeah, more updates on textbacks and such in the future.

TJ Miller (27:43)
I feel like I've come full circle and I feel like I'm writing less tech specs for humans and I'm writing more tech specs for LLMs now. I'm still writing tech specs. I'm just writing them for an LLM to do a bunch of work rather than myself. And I'm sitting back monitoring it and doing things and still making decisions and giving it feedback along the way. It's very much a pair programming process, but it all starts with a tech spec prompt.

Chris Gmyr (27:55)
Yeah.

Yep.

TJ Miller (28:07)
So

it's breaking, it's still breaking down all the tasks. It's still, you know, cause you basically treat it like a junior, a junior developer and like, you got to lay everything out and be super specific about the way you want work done. And it'll do a good job, but like, you gotta, you gotta hit that tech spec and you gotta do like, you gotta do some level of the research. can't just like, Hey Claude, make me an app, you know, build my feature.

Chris Gmyr (28:23)
Yep.

Yep,

not quite there yet. Maybe at some point in the future.

TJ Miller (28:32)
Yeah.

Yeah, we'll get there, man. So I think kind of I think it's like an interesting transition into like the next thing I kind of wanted to talk a little bit about. I've been using Claude code like the CLI. I've been using it since it dropped in preview and they've been iterating on it a lot. Like it's great. I use it every day. Like I use Claude code every day.

It hooks up to MCP servers, so you have access to all of that stuff. But it is just so nice to be able to ask questions about a code base, give it a text back, and let it start going to town on things. I still haven't gotten super into any of the AI IDs, so Cursor, Windsurf, all that.

I haven't gotten super into that, I mean, being a little terminal gremlin and super hardcore NeoVim and TMUX user, like Cloud Code is right, right at home for me. Like I absolutely love it. And I had two agents going back and forth on some feature the other day, like one writing the code, the other one doing code review. was fantastic. Cause it will pick up like when files change too. So I was like, yeah, like.

Chris Gmyr (29:27)
Mm-hmm.

TJ Miller (29:42)
You just go back and forth, like figure this out. It was a lot of fun. ⁓ But I think, think Claude Code is like super powerful. And if you haven't spent time messing with it yet, I highly recommend playing.

Chris Gmyr (29:46)
That's really cool.

Yeah, I installed it and did some tinkering, but definitely with some projects I got to get in there and do some more with it because it seems super powerful.

TJ Miller (30:03)
I'm kind of at the point with it where I haven't written a ton of code myself over the last couple of weeks. I definitely have, but I've been really trying to see how far I can really push it. And I've definitely found some edges and I think some techniques that are helpful. I also think in those instances where I struggled is

where I asked it to just do too much. You really gotta keep it very focused on what it's doing. And you have to keep an eye on it. It will go off the rails. I was asking it to do some UI updates to something and it started tinkering with the back end. I'm like, no, no, stop. What are you doing? That stuff works. It's tested, it works. I wanted you to work on the UI. Please get back on task. ⁓

Chris Gmyr (30:54)
Yep, yeah, that's very similar

to like just regular prompts for chats, right? Because if you ask them like 10 different things or adding in multiple contacts with like follow up questions into like the same thread without breaking it up, then you're just going to get a mess back. So it really has to be like step based.

TJ Miller (31:14)
Yeah, my favorite way to approach things right now is to have it basically like

do research, create a markdown document that is your detailed task list, and then track your state, your progress in this markdown file. So that's really nice for, let's say something gets corrupted and you have to restart the CLAWD process, which has happened to me a few times. Or you fill the context window and it's starting to go off the rails, so you've got to get back to a

clean slate, clean context and restart. So now that it's like tracking its state in like a very detailed fashion in this like markdown document, you could always exit the process, restart it be like, hey, pick up where you left off. loses context if you were like having a lot of conversation with it, like kind of coaching it and pushing it in one direction, like restarting that, you'll lose all of that context. having it work off of and like create and track its progress on

like a physical file has been so huge because it's like for like generate your project plan. And then I can go and look at that plan to before it starts doing any work and start like tweaking stuff around and making sure like it did make the correct assumptions or it did research and see things in the right way. That's been like profoundly helpful of like, yeah, here. You can also kind of get away doing this with

Claude desktop by adding like, a few MCP servers to it to like, give it, give it access to your file system, for example, and like give it access to a few other things. Like it, you can use Claude desktop to do some of this stuff, but Claude code is like built to be writing code. And it is, it's got, I don't know. It's, it's really cool. I've been

I don't have the time to, but I really want to spend the time like diving into the architecture of it because the way that it works, I think is fascinating.

Chris Gmyr (33:02)
Have you done any streams with Cloud Code or anything like that?

TJ Miller (33:06)
I haven't. I actually haven't streamed much at all. I've just been so busy. But the last last couple things I wrote for Prism were all cloud coded.

At least the like first draft of everything is like pretty much cloud-coded at this point. Like I'll come up with the architecture and like lay it all out and everything and then like let it go to town. I'd say...

I don't know, I'm trying to like quantify it in my head. I'd still, I'd say it's like 60 % effective, like 70 % effective. Like it gets pretty close, but like the last thing that I like really heavily coded with Claude, I went back through and there were like whole variables that it assigned, methods it was using that did nothing, but it like was using these methods.

for nothing. The return type was void and literally they would do nothing, would take a string argument and never even reference the argument that it like it was passing. It was just like it just added a bunch of random stuff that like I deleted and everything still worked. But it just like added a ton of random stuff. So you definitely have to like be on top of it. And the other really helpful thing too, is like

Chris Gmyr (34:18)
Yeah, totally.

TJ Miller (34:21)
Give it the text back. it to do research and come up, like, create a task list. Creates this task list, which I have a format for. So there's a whole way that I want it to do this task list file. So it looks at that template. It creates this task list, which is great.

So it's got its task list. And then I'm like, all right, TDD this, like go write all the tests. So then that also is very helpful because then we go and look at, I can go and like review the tests and make sure the tests are actually testing the right thing and that it's like assuming the correct functionality. And then it can go and like write against those tests or even after it like does the test. And then it's like, all right, now I'm going to go right against these tests. But at least at that point, it's kind of like.

given me that initial structure to go out and work against, or given itself that initial structure to go out and work against. So I guess those are my two really big tips for working with Cloud Code. Things that I've learned is like, yeah, have it make task lists, and have it think, and plan, and do all of that up front, and then TDD it. And then, yeah, that's been super effective, super effective. And I think they most

In a recent update, they actually added their own internal task management system. So without getting into too many details on how Cloud Code works.

It has different functions it can call out to. So it can call out to, yeah, go read from this file, or go modify this file, insert these lines in this file. It's got functions for running bash code. So it's got all these different functions. I think they just recently added a task function where it will actually break down all the tasks and everything, too. So that's something we're starting to see.

be internalized inside of the tool. it's just, it's that effective that they're like starting to add those features to the tool itself instead of like being something that like you have to prescribe and build around.

Chris Gmyr (36:08)
Yep, totally. Yeah, that's really cool. I have a couple of use cases that I can jump into Cloud Code with coming up this weekend to next week. So yeah, I'll have to get more familiar with it and think around a little bit more. Sounds super cool.

TJ Miller (36:20)
Yeah,

yeah, dude, it's pretty sweet. I'm a big fan. I'm going to be continuing to use it quite a bit and see how it goes. I'd love to see it like get a little bit more effective too. But I mean, yeah, it'll get there. And it's been it's been fun to just kind of take a step back and see how far I can push it.

Chris Gmyr (36:30)
Yeah, we'll get there.

Yeah, 100%.

TJ Miller (36:39)
Cool man, will you want to wrap at that? Sweet. Thank you all so much for listening to the Slightly Caffeinated podcast. Show notes, including any links and social channels, are down at the bottom of slightlycaffeinated.fm. And thank you so much for listening. We'll catch you next week.

Chris Gmyr (36:41)
Yeah, let's wrap it up.

Thank you. See you.

Creators and Guests

Chris Gmyr
Host
Chris Gmyr
Husband, dad, & grilling aficionado. Loves Laravel & coffee. Staff Engineer @ Rula | TrianglePHP Co-Organizer
TJ Miller
Host
TJ Miller
Dreamer ⋅ ADHD advocate ⋅ Laravel astronaut ⋅ Building Prism ⋅ Principal at Geocodio ⋅ Thoughts are mine!
Decaf Coffee, Tech Specs, and Claude Code
Broadcast by