Slightly Caffeinated

TJ Miller and Chris Gmyr share their recent experiences, including camping adventures, Halloween festivities, and insights from the All Things Open conference. They discuss the challenges of various projects they've worked on, highlighting the importance of thoughtful problem-solving and collaboration in development. The conversation emphasizes the evolving landscape of technology, particularly in AI and developer tools, while also reflecting on personal growth through challenging experiences.

Socials
References Mentioned

Creators & Guests

Host
Chris Gmyr
Husband, dad, & grilling aficionado. Loves Laravel & coffee. Staff Engineer @ Curology | TrianglePHP Co-Organizer
Host
TJ Miller
Dreamer â‹… ADHD advocate â‹… Laravel astronaut â‹… Building Prism â‹… Principal at Geocodio â‹… Thoughts are mine!

What is Slightly Caffeinated?

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)
Hey everyone, welcome back to the slightly caffeinated podcast. I'm TJ Miller. So Chris, what's new in your world?

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

man, busy week. Last Friday after we talked and recorded the podcast, went camping with the Cub Scouts. So that was a fun weekend. It was also Halloween themed, which was really fun for the kids. But yeah, out in tents and the weather was super nice. Got a little rain over Saturday night into Sunday, but not too bad. And just walked a lot. Like we probably walked about like eight or nine miles.

on Saturday, just going around to the different activities and the, it's a pretty big camp too. So you're just kind of walking all over the place. Yeah, and then came back on Sunday from that and then went to the All Things Open Conference, which we talked briefly about last time. Definitely dive into that a little bit more later. And then, yeah, just.

Busy at work and then off again for a couple days. My wife and son are traveling to Florida for an extended long weekend, Friday to Tuesday. So off with my daughter for a little daddy daughter weekend and I don't know, find some fun things to do while we're here by ourselves.

TJ Miller (01:17)
Yeah, that sounds fun, man. I'm, my, my wife is also out of town, so I've got a, I've got a boys weekend with the, with the homies. So yeah, that's, that's cool, man. I can't wait to hear more about the conference. That sounds pretty fun. the camping sounds cool too, man. It's been forever since I've been camping. I've been dying to get out. So that's cool, man. So is it like, like for me, campsites like camping for me has always been like.

Chris Gmyr (01:26)
Nice.

Yeah, definitely get into it.

TJ Miller (01:44)
camp sites. So is this like a camp site situation or is this like a like camp has like has activities at camp kind of thing?

Chris Gmyr (01:53)
Yep, so this one that we want to this time it's for the entire district or Council for the the area that we're in. So basically all packs are welcome to come to this camping trip and it's on land specifically for the Scouts. So this one all the activities are planned on Saturday. There's like different locations in the camp that you go to so they have like.

TJ Miller (02:11)
cool.

Chris Gmyr (02:23)
archery set up, they had a climbing wall, they first aid, they had a bunch of different activities, you know, like that. So you basically either have times or you can just go randomly to all these locations. And there's probably about 15 different areas and places that you can go and do different activities. And then it's up to you to cook and, you know, pitch tents and, you know, all that stuff.

so at least on this one, like all the activities are provided, which is nice as leaders and adults that, you know, we don't have to plan all that. cause it's a lot. So, yeah, it was nice, but it was definitely a very big turnout also. So there was, I don't know, probably a couple of thousand. Scouts and parents and people there walking around. Yeah. So it's a lot, but it's fun. Yeah.

TJ Miller (02:51)
Yeah, that sounds cool.

Holy shit, that's a lot.

Yeah, that's a good time, man. That sounds like a lot of fun. My son did scouts for a little while, but ultimately, like we just kind of fell out of it. But that sounds really cool.

Chris Gmyr (03:24)
Yeah, totally. It was a lot of fun. So yeah, what's new with you?

TJ Miller (03:28)
Not a whole lot. It's been, it's been kind of like one of those hunker down weeks and just kind of busy working on stuff at work and learning a lot. slow week for Prism really didn't get a whole lot done, but gonna kind of take some time this weekend with, with the wife away when my son's busy doing stuff. I'm going to hopefully jam out on a whole bunch of things and get, some features out there. I kind of want to rework some docs a little bit, but, I don't know. It's been, been just kind of chill and.

You know, had a, had trick or treating last night, which was a total riot. I'm definitely dog tired from it all, but, it was, it was good. Kido ended up with a pretty decent hall and got to go out with his friends. So this is, think, I think this is the third year he's gone out with this group of friends and it's always a good time. So we head over to their house and hit up their neighborhood. This, was crazy this year. Like last year we had snow and it was super cold.

