James McCarthy

James McCarthy

Full-Stack Software Engineer

I build and maintain reliable web applications that solve real problems, from government disaster-relief systems to live telecom operations. I focus on clarity, maintainability, and supporting what I ship.

Resume

About

How I work and what I care about.

I’m a full-stack developer who likes taking complicated ideas and turning them into software that works well and is easy to understand. Over the past several years, I’ve built web applications using tools like React, TypeScript, Node.js, and SQL, with a focus on making things clear, reliable, and pleasant to use.

I enjoy working across the whole system, from shaping how data is stored and shared to building interfaces that feel straightforward and responsive. I care about writing code that is easy to maintain, making sensible decisions along the way, and leaving things in better shape than I found them.

Whether I’m working on my own or with a team, I focus on steady progress, clear communication, and building software that solves real problems.

Outside of work I follow football, lift weights, read about politics and history, enjoy film, and play guitar.

Technical Skills

Programming languages, frameworks, databases, and tools from my resume.

Programming Languages

  • JavaScript
  • TypeScript
  • Python
  • SQL

Frameworks & Libraries

  • React
  • Redux
  • Next.js
  • Node.js
  • Express.js
  • NestJS
  • Flask
  • jQuery

Databases

  • SQL
  • MongoDB
  • Supabase

Cloud & DevOps

  • AWS
  • Microsoft Azure
  • Netlify
  • Vercel
  • CI/CD

Tools & Technologies

  • Git
  • Linux
  • REST APIs
  • Axios
  • JWT
  • Responsive Web Design
  • HTML
  • CSS
  • SASS
  • Jest
  • Regex
  • OOP
  • Project Management
  • Code Review
  • Code Refactoring

Featured Projects

Selected work showing problem-solving, stack, and outcomes.

  • Trivia Master

    I'm a longtime fan of Jeopardy and trivia. Trivia Master is a single-player, Jeopardy-style web app I built for fun and practice. You sign in, create a game, and play through three rounds: Jeopardy, Double Jeopardy, and Final Jeopardy. You pick clues, reveal answers, and mark yourself right or wrong. Daily Doubles and Final Jeopardy let you wager within the rules. I wanted a project that put game logic on the server and kept the frontend focused on display and input.

    The backend (NestJS) owns all game rules, scoring, and wager validation. The frontend (Next.js) is a thin client. It shows what the server sends and sends actions back; it does not decide outcomes. Clue data is loaded into Postgres from TSV files via scripts, not from a live external API. Auth is Supabase; the API checks the JWT and scopes every action to the signed-in user. I run it locally with Docker Compose and deploy the backend to AWS ECS and the frontend to S3 behind CloudFront, with GitHub Actions for tests and deploys.

    • Backend-authoritative design: rules and state live in one place on the server.
    • Clear API and schema so the frontend stays simple and testable.
    • Full three-round flow with Daily Doubles and Final Jeopardy wagering.
    • Documented so other engineers can follow the design.
    Next.js 14TypeScriptNestJSPostgreSQLPrismaSupabaseTailwind CSSDockerAWS ECSS3 & CloudFront

Contact

Open to full-time roles and projects where reliability and communication matter.

Email: jjm90591@gmail.com

Hamilton, ON, Canada