What I Learned the Hard Way - A New Blog Series This is the start of a new series where I’ll be documenting my (previous) adventures in ‘vibe coding.’ These experiments happened a while ago (over six months), but my goal is to share what worked, what didn’t, and how we can all use AI agents more...
How to generate model configurations automatically for custom OpenAPI endpoints. - TL;DR Use my custom script to generate the model configurations for your local LLM. Found here. One challenge when self-hosting LLMs and working with OpenCode is that OpenCode must be manually configured to work with your models. Unlike its built-in providers, there is no way to set a custom URL...
A Technical Book Review - TL;DR- Read “Vibe coding” – Ignore the title, read the book. There’s an old saying, if someone told you to jump off a bridge, would you? Given one’s need for self-preservation, the expected answer is: No. But given Gene Kim’s history of writing persuasive and engaging technical content, I think...
Updates, next steps, and what do I plan on focusing on - Recent massive shifts at Oracle gave me something I didn’t expect. A pause. It’s giving me more opportunities to drink tea, sit with things, think, and hopefully the pickelball court when the weather is nicer and I’m recovered from an ankle injury. In my last role, I spent a lot...
Avoid unexpected costs with a simple settings adjustment. - You might be unknowingly paying for GitHub Actions even after your workflows have finished. Let’s set the stage for being me: you’ve forked a project, enabled the GitHub actions, stayed under your limit, and contributed a great change to an open source project. You’re all good right? Karma’s good, it’s...
A Book Review - In a previous post, I shared a correction for an early chapter of gRPC: Up and Running. It helped others who were struggling with the initial gRPC server and client setup. Now that I’ve finished reading it, here’s a quick review of “gRPC Up and Running” (2020) by Kasun Indrasiri...
Navigating the evolving landscape of coding, architecture, and tooling in the next year - It’s the year of flying cars, robots, and all-digital lives. At least one of those things was a big focus at CES ( robotics). In the spirit of looking back in 2025, I thought I’d share a collection of things that might be considered, explored, or should be abandoned in...
An Errata for the book 'gRPC Up and Running' - I’ve recently been diving deeper into gRPC, having used it peripherally in another project. Wanting a solid foundation, I explored several resources, ultimately choosing “gRPC Up and Running” (2020) by Danesh Kuruppu. I initially tried “gRPC Microservices in Go (2023),” but found it leaned heavily into microservice architecture principles before...
Travel and Cultural - The theme of this part is Cultural and Travel Experiences. These are some of the non-work/technical related things that I found/did/stood out last year. Travel International As of writing this (January 1st, 2026), last year took me to Latvia, Taiwan, and Indonesia (Bali). By far, Taiwan was my favorite. The...
Self Care and Non-Technical - The theme of this part is Self Care and Non-Technical things. These are some of the non-work/technical related things that I found/did/stood out last year. Building an Exercise Routine One of the biggest quality-of-life improvements I made this year was committing to a real exercise routine. It noticeably increased my...
Part 1 of 3: Technical and Things I bought - I haven’t done a “best of” list on my blog, but I’ve seen a lot of interesting posts from other bloggers. This is my review of 2025 and what I personally enjoyed or things that stuck out to me. This will be a highly focused, but not a comprehensive, list....
The automated way of switching to virtual environments in the JDK - SDKMan is a tool designed to help developers manage JDK versions within their development environment. Born from the GVM (Groovy Version Manager), it has evolved into a comprehensive SDK versioning system supporting many languages within the Java ecosystem. For most users, SDKMan provides basic CRUD (Create, Read, Update, Delete)…
lsof doesn't always give you what you're looking for - Under Linux, and BSD systems, in order to find out the owner of a port, the first advice usually given is to use: lsof -i :portnumber For example when checking for the SSH port, you’ll get the following results: $ lsof -i :22 COMMAND PID USER FD TYPE DEVICE SIZE/OFF...
But most of it is. - My relationship with Javascript hasn’t been a great one. I like JavaScript in the context of what it was created for: a client language for web pages. It beats the idea of mixing and matching Javascript and VBScript. I’ve had quite a lot of issues with JavaScript, its weird frameworks,...
Just installed OPNSense? Start here. - Recently, I replaced my consumer router with a custom OPNSense build to handle routing for my home network. It’s been quite an adventure in learning about DNS, routing, aggressive firewall rules, and more details about networking. As a software engineer, this hasn’t been one of the stronger sets of my...
Ever wanted to ask a question on a Youtube video and didn’t want to watch the whole 1hr video? Same here. With Open-WebUI and Ollama - you can. Even better: It can be done locally and fairly efficiently. When I first saw this functionality mentioned in the documentation, I was...
After a decade of relying on laptops, I recently built a desktop PC and transformed it into a dedicated AI server. While equipped with powerful components, including a high-end Nvidia graphics card, I prioritized energy efficiency through power management. I configured the system to suspend when idle and utilize hybrid...
Kafka has changed a lot in the last few years. Zookeeper has been removed, one Kafka docker container maker has stopped making containers, and the configurations have changed. Without much futher ado, the most recent version of a hosted Kafka container can be used with the following docker compose: services:...
Previously I wrote a blog post about what my next adventure will be in software development. I had quite an ambitious list of things I wanted to learn and accomplish. However, life happens and I wasn’t able to accomplish nearly what I set out to, theres still time, but that...
This page documents a previous project that was done in the early years of my schooling. The reason for posting this on the blog is due to an ongoing effort to modernize the site. What did this do? This was an attempt to organically drive views to other project pages...