And this year it was like 60 and very windy. But considering the weather, I was shocked at the lack of kids out and about. Like it was, it was kind of crazy. Like I remember when I was out as a kid, it was just everywhere you looked, there were kids running around in costumes and it was, you know, there were stretches of like 10 minutes where like we were walking around and didn't see a single other like kid or group. Like it was.

That was wild. don't know if kids are just not in the candy anymore or if they're just like trunk or treating and calling it a day. don't know. But it was, I had a great time.

Chris Gmyr (04:57)
Yeah, that's surprising.

Yeah, that is that is pretty weird. cause we were on a quieter street, so we get the early shift. It seems like the littler kids on our street or around the area just kind of come and do like an earlier shift from six to seven basically. And then I think after that, cause we have a video doorbell out where we have the candy and stuff like that. So like we didn't get anyone after, I don't know, seven 15, something like that. So,

All of the kids usually go elsewhere, I guess, in the neighborhood. But there was a group of kids with my son that got together and did an extended version of trick-or-treating. So yeah, it's weird that there wasn't a bunch of people up at you.

TJ Miller (05:52)
Yeah, yeah. I mean, it was cool. The people we went with, like they had a bonfire going and everything. So we got to like hang out afterwards and just have a really good time. So it was really nice.

Chris Gmyr (06:00)
cool.

Nice, that's awesome. And I thought it wasn't snowing either. That's always a bummer going out in the snow.

TJ Miller (06:04)
Well, I'd yeah, geez, that was, that was rough. And we, we were expecting rain at one point too. So like with the, with all the wind, we knew a front was coming in. We were getting a little worried it was going to rain also, but yeah, we skipped all the rain. And, most important thing is like a little homey had a, had an awesome time and got a great haul and.

I've not cracked into it yet and taken my dad tax, so that's upcoming. He proclaimed this year as we headed out, he was like, no taxes, dad, no taxes this year. And I'm like, that's not how life works, buddy.

Chris Gmyr (06:32)
Yeah, dad tax is coming for sure.

Yeah.

Yep, and taxes can be taken out when you're at school. Who knows? You'll never know.

TJ Miller (06:48)
Yeah, yeah, who knows? Yeah, I'm gonna have him sorted out after school and see what he got. I know he came running back to me after a couple houses and was like, they had full size bars, my gosh.

Chris Gmyr (07:01)
That's awesome.

TJ Miller (07:03)
There is always a treat. So, hey man, I'd love to hear a little bit more about this conference that you went to. This was the All Things Open conference, right?

Chris Gmyr (07:09)
Yeah.

Yep, it's all things open. It's basically been held in downtown Raleigh since 2014, 2015, I think. So about 10 years, besides, I think, a year or two for COVID. They did a virtual conference. But it's super awesome. It's an optional third day for Sunday, but a full day Monday and Tuesday. And they have

about 15 to 18 different tracks of interest that you can go to and just full days of, just talks and just tons of vendors and just information and book signing and all sorts of cool things. I just went Monday and Tuesday for a full day and, saw like a bunch of great talks.

Typically when I've gone in the past, there's almost like a theme like per year or like whatever's hot and new. So like a handful of years ago is all about like blockchain and web three and crypto and different like blockchain technologies and things like that. And then this year was obviously a lot about AI. So even though they had like AI and machine learning tracks, it seemed like

75 % of the talks had some sort of AI flavor built into them. So little burnt out on just hearing about AI all the time. But it was really interesting to jump into some of those talks and see what's happening with the underlying technology or some of the models and just how some companies are using them or how even developers are using them. But I think the

the greatest overall theme of AI is, I'm sure a lot of people know, it's not quite there yet. You can't trust it. It's a helper, it's a tool, it's something that you use on the side of your own knowledge or to expand knowledge in some way, but not do the whole job for you. So it was reiterated over across multiple tracks, multiple talks, multiple speakers of it's a starting point, but you have to

be vigilant of checking and rechecking and reviewing everything that it does to make sure that it's accurate to what you want to do.

TJ Miller (09:38)
Yep. for sure. Like I think, I think like the most effective workflows are still very much like human in the loop, you know, type of workflows and yeah, they, they lack all common sense. So it's yeah, you can't, you can't trust, trust it just to like do stuff on its own. I'd be curious to get like,

What was your biggest, outside of that, what was your biggest like AI takeaway? Like, was there something that like really blew your mind?

Chris Gmyr (10:06)
Yeah, on Tuesday we sat into like a Q &A panel with one of the co-creators of Olamma and then

a developer at IBM that was working on one of the models that could be used with Olamma. I forget the name of it, but I can put it in the show notes too. That like something that IBM is developing and it's all open source able to be used within the Olamma platform or like a different model to plug into it. And then,

