Yearly Dev Update: 2025
Repo Status Updates of The Year
SaorsaDev Blog
complete This blog was made just this year, believe it or not! I made it to try and draw me away from LinkedIn. But LinkedIn feels so much more casual, I’ve always opted in that direction when able. This year, I’d like to get better at feeling like my LinkedIn posts could just be blogs I link to. But that means way more content on this blog, which isn’t a bad thing, it’s just a bit of a transition. Nonetheless, despite a lot of complications with configuring the Ananke theme on this blog, it seems to have worked out for the best.
Rag-AI Demo
complete This was a simple repo made to demonstrate how Golang could be used to make an effective RAG chatbot, that responded when it had an answer with a high-rating of confidence, playing with the variation of the responses, but this was just a project to demonstrate what Golang is capable of with AI. Small MVP, and some the the repo was borrowed from a tech demo I attended, nonetheless, it’s a project, and I completed the requirements, so we’ll call this one complete!
Template Server
complete This project had a modest set of requirements. I wanted to create a web server, learn about the html/template, and http package in Golang, and be able to have a functional website up and running made with Golang. Completed the requirements, and went a bit above and beyond with some simple middleware implemented as well.
Personal Portfolio
complete This was a simple update to my personal React portfolio. Just front-end work, but continuing down the avenue that ‘hey, I’m passionate about Go, hire me to write it’ sort of deal. I like to try and keep this website up to date when I can.
Prism
in development This was a full attempt at a game engine from the ground up. To summarize it, it’s a combination of PokemonGo, and Factorio. I implemented an algorithm I made myself in order to take .txt files and use those files to create ASCII-rendered art into a terminal UI. Then I programmed the configuration so it can run on windows, or Linux machines. I haven’t cared about Mac, because I just don’t use Mac, and it isn’t in production. I found some interesting ways to be able to calculate the width & height of a users’ screen for ASCII-rendering, also found a way to geo-locate either a phone via GPS, or by wifi, so people can play even while on a laptop or desktop. A ton of work went into a fairly complex database in PostgreSQL, but overall, this project has been put aside. Currently, I’m interested in other kinds of programming, and this project had effectively become a labor of love, but not exactly where my career needed me to be at this time. But there’s no doubt in my mind, that I’ll come back to this project.
Coin
complete The goal of Coin was to make a TCP server, learn about a different kind of networking protocol, and to abuse it in a unique way that I couldn’t accomplish with http. The requirement was to be able to have a terminal, anywhere in the world, connect, and open up a chat room, or create a new one, and be able to chat with anyone, anywhere. That was effectively it, no permanent sign-in info. This was a super fun project, and it was completed. I used AWS to get it hosted without a domain name, and mostly, it was just a fun little project that I can still make some alterations to. One of my goals for next year is to make it into a little microservice, and then make it into a k8s app that can handle some obnoxious bot activity, then make the bot to do said activity. We’ll see if I truly make the time. As of now, it’s in a complete stage with no real timeline for me to return to it.
AdventOfCode 2024
abandoned I had hoped to have more inspiration to do some leetcode-like programming for the month of October, but, modded Skyrim beckoned to me, and I didn’t really have anyone else who was involved in my friend group who was doing it openly. I got 3-4 days in and let it go. Maybe next year!
Arbiter
complete This is a Playwright application, made to do some really simple tests on my live production and test environments. My main test that I do semi-frequently is to get an output of some complex testing to get a log on how the environments are doing. If they’re slow, I want to know, if they’re up, or down, I want that all built into a nice, clean response in the terminal, with much more complex logs if i want them. This project is where I learned about how to customize the logging package to do some custom stuff in a project, which was very cool. However, while I have a lot more tests I want to write, the project is in a really good state.
Whisper
in development This is an IoT project that has a few phases. Let’s say that this is just the device side. It’s using a small microphone, connected to an ESP32-S3 microcontroller via a mini breadboard. The required devices themselves are about the width and length of 2 fingers, but the breadboard expands it a bit. This hald is fully set up. The reason this app is called ‘whisper’ is because it’s job is to detect loud enough audio, then records it. If it’s possible, I’d like to get it to where it only records human speech, but I’m content without it. Anyways, it’ll take a small MP3 it generates, and sends it off to a remote server. Long term, the server’s job is to turn speech to text, then add that speech to a logged markdown file, then add it into an obsidian vault for future review. This is the first stage of building a private & more secure AI assistant for myself. Basically, I would talk to it through this device, and the audio would be added to the AI’s long-term memory base. I have no clue how well that will work, but mostly I’m interested to try. I’d even like to expand this to video, and use a video-to-text model to log events in a video, again, to enhance a personal AI assistant. So, I could ask something like, “when did I get home last night”, and if the front door camera correctly saw motion, captures the video, sends it to the server, server logs the time, video-to-text describes the event, and the assistant should be able to use that to determine that. This could evolve into a project way more intense than anything I’m truly willing to program, but I’m interested in having a more local AI assistant to chat with, with more long-term memory. If this is the only way to get that, that’s fine. If this project won’t be as useful as I had hoped, that’s alright too. It’s mostly just for fun and learning.
Events:
Meetup Presentation:
Why I Go: Free Code Camp Columbus This year, I was given the opportunity to speak on why I love Golang so much. It was a great opportunity, and I had a ton of fun showing off what Go is so good at. It generated a lot of fun discussion on what Golang is, as a language. I tried to improve my speaking strategy based off of feedback at previous events I’ve given talks at, to success, I would say.
Conference Presentation:
DevOps Columbus: Introduction to DevOps This was my first presentation at a conference. I was a bit more nervous than I anticipated, and I couldn’t explain quite why. I normally, tolerate, being in front of people. I think mostly, I had rewritten my speech a few days earlier, and still felt it needed some restructuring. If anything, the exceedingly long time to present 45 minutes was a lot longer than I had anticipated. I wanted to fill that time better, so I restructured. But once the speech was over, I was elated with how well it had gone. The audience was a bit more advanced than the organizers had anticipated, so I think the first half of my presentation felt a bit boring. Things picked up a lot more when I started to speak about my personal philosophy about why to learn DevOps, what makes it fun, how to learn by making projects. It was a topic those senior devs seemed to be able to chew into, and responded really well to. So for the future, I think discussing personal stories and experience, as well as philosophy, is something I should try to incorporate more.
Became DevOp Columbus Organizer:
I was invited to become an organizer this year for the DevOps meetup in my city. It’s been a really fun adventure to talk to companies about where to meet, presentations, finding speakers, interestingly, I haven’t had the chance to speak at our meetup, but hopefully soon!
Transitions
Every developer goes through little transitions, but this year had a lot.
Leaving VSCode.
I had never had an issue with VSCode, but suddenly, I couldn’t run a debugger on my Golang code. To try and figure this out, I transitioned to an editor built to code in Go, Goland, by JetBrains.
Leaving Goland
A terrifying, but necessary step. My piddly work machine simply couldn’t handle running Goland + a browser + company communication via microsoft services. All leading to the decision to look for something more lightweight. This led me to Neovim.
Introducing NeoVim
By reputation alone, I was terrified of neovim. I had heard stories, but never had I actually thought I’d use more than the motions. Partly what gave me the inspiration was that I had recently spent hours configuring a custom theme in Goland, but that was entirely through a GUI. Neovim was a remarkably different world. I was thrown headfirst in, because I just had no other choice. The experience taught me a lot, using Lua is still something I avoid as much as possible, but I can at least say that I’ve had to write my own functions for custom functionality. Ever so slowly, creating my own perfect developer experience according to exactly how I wanted it.
Introducing Tmux
I jumped on board right after learning Noevim, and spending so much time in the terminal, it just seemed like the right step for me. Of course, then you go down the configuration rabbit hole, and you’re lucky to ever come back.
Tragedy
This was really the final event of the year. I never really recovered for the rest of the year. The sun went away in Ohio’s October skies, and I also deleted my dev environment. Completely corrupted it, actually. It was brilliant, in the tragic way. Maybe it was the fact that I spent weeks attempting, and failing, to recover everything. Maybe it was the proceeding month, where redoing everything from scratch really only returned me to about 90% of where I was, maybe it was just seasonal depression, but the situation really blew out my confidence, and motivation to work on anything other than just getting back to the point where I felt like I could be productive at work again. After half a dozen rewritten bash scripts, redoing my neovim config from scratch, I feel more like 94% back even now. I have a ways to go, but this year, I’ve already taken massive steps to finally deliver myself some amountof security by using NixOS and GNU Stow to have built-in backups to my system and configurations in case anything ever happens to this little laptop.
Summary:
This year was amazing. I tried a lot, failed at a lot, but overall, I succeeded in my goals far more often than I failed. I have a lot of confidence that this year, things will be even better, because I can build off of everything I learned from the year before. While I’m still recovering from the tragedy, I’m a stronger developer for it. I have more precise goals for the year, and I have the motivation to accomplish them. I have plans to finish and start a few big projects, create a new meetup group for local Golang developers, and also continue to work with Nix and GNU Stow to finalize a high level of confidence that getting a new machine won’t force me to take days to feel ‘ready to program my projects again. If at all possible, I’d love to feel like I just need a few minutes to get everything installed and ready for me to get going right from where i left off, with a handful of commands I have well-documented in my Obsidian vault of notes.
I hope everyone had a good year, and cheers to the next.