Blog
71 posts
Featured Post
My Homelab Two Years Later: From Desktop Tower to Server Rack
How my homelab grew from a $200 ThinkServer to a dual R730 server rack with 60+ containers, 10G networking, GPU-accelerated AI, and real power monitoring data from Home Assistant.
No posts found matching your search.
Implementing MikroTik's Binary API Protocol in Python from Scratch
A deep dive into implementing MikroTik's proprietary RouterOS binary API protocol in Python — variable-length encoding, sentence-based messaging, and programmatic network infrastructure control. Zero dependencies, 137 lines.
Building a Real-Time Digital Graffiti Wall with MongoDB Realm and RGB LEDs
How I built an interactive art installation and collaborative drawing app where multiple users draw on a shared digital canvas that displays their creations live on a physical RGB LED grid, using MongoDB Realm for real-time sync.
Building a GPU-Accelerated Subtitle Generator for My Video Library
How I built a self-hosted subtitle generation pipeline using GPU-accelerated Whisper AI on my homelab — with parallel workers, VRAM-aware scheduling, automatic language detection, and a multi-layer hallucination filter. A practical faster-whisper guide for video libraries at scale.
Building a Claude Code Blog Skill: What I Learned Systematizing Content Creation
I live in the terminal. Like, really live there. As a developer advocate, it’s where I spend most of my time - running commands, testing code, writing docs. Over the past few months, Claude Code...
I Replaced Alexa with a Dumber Voice Assistant (But at Least It’s Private)
After five years of building automations in Home Assistant, I finally pulled the trigger on something I’d been contemplating for months: completely replacing my Amazon Alexa ecosystem with Home...
Self-Hosted Music Still Sucks in 2025
TL;DR: The *arr ecosystem perfected video automation but music remains stuck with album-centric workflows that don’t match how we actually consume music. Current tools like Lidarr force complete...
Data Warehouses Are Terrible Application Backends
‘The ever-increasing tide of data has become a paradox of plenty for today’’s developers. According to a report from Seagate, by 2025 worldwide data will grow to a staggering 163 zettabytes, over 10...'
How to Build Applications over Streaming Data the Right Way
In modern data ecosystems, streaming data flows like traffic on a busy highway. Each packet of data has a specific destination,...
The Engineer’s Guide to Enriching Streams and Dimensions
Data - it’s the new oil, the new gold, the new … you get the idea. There’s a whole lot of it, and it’s valuable. But unless you’re into data hoarding, the point isn’t just to collect it; you want …...
Why ClickHouse Should Be Your Next Database
“Today, we’re jumping into databases. Another database to learn? But before you sprint for the hills, allow me to introduce you to ClickHouse.”
A step-by-step guide to build a real-time dashboard
Can you imagine shipping a new user-facing dashboard only to have your users met with a visualization that takes several seconds or even minutes to load? No way, right? Your users would get...
How to build a real-time fraud detection system
Financial fraud is a growing concern in our increasingly digital world. According to a report by PwC, almost half of the surveyed organizations experienced fraud in the past 2 years. For...
Modern data management with real-time Change Data Capture
Data engineers are grappling with surging data volumes while stakeholders increasingly demand real-time decision-making and user-facing features powered by data. This raises a fundamental question:...
Real-time Databases: What developers need to know
Selecting the right application database can be a challenge for developers, especially so when you need a database for building real-time applications. Real-time data has become an essential...
Using Bloom filter indexes for real-time text search in ClickHouse
Efficient text search is one of the hardest problems in data engineering. Text-based data presents a unique set of challenges, especially when you need results in real time...
What it takes to build a real-time recommendation system
Real-time, personalized recommendations have become a foundational part of our online experiences. From streaming services suggesting our next binge-worthy TV series to e-commerce platforms offering...
Event sourcing with Kafka: A practical example
Imagine you’re building banking software, and you’ve been asked to figure out one of the most fundamental tasks in fintech: determining the current balance of every customer in your system....
How to query Google Sheets with SQL in real time
Sick of manually wrestling with Google Sheets like it’s an Excel spreadsheet from 2005? Feel like force-quitting Chrome every time you attempt to sift through just 10,000 rows of data? We’ve all...
Adding Custom Domain Names on Your Internal Network Using Nginx Proxy Manager and Pi-Hole
How I set up custom domain names on my internal network using Pi-Hole for DNS and Nginx Proxy Manager for traffic control and SSL - no public domain registration needed.
How to get started building a Homelab server in 2026
I built my first Homelab server for under $200 using a used Lenovo ThinkServer from Facebook Marketplace and Proxmox. Here is everything I learned about picking hardware, choosing an OS, setting up containers, and mounting NAS storage.
Developer Advocacy in 2023
Adapting to Techpocalypse 💥 Remember when we thought 2020 was a wild ride? Fast forward to 2023, and here we are, in the midst of a tech market downturn and a tsunami of tech layoffs. Developer...
DevRel as Dev Zero
As a developer advocate, I often ponder DevRel’s role in catching bugs and tricky issues before they escalate. I’m sharing my thoughts in this blog post. DevRel as Dev Zero DevRel can serve as the...
How to get started with Home Assistant in 2023
Are you looking to turn your home into a smart home? With the help of Home Assistant, you can easily automate tasks and make your home more efficient. In this blog post, I’ll share my experience of...
Treat Content Development for Your Open Source Project Like Your Open Source Project
‘Hello nerds! Let’s talk about how you should treat content development for your open source project like your open-source project. I know, it sounds meta, but bear with me. As a developer advocate, I’ve...’
From Digital Design to Real-World Object: How I Created a 3D-Printed Planter for a Recycled Postcard Rack Planter
You might not have thought much about using your technical skills to create physical objects. However, with the rise of 3D printing technology, it’s becoming easier than ever to turn digital designs...
Databases and DevOps: How to Use SingleStore With GitHub Actions
Databases are frequently not included when transforming an application and engineering culture toward a DevOps, or continuous deployment engineering organization. And, you could be forgiven for this...
How to Use SingleStore as a Key-Value Store
Key-value stores are perhaps one of the most popular databases on the market today - and with good reason! They are fast, scalable and super easy to use. But did you know you can get all the...
Four Questions You Need To Ask When Choosing a Database
Are you overwhelmed by the sheer amount of databases on the market today, and not sure where to start? Let’s say that you are a Software Developer, and you need to select a database for a brand new...
Database Sharding vs. Partitioning: What’s the Difference?
In this post, I explain the differences between database sharding vs. partitioning and explore when to use each - or even to combine them for data-intensive applications.
How to Add Machine Learning Predictions with SingleStore and MindsDB
Have you ever needed to set a machine learning model on your data before?
How to Get Started with SingleStore
Are you looking for the fastest possible way to get a new SingleStore Cluster up and running while testing out sample datasets to experiment with and use?
How to Use SingleStore and Node.js
Do you need to get a basic SingleStore application setup quickly using Node.js?
How to Manage MongoDB Data at Scale
Let’s face it: Your data can get stale and old quickly. But just because the data isn’t being used as often as it once was doesn’t mean that it’s not still valuable or that it won’t be valuable again...
How to Query from Multiple MongoDB Databases
Have you ever needed to make queries across databases, clusters, data centers, or even mix it with data stored in an AWS S3 blob? You probably haven’t had to do all of these at once, but I’m guessing...
How to Seed a MongoDB Database with Fake Data
Have you ever worked on a MongoDB project and needed to seed your database with fake data in order to provide initial values for lookups, demo purposes, proof of concepts, etc.? I’m biased, but I’ve...
How to Use Custom Archival Rules and Partitioning on MongoDB Atlas Online Archive
Okay, so you’ve set up a simple MongoDB Atlas Online Archive, and now you might be wondering, “What’s next?” In this post, we will cover some more advanced Online Archive use cases, including setting...
How to use MongoDB Client-Side Field Level Encryption (CSFLE) with Node.js
Have you ever had to develop an application that stored sensitive data, like credit card numbers or social security numbers? This is a super common use case for databases, and it can be a pain to...
MongoDB Aggregation Pipeline Queries vs SQL Queries
Let’s be honest: Many devs coming to MongoDB are joining the community with a strong background in SQL. I would personally include myself in this subset of MongoDB devs. I think it’s useful to map...
An Introduction to IoT (Internet of Toilets)
My favorite things in life are cats, computers, and crappy ideas, so I decided to combine all three and explore what was possible with JavaScript by creating a brand-new Internet of Things (Internet...
How To Use The MongoDB Visual Studio Code Plugin
To make developers more productive when working with MongoDB, we built MongoDB for Visual Studio Code, an extension that allows you to quickly connect to MongoDB and MongoDB Atlas and work with your...
Linked Lists and MongoDB: A Gentle Introduction
Are you new to data structures and algorithms? In this post, you will learn about one of the most important data structures in Computer Science, the Linked List, implemented with a MongoDB twist....
Save The World And Money With MongoDB Atlas Data Lake
Thanks for coming to my talk, Save The World And Money With MongoDB Atlas Data Lake. About Data centers are expensive. It turns out that this is not great for the environment. By 2040, storing...
The Art of Computer Science
First, thank you so much for coming to my keynote, The Art of Computer Science. Here you will find all the resources discussed during the talk. About Do you feel like you have struggled to find your...
Bechdel.io - How We Used JavaScript To Help Make Film More Inclusive
Thanks for coming to my talk, Bechdel.io - How We Used JavaScript To Help Make Film More Inclusive. Here you will find all the resources discussed during the talk. About What do The Social Network,...
How to Pass A Coding Interview
The question I most frequently get from developers is how to pass a coding interview. What follows is what I think will be sufficient for a person to be well prepared.
A Gentle Introduction to Building Serverless Apps
Thanks for coming to my talk, A Gentle Introduction to Building Serverless Apps. Here you will find all the resources discussed during the talk. About Do you want to crank out features the business...
MongoDB Schema Design Best Practices
Thanks for coming to my talk, MongoDB Schema Design Best Practices. Here you will find all the resources discussed during the talk. About Have you ever wondered, “How do I model my schema for my...
From SQL to NoSQL: A Gentle Introduction For Devs
Thanks for coming to my talk, From SQL to NoSQL: A Gentle Introduction For Devs. Here you will find all the resources discussed during the talk. About “I have heard about NoSQL databases, but don’t...
Building Your First GraphQL Client in JS
Thanks for coming to my talk, Building Your First GraphQL Client in JS. Here you will find all the resources discussed during the talk. About RESTful APIs have been around for a while now, but they...
An Introduction To IoT (Internet of Toilets 🚽)
Thanks for coming to my talk, An Introduction To IoT (Internet of Toilets 🚽); Or How I Built an IoT Kitty Litter Box Using JavaScript, and here you will find all the resources discussed during the...
My Top 50 All-Time Favorite Records
Every couple of years, I like to compile a list of my 50 all-time favorite records. These tend to be the records that I listen to the most or that have had the greatest impact on me. The order...
How to Build a React and MongoDB App From Scratch In 10 Minutes
Are you interested in learning how to build a React and MongoDB App? Like many of you, I have been interested in learning more about MongoDB’s cloud offerings and also not spending a dime. This guide...
How to Build A Spotify Player with React in 15 Minutes
Have you ever wanted to build a Spotify player for your app or website? Adding personalized music to any application is super easy with the Spotify Developer API. Personally, I have been playing...
A Brief Cuba Travel Guide
Have always wanted to see what communism looks like firsthand or try an authentic Cuban cigar? Well, travel to Cuba is still possible from the United States in 2018 (despite President Trump’s travel...
The Tech Talks That Have Had The Biggest Impact On My Career
It’s not that often that I go to a conference or watch a talk on YouTube that truly changes the way I think about programming or software development. Even though I’m someone who does frontend...
An Engineers Guide to Knowing if You Are Done With a Project
Have you ever started a project and thought to yourself, “When can I call this done?” Then this listicle is for you! This guide is intended to be a general list of things your personal or...
Building High Performance React Applications
Okay, we all know that React was built with performance in mind, but when is React slow? I want to break down for you, dear reader, common bottlenecks in React and when you might be making your...
So, You Want To Learn How To Code? Here’s What You Need To Know.
So, you want to learn how to code? Here’s What You Need To Know to get started. This is a list of my favorite programming books, talks, podcasts, newsletters, websites, and general tips for...
I Ran My First Hackathon, and So Can You!
I Ran My First Hackathon, and So Can You! Here are the lessons I learned from planning, organizing, and executing my first hackathon. The hackathon I ran was the Stupid Shit and Terrible Ideas...
I was on Hawaii Public Radio to talk about our Stupid Hackathon Hawaii
Thanks again to Burt Lum and Ryan Ozawa for having me and my buddy Ray on their radio show, Bytemark’s Cafe, to talk about the Stupid Shit and Terrible Ideas That No One in Hawaii Needs “Hackathon”....
Complete Guide To Node Client-Server Communication
After reading High-Performance Browser Networking by Ilya Grigorik, I was inspired to implement all of the client-server communication techniques outlined in his book in Node and JavaScript. This...
Bechdel Test Script Parser - How It Works
The Bechdel Test Script Parser was a collaborative digital humanities project between myself and my sister, Laurel Karlsson. It is the product of a shared passion for film, feminism, and the creative...
One Week in Oahu - A Seven Day Tourist Travel Itinerary
This itinerary contains the list of spots I would bring friends and family one week in Oahu. I tried to avoid the usual tourist spots.
How To Find a Technical Co-founder
Okay, so you have an idea for a new company, and you just know that Facebook for cats is the next billion-dollar idea. The only issue is that you have no idea how to code. You heard from your aunt...
10 Things I learned at Startup Weekend
What Is Startup Weekend? Are you interested in starting your own business someday? Do you have an idea for a business? Want to meet some really smart people? Startup Weekend is for you! Startup...
PSA: Activate 2-Step Verification on your Email Account
You all should activate 2-Step Verification on all of your most important accounts. Making a new long password is no longer enough to protect your accounts. It’s easier than you think for someone to...
How to pixelate images with HTML5 and JavaScript
A couple of months ago, I was interested in learning some new HTML5 elements. The more visual flourishes of the canvas class especially caught my eye. The ability to dynamically adjust elements in an...
How To Explain to Your Dad Why Snapchat Is So Awesome
A recent article written by Jeremy Liew, titled “If you don’t “get” why Snapchat is growing so fast, read this,” and a conversation with my anti-Snapchat Dad has had me thinking about why Snapchat...
My Relationship With The Internet
There have been a lot of articles recently published about how the internet, social media, and smartphones are killing ‘real human connections.’ I however believe that this is a reactionary knee jerk...
Overwhelmed by the Web
Why are we surprised when someone has not seen, listened, or read something? Have you ever heard someone say, “You’ve never watched X!?!” or “Haven’t you read Y about the Z conflict? Don’t you care?”...