Writing

Notes on Elixir, backend systems, security, and the craft of software.

An archive of essays and technical notes — from early Ruby experiments through modern Phoenix, Go, and production AI work. Preserved from the original Sublime Coding blog.

Executing Raw SQL with Ecto

Sometimes the right answer is raw SQL. How to run it safely in Elixir with Ecto.Adapters.SQL — params, logging, and when to reach for it.

FizzBuzz in Elixir

FizzBuzz the Elixir way — pattern matching, pipelines, and the little syntactic moves that make the language feel obvious once it clicks.

elixir programming

301 Redirects in Phoenix

Ship 301 redirects cleanly inside a Phoenix app — router-level matches and plug patterns for SEO-safe URL moves.

elixir phoenix

Remove All Git Branches Except Master

A one-liner for nuking every stale local branch while keeping main intact — handy after a long sprint of feature work.

git

Intro to Elixir & Phoenix

A practical introduction to Elixir and Phoenix for developers coming from Ruby, Python, or Node — what to learn first and why.

elixir phoenix programming

Fun With Gsub

Ruby’s gsub is more powerful than most developers realize. Blocks, backreferences, and the patterns that make it a swiss-army knife.

ruby programming

Getting Started with Phoenix Framework

Phoenix gives Rails developers a surprisingly natural path into Elixir. An intro that covers setup, generators, and the core mental model.

elixir phoenix

Remove Turbolinks from Rails 4

Turbolinks can cause more trouble than it saves. A clean, step-by-step removal from a Rails 4 app without breaking anything.

ruby on rails ruby

My Experience at RailsConf 2015

The talks, hallway conversations, and themes that defined RailsConf 2015 — a snapshot of the Rails community at that moment.

general programming continued education

Learn by Listening

Podcasts are the best passive learning tool engineers have. The shows I trust for keeping up with Ruby, Elixir, and the craft.

podcasts programming learning

Don't Comment Your Code - Rewrite It

Comments papering over confusing code are a smell. Why the right move is usually to rewrite the code, not narrate it.

general software programming

Making Time to Learn

Staying current as a working engineer takes intent, not free time. How I carved out space to keep learning without burning out.

continued education learning programming

Basics of Git

Git explained for working developers — the mental model, the commands that matter, and how to stop being afraid of rebasing.

git source control github

Software Craftsmanship

Software craftsmanship is more than a slogan. A working developer’s view on what the label should actually mean day to day.

software programming ruby

Adobe ColdFusion Summit 2014 Afterthoughts

Reflections from the 2014 Adobe ColdFusion Summit — the sessions worth attending, the conversations that stuck, and the state of the ecosystem.

coldfusion programming conference

Ruby vs ColdFusion: Why I chose to switch

Why I left ColdFusion for Ruby — the ecosystem, the community, and the practical reasons that made the switch worth it.

coldfusion ruby programming

Scrypt Gem Native Extension Build Errors

The scrypt Ruby gem failing to build native extensions is almost always a compiler or header mismatch. The fix that actually resolves it.

gem ruby homebrew

Debugging: An Exercise in Thinking

Debugging is less about tools than about thinking clearly under pressure. A reflection on how senior engineers actually find and fix bugs.

debugging programming ruby

Protect Your Server Againt The Shellshock Bug

The Shellshock bug (CVE-2014-6271) hit bash-based systems hard. How to detect whether you are vulnerable and the patch steps to close it.

bash linux security

Installing MacVim via Homebrew

Install MacVim the right way with Homebrew — the flags that matter, the setup steps, and the pitfalls to skip.

vim mac osx homebrew

Programming is Terrible

Programming is frustrating, repetitive, and humbling — and yet. An honest love letter to the craft, bugs and all.

programming general

Bootstrap Glyphicons won’t show up in Rails

Bootstrap glyphicons vanishing in your Rails app? The asset pipeline is almost always the culprit. A short fix that saves the afternoon.

css ruby on rails ruby

Don’t be a Ruby Robot

Being fluent in only one language makes you brittle. A case for being a polyglot — and the perspective you gain from working across stacks.

ruby ruby on rails general

Migration From Physical to Virtual Servers

What actually happens when you move a production workload from bare metal to virtual servers — gotchas, prep work, and what to test afterward.

system administration server vitualization

Using Nokogiri to parse XML

A practical guide to parsing XML in Ruby with Nokogiri — XPath queries, CSS selectors, and the patterns that make it enjoyable to work with.

ruby on rails ruby xml

Never Put Underscores in Subdomains!

Subdomains with underscores look harmless — until cookies vanish and DNS breaks. Why underscores don't belong in hostnames, and what to do instead.

internet explorer sub-domains domains

Learning Resources for Ruby on Rails

The books, screencasts, and courses I actually recommend for learning Ruby on Rails — for beginners and mid-career devs leveling up.

learning ruby on rails ruby

Blocking Bots in Apache Using htaccess

A short .htaccess recipe for blocking malicious bots and scrapers on Apache — protect your server and save your bandwidth.

apache system administration bots

Blocking Bots in IIS

Stop bad bots from hammering your IIS server — a rule-based approach using URL Rewrite to block malicious user agents before they hit your app.

iis system administration bots

Using Siege to Stress Test an Application

How to use Siege to load-test a web application — a compact walkthrough of the commands and flags that matter for real stress testing.

siege system administration security tools