It was another guy on there that was building for a developer tool called continue.dev. It's like an IDE plugin for JetBrains and also VS Code. partially what they were talking about is how continue loops in these different models from Olamma and has like this model for

know, chat and this model for auto complete and this model for research and depending on like which tool or option that you're clicking on or utilizing within the IDE plugin is like a totally different model and that works a totally different way to gather all this information or give you the most correct thing that it can like in the moment. So that was cool about them all talking about it and like the IBM guy was saying that he uses

continue to then do ongoing work on their new model on top of Olamas. So was just this inception of tooling and workflows and pushing these models forward and a little talk about what to use, which of these models for in the workflows. So I thought that was pretty interesting because I haven't dove that much into the individual models or what you use.

like the different sizes or like densities for or anything else like that up till then. just it was also nice to hear about more about Olamma in general. And it seems like that's kind of more the go-to if you're looking for kind of on-premise modeling and AI and that you can basically just run it on your laptop. You can say, scan this code path or directory locally of PDFs and

give me summaries of each of the PDFs or something like that, that you can just do whatever you want locally and even spin it up even in your own VPC and AWS or whatever sort of networking system that you have in a production environment. And you can just run these basically anywhere that you want as long as you have the compute for it. So that was also pretty interesting to hear.

TJ Miller (13:02)
I'm so, so damn envious. Like those are, those are all things that I use, man. Like I love and use Olama quite a bit. I, I'm a Vim and TMUX user, but I've definitely jumped into VS code specifically to use continue for different tasks. Cause it's a fantastic plugin. It kind of brings that like sort of cursor experience to VS code, which is.

Chris Gmyr (13:06)
You

TJ Miller (13:30)
fantastic and it's such a cool project. Was that the person from IBM, were they talking about the granite model? I know I was hearing some rumblings about that recently.

Chris Gmyr (13:38)
Yes. Yep. Yep, it's the grand model. That was it.

TJ Miller (13:43)
Very cool. Yeah, that's all sorts of really cool stuff. Yeah, like I use Olam on my laptop. I've spun it up on a Digital Ocean instance before. And yeah, it's, I'm super envious, man. That sounds so cool to kind of hear all those people bouncing back and forth and collaborating on stuff. That's cool, man.

Chris Gmyr (14:03)
Yeah, it was really cool. I definitely think you should check it out next year, because I don't think AI is going to go away or slowly go away. So it seems like next year will still be another hot year for AI. And like I said, there's two full ML and AI tracks and a bunch of AI spickled in everywhere else too. And especially the

the different discussions and panels and Q &A that they have running for some of these talks and sessions like is super cool too. So I could definitely see you like jumping in one of the Q &A discussions and I don't know asking the co-creator a bunch of things of like, I don't know, really just in the weeds like information and be pretty cool.

TJ Miller (14:51)
That would be super fun. Yeah. I think I'm going to have to make it out next year. it's, it's a cool conference. was, happenstance was like, it ended up being like all over my like Twitter feed. There was a handful of people that I knew that were there that were pretty vocal about it. And it looked like a really, really good time. Cool conference. And yeah, of course I'm, I'm a sucker for, for anything AI right now. but I think overall, like they're.

It sounds like there was like a handful of like other pretty interesting tracks in talks going on too. So outside of like AI, what else did you like or find interesting there?

Chris Gmyr (15:29)
yeah, I saw Chris Coyer from CodePen talk about, developer experience and he did both a keynote and like a longer form session. I only caught the keynote, but just like a super entertaining speaker. And he was talking about how, you can better design, you UIs or tooling, for developers or really like anyone.

And he made the comparison between like a garage door opener. Like you want to get your car into the house. How do you do that? You have a garage door. You have now a machine that basically connects to a remote with one button. And that one button opens up this whole possibility that in functionality that you can drive into your garage and then close it and like very low friction and one button push and

like basically just boop it and you have all this possibility that can happen. But also when things go wrong, like the power goes out, the button doesn't work, but you have a manual pulley on it and you can open the door yourself. So kind of like these escape hatches too. And how many things that we do in our daily developer lives or even regular lives outside of work that things are just too hard.

Or that we have like a lower pain tolerance and we want to like fix those things, you know, and how do we make those things better for us and better for others either using a product or you know, even for you know, an open source package like how can we make the best developer experience? You know with whatever that we're building. So it was a super great talk I think all the keynotes are were recorded and will be up on their YouTube channel at some point so

an eye out for that the All Things Open YouTube channel and yeah hopefully that one will be on there because that was definitely a good one.

