sabin@workshop ~ zsh

currently somewhere in Nepal, writing Java and occasionally questioning my life choices

Spring Boot
React
TypeScript
PostgreSQL
JWT
Docker
pgvector
JPA
Gemini API
Mockito
Apache Tika
Tailwind
Spring Boot
React
TypeScript
PostgreSQL
JWT
Docker
pgvector
JPA
Gemini API
Mockito
Apache Tika
Tailwind
About

I'm a full-stack developer who got into this because I actually enjoy it — which I realize sounds obvious, but apparently isn't. I like the part where you figure out why something should be built a certain way, not just how.

My backend is Java and Spring Boot. My frontend is React and TypeScript. I've containerized things with Docker, set up JWT auth properly, designed normalized schemas, and wired in vector search before most people in my area knew what pgvector was. I test my code. I use Mockito.

I'm doing my BCA at Nepathya College in Butwal. Graduating 2026. I build projects beyond what class asks for because that's where you actually learn stuff.

currently
working on things.
open to work — internships, junior roles, freelance.
Backend
Java Spring Boot Spring Security JPA PostgreSQL MySQL
Frontend
React TypeScript Tailwind CSS Zustand
Tooling
Docker Maven Git Postman
Projects
01
MindSpace
Spring Boot · React · TypeScript · Docker

Students upload their documents and have actual conversations with them. I used pgvector for semantic search so it finds genuinely relevant context, not just keyword matches. Gemini generates the flashcards. JWT keeps everyone's stuff isolated.

RAG pgvector Gemini API Apache Tika
View on GitHub
02
Finance Tracker
Spring Boot · React · Tailwind · Docker

Track money in, money out, and where it all went. The schema is properly normalized with foreign keys between users, transactions, and budgets. Nothing lands in the database without validation. Each user only ever sees their own data.

REST API Spring Security CRUD
View on GitHub
03
MediFlow
Spring Boot · Spring Data JPA · PostgreSQL

Hospital CSV formats are a mess — different headers, inconsistent fields, all of it. MediFlow handles that async, without blocking anything. Strategy pattern lets you add new record types without touching existing code. Tested properly with JUnit.

Async Strategy Pattern JUnit · Mockito
View on GitHub
Let's make
something
real.

If you're working on something interesting and you need a backend that doesn't fall apart or a frontend that doesn't look like a template — reach out.

Based in
Nepal
Education
BCA, Nepathya College
Butwal — 2026
Availability
Open to work
Timezone
NPT (UTC +5:45)