Projects

Each project page below includes: the goal, what I built, a mini code example, my process, and photos.

Zombie Game

Zombie Game (Canvas JS)

A browser-based zombie survival game using a canvas-style render loop. I focused on smooth controls, collisions, and a responsive gameplay loop.

Canvas JavaScript Game Loop Collisions

Code example

function step(dt) {
  player.update(dt);
  zombies.forEach(z => z.update(dt));
  handleCollisions(player, zombies);
  render();
}
requestAnimationFrame((t) => step(t - lastT));
              

Process

  • Sketch gameplay loop + entity responsibilities
  • Implement movement + hitboxes
  • Tune collision feel (speed, push-back, response)
  • Polish render and UI feedback
Photos (click)
Zombie gameplay photo Zombie UI photo
Recipe Book

Recipe Book

A structured recipe browsing interface. I prioritized clean layouts, readability, and lightweight UI.

HTML CSS UI/UX

Code example

.card {
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
}
              

Process

  • Define sections (search, categories, recipe view)
  • Build responsive grid + typography scale
  • Optimize spacing for scanning
  • Iterate on UI polish
Photos (click)
Recipe list photo Recipe details photo
Client Website

Client Website

A responsive front-end layout focused on spacing, hierarchy, and interaction polish.

HTML CSS JavaScript Responsive

Code example

document.querySelectorAll('a').forEach(a => {
  a.addEventListener('click', () => {
    // UX enhancements go here
  });
});
              

Process

  • Layout from wireframes + responsive breakpoints
  • Typography and spacing pass
  • Small JS enhancements
  • Cross-device testing
Photos (click)
Client landing photo Client layout photo