Skip to content
View jyatesdotdev's full-sized avatar
🎯
Focusing
🎯
Focusing

Block or report jyatesdotdev

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
jyatesdotdev/README.md

Hi, I'm Jonathan πŸ‘‹

I'm a Software Development Engineer II at Amazon with 10+ years of experience across backend engineering, cloud-native infrastructure, and developer automation. I enjoy building reliable systems, understanding how they fail, and turning what I learn into practical tools and clear documentation.

You can find my writing, projects, and interactive experiments at jyates.dev.


πŸ› οΈ Tech Stack & Interests

Domain Tools & Topics
Languages Java, Go, Python, TypeScript/JavaScript, C/C++
Cloud / Platform AWS, Kubernetes (K3s & EKS), Terraform, Flux CD, Ansible, GitHub Actions
Distributed Systems Microservices, event-driven architecture, system design, DynamoDB
AI / Applied ML Agentic workflows, MCP, A2A, local inference, embeddings
Observability OpenTelemetry, CloudWatch, Prometheus, Grafana, Loki
Systems & Networks Proxmox, OPNsense, MetalLB, Traefik, BIND9
Data DynamoDB, PostgreSQL, Redis

πŸ”­ What I'm Building

A tiny language model written in pure TypeScript: trained from scratch, dependency-free, and running entirely in the browser as an interactive terminal dream sequence.

An educational multi-agent orchestration lab built around Google ADK, A2A, and MCP, with agent discovery, reviewer-critic workflows, and distributed tracing.

An OpenAI-compatible embeddings service that runs all-MiniLM-L6-v2 on the AMD XDNA NPU in Strix Halo hardware.

Production-minded starter repositories for Go, Rust, Python, TypeScript, C, C++, Java, and Swift, each with testing, security scanning, CLI examples, and container support appropriate to its ecosystem.


🌐 How jyates.dev Works

jyates.dev is a serverless portfolio, MDX blog, and browser playground on AWS. Alongside the usual career, project, library, and contact pages, it includes likes and comments, confirmed content subscriptions, RSS, a visitor map, and a browser-only jsh terminal. The interactive tools run in independent draggable windows, including a few deliberately nostalgic under-construction experiments.

flowchart TB
    Browser[Browser]

    subgraph Edge["Edge"]
        DNS[Route 53]
        CF[CloudFront CDN<br/>TLS and security headers]
        CFF[CloudFront Function<br/>SPA and subdomain rewrites]
    end

    subgraph Origins["Origins"]
        Site[(S3 static site<br/>React SPA and prerendered HTML)]
        API[API Gateway REST<br/>origin key, throttle, and quota]
    end

    subgraph Compute["Go Lambda compute"]
        HTTP[HTTP functions<br/>interactions, contact, admin, authorizer]
        Notifications[Notifications<br/>content delivery]
    end

    subgraph State["State and messaging"]
        DDB[(DynamoDB<br/>state, confirmations, checkpoints)]
        SES[SES v2<br/>email and topic contacts]
        Failures[(SQS delivery failures)]
    end

    Browser --> DNS --> CF
    CF --> CFF --> Site
    CF -->|/api/*| API
    API --> HTTP
    Site -->|trusted publish manifest| Notifications

    HTTP --> DDB
    HTTP --> SES
    Notifications --> DDB
    Notifications --> SES
    Notifications -. exhausted retries .-> Failures

    RUM[CloudWatch RUM<br/>scoped Cognito role and budget guard]
    Delivery[Private E2E gate and GitHub Actions<br/>OIDC, Terraform, versioned artifacts]

    Browser -. telemetry .-> RUM
    Delivery --> Site
    Delivery --> HTTP
    Delivery --> Notifications
Loading

A few design decisions behind it:

  • Static-first React β€” React 19 and React Router 8 prerender known routes for S3 while preserving client-side navigation. The build also generates RSS, sitemap, robots, and local PlantUML assets from MDX content.
  • Purpose-scoped identity β€” anonymous browser visitor IDs deduplicate likes without using IP addresses as account identifiers. Coarse edge geography powers aggregated visitor statistics.
  • Confirmed updates β€” readers explicitly choose blog and project topics, confirm through a single-use email link, and receive notifications only after a deployment is verified. DynamoDB checkpoints make delivery resumable.
  • Release gates before mutation β€” frontend and API deploy workflows test exact frontend, API, and integration revisions together in LocalStack before assuming an AWS role through GitHub OIDC. No static cloud credentials are used.
  • Cost-aware observability β€” RUM, encrypted logs, X-Ray, dashboards, throttles, and application write limits provide useful production signals while a budget action can disable RUM ingestion at its monthly limit.

The system is split across three public implementation repositories and two private operational repositories:

Repository Visibility Responsibility
jyatesdotdev-frontend Public React SPA, MDX content, browser tools, and static deployment
jyatesdotdev-api Public Go Lambda handlers, services, persistence, and email delivery
jyatesdotdev-infra Public Terraform for AWS infrastructure, DNS, security, and observability
jyatesdotdev-integration Private Cross-repository Playwright and LocalStack release gate
Bootstrap repository Private Account-level OIDC, deployment role, artifact bucket, and Terraform state

πŸ“š Learning & Sharing

I write about the useful parts of the work, including the wrong turns. Current areas of exploration include distributed systems and agent protocols, local AI acceleration, production security and cost trade-offs, and low-level hardware investigation. Recent notes and deep dives live on the jyates.dev blog.

πŸ’¬ Get in Touch

The best places to reach me are the contact form or LinkedIn. Project-specific questions and contributions are welcome in the relevant repository.


"Spot the bottleneck, learn fast, ship the fix."

Popular repositories Loading

  1. toggl-cmder toggl-cmder Public archive

    This project started as a way for me to easily start and stop timers right from the command line. It sports a regex to help find items without needing to spell them perfectly.

    Python 1

  2. java-comprehensive-template java-comprehensive-template Public

    Comprehensive Java project template with Maven, Spring Boot, testing, security scanning, and Docker support

    Dockerfile 1

  3. aoc aoc Public

    Repository for Advent of Code solutions, stored in subdirectories by year and day.

    Python

  4. jyatesdotdev jyatesdotdev Public

    GitHub profile for Jonathan Yates: software engineering, current projects, and jyates.dev architecture.

  5. c-comprehensive-template c-comprehensive-template Public

    Comprehensive C project template with CMake, testing, security scanning, CLI examples, and Docker support

    C

  6. cpp-comprehensive-template cpp-comprehensive-template Public

    Comprehensive C++ project template with CMake, vcpkg, testing, security scanning, CLI examples, and Docker support

    C++