TJ Miller (17:25)
Yeah, that'll be one I want to watch too. Cause that's, I mean, this prism I've kind of turned into an experiment for myself of like, how far can I push developer experience? And I mean, that's part of why I move really slow on adding new features and functionalities. Cause I want to like really ensure that the developer experience is, is like smooth and makes sense. yeah, so that'll be one I want to catch for sure. I've, I've seen a talk or two by Chris before.

and yeah, very entertaining speaker. I'd love to, love to catch more about that.

Chris Gmyr (17:58)
Yeah, totally. And then another great one was about JSON web tokens and how you can use them in different contexts. So the speaker, Angie Jones from Block, Square, TPD, all those companies, she's a big time speaker as well and also very active on socials. But.

This was a really great talk because you basically walk through how you could use JWTs in like a online store, almost like a Instacart or DoorDash to order alcohol. And like there's a lot of checks and balances between like getting something like that in the store where you can pay and show your ID that you're over the age of 21. And how do you convert that into

a digital experience where a lot of those things need to be more async. And what are the capabilities of these platforms, the data, also local and state laws and the complexities between states that have digital licenses now and then have non-digital licenses still or IDs.

So it kind of transitioned from those workflows and what you could do with JWTs into what is coming out now. It's called verifiable credentials. And that's what is used for all these state IDs, which basically it's a digital vault that holds all of your information or license information and how you can utilize different tools within those

credentials to do different things. for example, if you're going to, I don't know, like a bar or a club or something that you need to be like over 21, currently if you have like an old or just manual like license, you have to hand it over to the bouncer, right? You know, all of your information is on there, your name, address, age, weight, you know, whatever, like all these things on there.

And it's not secure because you could lose it. You could drop it. Someone could take a picture of it. And then all your information is out there. With these new credentials, basically what you could do is they have some sort of scanner or a little device that you can tap your phone. And it brings up almost like permissions on your mobile device of like, I want to give permissions on microphone and pictures and camera and things like that.

It basically says, will you give permission for this service to see if you're over 21 or not? And then you give access, and then that pings the verifiable credentials or the state service that holds that and basically comes back with a Boolean, true or false. So it doesn't show any information past what the service needs, which makes it a lot more secure and has a lot of options that developers.

can use in businesses and services and things like that. So it's just a really good intro to these verifiable credentials that basically anyone can build to. So she used a lot of examples with the licenses and over 21. But you could be building certificates in here. So you went through the Laravel certification process. You could have.

a verifiable credential that says, yes, you have a valid certificate, but it might expire at some point in the future or something like that. Colleges and universities could do something similar for diplomas or certifications for that, or basically any sort of employment check. Like you use this to say, hey, I'm employed at Geocodeo.

that could allow you to, I don't know, pass through some income verification check or something like that. I don't know, the possibilities are endless, but it was just really interesting to learn more about that tech that drives it, and that basically any of us could be working towards these verifiable credentials in the future, and basically use it now too. So I thought that whole talk was just...

super good and I don't know just opens up the world of possibilities for these new digital IDs, tokens, certifications, any sort of information that you could be carrying around with you right now. It could be stored in your own vault and have different permissions on all that data in there.

TJ Miller (22:52)
That's really cool, man. So are these like verifiable credentials just like JWTs on steroids? Like more or less?

Chris Gmyr (22:59)
Yep, exactly. Everything is stored in the vault and then you use APIs and JWT's to request permissions through the vaults and then everything is transferred between the services and the requesters through JWT's as well. So she kind of goes through how all these things are.

signed securely the data that could be in them, different ways to turn on or off these Booleans or requested information. And she went a lot deeper into all the details than I did. But yeah, it's all through APIs and JWTs and secure protocols and things like that.

TJ Miller (23:46)
That's cool, man. That's a whole nother world. I'm a big fan of JWTs and I'm always like kind of looking for excuses to figure out how to use them in different ways. Cause I don't know. just think it's like, I think it's cool tech and it can be used for a lot more than just like your authentication token or however you're using it. I think there's a lot of applications for it. And it sounds like, you know, kind of running with that concept further, you've now got verifiable IDs. I can't wait to go digital with Learned License.

Chris Gmyr (24:05)
Yeah.

TJ Miller (24:17)
I hate having to carry a wallet around. I already can pay with my phone almost everywhere, you know, through Apple Pay, which is great. So I'd like, I'd love to have that experience, but like, I also am not in a position for like handing over my, like, let's say I get pulled over, I'm not handing over my phone, you know? So there's, I think there's still some things to figure out and I'm glad, I'm glad there's states like California who are.

Chris Gmyr (24:17)
Me too.

