// Code. Deploy. Scale. Repeat.
Building Reliable Web Systems
I build web applications and the systems behind them. Currently at Hounder, developing in Drupal, WordPress, and Laravel for counties, airports, and utilities — sites where a broken page means someone can't renew a permit.
Current Status
Terminal // Portfolio Console
> initializing portfolio...
> loading projects...
> scanning system status...
> checking availability...
> loading contact links...
> portfolio ready
Projects Built
5
Current Focus
Reliable Systems
Core Stack
PHP · Drupal · WordPress · Laravel
Availability
Employed
Projects
Featured Projects
Project
UAB — Blaze a Brighter Future
A fully custom WordPress build for the University of Alabama at Birmingham's alumni campaign, showcasing graduate career stories to prospective students. Hand-built theme and page templates with no parent theme or page builder, plus custom blocks and ACF fields so university staff can publish new alumni spotlights without touching code. Responsive across the full browser matrix. Built at Hounder.
Project
Blackjack Tutor
A PyGame blackjack trainer that evaluates every decision against the mathematically correct basic strategy in real time, tracks accuracy by category, and explains mistakes with rule-based coaching. Full 6-deck engine with splits, doubles, surrender, and insurance, backed by 682 tests at 96% coverage. Created with Joon Rho.
Project
Habit Tracker
A command-line tool that generates a professional Excel spreadsheet for tracking daily habits across an entire year. Features interactive CLI prompts for custom habits, monthly sheets with conditional formatting, automated success rate calculations, and a yearly summary dashboard with trend charts. Built with Python and xlsxwriter.
Experience
Professional Work
Role
Web Developer — Hounder
April 2026 – Present
Client sites in Drupal, WordPress, and Laravel across the full production lifecycle: custom components and page templates, PHP and server-side logic, responsive CSS, migrations, and Lighthouse accessibility audits. The clients are public agencies, so the QA bar is high and the browser matrix is wide.
Different stack than my personal projects, same priorities. A Drupal build for a county and a Next.js storefront both come down to whether it's reliable, whether it's maintainable by the next person, and whether it works for everyone who needs it.
- PHP
- Drupal
- WordPress
- Laravel
- Twig
- Accessibility
Skills
Technical Skills
CMS & PHP
- Drupal
- WordPress
- Laravel
- PHP
- Twig
- Content Migrations
Frontend
- Custom Theming & Templates
- Semantic HTML
- Responsive CSS
- JavaScript
- React / Next.js
- TypeScript
Backend
- Server-Side Logic
- Custom Modules & Plugins
- REST APIs & Webhooks
- Authentication
- Node.js
- Python
Databases
- MySQL
- SQL Queries & Debugging
- Drush & WP-CLI DB Syncs
- Environment Sync (Prod → Local)
- Schema & Update Hooks
- Data Modeling
Quality & Accessibility
- Accessibility / WCAG
- Lighthouse Audits
- Cross-Browser QA
- Testing
- Performance
- Security
Infrastructure
- Acquia
- Pantheon
- Laravel Forge
- Vercel
- Docker
- GitHub Actions / CI/CD
Deployment Architecture
Active
What I Optimize For
FocusReliability
Systems that fail clearly and recover cleanly.
Performance
Fast interfaces, efficient APIs, and tuned queries.
Maintainability
Readable code, focused tests, and simple ownership.
Security
Safer auth, validation, and data handling by default.
Engineering Judgment
Architecture Decisions
A few examples of how I think through technical tradeoffs when building products that need to stay maintainable.
Decision
Keep configuration in code, not in the database
Why
Version-controlled config means every environment can be rebuilt the same way, and a change is reviewable before it reaches production instead of being clicked into a live admin UI.
Tradeoff
More deploy discipline up front, but no drift between local, staging, and prod.
Decision
Build for the content editor, not just the launch
Why
Public agencies maintain these sites for years with non-technical staff, so structured fields and defined components hold up better than a freeform editor that decays after handoff.
Tradeoff
Less flexibility on any single page, but the site still looks intentional a year later.
Decision
Audit for accessibility before launch, not after
Why
Public-sector sites have compliance obligations and a wide range of users; catching issues during the build is cheaper than remediating a live site.
Tradeoff
Slower initial delivery, but no separate remediation project later.
Decision
Support the browser matrix the audience actually uses
Why
A county or utility site serves everyone, including people on older hardware and locked-down government machines, so the target is what visitors actually run rather than whatever is current on my own setup.
Tradeoff
More conservative CSS and JavaScript choices, but the site works for the people it was built for.