Writing
Essays on work and craft, technical articles on databases and Laravel, and a few pieces I wrote for other people’s sites.
Filter
Kind
Topic
Year
All 83 articles
- I built a Google Docs for me and Claude
- Become known for a thing
- Strategies for increasing your odds of success
- You can't trust a nice guy
- A cookieless, cache-friendly image proxy in Laravel (inspired by Cloudflare)
- I was a kid once too
- Year in review: 2024
- Reputation is portable
- Reservable models in Laravel
- This doesn't warrant a blog post
- Make 5x faster outbound requests in Laravel
- Setting up Tailscale and Synology for sharing video files
- Configuring (and viewing!) logs in Laravel
- Because I wanted to
- SQLite is not weakly typed!
- Finding missing orders with a recursive CTE
- Clean up after yourself
- Laravel's higher order collection proxies
- Don't undo what you haven't done
- An argument for logging off
- File based routing in Inertia.js
- You're always doing something wrong
- What if you tried hard?
- Do literally anything
- Year in review: 2023
- Shipping SQLite to Lambda (with Laravel Vapor)
- Creating a custom Laravel Pulse card
- Rendering Blade components in Markdown
- Targeting only inline code elements with Tailwind Typography
- Self-healing URLs in Laravel
- Read the docs like a book
- Datetimes versus timestamps in MySQL
- Generated hash columns in MySQL
- Finish your projects
- Using redundant conditions to unlock indexes in MySQL
- Character sets and collations in MySQL
- Why isn’t MySQL using my index?
- Year in review: 2022
- Dynamically Generating Thousands of OG Images for a Viral Twitter Campaign
- Laravel's safety mechanisms
- Indexing JSON in MySQL
- Sometimes they say yes
- Pagination in MySQL
- Is COUNT(*) slow in MySQL?
- Marketing for maintainers
- Publishing your work increases your luck
- Adding a microservice to your monolith
- Efficient MySQL pagination using deferred joins
- Inertia server side rendering on Laravel Vapor
- Using Ziggy with Inertia server side rendering
- Bitmasking in Laravel and MySQL
- Using Laravel's schema builder outside of migrations
- Efficient distance querying in MySQL
- Hiring a Personal CFO
- The exceeding cleverness of Laravel's atomic database locks
- Fixing images on Laravel Vapor with League\Commonmark
- Laravel + Vue: ReferenceError document is not defined at insertStyleElement
- The perfect Vercel + GitHub Actions deployment pipeline
- Separate marketing + app sites with Laravel Jetstream and Inertia.js
- Blogging with markdown in Laravel
- Reliably building frontend assets with NVM and Yarn (or NPM)
- Modularizing to improve the developer experience
- Fixing "Laravel PackageManifest.php: Undefined index: name" in GitHub Actions
- Is making software Sisyphean?
- Handling large CSVs with Laravel
- Ensuring consistent polymorphic relationships with Laravel
- Realtime spreadsheets with Laravel
- Laravel pseudo daemons
- Introducing Vue Model
- Hosting an advanced Yii2 app on Heroku
- Encrypting and encoding information in URLs with PHP
- My Aperture backup strategy
- Remaking "Snake" in Excel
- Using MySQL triggers to ensure immutability
- Yii and the asset pipeline: part 2
- Scheduling jobs with Yii
- Automating Yii migrations on Heroku
- Wrangling timezones in PHP, MySQL, and Yii
- Importing transactions into Mint
- Yii, Heroku, and the asset pipeline
- How I use Evernote and IFTTT
- Idea extraction gone terribly wrong
- Carving the statue of David