Making software better without sacrificing user experience.
As a designer/developer hybrid, I help software companies improve their user experience and ship more performant products. I also actively maintain several open source projects.
I'm passionate about open source software, usability, performance, privacy, and minimal design. This small piece of the internet stores a growing collection of my personal brain dumps.
Skills & Languages
Core tools are Figma, HTML, CSS, JavaScript & WordPress. Currently improving my skills with Ruby, Rails, MySQL & PHP. I also enjoy tinkering with basic shell scripts and Unix systems.
Design Thought Experiments
Stop Using Hamburger Menus (Sometimes)
Common performance and accessibility issues caused by using hamburger menus.
Better Search Results
Rethinking the UX flow of modern search engines.
My Coffee Maker Just Makes Coffee
How products should focus on doing one thing very well.
Blog Anonymously
A basic starting point for those wishing to blog privately.
Articles & Tutorials
- 2023-09-26The X220 ThinkPad is the Best Laptop in the World
- 2023-09-11Installing Older Versions of MongoDB on Arch Linux
- 2023-07-21Converting HEIF Images with macOS Automator
- 2023-06-24Blogging for 7 Years
- 2023-06-13Improving Laptop Battery Performance on OpenBSD
- 2023-06-05Running VSCode in Chromium on OpenBSD
- 2023-05-19My Robotic Mower Woes
- 2023-05-11Working with `git` Patches in Apple Mail
- 2023-05-05Stop Using Hamburger Menus (Sometimes)
- 2023-05-01Converting My X201 ThinkPad into a Slabtop
- 2023-04-25Applying Email-Based Git Patches in Evolution on Linux
- 2023-04-13Launching Sublime Text with dmenu on Alpine Linux
- 2023-04-11HTML Dark Mode
- 2023-04-02Bypassing the WiFi Hardware Switch on the Lenovo X201
- 2023-03-16Installing Ruby with RVM on Alpine Linux
- 2023-03-14Stop Using Custom Web Fonts
- 2023-03-09Replacing My Eero Mesh Network with Two Mangos
- 2023-03-03Why I Stopped Using an External Monitor
- 2023-02-08Dynamic Viewports with CSS
- 2023-01-09My Coffee Maker Just Makes Coffee
- 2022-12-23I Want to Suckless and You Can Too
- 2022-12-08Adventures in Creating a Minimal Alpine Linux Installer
- 2022-12-02Building openring with Jekyll Build
- 2022-11-23Do You Have an Extra $10?
- 2022-11-22Embracing Slow Tech
- 2022-11-14Migrating from GitHub to sourcehut
- 2022-11-07Never Do Spec Work for Free
- 2022-11-04Setting Up AdGuard Home with Eero
- 2022-10-14Avoiding Featurism
- 2022-10-03Simplifying the Craigslist Gallery
- 2022-09-22RE: Creating a Simple HTML/CSS Notice Box
- 2022-09-20Installing Custom Fonts on Linux from the Command Line
- 2022-09-19Setup Jekyll from Scratch on a New Linux System
- 2022-09-10Don't Make a Blog, Make a Brain Dump
- 2022-09-08A Warning for New Designers: Avoid Dribbble
- 2022-09-02 Setting Up Jekyll on Windows
- 2022-08-12Looping Through Jekyll Collections
- 2022-08-02Making a Website Under 1kB
- 2022-07-29Hosting with Codeberg Pages
- 2022-07-14The Linux Desktop is Hard to Love
- 2022-07-06Yet Another Static Site Generator Switch
- 2022-06-29Happily Paying For macOS Apps
- 2022-06-20Clickable Links Inside XML
- 2022-05-30Schools Should Be Using Open Source Software
- 2022-05-23RSS Hacks With XSLT
- 2022-05-17Two Weeks with the DuckDuckGo Browser
- 2022-05-13This Site is Now a Shinobi Website
- 2022-04-18Dear Apple, Please Fix Safari's Default Dark Mode Link Color
- 2022-03-21My Static Blog Publishing Setup and an Apology to RSS Subscribers
- 2022-03-14Setting Up a Pi-hole Server with Eero
- 2022-03-12Transferring Media from macOS to a Jellyfin Server (Raspberry Pi 4)
- 2022-02-23February 2022 Update
- 2022-02-03My Cheapskate Commenting System
- 2022-01-28Convert Files to HTML with macOS Automator Quick Actions
- 2022-01-06Chrome OS Could Become the Future Leader of Computing
- 2021-12-17Icons Should be Complementary - Text is Always Better
- 2021-12-06Hosting a Jekyll Site on Sourcehut
- 2021-12-03Using Netlify for Dynamic URL Redirects
- 2021-11-25Using a New Domain and Switching Static Hosts
- 2021-11-09Modern Improvements for Default Browser Styles
- 2021-11-03A Reality Where CSS and JavaScript Don't Exist
- 2021-10-28Setting Up 1.1.1.1 for Families on a Pi-Hole
- 2021-10-15Batch Converting Images to webp with macOS Automator
- 2021-09-23Enabling Safari Extensions with the macOS Catalina Patcher
- 2021-09-08Create a Performance-Focused WordPress Blog
- 2021-08-13Stuffing an SSD Inside the Raspberry Pi 400
- 2021-07-24Sharing The Things We Use
- 2021-06-20PS4 Download UI with Pure CSS
- 2021-06-07CSS Slope Graphs
- 2021-05-29SOMA Inspired Terminal Display with CSS
- 2021-05-19My Changing Opinion on Personal Website Design
- 2021-04-27Shiny, Animated CSS Buttons
- 2021-04-2289 Blog Posts in a Single HTML File
- 2021-04-13Create a Mac App Icon with Pure HTML and CSS
- 2021-04-12The Lazy Developer's Dark Mode
- 2021-03-25Click to Load Website Images
- 2021-03-11Introducing PageRoast
- 2021-02-25ThriftyName: $5 Brand Names
- 2021-02-02Self-Hosting Fathom Analytics with DigitalOcean
- 2021-01-19Setting Up Fathom Analytics with Netlify
- 2021-01-13Introducing Notez
- 2021-01-05Animated Radio Tab Toggles
- 2020-12-28Disabling Comments in WordPress
- 2020-12-08Pure CSS Bar Graphs with Graceful Mobile Fallbacks
- 2020-12-04Obvious Javascript 'Injection' Fallback
- 2020-11-09Bidirectional Scrolling: Why Not Both?
- 2020-10-19Menu Toggle with Pure CSS
- 2020-10-07Poor Man's CSS Full-Bleed Layout
- 2020-09-29Simple Navigation Setup in Jekyll 3.9.0
- 2020-09-16Portable Pi: Cheap Raspberry Pi Zero Hacker Terminal
- 2020-09-09Over-Engineering an Oil Tank Gauge
- 2020-09-02My Raspberry Pi Desktop
- 2020-08-16Linux Mint MacBook Air Setup
- 2020-08-13Goodbye WordPress, Hello Jekyll (Again)
- 2020-07-07Improving Github's New Design
- 2020-06-22Keynote Slides with Pure CSS
- 2020-06-14Audio Hotkeys on Linux Mint
- 2020-06-04Quick and Dirty Theme Switcher
- 2020-05-13Mini Interactive Keyboard with Pure CSS
- 2020-05-06Fixing LocalWP on Fedora 32
- 2020-05-05WP Enqueue for Beginners
- 2020-04-29Faking 3D Elements with CSS
- 2020-03-31Stripe Menu Dropdowns (CSS)
- 2020-03-18Base64 All The Things! (Sometimes)
- 2020-02-07How to "FLOSS" as a Web Designer
- 2020-01-07Web Development on a $200 Chromebook
- 2019-11-29Billing for One CSS Change
- 2019-11-13Very Basic Form Styling
- 2019-11-01Improving Tufte CSS for Jekyll
- 2019-10-06Stop Using Sticky Navigation on Mobile
- 2019-09-28Being More Efficient as a Designer and Developer
- 2019-09-09Plain Text Emails, Please
- 2019-07-30Dynamic Checkboxes
- 2019-07-17Styling Empty Table Cells
- 2019-07-05Using HTML Validator Badges Again
- 2019-06-25They Won't Wait: A Warning for Slow Websites
- 2019-06-20Publishing Simple Books With Jekyll
- 2019-06-14Using Hamburger Menus? Try Sausage Links
- 2019-06-11Making Tables Responsive With Minimal CSS
- 2019-06-06Write HTML Like It's 1999
- 2019-06-04Using User-Select
- 2019-05-29News Websites Are Dumpster Fires
- 2019-05-22Text Align: Justify
- 2019-05-15Improving Receipt UX
- 2019-05-09Cut Your Forms in Half
- 2019-05-03First Letter Pseudo Element
- 2019-04-26Minimal CSS: Dropdown Menu
- 2019-04-23CSS Character Unit
- 2019-04-20Browser History Sucks
- 2019-04-15Yes, I Still Use jQuery
- 2019-04-13CSS Value: `currentColor`
- 2019-04-05CSS: Indenting Text
- 2019-03-26Simple Does Not Mean Ugly
- 2019-03-25Skip to Content Button
- 2019-03-13Prescription Form UI Improvements
- 2019-02-27Animated Card Tiles
- 2019-02-18Easy Toggle Switches
- 2019-02-15Super Mario Blocks in CSS
- 2019-02-05Proper UI Hierarchy
- 2019-01-28Tabbed Content Without JavaScript
- 2019-01-21Easy Custom Radio Inputs
- 2019-01-15Basic Gulp Build for Sass
- 2019-01-08Better Box Shadows
- 2019-01-06Over-Nesting
- 2018-12-19Using Parent Selectors in CSS
- 2018-11-28Width or Flex-Basis?
- 2018-11-22Adaptable Flexbox Grid
- 2018-10-18What Happened to Self-Hosted Blogs?
- 2018-09-28Using Multiple CSS Background Images
- 2018-09-20Pure CSS Simple Dropdown Plugin
- 2018-09-07Simple Accessibility
- 2018-08-07Setting Up a Free SSL
- 2018-04-16CSS Video Backgrounds
- 2018-03-24CSS Variables
- 2018-02-12Stay Hungry
- 2018-01-25Open Source Typeface Pairings
- 2018-01-14ET-Jekyll Theme
- 2017-11-20Chasing Performance
- 2017-11-01The Death of Personality
- 2017-10-10Unsolicited Design Review - Dropbox
- 2017-09-07Goodbye CSS Preprocessors
- 2017-07-10Designers Need Thicker Skin
- 2016-11-15The Wonders of Text Ellipsis
- 2016-06-28Aqua UI CSS Buttons