Skip to content
Prajwal Bhatia

Every number here is measured, not estimated

Work

Projects and the roles they came out of. Each one links to a longer write-up.

Selected projects

7 of 7 shown

  • 01

    Web Vitals Programme

    The highest-traffic flow in the product — batch selection — took 5.45s to paint at p75. Layout shifted under people as late assets landed.

    • Core Web Vitals
    • Datadog RUM
    • React

    5.45s3.17s

    LCP p75 · −42%

    Virtual Internships · 2023–25Case study →
  • 02

    fe-intern-profile

    A versioned React package the main platform installs — and every consumer paid for the whole thing on first paint, including an accessibility gap filed downstream.

    • React
    • TypeScript
    • Accessibility

    513KB240KB

    Bundle · −53%

    Virtual Internships · 2024–26Case study →
  • 03

    Thumbnail Pipeline

    Portfolio cards only had a thumbnail if the intern had uploaded a picture, and most never did — so the browse page was mostly empty boxes.

    • Node
    • BullMQ
    • Puppeteer
    • GCS
    • Redis

    Architecture · Backend

    Virtual Internships · 2025Case study →
  • 04

    Application Flow

    A five-step application that lost people's work. Refresh the tab mid-way and the draft was gone — the single biggest source of support tickets on the flow.

    • React
    • RTK Query
    • TypeScript

    28 min12 min

    Time to apply · −57%

    Virtual Internships · 2025–26Case study →
  • 05

    Signup Funnel Rebuild

    Signup ran across three screens — one of them 148 lines of TSX and a Lottie file that collected nothing — each accumulating partial state before anything was committed.

    • React
    • TypeScript
    • Node

    3+1

    Sequential API calls

    Virtual Internships · 2026Case study →
  • 06

    Batch Selection Re-architecture

    Architecture

    Virtual Internships · 2026Case study →
  • 07

    Video Player Platform

    Platform

    Extramarks · 2021–23

Roles

Current

Senior Software Engineer (SDE-3)

Virtual Internships · Remote, United Kingdom

  • Built an async thumbnail extraction service on Node, BullMQ, Puppeteer and GCS — a two-tier pipeline whose OG-tag fast path clears ~55% of URLs in ~1s, 8× faster than the Puppeteer fallback, at a 95% success rate in production.
  • Re-architected the Batch Selection flow: a 500-line component decomposed into focused hooks, Redux thunks migrated to RTK Query, and business rules moved server-side for a single source of truth.
  • Co-authored the team's AI-assisted development standards — frontend guidelines and a reusable skills library across core repos.
  • Rebuilt PR review from code-only into a three-layer standard covering code, functionality and design. Caught 17 issues in one admin-surface review before release.
  • Mentored 2 interns through onboarding and review cycles; one converted to a full-time offer.
Frontend

Software Development Engineer 2 (Frontend)

Virtual Internships · Remote, United Kingdom

  • Led Core Web Vitals optimisation on high-traffic pages: batch-selection LCP p75 5.45s → 3.17s (−42%) through LCP image preloading, third-party preconnects and deferred analytics.
  • Improved intern-profile CLS p75 from 0.229 → 0.006 using reserved layout space and skeleton loaders.
  • Earlier onboarding and dashboard work: LCP 9.9s → 8.6s and 5.9s → 5.5s, CLS 0.44 → 0.24 and 0.38 → 0.24.
  • Resolved complex cross-browser and cross-platform production issues through systematic debugging and targeted automated testing.
Platform

Software Developer

Extramarks Education India Pvt. Ltd. · Noida, India

  • Owned the video player platform end to end — playback, background video downloads, session activity tracking and milestone event instrumentation.
  • Refactored legacy frontend modules into reusable, documented React components, standardising UI patterns across the team.
Early career

Associate Software Engineer

Attosol Technologies · Kolkata, India

  • Reduced API call volume by 50% with client-side caching, request deduplication and TTL-based invalidation, lowering server load on data-heavy workflows.
  • Translated high-fidelity wireframes into responsive React interfaces and reusable component patterns for the team's evolving design system.

Engineering practice

The same before and after, applied to how a team works rather than how code runs.

  • Code review

    Reviews stopped at the codeThree layers — code, functionality, design

    Approving a diff that compiles is not the same as approving a feature. Reviewers now open the branch, use it, and check it against the PRD and the design before approving.

    17 issues caught in one admin-surface review, before release

  • Incident response

    Fix it, ship it, move onPost-incident review is part of the fix

    A P0 that gets patched without asking how it shipped will happen again in a different file. Every incident now ends with a product-design review rather than a closed ticket.

    29 minutes from P0 report to deployment

  • AI-assisted development

    Everyone prompting their own wayShared frontend guidelines and a reusable skills library

    Without shared conventions, generated code arrives in four different styles and review gets slower, not faster. Co-authored the standards so the output lands consistent across core repos.

  • Handoff

    Requirements arriving mid-buildCross-functional kickoff before a line is written

    Most late-stage rework traces back to a question nobody asked at the start. Design, frontend, backend and QA now agree the shape of a feature up front.

  • Mentoring

    Interns left to find their own way inStructured onboarding, ramp-up and review cycles

    Two interns taken from first commit to conversion, with review used as teaching rather than gatekeeping.

    1 of 2 converted to a full-time offer

Want the long version
of any of these?