Logo

I redesigned and built the front end of four internal tools for a global engineering and consulting firm, and gave them a shared design system so they read as one workplace suite.

Role
Full Stack Designer — design and front-end development
Client
A global engineering & consulting firm
Timeline
11 months (whole engagement)
Team
Individual contributor
Enterprise Tools — coverEnterprise Tools — cover
01

Overview

Over an 11-month engagement for a global engineering and consulting firm, I worked on its internal tools through the consultancy WongDoody, as an individual contributor covering both design and front-end development.

This case study covers four of those tools and the design system under them. Every tool sits inside the firm's intranet, is desktop-first, and is used because the job requires it. That shaped most decisions: calm layouts, one primary action per view, and status that never depends on colour alone.

The client, people and data are anonymised. The screens were rebuilt for the portfolio in a neutral style with invented names and figures; they are not screenshots of the originals.

Four tools, one suite

ToolWho uses itCore job
Stakeholder engagementProgramme and regional leadsLog meetings with senior stakeholders and follow up the actions
Approval profilesCompliance administratorsDefine who approves which request, up to what amount
Conference managementEmployees, managers, approvers, adminsFind a conference, request to attend, submit work, get approval
Field equipment reservationProject staff, catalog adminsRequest shared equipment, check availability, see the cost
02

Stakeholder engagement

Leads log meetings with senior stakeholders, classed L1 to L6, and track the actions that come out of them. A programme lead sees every region; a regional lead sees their own. In my review of the original, cards were slow to scan, the create form permanently took a third of the page, applied filters were invisible, and task status relied on colour alone. These are design-review findings, not user research.

I kept the four-tab structure and the role-based quick filters, and changed how each view is laid out and how state is shown.

What changed

Original
Dense and colour-coded
  • Create form fixed in a right column, always on screen
  • Cards stacked five or six label-and-value lines
  • Task status shown by chip colour only
  • Applied filters not visible
  • Only the happy path designed
Redesign
Full-width and explicit
  • Create form opens on demand as a slide-over
  • Card: title, stakeholder, level tag, four facts, one action
  • Status tag with a dot and a word; holds up in colour-vision simulation
  • Grouped filters drawer with an active count
  • Loading, empty, no-results and error states added
03

Approval profiles

The admin side of a compliance workflow for gifts, hospitality and contribution requests. A profile combines up to eight scope dimensions, per-category limits and an ordered chain of approvers. In the original, setup was one flat form, profiles only appeared after two required filters, and replacing a departing approver was a risky manual job.

I kept the information architecture and every rule, and changed how each task is structured and confirmed. A few ideas are untested proposals: the similar-profile hint, the acknowledgement checkbox and the usage counts.

What changed and why

OriginalRedesignWhy
One flat grid of eight dropdowns and radios, all at the same weightFour numbered sections (scope, request type, limits, approvers) with a live plain-language summaryAdmins think in where, what, how much and who; the summary catches mistakes before saving
Multi-selects opened as side overlays covering nearby fieldsAnchored panel with search, count, clear and apply; selections become removable chipsKeeps context on screen and shows the selection without reopening
Approvers in a two-row cluster with a lone plus buttonOrdered chain: step number, role, primary and backup, status, remove, add stepThe chain is a sequence, so order and per-step actions must be visible
Profiles hidden until two filters were setProfiles load by default; filters become chips with a countRemoves a step from the most common task
Swap approvers: four text instructions and a small warning below the foldThree steps, a persistent warning, a docked action bar and a confirmation listing every affected profileA permanent action needs the warning next to it and a clear picture of impact
Internal jargon and inconsistent product namesPlain language: category, direction, limitAdmins and requesters share one vocabulary

Replace an approver

  1. Find current approverSearch by person
  2. Choose profilesSelect which profiles change
  3. Pick replacementPrimary or backup position
  4. Confirm impactEvery profile and position listed
  5. ReviewUpdated profiles shown
04

Conference management

One place to find a conference, request to attend, submit an abstract and later a paper, and get approvals from a manager, conference approvers and an abstract reviewer. Reviewing the original, I found one card shared by four roles, a five-step form crammed into a modal, the approval path shown only at the last step, and submissions locked with no visible reason. These are heuristic-review findings, not user research.

Roles, approval logic and file rules stayed the same. I changed layout, status language, forms and states.

What changed and why

AreaOriginalRedesign
Conference cardPhoto background with four pills over the imageText-first card with status, dates, place and a seats meter
My applicationsCards with coloured status textTable with progress, one status chip and one next action; banner for anything waiting on you
Request flowFive-step form in a modalFocused page with a stepper, saved drafts, live summary and the approval path
ValidationRules hidden in tooltips; no error statesInline errors that say how to fix them, plus an error summary
SubmissionsPaper rows locked with no reason givenLocked rows say when they unlock
Approver reviewModal over a card gridList and detail side by side; conditions require a comment