TJ Miller (24:45)
of paving the way for that and I'd love to see more of that in the future.

Chris Gmyr (24:51)
Yeah, totally. I think there's probably about five or six states, I think, at least right now that have the option for digital licenses and IDs. And like I said, it's good that like other states are kind of figuring that out before it spread across the U.S. But I think with that change, you know, anyone that needs access to an ID, so like the police officer or, you know, the

bartender or restaurant or something like that. They'll just have to have compatible devices. A lot of them already have iPads to check out or take an order or get in the door or something like that. So all of that tech will have to come on board with all that. So I think for your example, if you do get pulled over, the officer will have to have some sort of device that is digital ID compliant. And he basically comes up to your window, scans your phone.

right, and says, like, I need to have access to your full name, address, driving status, age, you know, whatever. It could be probably the whole thing for, like, a police officer. And then you could say, like, know, accept or deny those permissions from the request. But again, like, super cool. like, lot of, we still have a long way to go and a lot of things to figure out. But I don't know. That just seems really cool to me.

TJ Miller (26:04)
Yeah.

Yeah, I'm sure it'll all like be some sort of like NFC handshake kind of, kind of thing. So that's cool, man. I can't wait to see more of that. What a cool conference, man. I'm still sitting here just thinking about that, that Olam IBM talk, just, you know, what would have been cool to catch. So, do you know, did they, did they record?

Chris Gmyr (26:24)
Yeah, it's super cool.

It's really good.

TJ Miller (26:38)
other talks outside of that and are they like offering like digital tickets? Because I know that there's conferences that are doing that do that now too, where it's like you can get a like even after the fact you can buy a like a ticket and get access to all the recorded talks.

Chris Gmyr (26:50)
Yeah, I didn't see a digital ticket this year. I know they did it kind of like on the heels of COVID when they were doing live conferences, but maybe not everyone was comfortable going to them. I don't know if they had a digital one this year, though. I don't believe like all the smaller talks and sessions are recorded, but definitely the big ones or select a few from the different tracks.

or maybe like only certain tracks are recorded. So, but have to look into that for next time.

TJ Miller (27:26)
Yeah, no, that's cool, man. I dig it. I dig it. So, I'd love to pick your brain about another topic and touch on our most challenging projects. I think it'd be fun to kind of touch on maybe our first challenging project and our latest challenging project or something that we find, you know.

is a challenge or has like challenging aspects of it. Yeah, man, you want to run with like, it'd be fun. Like what was your first most challenging project like looking back?

Chris Gmyr (28:01)
Yeah, the first NOS challenging project was probably when I started off doing some more like consulting and freelancing back in the day. We talked a little bit about that in one of like the first episodes just on guru.com or almost like a up work type site, you know, right now. And that's how I got like a lot of my work. And one that came through there was someone who had multiple

websites that they were selling jewelry on because they had like different brands or like flavors of different items that they sold on the different brands. And they had like different prices on each one. And then they also had an eBay store. So basically what they wanted was inventory sync between these three digital locations. So if someone bought

something off of like website A, it would automatically need to be taken off of website B and taken off of eBay and vice versa. know, you buy something on eBay, it takes it off the two A and B websites, right? And then they wanted a centralized place that they could update items, they could add new products. And basically when you added a new product, it would have to go to all three locations, site A, B and eBay. So.

TJ Miller (29:11)
Oof.

Chris Gmyr (29:26)
I took it not really knowing what the whole deal was for the websites and also really working with eBay like at all besides buying stuff on there. And it was super challenging because we I was working with the guy who hired me, which basically was just the project manager and like one of his clients had this. So.

Basically, he wanted not only that functionality, but to remake all of the websites and this connector to eBay. So within, I don't know, probably about three, four months, he wanted this up and running. And it was so much work. So I did like PHP, like MySQL. I don't even think I had like a framework at the time. I think it was like

TJ Miller (30:12)
tips.

Chris Gmyr (30:20)
free me getting into even like CodeIgniter. So it was just like raw, like PHP. I kind of made my own little framework and like ORM, you know, type of thing and super basic, but got the job done. So basically standing up like two separate websites and a centralized admin and control panel and database. And the whole integration with eBay was just a nightmare. Like it had so...

TJ Miller (30:47)
Yeah.

Chris Gmyr (30:48)
Like no real documentation. was all just like mashing it all together and seeing what works and what actually happened in eBay. And there were just so many just steps that you had to go through. again, very little to no documentation. was all just like test the code, see what happens. that's wrong. Let's try something else and go from there. And it was just a lot.

to do and yeah.

