Building solutions that solve real problems.
Experience
5+ Years
Availability
Open to freelance & full-time
Location
India
ivivekcse@gmail.com
Focus
Full Stack Development
Handle
vivekcsein
The path that shaped me
Learning & Exploring
Started my journey with HTML, CSS & JS and discovered the joy of building on the web.
Frontend Developer
Deep dived into React, Next.js and modern frontend ecosystem.
Backend Developer
Explored Node.js, databases, APIs and authentication systems.
Full Stack Developer
Building scalable full stack applications and helping businesses grow.
Building & Sharing
Contributing to open source, writing blogs and sharing knowledge.
Future Goals
Continuously learning and building impactful products that make a difference.
Frequently asked questions
How I think, build, and ship.
Engineering
A few habits show up in every codebase I touch.
- Architectural discipline — GSAP/ScrollTrigger and Framer Motion live in separate 'use client' leaves and never share a tree.
- Single source of truth — Handles and social links come from one constants file instead of being scattered across components.
- Forward planning — The hero reserves space for a future dependency-graph canvas, so the layout never needs rebuilding.
- Taste calibration — I benchmark against Linear, Vercel, and Stripe, and frame the site as a documentation-inspired engineering hub, not a resume.
- Execution discipline — I scope work explicitly and build in deliberate passes instead of everything at once.
- Stack fluency — Next.js App Router, strict TypeScript, Tailwind v4 CSS-first theming, Bun, and Lenis driven by GSAP's ticker instead of its default rAF loop.
Next.js, TypeScript, Bun, Hono, and React.
Lenis and GSAP each run their own requestAnimationFrame loop by default. Two loops means two update orders per frame, so ScrollTrigger can fall out of step with the scroll position Lenis just applied. I run both from one clock so every frame has a single, predictable order.
- One clock — Lenis's autoRaf is off and gsap.ticker calls lenis.raf(), so smooth scroll and animation update in the same tick.
- Synced triggers — lenis.on('scroll', ScrollTrigger.update) keeps ScrollTrigger reading the position Lenis just set.
- Lag smoothing off — gsap.ticker.lagSmoothing(0) stops GSAP from skipping time after a dropped frame, so scroll-linked animation stays aligned.
- The rest of the stack — Next.js App Router, strict TypeScript, Tailwind v4 CSS-first theming, and Bun, with each concern owned in exactly one place.