✍️ Blog
2026
2025
- The Death of MoralityAmerica hasn't become immoral—it's become post-moral. We've abandoned principled reasoning for pure tribal alignment, making moral positions contingent on who's doing what rather than what's being done.
- Hurry up and waitParenthood and mortality are two of the most profound struggles humans face. The passage of time, both in the daily grind and the long-term perspective, is a constant reminder of our finite existence. This blog explores how we grapple with time, from the daily challenges of parenting to the anticipation of future events.
- The 10 Year Old Trip: One Kid, One Parent, One Perfect TraditionWhen you have four kids, individual attention becomes a rare commodity. The '10 year old trip' tradition gives each child their moment to be the only decision-maker while creating memories that last a lifetime.
- Grace Hopper Would Love AI CodingAdmiral Grace Hopper spent her career fighting the assumption that humans had to adapt to machines, insisting machines should understand us. Today's AI coding assistants are exactly what Amazing Grace predicted.
- When Republics FailExamining historical patterns of democratic collapse and how the U.S. Constitution was deliberately designed with checks and balances to prevent executive overreach, legislative inaction, and public acquiescence that doomed republics like Weimar Germany and early Republican China.
- 2024 in BooksA look back at my year in reading through 50 books and nearly 17,000 pages, featuring recommendations across fiction, non-fiction, and everything in between.
- Americans found their X (not Twitter)In a delightfully ironic twist, the U.S. government's TikTok ban has pushed Americans toward Xiaohongshu (a more explicitly Chinese government-controlled app), highlighting the growing disconnect between how governments view the world and how their citizens actually live and connect in it.
2024
- The First Tuesday after the First Monday in NovemberReflections on American elections and their importance to democracy
- Empower, Document, LeadSubmarine Insights for Startups
- Migrating from Ghost to RenderHow I migrated my blog from Ghost to Astro and Render
- Litany of the SaintsA personal story about faith and family during a medical emergency
2023
- 2023 in BooksA review of the 47 books I read in 2023
- What's Taylor's Age Again?Exploring Taylor Swift's lyrics about age and relationships
- Productive non-productivityHow rest and breaks can enhance creativity and productivity
- What they don't tell you about being an executiveLessons learned about executive leadership
- AI InstagramExperimenting with AI image generation inspired by Bo Burnham
- New Talk: Shakespeare, Bacon and the NSAA talk about Elizebeth Smith Friedman and the history of cryptography
- AI - What can it do for me today?Exploring practical uses of AI and LLMs
- Don't let good get in the way of betterThe importance of iteration in product development
- Using PD tools to find my first subdomain takeoverHow I used ProjectDiscovery tools for security research
- Using a katana to migrate my websiteHow I used Katana to crawl and migrate my website to Ghost
2022
- Building in the open, againJoining ProjectDiscovery as Head of Community
- What I learned at GitLab that I don't want to forgetKey lessons from 5 years at GitLab about writing things down, empowerment, and transparency
- Leaving GitLabAnnouncing my departure from GitLab after 5 years
- AI-Generated blog on security engineeringAn experiment with ChatGPT to write about DevSecOps
- How to Learn AnythingTwo key principles for learning new skills
- What makes a great tech talk?Five key ingredients for delivering excellent tech presentations
- The Era of PlatformsThe shift toward DevOps platforms and consolidated tooling
- Why is this war different from all other wars?Understanding the unique aspects of Russia's invasion of Ukraine
- Support and defend the constitution against all enemies, foreign and domesticReflections on January 6th and American democracy
- New Year, New LanguageLearning Go in public in 2022
- Todd BeamerReflections on heroism and January 6th
2021
- Michael Collins vs. the BillionairesContrasting Apollo astronauts with modern space billionaires
- Running meetings in read-write mode instead of read-onlyHow to make virtual meetings more effective with live docs
- The Purse Caper: Debugging can be hardA story about creative debugging in production
- My epiphany about the protestsUnderstanding the January 6th protests and Constitutional process
2020
- Understanding what we don't understand in AIWhy we need researchers like Timnit Gebru in AI ethics
- Three keys to making the right multi-cloud decisionsVisibility, efficiency, and governance for multi-cloud success
- What's in a name?Why software should handle names like O'Leary correctly
- Changing your default branch - all the placesA living document on updating default branches everywhere
- Rename your Git default branch from master to main (with GitLab screenshots)Step-by-step guide to renaming your Git default branch
- I was wrongOn the origins of 'master' in Git and why we should change it
- How I SlackTips and tricks for managing Slack effectively
- A guide to Git for beginnersGit basics explained by a senior developer evangelist
- GitLab CI/CD for Google FirebaseHow to deploy Firebase projects with GitLab CI/CD
- My next move at GitLabBecoming a Developer Evangelist at GitLab
2019
2018