Application phases (unchanged logic)

  1. Request to attendManager approves, approves with conditions, or declines
  2. Abstract reviewApproved, conditional or declined
  3. Presentation or paperRequested automatically once the abstract is approved
  4. All approvedAttendance confirmed, email sent
05

Field equipment reservation

Staff reserve shared field equipment (boats, vehicles, sampling and positioning kit) against a project. Before the tool, this lived in a multi-tab rate spreadsheet and a signed invoice. People worked out day, week and month periods by hand, the total could fail with an error value, and nobody could see what was free for their dates.

I replaced three number steppers with one date range, showed availability per day with a bar and a word, and kept the running tray, which was the strongest idea in the source. Suggesting training from the equipment chosen is a hypothesis, not a tested result.

Handover

I designed the request flow and the catalog, then the project moved to another designer. To show the whole journey I designed the approval, pickup and return stages afterwards, based on evidence in the original files. Those screens are labelled, were never built and were never tested.

End-to-end journey

  1. RequestProject number fills the record
  2. AvailabilityPer day, for the project work window
  3. ReserveTray with live cost, then review and submit
  4. ApproveBudget, training and date checksPortfolio completion
  5. PickupScan tags, record condition, sign (mobile)Portfolio completion
  6. ReturnCheck in and flag damage (mobile)Portfolio completion
  7. ChargeNot designed by anyone: a known gap in the source

What changed and why

SourceRedesignWhy
Months, weeks and days as three number steppersOne date range; duration and best rate computedRemoves mental arithmetic and ties availability to real dates
Units available, with no dates shownAvailability per day, defaulting to the work windowA count means nothing without its dates
Available, Reserved, Unavailable chipsBar plus Available, Limited, UnavailableReserved and Unavailable overlapped; the bar shows what is left
Cost only at the end; error values possiblePer-line cost and a running total that cannot errorFixes the failure found in the spreadsheet audit
Nine Yes or No training questionsCourses suggested from the equipment chosenKeeps the safety check with fewer decisions (untested)
Delete confirm in the primary colourDestructive style; past reservations keep their recordDestructive actions should look destructive
06

Design system

The four tools live on separate platforms. I rebuilt the language they share as one neutral system so they read as one workplace suite: a 4pt grid, radius 8 on controls and 12 on cards, white surfaces on a light canvas, and one accent.

Seventeen primitive colours feed 18 semantic tokens, alongside space, radius and size variables, eight Inter text styles and four effect styles. Each variable carries its code syntax, so Figma and the front-end CSS use the same names. Rules that did most of the work: one primary button per view, status always carries a word, and every list is designed for empty, loading, error and populated states. There is no dark mode or data-visualisation palette yet.

Foundations

Primitive colours, as defined in the variables. Semantic tokens such as color/primary/default alias these.

Brand
AaPrimaryIndigo 600 · #3B4BDB
Primary hover#2F3DB8
Primary tint#EEF0FF
Neutrals
Surface#FFFFFF
Canvas#F5F6F8
Border#E4E7EC
Text tertiary#98A2B3
Text secondary#475467
Text primary#101828
Status
Success #12B76AWarning #F79009Error #F04438Info #2E90FA
Display · Inter Semi Bold 32/40Approval profiles
H1 · Inter Semi Bold 24/32Review RQ-1042
H2 · Inter Semi Bold 18/28Automatic checks
Body · Inter Regular 14/20All 7 items are free for the requested dates.
Body Medium · Inter Medium 14/20Quarterly business review
Body Strong · Inter Semi Bold 14/20Estimated total
Caption · Inter Regular 12/16Last contact 12 Mar
Caption Strong · Inter Semi Bold 12/16Needs your decision
ButtonInputCheckboxTag / StatusAvatarTabTableTable RowCardModalAlertEmpty StateSkeleton RowNav ItemSidebarTop BarPage HeaderApp Shell / Desktop 1440

Tokens

GroupValues
Space (4pt grid)4, 8, 12, 16, 20, 24, 32, 40, 48, 64
Radius8 control · 12 card · 999 pill
Size240 nav width · 64 top bar · 40 control height
EffectsShadow sm, md, overlay · Focus ring

The system in numbers

30Component sets
834Variants
48Colour tokens
25Text styles
07

Outcome and reflection

I have no measured results for this work, so I am not claiming any. What it delivered: rebuilt screens for four tools covering default, validation, error, success and empty states; a shared system of variables, styles and 18 components; and front-end implementation across the engagement. The figures below are placeholders only.

Three things I take from it. Structure beat density: grouping the same fields by how people think made long forms easier to scan without dropping a rule. Status needs a word. And availability should be driven by dates, not counts.

12+Tools delivered from 0 to 1 for employees' day-to-day workAcross the engagementFrom Sanay's project records
30%Less screen development time with the shared design systemFigma library matched by an HTML/CSS code libraryFrom Sanay's project records
75%More efficient relationship and task managementStakeholder engagement toolFrom Sanay's project records
35%More visibility on conference applicationsConference management tool, with approvals and reports built inFrom Sanay's project records
Next Project

All Projects

Next