Yap
A real-time chat app with direct and group messaging over WebSockets, plus passwordless email OTP Authentication.
- TypeScript
- Vue.js
- Nuxt
- Nest.js
- Postgres / Prisma
- Tailwind
> Full Stack Software Engineer
I build:
// about

I'm a software engineer with over 6 years of experience working full-stack with web and mobile apps. I have a passion for learning and creating! I have collaborated across numerous agile Scrum teams, ensuring continuous process improvement.
I have a consistent history of driving projects to successful, on-time delivery that predates AI-assisted development. I do not hesitate to harness the efficiency of agentic tools, backed by my understanding of fundamentals and best practices. Quality is my priority, enforced by manual and automated testing.
Outside of code: I'm usually playing music, making art, video editing, exercising or spending time with my wife +
// skills
// portfolio
A real-time chat app with direct and group messaging over WebSockets, plus passwordless email OTP Authentication.
A full-stack e-commerce site for selling band merch
A DnD toolkit including spell lists, feats, dice rolls, and a goblin-themed AI chat. This is a web preview of the native app.
A quick reference for U.S. cost of living: a dashboard tracking consumer prices across groceries, energy, housing, and healthcare from Federal Reserve (FRED) data.
The site you're viewing right now :)
// ethosprinciples
I architect human-readable, highly maintainable codebases by strictly adhering to DRY principles and modular design. I don't stop at the first working solution; I refine until the code is performant, scalable, and intuitive for the next developer.
I leverage AI tooling to accelerate prototyping, automate boilerplate, and maximize productivity. However, all generated code is subject to rigorous code review, testing, and critical analysis to ensure security and reliability.
Details like keyboard navigation, screen reader compatibility, and semantic HTML matter. A site that only works for the 'median user' is fundamentally broken; high-quality software is measured by how accessible it is.
I treat codebases as living ecosystems that require constant upkeep. I proactively pay down technical debt, refactor legacy code, and leave every module cleaner and more stable than I found it.
Businesses win by shipping. I balance engineering excellence with commercial realities, prioritizing fast deployment and rapid iteration.
// contact