About
"To me, quality software means a system where context, prompts, and engineering discipline work together."
I build products with Next.js and TypeScript; on the backend I ship services with Node.js and Java (Spring Boot), and I design data layers with PostgreSQL. For integration workflows I use n8n, and for delivery I use Docker/Podman with VPS/Dokploy.
Across my projects, I handle LLM usage with context engineering and prompt engineering practices. I also actively use tools like Cursor, Codex, and Claude Code to move faster with clearer quality control.
How I work
Clarify the problem, constraints, and success criteria first
Starting to build without knowing what you're shipping is like sailing without a compass.
Small, repeatable deliveries and early feedback loops
Prefer frequent, small steps over a big bang - the earlier you catch issues, the cheaper they are to fix.
Observability and straightforward rollback paths
You need to see what's happening inside the system - and get back to a last-known-good state quickly when things break.
On the LLM layer: context engineering, prompt engineering, and guardrail-led evaluation loops
What the model sees, what it should do, and where boundaries are drawn should be tested continuously.
In agentic flows, define task breakdown, tool choice, and quality gates upfront
Before an autonomous agent runs, it should be clear which step it takes, which tool it uses, and how outputs are validated.
Stack & tools
- TypeScript
- Next.js
- React
- Vite
- Vitest
- Tailwind CSS
- Figma
- Node.js
- Express.js
- Swagger
- Postman
- Bun
- Java
- Spring Boot
- Hibernate
- Docker
- Git
- GitLab
- GitHub
- Notion
- Podman
- PostgreSQL
- MongoDB
- Prisma
- Drizzle
- Redis
- Cursor
- Claude Code
- Codex