TJ Miller (31:18)
Yikes. Yeah, man. That seems like, it seems like a lot to do even now at this stage in my career. Like, I mean, in certain aspects, it feels not so bad, right? We've got like Nova and filament. You could like throw together an admin really pretty quick. Laravel makes it easy to like connect to a lot of other places. So like, there's a lot of aspects of that that definitely seem like much easier to do now, but at the same time, that's a.

big project with a lot of moving parts and I would never in a million years want to touch anything to do with eBay, like at all ever. That just seems like the biggest nightmare.

Chris Gmyr (31:54)
Yeah.

Yeah, it was super gross. I can see so many options doing it now. Because like you said, with Laravel and other back-end or front-end frameworks and tools, there wasn't even queuing or anything like that in the background. It was just straight cruddy actions to.

the database and then like all synchronous to call out to these other websites and eBay and if something failed, like at least it would fail like very loudly for you. But definitely had to build on some tools to like, know, resend something to, you know, eBay or like resave the product and see if it will, you know, sync again, you know, type of thing. there was some definitely like rough edges, but yeah, I got

through it within a couple months and save this guy's butt because I guess he got like other contractors and stuff like that like a couple other times and they they couldn't do it and apparently I was the first one to get it done and you know that kind of helped kick off future work you know with this guy that I worked with ended up working with like probably about 10 years or so after that so yeah just worked out

TJ Miller (32:46)
Hahaha

Wow.

Chris Gmyr (33:13)
farewell even though I have a lot more gray hairs because of it.

TJ Miller (33:16)
Yeah, that's sick, man. No, that seems like a very challenging project to work on.

Chris Gmyr (33:22)
Yeah, totally. How about you? How about first most challenging project?

TJ Miller (33:27)
So mine's definitely like a bit of a different take on like challenging projects. Like I think for me, this is one that I look back at and was like, I, I don't know if this was the most challenging, but it seems like it was like I grew the most from doing it. So I feel like it had to have been a pretty big challenge. And so this was very early on in my career. I got like, I cut my teeth doing WordPress websites. And so.

This was a pretty custom WordPress website. So at the time, this was very early days for like advanced custom fields and stuff like that. So it was like driving out custom sections for this landing page, but it was also like pretty advanced parallax scrolling. And at the time I had like just started learning like jQuery and JavaScript. So like I really had.

no clue what I was doing outside of like very, very basic manipulation and then had this advanced like crazy parallax scrolling site. And like this was like big fat at the time, like everyone had parallax and it was advanced enough. And the way that this company worked is like we partnered with a design firm and like they would have their design clients and then when they would design the website, we build it out for them.

and all the designers there were very like, they were not web designers. They were all print designers. And so like we'd get these websites that were very hard to implement. Like anyways, because they were, you know, they didn't know that like they designed it this way. And we look at it we're like, I don't even know if I can do this with CSS. Like, you know, now.

you can do just about anything, but like this was very limiting like 15 years ago, you know, and then trying to make anything work and I, so yeah, this was really heavy parallax. had some multimedia aspects to it. But yeah, I just, really didn't know what I was doing and got real over my head with.

with the JavaScript and like how to make all of that work and scrolling inside of the window and what happens outside the window with all these floating elements and trying to make it work somehow responsibly also was, it was a real big challenge, but I grew a lot from that. mean, I came out of that like really having a strong handle on JavaScript. like, at that point I went from in the beginning, like

very basic jQuery to the end, had built like my own little JavaScript framework for handling the Parallax and adding in different elements. yeah, that was, that was crazy. luckily like the WordPress and PHP side of things wasn't too challenging, but yeah, coming into it, just not knowing enough. That was a,

throw myself in the deep end and hope I can swim, you know? Definitely stretched that deadline out multiple weeks past when it was supposed to be done, but it worked. I can't remember for the life of me what the company was, or I'd love to go back in the way back machine and find it or something. But yeah, I think that was...

That's the first project I look back on and go like, was a big one full of lot of unknowns and managed to pull it off. how about like that kind of takes care of the first, like how about the latest? Maybe I can kick this one off.

Chris Gmyr (37:10)
Yeah, go for it.

TJ Miller (37:11)
But I can think of like two projects. Prism's definitely like super challenging for me because I'm choosing to challenge myself with like how I'm approaching it and the experience that I'm trying to provide. I think...

I think one of the more like challenging ones of late was one of my last projects at Curology was updating like all of the CI CD system, upgrading containers. So it was like brand new Docker containers. are moving from PHP 8.1 to 8.3. We were doing Laravel shifts. It was just a project that really probably should have been broken down into like three or four projects, but.

