¶ Welcome to Syntax!
What's up, everybody? We've got a Hack Week overview for you today. So Sentry has an entire week, as every single year, it's called Hack Week. And during Hack Week, you are allowed to go in... build absolutely whatever you want. And this is a really fun week because you don't have the pressing...
parts of the rest of your business or the rest of your job sort of having to get done. You can just spend some time working on whatever it is that you want. So all three of us did three totally different projects. And we're going to detail what we did. just briefly here in this podcast. And then in the next three episodes, we're going to go a little bit more in depth, as well as provide a bit more video as to what we actually did showing.
code showing some of the hardware we worked on pretty fun projects i'm really excited to share what i've been working on i'm really excited to hear what these guys have been working on as well yeah my name is scott talinski and i
¶ Hackweek projects spark motivation.
Gotta say, Wes, you said it's free from the normal things of work. I worked so hard on Hack Week. Me too. I started the week before. Oh, yeah, I noticed. I saw you posting stuff on YouTube. I'm like, Wes is starting early. This is not fair. I'm going to have to like. So I did a bunch of pre-planning work for mine because I didn't want to start too early, but I worked.
so hard i put in nights i put in extra extra extra time i was working on i woke up was waking up early to work on it before the kids went to school it was a long and uh a hard week but honestly the end results were pretty amazing for all of us i think uh cj how about you we have by the way audio folks cj uh reynolds is joining us today because he also did a great hack week project
Yeah. So same experience. I think that's one of the things about being able to work on anything you want. You can pick the things that you're like really passionate about. And yeah, I got sick last week or was that Hack Week? Whatever Hack Week was because I'm still recovering. I still, I worked through the sickness because I was so, I liked my idea so much. And so, yeah, it was really fun. Yeah. It does say something.
about motivation here. We often talk about motivation on this show. It's like when you are motivated to work on a project, you will push through and learn so much more. And I... I used a bunch of technologies that I was fairly familiar with, but threw them together in a way that I have not used them before. And because I was so motivated to fix this, man, it was such a joy.
to learn and to push through and work on all this stuff just because of the sheer motivation of it all. People out there, if you are in a place of having any sort of influence over your company. Get them to set up a hack week. The results that came out of Sentry's hack week were unreal. Did you guys watch the presentations?
uh for the century hack week yeah i watched all the the toronto ones and there's there's some really cool stuff a lot of people exploring stuff but a lot of people simply just like fixing stuff that bugs them you know like it's just like this has bugged me in century forever
And here I just went and fixed it. You know, I took a week and went and fixed it. And everyone's like, holy shit, that's way better. Yeah. Yeah. So Century has awards for all of the Hack Week participants. And one of them is just ship it. And that's where people can vote on, hey, this is something we need, so ship it. And there were several in the demos that were like, yeah, this is awesome. Why didn't this already exist in Sentry? Yeah, there is, by all accounts.
projects that come out of the hack week every single year that go directly into century either months later weeks later half a year later i mean valuable stuff comes out of this thing yeah uh there was 156 submitted projects that's that's amazing but so we didn't actually build stuff for century um we built stuff either For the hell of it, because we are interested in how it works and...
We get to talk about it and explain it to you, the listener. Or I know Scott built something that we've been dearly needing. So let's do this right now. Let's do each of us can give a one sentence of what we built just to hook y'all. Elevator pitch. And then we'll go into, I don't know, 10 minutes or so explaining what it is that we did. So I built a real time web controlled LED grid, which I have right behind me. And that was.
¶ What we chose.
lot of fun i built a real-time competitive coding platform focused on real world user interface challenges nice and i Built a custom Sega Genesis game. I'm going to swap to the camera. It's running on the Sega right now. I'll tell you all about it. You can't see it usually because it's blurred, but there's a Sega back there, and I built something for it. That's amazing. Unreal. I can't wait to hear.
I don't necessarily care that much about Minor Scots. I want to know how the hell you built a Sega game. So let's start with you. Okay. I'm just joking. I am excited about that. But like, man, when you told us you were doing a Sega game, I was like, how do you even do that? Yes. And that was my question, too. So, yeah, day one was, is this even possible? And I had a hello world by the end of eight hours. It took me eight hours to get a hello world. But the modern.
ecosystem for doing this kind of thing has kind of exploded. I say modern. A lot of these tools haven't really been updated in three, four years, but the technology is... 30, over 30 years old. Yeah, relatively modern, yes. Yeah. So how did I do it? There is a software development toolkit called SGDK, and it allows you to write C code.
for the sega genesis so the sega genesis all of the original games that were written for it were actually written with assembly code and so assembly code is basically exact processor instructions and it's very low level It's not zeros and ones, but it is, it says like move this variable into this memory location, that kind of thing. But with the SGDK, you can write C code and it abstracts all of that away. So for...
a modern developer, it's a lot more approachable. You have functions you can call that say like create a sprite and set sprite location and different things like that. Yeah. I think my favorite Assembly Code video game lore is that the Roller Coaster Tycoon game was written in Assembly. And that's crazy. Yeah. Written in assembly by one guy. The 3D game we're talking about, right? Rollercoaster Tycoon. Yeah. Insane. Yeah. And so, yeah. Day one was just getting a Hello World and with the SGDK.
It was fairly simple. They have a bunch of samples of different kinds of things that you can do. I had the idea on day one. I proved that I could do it. And then at the end of the day, I ordered what's called an EverDrive. So this is a Sega cartridge that you can put an SD card in. And you can just put whatever ROMs you want onto that SD card. And that's how I have it actually running on the Sega. Oh, okay. Yeah. Man. Wow. You know you're in deep when...
when C is the abstraction level, you know? Like I'm sitting here writing TypeScript, which is about 14 more abstractions on top of that. Yeah. I will say for anybody that wants to dip their toes in this stuff... It's not that scary. I think like a Hello World C program, like the main thing about C is like it's lower level and that you have to manage memory and there's a lot more things you have to do manually. But it's the JavaScript and TypeScript language are C style languages.
The syntax itself was informed by literally the C language. So even just looking at C code as a JavaScript developer will look somewhat familiar. It's nothing crazy. It's just you kind of have to learn about pointers and structs, which...
If you learned objects, you can learn those things as well. I'm curious about the game engine side of things. Yes. Because your game was like a little platformer, a little... century seer logo is bouncing around what like what game engine is that yes so there's nothing official and that was so day i wrote like a whole timeline of what i went through but
Day three was where I was like, okay, I need to figure out if there's a game engine now. Day two was, can I just get graphics on the screen? And I ended up getting a Sentry logo. My idea was, so if you've ever played Sonic the Hedgehog, you know, at the beginning of Sonic the Hedgehog, it says, I wanted to do Sentry with the Sentry logo. So day two was like, could I just get graphics on the screen? And SGDK made that fairly trivial, except you have to worry about memory.
This thing only has, I think, is it 16K kilobytes of memory? And then the Sega itself supports 256 different colors. But there can only be up to 64 colors on the screen at a time. And then for any given tile, because it's a tile-based system, that tile can only have up to 16 colors.
So learning all of that was probably the hardest part is like figuring out how can I convert my images to be just 16 colors? And then from there, if they're too big, I have to break them down so that they can get loaded onto the screen. Yeah, so that was day two. But then...
After I figured out all of that, I was like, okay, I want to be able to design a level and not have to like literally write zeros and ones in an array to define like collisions or where tiles should be. And so I found a project. called platformer engine and it's just someone that was working on this like over five years ago and they tried to make it a little bit easier so basically they had c code for a camera for a player
for joystick movement. So basically all of that code was written for me where it was fairly high level to say move player to X location, move player to Y location. They wrote that code for me. And then they had a... fairly simple level loader so they basically had this giant image that was like a level and then they had a c matrix like a width by height matrix that defined
where all of the collisions were on this map. So imagine like a flat tile map. And then for each tile, you can say, well, this is a ground tile or this is that kind of thing. In their code, they literally had a giant array where it was zeros if they shouldn't collide and then ones if they should collide. So one if it's ground. Yeah.
So they had all of that code written, so that made it fairly trivial. So basically, they had an example map, they had the collisions, and then I could start to go in and modify things because there's... For modern game development, there's a lot of tools out there for developing levels and developing tile maps. So the TLDK was the first one I came across. Yes, TLDK.
LDTK. Dude, I've messed that up so many times. Level Designer Toolkit. But yeah, it's a GUI app where you can like draw with tiles and then it exports. And so this engine supported that. And it made it so that I could load the map in, I could define my own tile sets, and then load that into the game. Cool. Yeah, I explored the LDTK when I was checking out Godot. It is like, it's pretty dope.
Yeah, a lot of people use it even for building Unity games, which is, it's something to be said about like, yeah, it's 30 years later, but now I can use these more modern tools to... to work on such a simpler, lower-level game. That's cool. I have so many questions just about even just storing graphics, but I'll hold it for the longer video that we do.
Yeah, we'll be doing a technical deep dive, folks. So if anybody wants to get deep onto these things, CJ, what was the end result of your hack week? You finished it. You made your video game.
¶ What was the end result?
What did you get out of it? Well, I'll say the end result is I only have a single level. I spent, like I said, a day figuring out graphics, a day figuring out just can I have some sort of game engine so I don't have to write all this with zeros and ones and arrays.
And so on the last day, I was just scrambling to get my own custom graphics in there and my own custom level. So at the end of the day, I'll show you, if you're watching on the video pod, this is the game. You are... second my controller needs to turn on but you are sear this little triangle here and my thought is you can collect traces so these little balls are traces
And eventually you'd be able to battle a bug boss where you throw traces at him to solve the bug. But this is the one level. Basically, it's just like a platformer that moves up.
and you can jump across. So that was my finished result. I mean, I'm not proud of the fact that I didn't get a full game. Like, there's no boss level. Basically, this level is the only one. But the fact that you can create at least an entire level... in less than a week these days is is i think pretty impressive but yeah so that's the outcome didn't get to finish the game uh what did i learn uh there's so much more i want to do um one of my initial ideas was
I wanted to connect my Sega to the internet just because it sounds ludicrous. Like, why would you do that? But it should actually be possible. So now in my spare time, I'm going to be looking into it because one thing I learned is the Sega controllers. are actually a 9-pin serial port. So you can actually read and write data from where you plug a controller into, and that could potentially connect you to the internet.
Okay. That's cool. All right. Let's save some of this for the deep dive because we're getting a little too in the weeds. Yeah. Yes. This is cool. We got a lot of questions. Okay. Next one. Wes. Yes. You made. something with hardware as always this is your third hack week project and all of them have used hardware is that correct yes yes all of them the first time i did a little custom keyboard shortcut thing second that did some led lights last year i did what did i do last year um printer
Oh, receipt printer. Yeah, that auto printed off like photos and videos for not photos, but photos and text from people on the Internet. And it auto printed my my century issues, which was really cool. And this year I did a real time. drawing LED grid that is web controlled. So it was really cool because I had to build the whole hardware LED grid right here.
I had to solder a whole bunch of stuff together. I designed a whole bunch of stuff in 3D and 3D printed it. And then I built a whole software stack. So there is like a... There's a backend, which I built into Cloudflare Workers. I'll go into the weeds on that in the next one. video. And then I use party server that connected it to a react based front end. And you're able to anybody's able to go ahead and draw on it. And like, like right now, there's, there's four people in it right now.
which is kind of fun. I had like 80 people in it at one point and everybody sees it. And then I wrote a whole like... I don't know if you call it a reconciliation engine, but basically I wrote a whole thing on the server that would take the pixels that have changed. as part of like the the web app state and then it would send it over to the grid um if you're watching the video it looks like crap on my camera but it looks so good in person like the colors
are just absolutely beautiful, and I'm really happy with it. Filming light is a very hard thing to do, especially when you're also trying to film yourself. It's all light. Technically, you're filming light even if you're not filming light, right? But honestly, I love doing hardware projects because it...
¶ Why hardware projects?
Like CJ, it gives you a bit more of an appreciation for constraints. I hit so many things that were... that I would not necessarily hit in like a web app just because there's limited memory, there's network latency, there's low powered. processors. The thing is running on an ESP32 microcontroller. I have power constraints because this is...
Turns out this is a hell of a lot of LEDs. You know, I have a huge appreciation for it. There's there's you can only update it so often. You know, I tried to do real time video. where it would take my webcam, or I did do it, it takes my webcam and paints it in real time to the LED grid. So it gives you so much more of an appreciation for people who work on hardware.
where you have so many more constraints, as well as people who work in IoT, where you're trying to connect this stuff to the internet, and you don't necessarily have... You can't just NPM install something and slap it on like a $5 microcontroller. You're a lot more limited in things that you can touch.
I just want to say I love how big it is because I've tried to do little hardware projects with a mini LED matrix like that or one even smaller than that and it was a pain to get it up and going so I can't imagine wiring you have six panels or nine panels up there nine panels so this is a 16 by 16 um It is big. So it's 256 and they have nine of those, which is about 2306 or whatever. Who's good at their 16 base math and just simply scaling it up.
was kind of a hard thing to do because there are power constraints, right? Basically, the way that this works is that the power is injected in on one. I'm getting the weeds, but there's power constraints and you can't just run.
bunch of power right through it right you have to inject the power and then there's constraints around sending a lot of 200 2300 pixel updates at once and there's constraints around what's the best protocol over the network to to do it so i'll get into all the weeds there so that was really fun and like this is the first like
bigger project I've done with durable objects. I built three or four things here and there with it, but this was like the first time where I spent several days working with Cloudflare's durable objects. And it was kind of a fun one. Yeah. That's so dope. Yeah. You took an opportunity to pick new tech or different tech. Yeah. Hardware, software, all encompassing. And I got to applaud that. That rules. Definitely. All right. Let's hear what you got.
Yeah, so I made a real-time coding platform for my other Hack Weeks. I think they... They all haven't been in real time. The first one I did was I wanted to do like a notion replacement that saved to markdown. So that way we could edit notes in real time, but save to markdown. I could do that so much better today if I were to take on that project again. It ultimately wasn't very successful. It worked. It created PRs and stuff, but it could have been better. The second year...
CJ and I teamed up and did a Tori app for our production assistant where it can create show notes and stuff. And Randy uses that app. We got to push out an update. I got a little modification I need to make to it. But it's a it's an app. It's in my desk. Right now, Syntax Production Assistant. So very successful there. And this year...
I decided to take a bite off something that was kind of large and build a competitive coding platform. We do our CSS battles on YouTube, and we've often lamented that they're not real-world UI. Many people in the comments have said the same thing. Like, what's the point? They're writing bad code just to finish. And the point is for it to be fun. But I just was wondering, like...
All right, is there another way? And then I just started getting into all these interesting ideas of like, well, what if we wanted to write the code on our own machines and have it update? So... It gave me an opportunity to explore my local data syncing system stuff. It gave me an opportunity to work deeply with the file system API and then build a full-on ass app that has... uh login accounts and what my schema file is 500 lines long so it is a legitimate application that
we will be releasing here so that other people can use this and engage in battles and put together leaderboards and all kinds of fun stuff. Yeah, I'm pretty excited about that because like me and you did a... what was it like we did like a button like can we build this button sort of as a css battle but also like this is this is real world this is something you would actually do instead of just try to put like a pokemon ball on a screen
And I love those types of challenges as well because you often see something cool on a website and you say, I would love to rebuild that. And I wonder how Scott would approach this type of thing. Yeah. We just use Veet locally, but it's just so much better to be able to have a full-blown app, as well as for editing's sake, you know? Being able to see how everyone's doing all in one screen.
¶ Early considerations.
There is a number of benefits here, and a lot of that was taken into consideration when I was planning this out. One, we need some way to make it fun.
uh for viewers right because that was the big concern it's like we record these things we've done a couple of ui battles and we're like i guess who won we choose who wins okay that's really hard to do um so like having user voting was one thing but like what are they voting on so i had voting on like most accurate uh most real world code and like how is it how does it feel the best feel so users can vote on those parameters they can use the code because the code is
uh being loaded as not just an image it's being loaded as code they can use it and try it out so voters the audience can now vote and we could publish the battle results before we publish the video Therefore, people can vote and we can use that in the video. I love that. Definitely. I will say, Scott. You win the Just Ship It award for the syntax team because this is something we need. Yes. And yeah, the elevator pitch is CSS battles, but real UI. That's awesome because I think...
Other people would use this too. That's some of the comments I saw whenever your Hack Week demo video was playing. People also said we could use this for interviews when they're hiring somebody to build UIs. You can see like what they're working on in real time. You can see their code. So yeah, it's an awesome idea. Yeah, there's a lot here. A lot of fun technical challenges. And the first hack week I did when I did the real time whatever.
About like three days into the hack week, I was like, nothing is working out. I've changed the libraries like eight times. I'm like struggling to do anything. And this time. By day one, I had... Log in. I had the whole coding interface, not like the UI for it done, but like saving files locally, saving to the day. Like I had all of the difficult technical challenges done day one. And then day two could be.
focused on app stuff. And then day three could be focused on UI. And then day four focused on like CSS and UI. So it was like the technical challenges portion of this got done in a way that was so acceptable so early. And that's a largely a testament to the stack that I'm working in. So when we detail that stack
I'll show you guys just how simple this application is to work on. And that's one of the big reasons I was able to do so much. I built a whole ass admin interface for this thing too, which you guys didn't even see.
It was really interesting to see the caliber of stuff that people built because they were able to use AI. It's just incredible that like... like just from last year like last year we had ai but like this year we have different levels for sure vibe coding absolutely everything and spitting out like whole ass apps which is is wild wild to see like people are able to take their ideas and even producer randy we're gonna have a whole video he he made like a whole ass app and it was
It's unreal what he actually built. And he's like, I don't know. I'm just like a video guy. My favorite thing about Randy's presentation was when at the end he was like... If you want to know how any of this works, don't ask me. I don't know. That is so funny. So I kind of saw it as a challenge, too, because I was writing C code and like.
the SGDK, which wasn't that popular, like how well could AI actually write code within that context? And I figured out some things, which I'll share on the deep dive. Like it wasn't perfect. And so I was also kind of at a handicap where I... don't have a bunch of trained code that this thing could just generate on. Yeah, I did figure out some ways to work in older code bases with it.
¶ AI usage.
Yeah, I want to ask you guys about your usage of AI in this project. How much did you use AI and what did you use it for? I used it.
pretty heavily for the the front end so what i had done is i had built this like real-time drawing thing i don't know maybe six months ago and i just i just took that and i just said convert it to react right and i built it in vanilla and it did all of that and i leaned on it pretty heavily for the front end because i was spending so much time hardware wise you know
designing, soldering, building all of that stuff together. And then also quite a bit of my time was trying to understand how to best send the data from...
the server diffing to the actual hardware, right? There's a lot of challenges there. So I spent a lot of my time doing that. And then being able to just like... type in make a react component that has buttons on and call server functions was so nice because like i could have spent all week just building a straight up react app and not focused on this stuff
Yeah. Yeah. I'd have to agree. It let me focus on the things I wanted to focus on. Yeah. And which was like C coding and like building the game itself. So I used AI heavily. But often for like one-off scripts as well. So I needed to create a lot of assets and like convert image types. So I'd use AI to generate an image magic script that can convert images. The SGDK has resource loading.
So like it can automatically turn images into the right type and stuff like that. But I also wanted it to automatically load collision maps from an exported thing. And I used, and you write that with Java. So I used Cursor to help me write all that Java code to generate those resource importers. And then I kind of also mainly used the chat at one point to...
give it the context of my C code base. And then I would ask it questions. Like I didn't want it doing too much in the C code base itself, but I was just like, how do I do this? Or how would I do this? Or how would I go about this? It'd give me like four options. And then instead of saying, let it do it i would go off and pick one of the options and implement myself yeah yeah that's dumb i had a hard time using ai for anything actually code related um
Because, man, it's still a massive struggle to get AI to play nice with Svelte 5. It is a massive struggle. And the amount of time I spend going back and forth with it, no matter what. the model, no matter how I have it set up, no matter how many times I beg it to use context seven, I have, it's just, it's making bad choices. So it ultimately ended up being a result where I was moving so fast.
coding that like it was slowing me down to have ai generate any code for me so i mostly used ai uh for planning and for being like what am i missing in this database schema this is what i'm planning on building Am I missing any indexes? Am I missing any relationships? What do you think I should have in here that I haven't thought of?
That actually was very successful because the AI was able to determine for me things like, well, down the line, you might not need this right now, but it seems like you'll probably want this at some point in the schema.
I'm like, OK, I'll add in the schema. Thank you. And I think that in that aspect, it was is helpful. But coding wise, it slowed me down. This is like a really, yeah, rough slog for using AI. But it was it was very fast to work in coding wise. So I didn't need it. That's I just added a. a show idea because like that's that's a show in itself is using ai for either undocumented or new libraries as well because like
I've hit that quite a bit with stuff where there's no prior art in using this thing. No prior art, yeah. And no matter how much you force feed at the docks, it just starts imagining stuff. DJ just dropped his artwork on my LED grid. Yeah, because it's pixel art, so it looks awesome. That's awesome. Oh, yeah, you're right. Man, it's... It looks so good. What is the URL for this thing again? Local.westboss.com. I'll explain how. I just ran my local V server on...
on my computer, and then I just proxied it out to the internet. And I had like hundreds of people. Someone started spamming it at some point, which made my internet stop working. For the most part, it ran for like a week. Man, this is so dope, Wes. We'll deal that. We'll get a little bit more into that in the following videos. Anything else to add, guys? I don't have anything else to add. I'm really excited to share with you our full projects in a deep way. So if you are excited about that.
Come check us out. We're going to be doing these. They're going to be the next few episodes here, and we're going to go deep dive on technical. We're going to be showing code. We're going to be talking all things about how we made them and getting really deep into them. There's some amazing things to learn. through all of these projects. So let us know what you think. Again, if you can swing a hack week at your place of work.
My gosh, this was so much fun, and I do think it was so valuable. If you can get a week off to work on crazy stuff, man, the end results are really...
pretty impressive company wide. So yeah, a shout out to century for planning such a great hack week producing such a great hack week. And shout out to everyone at century for bringing their a game i i showed up to this thing and courtney's like what are you putting so much time and said i'm coming to win i'm doing this to win and then after watching all the videos she was like are you gonna win i was like
I don't know. I don't know. I have no idea. Everybody was so good. It was crazy. So, yeah, shout out to the whole org. Everybody rules at Century. And we will catch you in the next one, folks. Peace. Peace. Peace.
