RSSAmplifier

Blog

nabeel.blog

Posts on Nabeel's Blog

nabeel.blogRSS feed ↗62 posts

Latest posts

Fast Multi-Platform Builds on GitHub

If you want to build multi-architecture Docker containers in GitHub Actions, the standard recomme...

My Listener Voicemail on The Changelog

The Changelog is one of my favorite podcasts, and at the end of every year they have a “Sta...

Building a Smart Garage Door Opener

I recently presented my self-made smart garage door opener project to our <a href="https://makeit...

Talos Kubernetes in Five Minutes

Talos Linux is an OS designed specifically ...

State of the Log Podcast Appearance

This year, Adam and Jerod asked for voicemails for their end of year &ldquo;State of the Log&rdqu...

Advent of Code 2024

Note: This is my first post in over two years! I miss this and have several things I&rsquo;d like...

GitHub MacCloud

Today I am joining GitHub. I will be working on the MacCloud team, where Apple hardware is adapte...

NATS: You Need it Now!

If you are running Kubernetes, or really any kind of microservice architecture, you will eventual...

OCR with Tesseract

A couple of weeks ago I had the need to extract text from images. I did a little research and fou...

Replacing YAML with TypeScript

TL;DR Are you tired of copy-pasting and editing a ton YAML files? In this post...

My "Artisanal" Ingress

Summary I built a replacement for nginx and cert-manager...

Let's Install KCert on Linode

Recorded session with Gerhard trying out KCert. <a href="https://www.youtube.com/watch?v=O...

KCert Interview on the Ship It! Podcast

Interview on the Ship It! podcast with Gerhard Lazu. <a href="https://changelog.com/shipit...

KCert - V1 Release

It&rsquo;s been about a year since I introduced my certificate manager: <a href="https://nabeel.b...

10 Million Downloads, 3 GitHub Issues

Since releasing k8s-ecr-login-renew...

KCert: Try it Out

Last month I wrote about a tool I&rsquo;ve been using in my clust...

KCert - Simple Let's Encrypt for Kubernetes

Cert-Manager is the standard way to manage...

Kubernetes SSL Certs the "Hard" Way

Managing Lets Encrypt certificates has been one of the hardest things to do in Kubernetes. To be ...

My Favorite "New" Git Commands

I don&rsquo;t consider myself a Git expert. I&rsquo;ve basically memorized the commands I use 99%...

My CV Template

In case you&rsquo;ve never come across it, LaTeX</a...

Con #5: Working from Home is Lonely

A few days ago I wrote up some thoughts about my experienc...

Renaming Git's Master Branch

Today I spent about an hour renaming the master branch to main on all m...

Easier than Expected: Raspberry Pi Docker Images

A few days ago I received a request from someone who wanted to run k8s-ecr-login-renew</cod...

The Pros and Cons of Remote Work

The concept of remote work has been around for a while, but considered difficult or perhaps rare ...

Version 1.2 Release: k8s-ecr-login-renew

I&rsquo;m pleased to announce the release of version 1.2 of the k8s-ecr-login-renew ...

PHP is NOT Just Fine

My friend and ex-teammate Dwain recently wrote <a href="https://dwain.blog/2020/05/07/this-old-pr...

Version 1.1 Release: k8s-ecr-login-renew

I was very pleased to see this pul...

Theme Update

My dear friend Rami ( @@ramicoAJ ) recommended this chan...

How to Effectively use a Single Monitor

Many people I know love working with multiple monitors. Personally, I&rsquo;m not a huge fan. The...

Connecting Kubernetes to AWS ECR

I&rsquo;m pleased to announce the release of k8s-ecr-login-renew (<a href="https://g...

Project Discontinued: Traefik Certs in Azure

A few months ago, I wrote about a side project I intended to work...

Certified Kubernetes Application Developer (CKAD)

Last week I...

Traefik: Adding Cloud-Based Cert Storage

Traefik is great. It&rsquo;s easy to setup and has sensible default settings that allow you to ge...

Tunneling Web Request to Your Local Machine

Sometimes the easiest way to test or debug a service is to have it running on your local machine....

Meetings Should Start On Time and End Early

Meetings become necessary as soon as you have more than one person working on the same thing. And...

OS Development (Part 1?)

I recently started feeling the urge to learn something more low-level than a framework.

A Countdown Email Reminder (using Microsoft Flow)

I had a couple of weeks off recently where I was staying at home for most of that time. I intende...

My Favorite Computer Science Books

Summary C++ Primer: <a href="https://www.amazon.com/C-Primer-Stanley-...

Creating Your First Kubernetes Cluster (K8s Part 3)

Warning Running this tutorial on Digital Ocean (or any other public cloud p...

Back Your Stuff Up

Just a friendly reminder: Keep backups of all your important files. Hard disks can fail any time....

Understanding Kubernetes (K8s Part 2)

This is the second article in a series I plan to write about my experience learning and using Kub...

Migrating to a Static Site: Three Approaches

In this post I explain how I converted three sites from PHP/MySQL into statically served sites. E...

Kubernetes (Part 1)

I&rsquo;ve been using Docker for a couple of years now, but only for running local development en...

Go Contexts are Confusing

<pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size...

Selecting a Docker Registry

When I started playing with Kubernetes a few months ago, there was one question that didn&rsquo;t...

Welcome to Hugo!

Welcome to my redesigned blog! I started this site a few years ago using WordPress. It was the na...

How to Write Clean Code

TL;DR Some simple practices to help you write reasonably clean code, even when...

Instrumenting PHP: A Minimalist Approach

I needed a quick way to measure performance and log errors in my <a href="https://wordpress.org/p...

Host Your Own Podcast with PhPodcast

I’ve been using a little PHP script for the past few months to host my own private podcast. So I ...

I Have a Fantastic Startup Idea!

“I have a fantastic startup idea.” You’d be surprised how often I hear this. When I do, it...