ended up just being one big tangled project. And I mean, it had like consequences all over the place. It touched the development environment. You know, trying to, like we had a pretty extensive test suite, but still like, you don't know what little corners are, you know, like there's plenty of dark corners still where, you know, even it's not a big upgrade from 8.1 to 8.3, but

You don't know what that's going to affect necessarily, you know? And then there were like two Laravel shifts that needed to take place. And the app was, it's a Laravel app, but it's not.

It's not the Laravel, like Laravel-iest, Laravel app. There's a lot of custom considerations and stuff to take apart in. so there was just, the project was just really challenging from trying to manage all the different aspects of it. Try to plan what piece comes first and how you can kind of build some sort of momentum when you're updating tons of things.

And then having to like partner with all of the different teams to like get, them to like test their, their kind of owned part of the applications. And so there's like people coordination in there too. I think that's probably like the one I look at most recently. just like, was, that was a challenging project to get through. And unfortunately I got laid off before I even saw the end of it. So I put in, probably close to like two months of work and then.

never really got to see it pay off. challenging and also kind of a bummer, but you know, that, was a big one.

Chris Gmyr (39:37)
Yeah.

Yeah, totally. There's lots of moving parts in there, like you said. yeah, mean, hopefully we get it out. But I don't know. There's just less people to work on that and support it now. So we'll see.

TJ Miller (39:52)
Yeah. And that was like a big solo project too. Like I was out, out on my own on that one. you know, didn't, didn't really have anybody to, to collab with or, know, there's plenty of knowledgeable people there, but I think I definitely had, you know, a significant more. I was holding onto a lot, a lot more knowledge about like containers and, and like, and Laravel together. so that it was like, it was hard to, you know, I could.

ask people to review my stuff, but it was a lot of times me like pairing with them through the review and like doing a lot of like education as we stepped through it. Like, well, here's this, this is how this works in containerization and why we're doing it this way. Or like, this is like an edge case between like Docker, PHP and Linux. And like, that's why this part is happening this way. I got to know it was.

all kind of compounded into more challenging that it was like really just me working on the project. how about you,

Chris Gmyr (40:52)
Yeah, I think there's been a lot of big projects lately, but I think the one that has always stuck out in my mind is actually the first project that I did with Qrology when joining them is we wanted to build a phone consultation scheduler and mechanism. So there's like lots of states that you need to have some sort of live interaction.

consultation to give out or prescribe RX items, right? So we weren't available in all 50 states at that time. And this was kind of the push to get into the last handful of them. And basically what we needed to do is build in a scheduling component that our medical providers could sign up for time slots and shifts on each

business day and in like 15 minute chunks and time slots. So you could basically say like, hey, I want to do phone or video consultations on, you know, all of this day or the first 15 minutes of every hour or something like that. Like you could do that all through the scheduling app that we built. And then this would then correspond to when people signed up in that state that needed to have some of these live consultations, they would.

see the availability, they could sign up, and then everyone would get pinged and connected via Twilio to actually talk or video chat. But the interesting part is that the actual matching of the provider to the patient didn't happen until as real time as possible. So when that time slot was coming up, then we would make the match for it.

because we wanted to make sure that if someone else was busy or removed a time slot from their schedule or patients decided to reschedule something, it was just in time to do that. And there's a lot of complexities going on in the background of providers having state licenses. So you could be licensed in five states, and I could be licensed in one state.

So there's a whole waiting algorithm to figure out like who should get that based on who's signed up. Because if 10 people sign up for like New Jersey and I'm only having a New Jersey license and you have one of yours is on New Jersey and then, you know, 10 other people sign up for those varying other states.

like since I'm only licensed in a single state, like I need to be filled up first before it bounces to you and fill up those most needed states. And then it'll kind of like overflow into those other states for you. So just figuring out the mechanics of doing that and the real time nature of everything and just keeping like everything as up to date as possible or even

notifying the provider's Slack channel of like, hey, we have more signups than we have right now, or we have like a provider jump out of a time slot. We need more providers in here for this time slot on this date. All those things had to be figured out as well. But basically, like the inner workings of that algorithm, the matching algorithm, was super gnarly. And I think I did.

a handful of iterations on it. Like I was using the iPad to like scribble things around and doing like different sorting and things like that. And I think I did some like minimal code, but basically just sat and thought about it for like two or three weeks initially. And I was like, no, that's not going to work because of this edge case. And nope, that's not going to work because of this other edge case. And then finally, I'm like, this is going to work. And I wrote it all down as fast as I could so I didn't forget it.

