Skip to content
HS
Menu

Approach

How I build.

The principles I bring to every module, from first requirement to production.

  • Authorization stays out of the UI

    In RBAC-heavy apps I resolve permissions in one place and let components read the result. Modules stay simple, and access rules can change without hunting through the UI.

  • Performance by removing work

    Most of my wins come from doing less: eliminating unnecessary re-renders and side effects, paginating on the server and debouncing input. That approach brought a 35–40% gain on a data-heavy platform.

  • Security is a frontend concern

    Dynamically rendered content is an injection surface. I have remediated XSS in a print feature and treat any user-supplied markup as untrusted by default.

  • Tested, linted, reviewed

    React Testing Library and Jest for behavior, ESLint, Prettier and Husky for consistency. Quality checks run before code is shared, not after it breaks.

AI workflow

AI-assisted, not AI-dependent.

I use Claude Code and GitHub Copilot every day, with custom Skills, Commands, Agents and MCP integrations for repetitive work. The tools speed me up; the architecture decisions and the review stay mine.

  • Claude Code
  • Skills
  • Commands
  • Agents
  • MCP
  • GitHub Copilot

Case in point

Supabase → REST migration

I led an application modernization with Claude Code, moving data access from Supabase to REST APIs with Axios and TanStack Query in 1–2 weeks while existing functionality stayed stable.