The Illusion of Privacy in Your Email Inbox: How to Safeguard Your Information
Your email inbox is less private than you think. The business model behind free email, and the concrete steps you can take to harden it.
We can't find the internet
Attempting to reconnect
Something went wrong!
Attempting to reconnect
Writing
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.
Your email inbox is less private than you think. The business model behind free email, and the concrete steps you can take to harden it.
Protecting your data starts with five habits — strong passwords, MFA, phishing awareness, staying patched, and backing up. A practical guide.
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 the Elixir way — pattern matching, pipelines, and the little syntactic moves that make the language feel obvious once it clicks.
Ship 301 redirects cleanly inside a Phoenix app — router-level matches and plug patterns for SEO-safe URL moves.
Force canonical domains in a Phoenix app with a small plug — redirect www to apex and keep SEO tidy without reaching for Nginx.
A one-liner for nuking every stale local branch while keeping main intact — handy after a long sprint of feature work.
A practical introduction to Elixir and Phoenix for developers coming from Ruby, Python, or Node — what to learn first and why.
Ruby’s gsub is more powerful than most developers realize. Blocks, backreferences, and the patterns that make it a swiss-army knife.
Phoenix gives Rails developers a surprisingly natural path into Elixir. An intro that covers setup, generators, and the core mental model.
Turbolinks can cause more trouble than it saves. A clean, step-by-step removal from a Rails 4 app without breaking anything.
The talks, hallway conversations, and themes that defined RailsConf 2015 — a snapshot of the Rails community at that moment.
Podcasts are the best passive learning tool engineers have. The shows I trust for keeping up with Ruby, Elixir, and the craft.
Comments papering over confusing code are a smell. Why the right move is usually to rewrite the code, not narrate it.
Staying current as a working engineer takes intent, not free time. How I carved out space to keep learning without burning out.
Git explained for working developers — the mental model, the commands that matter, and how to stop being afraid of rebasing.
Software craftsmanship is more than a slogan. A working developer’s view on what the label should actually mean day to day.
Reflections from the 2014 Adobe ColdFusion Summit — the sessions worth attending, the conversations that stuck, and the state of the ecosystem.
Why I left ColdFusion for Ruby — the ecosystem, the community, and the practical reasons that made the switch worth it.
The scrypt Ruby gem failing to build native extensions is almost always a compiler or header mismatch. The fix that actually resolves it.
Debugging is less about tools than about thinking clearly under pressure. A reflection on how senior engineers actually find and fix bugs.
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.
Install MacVim the right way with Homebrew — the flags that matter, the setup steps, and the pitfalls to skip.
Programming is frustrating, repetitive, and humbling — and yet. An honest love letter to the craft, bugs and all.
Bootstrap glyphicons vanishing in your Rails app? The asset pipeline is almost always the culprit. A short fix that saves the afternoon.
Being fluent in only one language makes you brittle. A case for being a polyglot — and the perspective you gain from working across stacks.
What actually happens when you move a production workload from bare metal to virtual servers — gotchas, prep work, and what to test afterward.
A practical guide to parsing XML in Ruby with Nokogiri — XPath queries, CSS selectors, and the patterns that make it enjoyable to work with.
Subdomains with underscores look harmless — until cookies vanish and DNS breaks. Why underscores don't belong in hostnames, and what to do instead.
The books, screencasts, and courses I actually recommend for learning Ruby on Rails — for beginners and mid-career devs leveling up.
A short .htaccess recipe for blocking malicious bots and scrapers on Apache — protect your server and save your bandwidth.
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.
How to use Siege to load-test a web application — a compact walkthrough of the commands and flags that matter for real stress testing.