
I build real-world web apps that survive real users, real bugs, and real deadlines.
The Developer Behind The Code
I build real-world web apps that survive real users, real bugs, and real deadlines. I care less about fancy abstractions and more about whether the feature actually helps the user. I prefer readable code over clever code. I'll ship first, then refactor.
This portfolio has been rewritten more times than I want to admit.
Projects Shipped
Bugs Fixed
Philosophy
Selected Projects
Professional Track Record
Took ownership of the frontend for a reverse job portal. Rewrote legacy components that were causing unnecessary re-renders. Argued (politely) against overengineering features we didn't need yet. Shipped on time.
Taught CSS and animations to 50+ beginners. Focused on practical stuff they'd actually use, not just theory. 95% said it was helpful, which felt good.
Mentored 50+ people learning AI tools. Helped them debug code and finish projects. Completion rate went up 25%, which made the late nights worth it.
Technical Evolution
Started with the basics. Spent way too much time centering divs.
Fell in love with React. Then fell into prop-drilling hell and had to learn state management the hard way.
Wasted weeks building abstractions I didn't need. Learned that simple beats clever every time.
Next.js finally made full-stack feel natural. Still miss client-side routing sometimes.
Hated TypeScript at first. Now I can't live without it. Catches my mistakes before production does.
Learned backend by breaking things in production and fixing them at 2 AM. Auth is still scary.
Thought NoSQL was the answer to everything. Learned the hard way that relational data needs relational databases.
Prisma schema had to be redesigned twice on my job tracker. Finally figured out data modeling.
Stopped chasing the perfect stack. Stopped adding libraries 'just in case'. Started asking 'do I actually need this?'
First version of my job tracker had no auth—anyone could access anyone's data. Never again.
Realized aesthetics matter. Users judge your app in 3 seconds. Micro-animations make or break it.
Deployment failed at least 5 times on first try due to env mismatches. Now I triple-check everything.
Available for freelance opportunities and full-time roles.