Skills & Tech

Being a Software Engineer means to me more than just a programmer or developer. It is the engineer who works with users, develops the specifications, defines architecture, tests and deploys the application, and debugs issues in other people’s code. It is the engineer who understands at a higher level why others choose which language and technology to use, which algorithms to fix problems, and how to maintain efficient systems that stand the test of time.

AI & Anthropic Claude API

Since early 2026 I’ve been building a progressive series of production tools on the Anthropic Claude API using Claude Code as the development environment. Each project is scoped to roughly a day of active work and demonstrates a specific set of API capabilities in a real, useful application.

API capabilities demonstrated across the series:

  • Streaming — token-by-token output with simultaneous file write; no spinners, no walls of text on completion
  • Prompt caching — 3,000+ token rulesets pinned in context between requests for sustainable cost at volume
  • Extended thinking — Claude reasons through ambiguous inputs before producing output; measurable quality difference on genuinely complex code and contract language
  • PDF support — documents sent as native base64 blocks with no preprocessing pipeline; page layout, section headers, and cross-references preserved
  • Structured output — responses constrained to strict JSON schemas with required fields, validated server-side
  • Prompt engineering — modular audience injection, adversarial input handling, delimiter-based injection resistance, 16-fixture stress testing across commit style variants

Every project ships with full test coverage (pytest + Vitest), mocked API calls, adversarial edge cases, and a committed session log documenting build decisions and wrong turns.

Technologies and Tools

Technologies I’m building with:

  • Python — primary backend language; Django, FastAPI, Django REST Framework, Pydantic v2
  • React & TypeScript — frontend; Vite, Tailwind CSS, Vitest, React Testing Library
  • Anthropic Claude API — streaming, prompt caching, extended thinking, PDF support, structured output
  • Claude Code — agentic CLI development environment; primary tool for scaffolding, test generation, and iterative build sessions, documented in committed session logs
  • ChatGPT — conceptualization, architecture brainstorming, and early-stage problem framing before moving into implementation
  • GitHub Copilot (VS Code) — inline code completion and in-editor assistance during active development
  • Ruby on Rails – Building efficient, structured web applications with powerful frameworks.
  • Testing — pytest, Vitest, mocked API clients, adversarial fixtures, 90%+ coverage as a baseline
  • AWS — LightSail, EC2 deployment and management
  • Docker — containerization for development, testing, and deployment
  • GitHub – version control, project tracking, session logs committed as build artifacts

Tools and Tech in My Career

I often say my “native language” is C++, a language I learned at CalPoly. Ironically, I’ve never used it professionally — but the programming fundamentals are universal across languages, and the ability to pick up a new one on the job has defined my career.

  • First summer job — taught myself ANSI-C to write data readers
  • Last summer job — learned Perl on the job to maintain simulation pool operations
  • Intel — learned MS Excel Visual Basic to automate reports and calculate motherboard routing lengths
  • HP — learned Tcl/Tk on the job to enhance automation scripts for device testing
  • CalPERS — learned PHPMySQLJavaScriptjQueryHTML, and CSS to build and maintain website applications at enterprise scale; seven years of internal workflow automation
  • NameHero — applied PHP while mastering the Laravel framework
  • Independent — Ruby on RailsDjangoReactTypeScriptFastAPIDockerAWS, and the Anthropic Claude API

These diverse tools and languages have shaped my approach to problem-solving. The pattern isn’t mastery of any one stack — it’s the ability to learn the right tool for the problem and ship something that works.