and mapped it all out and then basically banged it out in two days of coding, lots of code. But it worked basically flawlessly, out of the gate, full test suite, full everything, because I, I don't know, internalized all of the stuff that needed to be done. And also, this was my first big project in the company too. So I had to get up to date on all the

TJ Miller (45:11)
Hell yeah.

Chris Gmyr (45:23)
domain knowledge and the rules and regulations and guidelines and all that stuff. So I was basically just trying to gather all that in addition to figuring out this crazy matching algorithm and stuff like that. was just challenges on multiple levels. But it felt so good to just bang that out eventually and just share with the team. And they were all super excited about it because this also allowed us to launch that project a lot sooner.

than we initially had to, which is also awesome.

TJ Miller (45:56)
Yeah, no, that sounds like a project with just so many different things, like so many different considerations that you have to make. And I, that's, that's a doozy man.

Yeah, that's just like a lot to think about. I think there's like, like to like stew and simmer on stuff like quite a bit. I'll have like with like Prism, I'll have an idea for like, or like, I know I need to implement this feature and I'll spend a week just thinking about it. Like maybe I'll write a few pieces of code just to kind of like, you know, see how the ergonomics of a certain function like actually feel or like I'll have an idea and I got to kind of like

prove out whether that's actually possible or not, or how difficult that would be to do. But there's, I think, an underrated amount of value in, like, just kind of letting something stew and having that time to crunch and think on it and just iterate internally. then, if you spend time just letting your gears turn on it, you sit down and you're able to knock it right out.

you know, rather than starting, stopping, having to like backpedal or like have that sunk cost fallacy of like, well, I've already coded myself this far into a corner. Like, you know, I guess, I guess I've kind of committed to doing it this way, even though maybe I could do it like this other way, it would be so much better. But like you've already sunk time and work into it, you know, it's a lot easier to just change your mind or scribble something out on an iPad, you know, it's.

Chris Gmyr (47:30)
Yep, yep, exactly. And I think that's, I don't know, I feel like a tricky topic because we, as developers, are more knowledge workers than typists, right? At least that's how I feel. Like the biggest part of the work is thinking through a solution or a set of problems and finding like the best solution that.

TJ Miller (47:46)
Yeah.

Chris Gmyr (47:55)
fits the business, fits the time frame, fits the budget, fits a whole bunch of key factors. But hands-on keyboard time does not equal the best solution that you can have. And I think it gets tricky into certain situations, whether or not you're in a full-time product engineering role versus a contracting role, and the type of business and the culture and things like that. I feel like some

People, cultures, managers, whatever are referring hands on keyboard, typing whatever code that enables you to close as many tickets as possible, but like might not be the best solution either. So I think there's a lot of trust that is built into that. And I think where you have like more trust and respect between developers, managers, whoever's running the team or the company will have the best

output but not necessarily the most amount of code to do that and I think that's probably the best case scenario is more thought through solutions and less code because I I definitely like writing less code or deleting code that doesn't make sense

TJ Miller (49:10)
Yeah, I feel like sometimes it's like a, I, I give a little bit of a white knuckle experience to my managers of just like, all right, so there's like nothing happening. I'm not really seeing anything happening. is this, are you, are you actually doing anything? And then all of a sudden it's like, yeah, like two days you have this massive amount of code and like this piece of functionality is like done. It's like, whoa, what the heck were you doing all the other time? I'm like, figuring out like how

to do it. Like there's, there's a reason why it all came together the way that it did. And that's because I was chewing on it, like trying to figure out how best to approach it and like weighing out, you know, pros and cons and kind of figuring out what to do. then, yeah, since I put all the thought into it, it just sat down and knocked it out. You know? So it's, yeah, it's, I think there's definitely like a...

to pull it off, there's gotta be a strong level of trust between everybody. But, that's really cool,

Chris Gmyr (50:10)
Yeah.

TJ Miller (50:10)
So I think on that note, can probably wrap it up. What do think?

Chris Gmyr (50:14)
Yep, let's do it.

TJ Miller (50:15)
Cool, so thank you all for listening to the Slightly Caffeinated podcast. Show notes and all the links that we can provide from this episode will be available at slightlycaffeinated.fm. You can find us on Twitter and X at slightlycaffpod. You know, speaking of that, we need to maybe spin up something over on Blue Sky now too.

Chris Gmyr (50:40)
Yeah, we'll do that.

TJ Miller (50:42)
And then, yeah, you can email us thoughts, comments, feedback, topic suggestions to hey at slightlycaffeinated.fm or just reach out to Chris or I. So thanks, y'all, for listening. That was another good episode.

Chris Gmyr (50:56)
Yeah, thank you TJ, thank you all. We'll see you next week.

TJ Miller (50:59)
See you next week.