I build frontend for complex, data-heavy products under real-world constraints.

4 years shipping React and Next.js interfaces where role permissions, real-time data, and performance on inconsistent connections aren't edge cases — they're the whole job. Most recently: enterprise banking platforms for UAE and KSA at Infosys.

Experience
4 years
Focus
Banking & fintech UI
Markets
UAE, KSA, India
Status
Open to relocate

About

01
Portrait of Dilshad
Open to full-time roles

I'm a frontend developer with 4 years at Infosys, mostly on enterprise banking portals for UAE and KSA clients. Most of my work sits at the intersection of three constraints that don't show up in tutorials: strict role-based access control, data that has to stay correct under real-time updates, and performance budgets for users on inconsistent mobile connections.

I've spent the last two years moving from building components to owning a full frontend module — from architecture decisions down to the caching strategy that keeps it fast.

Based in India. Open to full-time roles in UAE, KSA, and India.

JavaScript (ES6+)
Daily driver for 4 years — comfortable in React codebases and vanilla DOM work when a library isn't warranted.
React
Component architecture, render optimization, and state colocation for screens with high-frequency data updates.
Next.js
SSR, SSG, and RSC tradeoffs in production — knowing when each one actually helps versus adds complexity.
TypeScript
Used daily for 2+ years. Strict mode, discriminated unions for API response states.
Redux Toolkit & React Query
Predictable global state versus server-state caching — and knowing which one a given piece of data actually needs.
Testing
Regression coverage on components that change frequently, not chasing 100% coverage for its own sake.

Selected work

02
jobpilot.dilshad.online
JobPilot resume analysis interfaceJobPilot job matching interface
Live product

JobPilot — AI resume analysis & optimization platform

A full-stack platform that evaluates a resume against a specific job description and generates a structured ATS-style analysis: missing keywords, strengths, weaknesses, and concrete recommendations — built and shipped end to end, not a prototype.

Structured output validation with Zod before anything reaches the UILLM output is parsed against a strict schema before rendering, so a malformed or incomplete AI response never breaks the analysis screen — the UI only ever sees data it can trust.
Streamed AI responses via the Vercel AI SDKResume analysis takes a few seconds end to end, so results stream in as they're generated instead of the user staring at a blank spinner.
Secure auth with persistent analysis historyBuilt on NextAuth/Better Auth so users can log in and come back to past resume analyses instead of losing results after a single session.
MySQL and Prisma for the data layerResumes, job descriptions, and generated analyses are all persisted relationally, which made building the history feature straightforward rather than bolted on.
Next.js 15ReactTypeScriptMySQLPrismaVercel AI SDKNextAuth / Better AuthZod
What I'd change next: Add caching for repeat resume/job-description pairs so re-running an analysis doesn't hit the LLM API again for the same input.

PulseBoard dashboard interface showing KPI charts and data tables
Case study

PulseBoard — role-based frontend architecture

A personal project built to explore a pattern I use at work but can't show publicly: a dashboard where different roles see different data and actions, real-time KPIs stay correct, and table and chart views hold up under large paginated datasets — without the codebase turning into scattered permission checks as features get added.

RBAC at three levels — route, component, and actionPermissions are checked at the point of use instead of a single top-level route guard, which prevents a hidden button from staying reachable via a stale cached page.
Server state separated from UI state, via React QueryKPI and user data is cached and revalidated independently from UI-only state like open modals and filters, avoiding the classic conflict of using one store for both.
Schema-driven validation with ZodForm validation lives in one schema the UI can share, so refactoring a form doesn't silently break validation elsewhere.
Paginated tables and chartsDesigned to handle large datasets without loading everything client-side, keeping interaction smooth as data volume grows.
Next.jsTypeScriptPrismaNeonDBReact QueryTailwind CSSshadcn/uiChart.js
What I'd change next: Add optimistic updates for the KPI actions instead of waiting on a full refetch — right now a slow connection makes the dashboard feel less responsive than it should.

Other projects

KL

Klimate

Weather app with live OpenWeather API, search, and theme switching.

GitHub ↗
IO

Institute OS

Management platform for institutes — handles exams, student records, and fee tracking in one place.

GitHub ↗
ED

EventDrop

Create an event and let guests upload and view shared photos with likes, via QR code entry and real-time updates with Socket.io.

GitHub ↗

Performance work

03

Before/after results from the Digital Banking Portal revamp (see Experience below) — taken from 70s-range Lighthouse scores to 90+ on both mobile and desktop.

Fixed layout shiftSet explicit width/height attributes and reworked image loading order.
CLS ↓
Faster largest contentful paintCompressed and converted hero assets to WebP, served via next/image.
LCP ↓
Smaller JS bundleCode-splitting, dynamic imports, and removing unused dependencies.
~40% smaller
Less main-thread blockingDeferred non-critical scripts and removed render-blocking resources.
FID ↓
Better caching strategyISR, cache headers, and Next.js prefetching on high-traffic routes.
Lighthouse 90+

Experience

04

Frontend Developer, Infosys

Oct 2022 — Present · Banking & financial services accounts (UAE, KSA)

2022–2024

Building the foundation

  • Built and maintained React/Next.js components for customer and admin banking portals serving UAE and KSA markets.
  • Contributed to a shared component library used across multiple product modules.
  • Started owning performance: identified render bottlenecks and reduced unnecessary re-renders on data-heavy dashboard views.
2024–Present

Taking ownership

  • Led the frontend UI revamp for the digital banking customer and admin portals — from architecture decisions to implementation.
  • Owned the performance budget: reduced LCP and CLS issues, taking Lighthouse scores to 90+.
  • Introduced schema-driven form validation to cut down a recurring class of production bugs from malformed input.
  • Worked directly with backend, QA, and design in Agile sprints to ship feature rollouts without breaking existing banking workflows.
On scope: I was the primary frontend owner on the digital banking portal module — architecture, performance, and delivery — working alongside backend, QA, and design, without formal direct reports.

Contact

05

Open to full-time frontend roles across UAE, KSA, and India.

Currently in India — ready to relocate