Entra — Internal Staffing Platform

Owning an internal product from a one-week MVP to an organisation-wide launch

Role
Product Owner
Client
Internal product (confidential)
Year
2026
Duration
Mar – Sep 2026

As Product Owner for Entra, I owned the product end to end: discovery, vision and roadmap, backlog, stakeholder alignment, acceptance testing and release. I led a cross-functional team of nine from a one-week MVP that placed 90+ trainees to a v1.0 released to the whole organisation five months later, replacing a staffing process that ran on Slack threads and spreadsheets.

to ship the MVP
1 week
to ship the MVP
trainees placed through the MVP
90+
trainees placed through the MVP
from first sprint to organisation-wide v1.0
5 months
from first sprint to organisation-wide v1.0
UAT pass rate before the pilot
90%+
UAT pass rate before the pilot
quarterly objectives delivered
4 of 5
quarterly objectives delivered
faster under load after the performance fix
28×
faster under load after the performance fix

The brief

Staffing requests arrived through Jira, Slack and email. The staffing team tracked them in spreadsheets, and employees heard about roles informally. Research with employees, the staffing team and account managers put numbers on it: employees rated finding open roles 2.3 out of 5 and the process 2.8, and some felt roles were filled before they were ever posted.

My job was to turn that into one product that business development managers (BDMs), the staffing team, employees and admins would all actually use.

What I owned

  • Product direction: the vision, a six-phase roadmap and quarterly objectives, agreed and signed off with stakeholders.
  • Discovery: research with three user groups, turned into personas and journey maps with our UX designer.
  • The backlog: epics, user stories and acceptance criteria, plus binding business rules and a traceability matrix linking every requirement to its story and test.
  • Stakeholders: business development, staffing and delivery leads, and five dependent teams whose systems Entra integrates with.
  • Delivery: two-week sprints inside quarterly planning increments, with a team of nine across UX, frontend, backend, QA, DevOps and security. We hit 100% sprint completion by Sprint 2 and held it through Sprints 3 and 4.
  • Quality and release: UAT with real users, the go/no-go call, release notes, and the move to a monthly release cadence.

Five decisions that shaped it

The calls a product owner is there to make: what to cut, what to protect, and when to change the plan.

Cut the MVP to one complete cycle

The situation
Trainees needed placing on projects quickly, and the wish list already included notifications, CV upload, single sign-on and a mobile layout.
My call
I scoped the MVP to one end-to-end cycle (set up projects, apply, select) and moved everything else out, with a written reason for each deferral.
What happened
It shipped in a week and placed 90+ trainees. The pilot review then told us exactly what to fix first, so the rebuild was shaped by real use instead of guesses.

Let match scores inform, never gate

The situation
Entra scores every employee against every role. The obvious build was to hide Apply below a threshold, but employees already felt shut out of a process they couldn’t see, and the staffing team told us the underlying skills data was self-reported and unreliable.
My call
I made it a binding business rule: the threshold decides who is recommended and surfaced to the staffing team, but Apply is never disabled.
What happened
Employees see their score, matched skills and gaps before applying, the staffing team still gets candidates ranked by fit, and nobody is filtered out by an out-of-date profile.

Solve discoverability before adding features

The situation
After the pilot, stakeholders named one risk above the rest: if people can’t find Entra, they’ll go back to Slack and email.
My call
I made a lightweight way in a quarterly objective, and ruled out a heavy integration that would have put the timeline at risk.
What happened
Three entry points shipped against a goal of one: Slack, the client management system and the internal app listing.

Trade the plan for a safe launch

The situation
Two sprints before release, planned features (a Slack bot and training workflows) were competing with integration work, admin access control and defects found in UAT.
My call
I moved the team onto release hardening (rollback, migration recovery, health checks and access control) and recorded the trade-off in the sprint reviews, so it read as a decision rather than a miss.
What happened
Stakeholders gave a go decision with no conditions, and v1.0 went live to the whole organisation on 28 September 2026.

Ship with a known limitation, then close it

The situation
An August load test showed responses slowing to about 16 seconds at 500 simultaneous users, with 6.6% of requests failing.
My call
I didn’t hold the release. I published it as a known limitation in the release notes and made it the team’s top technical priority.
What happened
The October retest was 28 times faster at 500 users, errors fell to 0.21% and throughput rose sixfold. The remaining page-load delay was traced to shared infrastructure outside Entra and raised with the teams that own it.

How I work

  • Objectives over story lists. Stakeholders sign off what we commit to, and at the end of each quarter I record what actually happened, including what moved and why. Four of five objectives landed; the stretch goal became its own phase.
  • Decisions in writing. Business rules are binding and owned by the product owner, so the reasoning survives handovers and new team members.
  • Testing with the people who’ll use it. Real BDMs, staffing and employees in every UAT round, a named signatory per area, and a go/no-go call. For v1.0 I ran a month-long rolling round so defects were fixed and re-tested inside it.
  • Catching problems while they’re cheap. I spotted a dependent team building into the same space and called an alignment session before work overlapped. When the backend architecture needed rework, I paused new features mid-quarter to fix it before the debt compounded.
  • Dependencies in the open. AI features stay off the numbered roadmap until model access and a data-residency review clear, instead of sitting in a phase they would make undeliverable.
  • Releases people can follow. Every release ships with plain-language notes for the people who use it.

The product

One place for the whole staffing flow: BDMs raise and track requests, the staffing team runs postings and the applicant pipeline, employees see their fit before they apply, and admins control access with a full audit trail. The name comes from the Latin entrare, “to enter”: it’s named after the person’s journey rather than the process, which is also why the score never blocks anyone.

A BDM’s path through Entra, from the dashboard to a shared CV. Built from the product designs; project and people names replaced.
Entra roadmap from April to September 2026: foundation, core workflow, pilot, intelligence and the v1.0 release, with phases four to six planned
Foundation to v1.0 in five months, with three more phases planned.

How it’s built

  • An Angular 21 app, written in strict TypeScript, built entirely on the company’s design system, so it supports light and dark mode out of the box.
  • Seven roles: admins, product owners, supervisory product owners, trainees, employees, BDMs and the staffing team. One person can hold several roles and switch between them, and each role gets its own dashboard.
  • Admins can grant someone a single permission, such as raising staffing requests, without changing their role, and every admin action lands in an audit trail.
  • Applications move through ten statuses, from submitted to placed on a project, and staffing requests have their own lifecycle from profile needed to filled.
  • Company single sign-on, employee records and CVs pulled from the company’s HR system, and live notifications and request updates pushed to the browser as they happen.
  • Every pull request runs tests, linting, code-quality and secret scans before it can merge.

What I’d do differently

Name UAT signatories at the start of a round, not the end: three areas reached the go/no-go call with nobody nominated to accept them, and it’s now an entry criterion. Reserve release-hardening capacity in the plan for late sprints instead of letting it displace features mid-sprint. And audit shared components for accessibility earlier, since most issues the pre-launch audit found traced back to a handful of them.

  • Figma
  • Jira
  • Confluence
  • Claude
  • Microsoft Teams
  • Slack
  • Outlook

up next →

Kwame Motors — Car Parts Marketplace

Designing, owning and building a car-parts marketplace for Ghana