My Development Workflow
I build lean, reproducible systems that move unstructured or messy data to a clean DB and generate simple surfaces, with containers first, logs everywhere, and a doc-as-you-go mentality.
My Toolchain & Scaffolding
Backend & Web
Frontend & Modern Web
Data & ETL
Packaging & Deployment
How I Actually Move Code
Local Development
MacBook Air workflow with containerized consistency
Process:
- Spin with Docker Compose
- Local Postgres seeded from prod (read-only)
- Mirror prod shape/scale
- Chrome/Chromedriver baked in containers
Gotchas & Solutions:
- Fix permissions/ownership
- Mount code volumes
- Run Rails + workers
Frontend Development
Modern web development with performance-first approach
Process:
- Component-first architecture with TypeScript
- Tailwind CSS utility classes + custom design system
- Framer Motion for 60fps animations
- Performance monitoring and optimization
Gotchas & Solutions:
- Bundle size optimization
- Accessibility compliance
- Mobile-first responsive design
- SEO optimization
Data Processing
ETL pipeline with Python scripts and Rails integration
Process:
- Ingestion → extraction → mapping → normalization
- Log every step, continue on error
- Dynamic paths with /app/... roots
- Trigger Rails Rake tasks for backfills
Gotchas & Solutions:
- Idempotent imports
- Unique keys (doc_id/filing IDs)
- Raw→staged→clean lanes
Document AI Extraction
My signature moves for complex document parsing
Process:
- Hand-label training data (tables/fields/boxes)
- Parent/child schemas mirroring visual logic
- Transaction-Row modeling for X-mark tables
- Ticker extraction with fallbacks
Gotchas & Solutions:
- Document AI has DateTime, not Date
- Normalize downstream
- Accept parsing limitations
Production Deployment
Heroku container workflow I learned the hard way
Process:
- docker build -t registry.heroku.com/<app>/web .
- docker push registry.heroku.com/<app>/web
- heroku container:release web -a <app>
- Never git push heroku main again
Gotchas & Solutions:
- Registry login/API key friction
- Use Heroku config vars
- Verify service-account scopes
What I Excel At
Container-First Development
I've eliminated local snowflakes entirely
Every developer can spin my stack with Docker and run the same scripts. No more 'works on my machine' issues.
Full-Stack Performance
Performance optimization from database to UI
I optimize at every layer - from database queries and API responses to frontend bundle sizes and animations. Every feature is designed with performance in mind from the start.
Data Correctness First
Schemas, enums, and idempotency reduce downstream chaos
I normalize data ranges, timestamps, and statuses before any UI/BI work begins.
Clear Ops Surface
ActiveAdmin + logs + simple dashboards give me 'eyes' on the system
I prefer simple BI surfaces (Google Sheets/Looker Studio) over fancy dashboards for demos.
Bias to Ship
I unblock fast instead of stalling for perfection
When Redis session store complicated auth during Docker dev, I pragmatically used cookie store to keep moving.
What I'm Working On
Automated Checks
Slim CI with lint, unit tests, DB migration smoke-tests
Frontend Performance
Core Web Vitals optimization and bundle analysis
Idempotent Loaders
Enforce unique constraints + upserts on all ingestion points
Central Config
One settings module that parses env + defaults
Metrics & Monitoring
Minimal Prometheus-style counters to catch regressions early
Release Playbook
Single make release that builds, tags, pushes, migrates
Ready to See This Workflow in Action?
Explore the portfolio architecture to see these workflow principles implemented, or dive into the technical details of how I build reproducible systems.