Design engineer · operator-first UX · 5+ certifications

Government software doesn't have to feel like government software.

I design for real operators — non-technical staff navigating these systems every day. UX grounded in direct requirement discovery, not assumptions. Certified in product design, UX, and design thinking (Simplilearn, Accenture, Le Wagon, CPD).

0+
UX certifications
0
enterprise products designed
0
client projects shipped

Good architecture is invisible. Bad UX isn't.

I design the parts people touch — forms, flows, and dashboards that non-technical operators finish without a manual.

In this world

Before / afterUI galleryDesign system

Before / after

Same data. Different respect for the operator.

Government tools are usually built for the database, not the human at the desk. Drag to compare the default with the redesign — bigger type, plain language, and a flow that finishes without a manual.

New allocation

Assign items to an institution. We'll check stock for you.

✓ Stock reserved for 8 hours — you can review before confirming.
Reserve & reviewSave draft
After · the redesign
ALLOCATION ENTRY FORM (MODULE: MPDD_ALLOC_V1)
INST_ID *select...
ITM_CODE *
QTY_ALLOC *0
BENEF_TYPselect...
RMK_TXT
ERR: QTY_ALLOC must satisfy AVAIL_BUCKET constraint [code 4012]

* mandatory. Use ALL CAPS codes. Contact admin for INST_ID mapping.

Before · the default

Process · operator-first UX

Good design is invisible to the operator

I design enterprise software for people who never chose to use software — university registrars, estate managers, hostel admins. If they need training, the design failed.

01Discover

Shadow the operator

Before opening a design tool, I sit with the people using the system.

Real example ↓For MPDD, I paired with store-room staff during a high-volume allocation week — 200+ daily issues. They were using 12 clicks per allocation and reading jargon (DB field names, not what they call things). That discovery drove the entire v2 UX.
02Define

Map the model to the mental model

What the schema calls it and what the user calls it are usually different. Both need to be correct.

Real example ↓The Estate module has a strict hierarchy: building→floor→room. University admins call them "blocks", "levels", and "units". The DB stays normalised; the UI speaks their language. I maintain both in the same component layer.
03Design

Design for real constraints

Minimum 15px type. Drawer-based CRUD. Errors that say what to do, not just what went wrong.

Real example ↓For Affiliation's bulk import, the original design showed a generic "row 47 failed" message. I redesigned it to show the exact column, the value, and the fix (e.g. "Programme code 'CS-01' not found — check your masters list"). Support tickets dropped visibly.
04Validate

Measure by adoption, not screenshots

The test is: can a non-technical operator finish the task without asking anyone?

Real example ↓For the eHousing module, the success metric was zero training-support calls in the first week after rollout. The allocation flow was redesigned twice based on shadowing sessions until that bar was cleared.

The gallery

Things I've shipped

Enterprise modules open a screen carousel; client builds link straight to the live site.

MPDD

Material distribution, inventory & dispatch

End-to-end kit procurement, inventory and dispatch for university material distribution — rebuilt from the schema up.

  • FIFO inventory with a 4-bucket stock invariant (available / reserved / allocated / in-transit)
  • 11-state allocation lifecycle with an append-only status log
  • Procurement pipeline: Purchase Request → Purchase Order → Goods Receipt
  • Bulk allocation, bulk Excel import & multi-warehouse stock transfers
  • Barcode / QR label & sheet designer

Every stock change flows through one atomic mutator inside a DB transaction — no double-allocation under high-volume load.

Yii2 (PHP)React 19 / TSMySQLRBAC
6 screens

Affiliation

Regulatory affiliation lifecycle & statutory reporting

The lifecycle for colleges seeking affiliation to a university — applications, committee audits, automatic fees, and statutory reporting. 63 models, 30+ controllers.

  • Automatic fee & billing engine — prices each application from configured fee heads (flat / per-course / per-subject) + date-windowed late fees, emitting an itemized bill
  • Background job queue for bulk exports — streaming XLSX → S3 with live cron progress
  • Committee workspace with configurable audit / inspection forms & scoring
  • Provisional affiliation certificates (A / B)
  • Per-programme intake-capacity range configuration

Streaming Excel→S3 export: 25k rows/sheet, chunked flush, GC + an 85%-memory-threshold guard and retry/backoff — exports hundreds of colleges without OOM.

Yii2 (PHP)MySQLPhpSpreadsheetAWS S3yii\queueRBAC
6 screens

Estate

Physical-infrastructure asset management

The university estate as a hierarchical asset register — buildings, floors, rooms, roads and civil works — with cost estimation and analytics.

  • Hierarchical register: building → floor → room → washroom → house → road → block
  • Scenario-driven 4-step building form (profile → structural → facilities → cost + geo)
  • Building cost estimation & geo-tagging
  • ARMO civil-works: abstracts, quotations & repair estimates
  • C3.js / D3 dashboard analytics over query-builder aggregates

Integrity-enforced active cascade — a room can only be active if its floor and building are, keeping the estate register self-consistent.

Yii2 (PHP)MySQLC3.js / D3Query Builder
4 screens

eHousing

Employee accommodation allocation

Staff register for university quarters and are matched against live housing inventory by preference and eligibility.

  • Preference-based allocation (house type + choice) per employee
  • Composes the Estate housing register & Employee profiles — true cross-module integration
  • Vacancy-aware unit status (vacant / allocated / newly-added)
  • Role-scoped admin vs employee dashboards
  • Master declarations, eligibility & activity audit log

Reads Estate's Housing register and Employee Profiles directly — modules compose across the platform instead of duplicating data.

Yii2 (PHP)MySQLRBACMulti-DB
5 screens

MavenEstate.in

Freelance real-estate platform

A premium real-estate site delivered for a freelance client — listings, lead capture and a conversion-tuned responsive landing.

  • Property listings & detail pages
  • Lead capture
  • Mobile-first, conversion-tuned
ReactTailwindNode.js
Client buildVisit live

Car Rental

Booking interface

A car-rental booking flow — vehicle browsing, filtering and a clean responsive booking experience.

  • Vehicle browsing & filtering
  • Responsive booking flow
ReactFirebaseCSS
Client buildVisit live

Airbnb Clone

Pixel-faithful UI replication

A pixel-faithful, fully responsive clone of the Airbnb landing — an exercise in precise layout fidelity.

  • Pixel-accurate layout
  • Fully responsive
ReactTailwindResponsive
Client buildVisit live

The system behind the screens

Design tokens, not one-off styling

Colour, type and shape live as tokens so every screen stays consistent and themeable — the same discipline powering this site's three worlds.

Colour

Accent
--accent
Secondary
--accent-2
Tertiary
--accent-3
Surface
--surface
Foreground
--fg

Type scale

Display / 48
Aa
Heading / 30
Clarity
Body / 16
Readable at a desk, not a demo.
Caption / 12
Operator-first

Shape & components

8px
14px
22px
PrimarySecondaryChip

Let's connect

Open to the right opportunity.

Full-stack engineer with 3.5 years building national-scale systems. Growing into Product and Gen AI. If you're working on something interesting — reach out.