
I build real-world web apps that survive real users, real bugs, and real deadlines.
The Developer Behind The Code
I make apps that aren't afraid of actual users and bugs. The real question isn't whether the app looks fancy, but whether the feature actually solves a problem. Readable over clever; ship first, refactor next time around.
This portfolio has been rewritten more times than I want to admit.
Projects Shipped
Bugs Fixed
Philosophy
Selected Projects
Professional Track Record
Developing the website for EnhanceAI, a creative AI SaaS offering multiple capabilities including image generation, video creation, upscaling media, music composition, and much more. Building various product-facing components such as landing pages and feature sections.
Responsible for frontend development of a reverse job portal. Re-worked legacy components to avoid unnecessary re-renders. Advocated against over-engineering unnecessary features.
Conducted bootcamp lectures on CSS and animations for 50+ participants. Content aimed at being more practical than theoretical. 95% of attendees found it useful.
Mentored 50+ individuals who were learning various AI tools. Assisted them in debugging code and finishing their projects. Completed 25% more projects overall.
Technical Evolution
Got started with the fundamentals. Spent weeks simply trying to center a div.
Found my love for React. Immediately jumped down the prop-drilling rabbit hole and learned state management through bitter necessity.
Spent weeks creating abstractions I never used. Simple is always better; took me way too long to realize that.
My first time working in full-stack where everything clicked. Sometimes miss client-only routing.
Didn't like TypeScript initially. But now, can't work without it. Catches most of my silly mistakes upfront.
Learned backend through making things break in production and fixing them at midnight. Auth systems remain humbling every single time.
Thought NoSQL was the solution for everything. Turns out, there's a reason some data models are called 'relational'.
Had to rebuild the Prisma schema for my job tracker twice. Painful process, but helped me learn data modeling.
Stop trying to be perfect. Stop using unnecessary libraries; start evaluating needs before even thinking about implementing.
First version of job tracker had no auth, allowing anyone to access everyone else's data. Never ever again.
Aesthetics do matter. Users form their first impression within 3 seconds. Bad UI design breaks trust immediately.
First deployment failed five times due to environment variable mismatch. Now triple-check everything before deploying.
Available for freelance opportunities and full-time roles.