This resume has been written as a demo you can use to evaluate my technical skills. It showcases how I would architect, build, and deploy a modern web application using a variety of technologies and best practices.
For example:
- Technology stack selection
- Templating
- Infrastructure and platform
- Middleware and backend
- AI/LLM/agentic/automation
- Frontend and user experience
- Scalable monorepo model
- PNPM workspace
- Terraform and GitHub Actions for IaC and CI/CD
- Templates for apps and packages
- Shared build configuration and ESLint configuration
- Site is translated to multiple languages using LLM over OpenRouter
- Release notes are generated using LLM
- PRs with build/lint/test failures are automatically fixed with Codex
- AGENTS.md
- Skills
- Deploys to Cloudflare Pages
- Infrastructure as Code with Terraform
- CI/CD with GitHub Actions
TBD
- React with Mantine
- Vite
- TypeScript
- Responsive design for mobile and desktop
@media printstyles for convenient printing- PDF generation
- I18N and A11Y
- Dark/light mode
- Complex ESLint configuration
- Stylelint for CSS
tflintfor Terraform- I18next linter for translation keys
- Code coverage with
vitest - Test coverage reports with
codecov - GitHub Copilot reviews
# Install dependencies
brew bundle
# (You will likely need to re-open your shell now)
# Install and use Node.js 24
nvm use 24
corepack enable pnpm
# Install NPM dependencies and build all packages
pnpm install
pnpm build
# Run the resume app
cd dev/apps/resume && pnpm devcd dev/apps/resume
# Collect all keys for translation
pnpm i18n:extract
# Translate to all languages
OPENROUTER_API_KEY="sk-or-v1-..." \
pnpm i18n:translate
# Generate a PDF version of the resume
pnpm generate:pdf
# Build for production
pnpm --workspace-root build
# Deploy to CloudFlare Pages
CLOUDFLARE_API_TOKEN="..." CLOUDFLARE_ACCOUNT_ID="..." \
wrangler pages deploy ./dist/client --project-name resume --branch main| Name | Scope | Description |
|---|---|---|
OPENROUTER_API_KEY |
build | API key for OpenRouter to use LLM for translations |
AWS_ENDPOINT_URL_S3 |
terraform | Endpoint URL for Cloudflare R2 bucket |
AWS_ACCESS_KEY_ID |
terraform | Access key ID for Cloudflare R2 bucket |
AWS_SECRET_ACCESS_KEY |
terraform | Secret access key for Cloudflare R2 bucket |
CLOUDFLARE_API_TOKEN |
deployment | Cloudflare API token |
CLOUDFLARE_ACCOUNT_ID |
deployment | Cloudflare account ID |
CODECOV_TOKEN |
ci | Token for Codecov coverage uploads |
OPENAI_API_KEY |
ci | Fallback API key for automated PR fixes |
The Terraform setup relies on a Cloudflare API token with the following permissions:
- Account – Cloudflare Pages:Edit, Workers R2 Storage:Edit
- Zone - Zone:Read, DNS:Edit
The Terraform setup requires an access key ID and secret access key for Cloudflare R2. These can be generated in the Cloudflare dashboard under "R2" -> "Access Keys".
- R2 Bucket Scoped Token
The Wrangler CLI requires a Cloudflare API token with the following permissions:
- Account - Cloudflare Pages:Edit
An OpenRouter API key is required for the translation functionality. You can obtain an API key at OpenRouter.
An OpenAI API key is required for the automated PR fixing functionality. You can obtain an API key at OpenAI.