Join Chris Gmyr and TJ Miller as they dive into the world of PHP, Laravel, and all things programming, while also sharing insights on family life and other musings.
TJ MIller (00:00)
Welcome back to the slightly caffeinated podcast. I'm TJ Miller.
Chris Gmyr (00:04)
And I'm Chris Gmyr
TJ MIller (00:05)
So Chris, what's new in your world?
Chris Gmyr (00:07)
man, it's been a while. so I'm glad we're back. At
TJ MIller (00:10)
Yeah, it has.
Chris Gmyr (00:11)
least at least for a little while. I know you're going to Luracon next week, so we'll pause again, but good to have a little check-in and chat for a little bit.
TJ MIller (00:18)
Yeah, summer break, you know.
Chris Gmyr (00:20)
yeah, yeah, so it's been a good summer so far. where I left it last time is we were going up to New York for a couple weeks to visit family. That went pretty well, just chaotic in general, and then have been doing some
camps with the kids back at home. So they've been enjoying that. So we kind of do like a week on, week off with different camps and activities and and things like that. we've had like a pretty bad drought down here for a while up until recently and it just started raining, which has been nice because when we came back from New York, we drove by one of the lakes and it was like nothing. There was no lake. It was just like kind of almost like swampland or you could see like the bottom of where the lake was.
should have been. And there
TJ MIller (01:02)
Yikes.
Chris Gmyr (01:02)
was just like puddles and stuff like that. And the specific lake that we drove by is down like five feet of water from where it currently is. And that's only one of the lakes. So
TJ MIller (01:11)
Wow.
Chris Gmyr (01:12)
we got pretty bad drought down here. luckily it's been raining a bunch, so try and refill a little bit here and there. but just kinda crummy and you know rainy weather. But yeah, can't complain.
besides that at work, just been busy cranking, burning tokens.
TJ MIller (01:30)
Yeah.
Chris Gmyr (01:32)
in the process of our like big like annual like review cycle. So I've been doing like a bunch of reviews, self-review, all that stuff. so just like more more things to do during the day.
TJ MIller (01:42)
Yeah.
Chris Gmyr (01:43)
yeah, and then trying to just, you know, relax a little bit and hang out with the family and you know, do the last half of you know, summer or so.
before school starts up in the end of August. So
TJ MIller (01:55)
Yeah, geez. Got that coming up too. No, that sounds awesome, man. Yeah, it's I wouldn't say we're like drought here, but I know my parents, they're they live in Colorado and I know they were talking about it too, that just like they didn't get a ton of snow, so they didn't get a ton of runoff and everything's like
Chris Gmyr (02:11)
Mm-hmm.
TJ MIller (02:12)
really low that they were like closing like certain reservoirs 'cause there just isn't enough water in them. you know, so I know I know that's going on elsewhere.
yeah. No, no, it's crazy, man. I and speaking of weather, like it's been we've been heat waving here pretty bad. it it it broke this week. It's been beautiful every day. but yeah, we had a really bad heat wave and then we went up to the UP last week and up to the upper peninsula and for like a long weekend vacation. And there's the Ontario wire like the wildfires were going on.
So was like
Chris Gmyr (02:47)
Mm-hmm.
TJ MIller (02:48)
super smoky here. And so it was even worse than the UP being that like the fires were essentially on the other side of Lake Superior from from us, up there. And so we were thinking it was gonna be really bad. We went out and bought like respirators just in case. And we were just like, you know, we're gonna go try it and see what happens, play it by year. So we drove up and
It really wasn't bad. Like it it the what happened is like a a storm front rolled through. So it got windy and like cleared a bunch of the smoke out. And the rain helped to like resolve a bunch of the smoke too. So we ended up doing like a a boat tour it to go see pictured rocks, which is like the north face of the upper peninsula, has got like these like beautiful rock cliffs.
and with all the different like minerals and stuff that seep through it like it's like stains the rocks and so you get these like really cool like almost splatter images of things. Like
Chris Gmyr (03:43)
That's cool.
TJ MIller (03:44)
yeah, so we got to do that, which was a blast and like he had said that that's the clearest he had seen it in three or four days. So we like perfect timing with the smoke clear out. So we did that and then we're big on rock hounding, so
about an hour west or about an hour east of where we were staying has like rocky beaches instead of sandy beaches. So we did a bunch of like rock hounting and found a bunch of cool rocks to bring home. yeah, super dope trip. But
Chris Gmyr (04:14)
It's awesome.
TJ MIller (04:16)
other than that, man, like this summer's been this summer's really been like kind of taking a step back and like focusing on family. So I've been
not doing a lot of extracurricular work and just like trying to do stuff with my son while he's home for the summer. like try to do stuff with my wife. She's got another surgery coming up at the end of next month. So yeah, just trying to like f focus on the family for a little bit and like I think I really want to dive back into like some extracurricular dev work.
kinda as summers are wrapping up now and kind of getting into spring with like little homie going back to school. So wanting to dive back into like Prism and Iris. we can talk a little bit about that more later, but yeah, just just all that and then work's been going great. Like stuff at Luma is awesome. I've been just continuing to build out all sorts of AI features. Like yesterday we just rolled out for
our internal admins in prep for rolling it out to our client admins as well, but a context-aware support chatbot. So
Chris Gmyr (05:20)
Nice.
TJ MIller (05:21)
I built it as like a embed, like a JavaScript embed, because like my AI code base is like separate from the the the main app code base. So I instead of like making API calls and stuff, I just made like a embeddable widget. and that does like rag against our
active documentation. and so that's that that just rolled out. I'm super stoked on that. And I'm now diving into like a really big project we can talk about a little later too. but all all big AI stuff. Which is fun.
Chris Gmyr (05:51)
Nice. Very cool. Yeah. Sounds like a lot of fun at work.
TJ MIller (05:54)
Yeah.
Chris Gmyr (05:55)
Yeah. That's good. It's also a good time to kind of take a break from dextra curriculars during summer anyway, with a kiddo home and some travel and some fun things to do here and there. So yeah, we'll get back
TJ MIller (06:07)
Yeah.
Chris Gmyr (06:07)
to it.
TJ MIller (06:07)
And it's like it's loaded between like that and like mental health stuff and weird mental emotional barriers to things. So yeah, it's I've just I've I've had to take a break for a little while and I feel like I'm at this weird like life spot where life is kind of pushing me to take a step back and
really figure out like what I want to do moving forward and like what I enjoy and like what I I want to do more of, what I want to do less of. And I kind of feel like I'm just at this like inflection point in life of Yeah, like trying to decide what I want to do. Like I like burned out super bad and now it's what I want to rebuild with, you know.
Chris Gmyr (06:52)
Yeah, yeah. Totally get that.
TJ MIller (06:54)
So yeah, and then Laricon's coming up. I'm so bummed that you're not gonna make it out.
Chris Gmyr (07:00)
I know.
TJ MIller (07:01)
I'm I've got such mixed emotions about it. I'm really excited to go and see everybody. I'm also really anxious about it because I haven't touched Prism in a while. and I know
I know I'm gonna have to answer for that. and that's just been really hard and conflicting for me. So it's it's a mixed bag. Like super stoked to see everybody, especially like our our cash money crew. excited for the talks, excited to like check out what's happening because I haven't checked Twitter in like four months. So like I'm I'm so out of the loop on everything. I just
like a week ago started listening to tech podcast again. So like I I had to take like a hard mental break from everything.
Chris Gmyr (07:44)
Mm. Yeah. I'm super bummed that not gonna be able to make it again this year. I gotta figure out like a way to somehow get there in the future, especially without like working at a Lairbell shop, you know, anymore. And
TJ MIller (07:57)
Yeah.
Chris Gmyr (07:57)
we also don't have like a continuing ed like stipend or anything like that. So to you know, take out of pocket and out of, you know, PTO time to go off and hang out with, you
TJ MIller (08:07)
Yeah.
Chris Gmyr (08:07)
know, a different language, different framework, even though
still love it a lot and the people even more so yeah it's it's tough thing to sign up for but
TJ MIller (08:17)
A hundred percent.
Chris Gmyr (08:18)
yeah, maybe in the future or if we get some sort of stipend that will, you know, help out too. yeah. But yeah, love the Laricons. Glad you all are gonna be there and can hang out for a bit. So you'll have to kinda have like a
Burger hang out 'cause I know you I know you don't drink,
TJ MIller (08:32)
Yeah.
Chris Gmyr (08:34)
so you can't have a a drink or anything. Have some c have some coffee with everyone for me. How about that?
TJ MIller (08:38)
There you go. Yes.
We'll make that we'll make sure that happens.
Chris Gmyr (08:41)
All right, cool.
TJ MIller (08:42)
Cool. And speaking of coffee, I am super boring. I actually, I don't know, I think I talked about this in the last episode. we were going through our food storage. Like we've just got like food safe buckets that have like one has like a ton of rice in it, just like one's got like a bunch of like medical supplies, like just like our
like emergency stockpile of stuff.
Chris Gmyr (09:05)
Mm-hmm.
TJ MIller (09:05)
just kind of like try to keep like dry goods on hand, you know, in case something happens. I don't know. Just like don't want to be caught with my pants completely down. So one of them we have for coffee and like we opened it up and 'cause like what you want to do with these like food stores is like kind of keep an eye on things expiring and like use them before they expire and then replace them with like fresh stock, you know.
So we found a ton of coffee that we had saved from a local roaster. And so we got off the Costco stuff, and we now like have to get through all of this like this other stuff. So it's been nice kind of getting back into like a little bit more artisanal coffee than than Kirkland. So I've been,
Chris Gmyr (09:46)
Yeah, yeah.
TJ MIller (09:46)
I've been really enjoying that. And I actually tuned down the mixture. I think I had been
I I for my French press I had upped the amount of grounds I was using in it and I actually came back down a little bit and I found it to be a much more pleasant cup of coffee. So dialing
Chris Gmyr (10:03)
Nice.
TJ MIller (10:04)
that in a little bit.
Chris Gmyr (10:05)
Yeah. Gotta do the tinker.
TJ MIller (10:08)
for sure.
Chris Gmyr (10:09)
Nice. Well, that's cool. yeah, since our break had like a handful of different things. one went to some coffee and co-working with one of my coworkers to the place that I usually get the Turkish coffee. So we did get the Turkish coffee. and it was a very caffeinated day because I had a coffee on the way to the coffee shop. I had a drip when I first got there. We got Turkish coffees together.
and then I left with a cold brew coffee. So it was a lot of caffeine for the day, but it was super fun. really good. They do counterculture coffee there. So I forgot what exactly the drip was, but it was good as well. and then a week or so ago at the grocery store, we have a lot of like local roasters in the stores too, which is kind of nice. and I don't usually get coffee at the store because usually they're
you know, way, way past like roast dates, but checked a couple bags on this. It's by Pure Intentions Coffee, and I believe they're out in Charlotte, North Carolina. this Porsche Lite medium roast. and it was pretty good. so I'll put a link in the show notes so can get it on their website. but love a medium roast, especially with the the drip in Chemics.
TJ MIller (11:25)
Mm-hmm.
Chris Gmyr (11:26)
So yeah, that's basically about my coffee newness and exposure over the last
TJ MIller (11:32)
Nice.
Chris Gmyr (11:33)
couple weeks. but yeah, more more or less the same doing the drip in the morning and most afternoons doing the like espresso cold brew.
TJ MIller (11:42)
Yeah, I I just recently did a big cutback on my caffeine. You know, I'd been doing very consistent French press in the morning, but then I was also doing like two to three monsters a day. Like yeah, it's a lot. And
Chris Gmyr (11:55)
That's a lot.
TJ MIller (11:57)
so I I recently did like I haven't done an annual at my doctor in years, and I just did one in like my blood work.
came back kind of high in a few areas. So I'm like immediately like cutting back on things. So like I'm I'm now down to you know, my French press in the morning and then around like two o'clock I'll crack a monster or something and call it a day. But yeah, had to had to cut back a bit.
Chris Gmyr (12:23)
Yeah, totally. old guy stuff. I gotta do my annual and I got some more blood work coming up too. so gotta jump on that.
TJ MIller (12:31)
Yeah, my cholesterol is a little high. not super high, but it's a little high. And then my blood pressure was like really high at the doctor. And so she's a little worried about that, but we'll see what happens.
Chris Gmyr (12:44)
Yeah, yeah. Nice. Well yeah, you have
TJ MIller (12:47)
Old man stuff.
Chris Gmyr (12:48)
moving on a little bit from health old guy health death.
TJ MIller (12:51)
Ha ha ha.
Chris Gmyr (12:53)
we have Fable on here. So what you been tinkering with with Fable?
TJ MIller (12:56)
Yeah, so I figured Fable came back. and I felt the need to use it just to like it's it's here, it's available, right? Like I have and I have this.
maybe limited window of availability under my Claude plan, you know? So supposedly it's supposed to go to its own pricing, like to like basically API pricing and out of your Claude plan, but they keep extending the the like Fable trial. So you can use like up to 50% of your usage with Fable. so that's pretty cool.
And so I figured with the limited finger quotes limited time frame, I might as well figure out if I want to add it to my workflow or not, right? Like I I just don't know if I need it or or want it. And I figured while it's included in my plan, I should try it out before having to pay, you know, a bunch of money for it. So I
I know that Fable, like one of the things that they've talked about it being really good at is like long running processes and like the subagent delegation of it basically being the like manager of subagents that it spins up and
What you would assume is that like Fable would then spin up subagents of Opus, Sonnet, or Haiku, just depending on the task, right? So it could intelligently gauge what model to use for what task, delegate that task out, review the work when that is done, and then handle like work distribution beyond that. so.
And it's like build as being like really good at like long running tasks. So like spinning it up, setting it up with like a bunch of work, the subagent pattern, and then like letting it rip. I guess that just doesn't like
I haven't had anything that like really justifies that workflow. I mean, based on the way that I work, right? Like I just nothing I do runs that long. Like I I was listening to Token Town, like Ian and Aaron's podcast. I was listening to their other podcasts too, slightly mostly technical. and so I was listening to that and I was hearing Ian talk about basically, yeah, like setting
Off like Fable or Soul, the new GPT model, and basically like pointing them to linear and saying, like, yeah, like go through all the tickets and just like work until you're done. which is interesting because like I just don't work that way. Like I I'm kind of like one one ticket at a time, one PR at a time, and like kind of
code reviewing and like validating that work like before it goes in. And that's just like that's been my workflow. So far that continues to be my workflow because I do care about code quality. I believe that your code like you should own your code contributions. So even if like if if it's AI slop, like that's on you at the end of the day. Like that's like you're the gate for that. So I I prefer to work a little bit more tight in and keep an eye on things. So
What I have been trying and I honestly don't know.
I don't know if it's any better for it, but I've been using Fable to do the PRD generation. So like kind of the ideation and PRD generation. So like one of the reasons I wanted to do PRD generation is because it's kind of it's trained to do have like these bigger, more amorphous tasks and it's better at like digging.
Allegedly, right? So I'm like, this would be great for exploring ideas and the PRD process because the PRD process has it reference the current code base while it's building out the PRD so it like knows it can find out what exists, what it needs to kind of go directionally. and so I found Fable to be really pretty good there. I've extended that to also using Fable.
going from the PRD to the implementation plan so that it like just has that extra oomph for the implementation planning, but then handing off to a fresh session of Opus to do the actual implementation. So like Fable makes the implementation plan, Opus does that, and then I bring Fable back to do code review.
Chris Gmyr (17:20)
Mm-hmm.
TJ MIller (17:21)
That's been working pretty well. I don't I don't know if I can say that Fable's been better at it than Opus. I just don't know. So
I think the jury the jury for me is still out on that, but at least feels good. Like it feels good using the more powerful model for these things, you know. And I had a lot of conversations with Claude too about like how best to use Fable inside of my like workflow and strategy, where it like makes sense, where it doesn't make sense. and it actually kept pushing to use opus or sonnet.
As the coordinator and have that call
You know, then that can create sub agents that use Fable for like really complex tasks. They can reach for Fable or something else. So like I it kept pushing for that, but I'm like, I don't know, like it just it doesn't seem to be the way people are using things with Fable. So it seems like it makes the most sense to have Fable as the orchestrator, than like a lower powered model. So I don't know.
Chris Gmyr (18:26)
Yeah, I've only tinkered with Fable a little bit and it it does seem that you don't have to prompt it as much. It it's a lot better in filling in the gaps and kind of figuring out like what's there, what's not, what needs to have solutions. compared to like I thought like Opus is pretty good and it still still is good. Sonnet, even though like I've been using Sonnet five at work and I feel like I have to over prompt it.
So much compared
TJ MIller (18:52)
Sure.
Chris Gmyr (18:53)
to Opus and Fable. Like we we can't use Fable at work because of the data retention and all that. but still using Opus 4 7 and then now Sonnet five. So I'd still have Opus as the the lead orchestrator and then Sonnet five for all the implementation work. Sonnet follows instructions pretty well, as long as there's a plan and all that stuff, and then
with solo term I'm able to kind of like redirect it via the lead. because I'm trying to I don't know be more in sync with the lead and what's in my head and give it that context and then it delegates that out to like the tickets that we're working on like in the project. so still kind of working through like do I need just more documentation? Is it something within
solo that I need to do something with, like more scratch pads or like updating the the run book or something like that of like, you know, all the the context that isn't maybe in like the daily task, but directionally like where we want to go or things that I've seen that have come up, you know, before where to kind of put that into the cycle of work, especially for like the lead to keep in mind.
TJ MIller (20:03)
Mm.
Yeah, I think that's something I kind of want to play a little bit more with like directionally is like, yeah, these like lead agent orchestrator type things. because I'm very like constantly j I mean like Cloud Code and I'm like launching fresh sessions like constantly to like, hey, we're doing this step. All right. Let's say we do like PRD generation, all right. Fresh context, new agent.
Let's do the implementation plan for this PRD. All right, fresh context, new agent. Let's do the implementation. Then like fresh context code review. So I'm not I think it would be really strong to have like a sustained lead agent that like maybe is carrying more, like much more global context and history, and then is constantly like sub-aging things. So
Chris Gmyr (20:51)
Yeah. That's what I've been building into. I have a a runbook and like a orchestration doc that I've been working on. Cause then I can like I have that doc globally in my dot claud folder. And then I have like a a little note in each of the claud.local.mde files to then point to that. So ideally
TJ MIller (21:12)
Mm-hmm.
Chris Gmyr (21:13)
the agent when you spin it up or the lead agent knows like, okay, like if I ask for like a PR review.
Spin up an agent and a work tree, check out the the PR branch, and you know, then do the PR review skill. if I want to work on a Jira ticket, do the same process, but then do like a JIRA start skill that I made. so I think what you could do is solidify that workflow in some sort of like a runbook or orchestration doc and say, like, here's the process of like walking through.
Either like a new project or a task. It's like, here's here's what I want you to do as the lead, spin up this thing, read this ticket, do your PRD generation. When that's done, check it within you know, 10 or 15 minutes or however long it usually takes. make sure that the agent did the work that it was supposed to do, save that doc somewhere in the repo, and then you as the lead agent close that.
worker down and then spin up a new agent for, you know, implementation or whatever your second step is, and then do the same thing for the third step and have this like documented that it can follow. And then you don't have to be physically, you know, spinning up different sessions, you know, all the time for these steps.
TJ MIller (22:25)
Yeah, I think I'd like to at least automate the like
Pretty much everything after PRD generation. Like I very much want to be involved in the PRD generation process. Cause like that's a that's I think super important to be involved in, right? Like you're setting yourself up for success or not based on that like foundational document. So I think like after that, I kind of want to hand it off in a loop of being like, all right, like you can go to town, like create the implementation plan. And this is where I kind of wanted to talk about.
GPT-5-6 in their new series of models. because I think it would be interesting if I'm gonna automate this right, like, so we have the PRD that was generated with like me and Fable, whatever. and then from that point on, like
I want it to like make the implementation plan and then pull in one of the GPT models and codecs and do like adversarial review of the implementation plan because I'm not gonna be like I'm removing myself from that piece of the process. So I want something like external and different to like check its implementation plan and then hand off like the implementation and then come back and do
Adversarial code review. So whether whether GPT does the implementation or Anthropic does the implementation, like the opposite provider and model would do adversarial code review and then kind of continue in that loop until it's done. And then that's where I come in, you know, to do manual QA, start doing code review. but the whole process from PRD on is
than automated with like a manager and sub agents.
Chris Gmyr (24:09)
Mm-hmm. Yeah. And I definitely like that sub reviewer. I know Aaron and Ian talk about that a lot in their podcasts, and I do it sometimes with just Claude. but on the my personal side, I did just sign up for a full blown codecs and chat GPT subscription so I can get
like the five point six and do a little bit more tooling with that for like personal projects and things like that. So definitely excited to jump into actually work with these new models on the GPT side because I really haven't done too much with them before but just hearing kind of the the good feedback on them so far I figured I'd go in and try it out and at least with Solo Term using that as like a main driver, it's pretty trivial to just plug and play new things.
TJ MIller (24:58)
Yeah, and I guess like that's that's also a topic I brought up was like solo term and even to that extent,
Open code. I recently listened to an episode of syntax and they were interviewing I believe Dax from Open Code. And that's got me like some of the stuff that they're doing's got me really inspired to check out open code. The only downside is that like you can't use it with your claw subscription, which is a huge, huge bummer, but they're doing some really interesting things. And so I've got the itch to check out open code and maybe play with.
some other providers through open code. But now that I have been starting to play catch up on tech podcasts, one of the main ones I listen to is Ian and Aaron's mostly technical. And so hearing about all the new features in solo and like just learning a little bit more about solo term. Like I I think I'm getting the itch like really bad to start playing with that. So I just picked that up, gonna
dig into that probably tonight and start playing with that on on some work.
Chris Gmyr (25:59)
Yeah. I've really enjoyed it so far. definitely makes you print some tokens a lot faster though. Spend it like
TJ MIller (26:05)
Yeah.
Chris Gmyr (26:06)
multiple projects and multiple tasks and sub agents and and things like that. But definitely like a lot more productive in it and just the UI and the notifications and everything on the sidebar just makes everything just a lot nicer instead of managing multiple tabs and windows and you know, iTurr or TMUX or something like that. So
yeah. Been a nice little tool for sure.
TJ MIller (26:29)
Yeah, it's not even that I have like a ton of projects, just I I'm really interested in it from an orchestration tool chain layer. so yeah, I wanna play with it some some. So I it's not like even like I have a ton of projects. Like I part of part of the reason I haven't jumped back into Prism or the last
Couple weeks now that I've had a little bit more bandwidth to get into it is mentally and emotionally, like I'm so far behind now that like so many issues and so many pull requests have like built up that my ADHD brain is like got warning bells and signals just going crazy because I'm now so behind and like there's shame and guilt attached to that too. so it's just like
And a a grenade. and so playing catch up in that, I really wanna leverage solo term and probably get into JPT models and and all of this 'cause like I I I just need to get caught up on everything. So I'm gonna have the AI, I'm gonna I'm gonna have
I I'm not a hundred percent sure how I'm gonna do it yet, but I'm definitely gonna be leaning on these to get me caught back up and like at least process through everything that I can like
Like for example, have it spin up a Laravel app with like a custom UI where it like pulls in all the PRs, does some baseline analysis on it that I can like just rip through them instead of having to like spend a ton of time with it, you know, kind of have the AI like pre process them for me so I can like jump in and it can maybe call out easy like slam dunk merges that are just like ready to go or issues that need me to like think about things a little deeper. and kind of
categorize those and bucket those so I can like go through them efficiently and be like, all right, here's all the PRs for like new providers. Like I can sit down and just do new providers in one go. Or like these are all like bug fixes or like, you know, just kind of like make it easier for me to like burn through the stack of everything.
Chris Gmyr (28:30)
Yeah, totally. Yeah, I think that's doable for sure. And as you were talking through it, what popped into my mind is have it also review like old PRs that were well, I guess it doesn't matter if they were like successfully merged or declined, but like go through the things that like were approved or needed your like intervention or like you came in, almost like Taylor of like, you know, someone else got it started, it wasn't quite the way that you wanted to do it, and then you like finished it off and
took it to like a a different level. have it go through and like bucket all those things and be like, okay, like I'll take care of these. We can just merge them and tag them. And then like here's your like medium sized bucket. Here's your like large, like kind of gross like you need to physically do it yourself type of thing. and then like as you have like energy and time and and whatnot, like go through and start working on those buckets like you said. So I think that's totally doable with I don't know even
set up even almost like a local like tracker or you know SQL light database or something like that to, you know, track all these things and different variables that you want and, you know, all that stuff. So I think throwing like Fable at it and a bunch of sub agents for reviewing and pulling down all the the PRs and doing some analysis on it. That'd be super cool.
TJ MIller (29:46)
Yeah, I think so. And the cool thing too is like if I put it in a Laravel app, I can have it like, you know, and if it's all just running locally, I can have it shell out to the like GitHub CLI and do stuff that way too. So yeah, I think that's gonna be that's that's what I've been thinking about the last two days. Cause I really wanna try and like make some effort on it before Laracon. so I can kinda like land at Laracon and explain a little bit that like, you know, I've been out of it, but I'm getting
back into it now, rather than being at Lyricon and going like, yeah, I'm looking to get back into it. I can be like, no, I'm already already diving into it a bit, you know.
Chris Gmyr (30:22)
Yeah. Well if you can definitely like close out things that like aren't useful or merge things in that are like super easy just to cut the amount of tiss issues and PRs and you know stuff like that before Lyricon think could be, you know, beneficial to like you for sure 'cause it just, you know, eases up the the stress and shame on your end. even though like I don't know, you're totally in your right to, you know, take time off, you know, from it.
So yeah.
TJ MIller (30:52)
Yeah, I just don't
like that it was like unannounced and I haven't communicated anything and I just like disappeared. that doesn't feel great, but yeah, we'll get we'll get around to it.
so kind of moving on from both of those. wanted to talk. I mean, I don't know, would you be interested in hearing about what I'm currently building at Luma? Yeah. So
Chris Gmyr (31:10)
Yes, I would.
TJ MIller (31:12)
I've built a whole bunch of really cool things. I have been working in a separate Laravel application from our main application. So like a separate code base. I figured that that's
Just easy for me to work in at a high rate of iteration instead of like having to like disrupt the main application too much. And it kind of keeps like all the AI things in one place. I expose it over an SDK. and so we're we're starting to like these things have been built for a little bit, but now we're starting the actual integration process and turning some of this stuff on live. So that's been pretty cool.
What I've been working on lately is I'm still in the planning stages, but it's it's big. so we do learning and education. we have kind of like units of learning called eNuggets. You can have an individual one or a series of them.
But then they can all have they all have like different attributes, right? They could have like flip cards for different pieces of information. most of them have like assessments attached to them, so like questions about the content. and so my latest project is to create a way for AI essentially to help us with like content creation.
so and not just us, we would like to offer that then to our clients that use our software so that they can create their own content and it be hopefully as high quality as like the content we would create for them. so it's a lot of like encodifying our process, you know.
our CEO is like a a doctor has a PhD in learning. So I'm like trying to encode like her process and her thoughts on things. so that like
You can I don't know, like I'm I'm not trying to like automate humans out of this because like AI is not at the point where like it can do this without human intervention. So what I've done is I've like taken our process and kind of like broken it down into a multi-step wizard with AI like gluing the different wizard steps together, right? So it's like a couple form fields.
kind of defining what you're looking for the eNugget to be about. And then you'd go to like the next step and like upload like PDFs or images or documents or free form text for like here's all the like information to create the e Nugget out of. And then like you go on to the next step and like that would
you know, like maybe pre-fill some form fields for you to review and edit. And then like the next step would start like extracting and structuring the content. And then you would like edit and approve to go on to the next step. So it's like very, it's built very much as like a collaborative piece where the AI is applying our secret sauce to the process, you know, so
I'm pretty stoked about it, but it is definitely like flexing
Flexing a lot of what I've learned and know about like AI system design and like state machines and like the prompting is gonna be is turning out to be like super interesting because I've I'm trying to like encodify in these prompts like all of the the knowledge and context that our like CEO has about like learning and yeah it's
It's fascinating. I'm still I think I'm in the PRD design process now. So like kind of worked with Fable on an overall like multi PRD plan. So kind of got like the big broad strokes all planned out. And now I'm starting to work on individual PRDs to build it out. So it's it's a doozy. the ones I've built so far have been pretty small, like
AI generated assessments for an e-Nugget. So like given eNuggets content, generate me assessments for it. So I built that feature. We built an admin support chat bot. So like like that was pretty involved in prompting to like make sure that it like is aligned and stays inside of its guardrails and like doesn't hallucinate. but this features
This feature's pretty big.
Chris Gmyr (35:40)
Yeah, yeah. Sounds like it.
TJ MIller (35:42)
So and
like we also built like one of the first things I built was an analysis. So like you can take an eNugget and we'll do the between the Lairval lap and Claude, like it does a bunch of analysis, like gap analysis.
on like eNuggets content. So like I we'll probably be looping in that process too of like once we're done have it have the AI go audit it and come back with like suggestions on how to improve it too. The cool thing is we already have that system built. So be like just hooking into, you know, things that are already there.
Which I've leaned heavily on the action pattern for. So it should be like very composable to then just be like, Yeah, let's pass this off to like the evaluation process, you know, and then like get that back and iterate like, you know, one last time too. So
Chris Gmyr (36:28)
Yep. Yeah. No, that sounds awesome. And it seems like you're building like you're building and continuing to build like the building blocks to make some of these like bigger systems a little bit easier to move forward, you know, in the future. So that's that's awesome to hear too.
TJ MIller (36:43)
Yeah, and like look, I'm I'm not looking to automate away people's jobs. I'm I'm you know, and that's something that's like important to me is that I'm like not building like socially destructive systems. Like I'm I'm building tools to make life easier for people. Like they're they're collaborative tools to work together to come out to
you know, a really good outcome. you know, our internally the goal is to kind of maybe like help speed the process up. But externally for our client admins, like this could unlock, be a huge unlock for them because they c they can create their own e-nuggets, but you're losing out on all the secret sauce of that we apply to it when we create the e-nuggets. So kind of being able to empower
our clients to make their own custom content at a much higher bar of quality, like think that's gonna be great.
Chris Gmyr (37:40)
Yeah. Yeah. That sounds awesome. That's really cool.
TJ MIller (37:44)
Yeah.
Chris Gmyr (37:44)
Like it.
TJ MIller (37:45)
Yeah. So yeah, that's fun there. And like I'm I'm and with that, like continuing to iterate on like our internal tooling process too. Like as I'm like building this stuff out, iterating on our skills, and like tooling more things out. So I'm just having a blast.
Chris Gmyr (38:03)
Yeah. Sounds like it. That's awesome. Cool.
TJ MIller (38:05)
Yeah. Yeah.
So I mean I don't know, man. On I don't have anything left. do you wanna wrap up?
Chris Gmyr (38:12)
yeah, let's wrap it up.
TJ MIller (38:14)
Right. Thank you all so much for listening to the Slightly Caffeinated podcast. Show notes, including all the links of things we talked about in social channels, are down below as well as at Slightly Caffeinated.fm. If you have any questions for us or have a content suggestion, you can go to the Ask a Question page on our website and we'll feature it in an upcoming episode. Thank you all so much and we'll catch you soon.