Internal Developer Platform for a Nigerian Mobile Operator
Designed and built a clickable internal developer platform for a Lagos mobile network operator: a service catalogue with owners, tiers and scorecards, self-service requests with approval policies for production resources and tier 1 deploys, and a slip command line tool whose exact command is shown on every page.
Most of our work is under NDA. Per agreement, we can share the work but not the company details - all names and identifying information shown here have been changed.
Home, the service catalogue, service detail with 8 tabs, the approval queue and request detail. All 27 services and all 17 requests open their own detail page.
Production readiness, observability, security hygiene, documentation and dependency freshness, each with Bronze, Silver and Gold levels, evidence and a fix hint. Some checks block a deploy to staging or prod.
A tier 1 prod deploy needs one tier 1 release approver; prod access to subscriber-personal data needs two approvers from data platform and security, and the approval lapses after 4 hours. No requester can approve their own request.
Across 9 systems from USSD to billing and number porting, with 10 teams, 26 users, 6 golden-path templates, 27 deployments and 17 requests covering all 6 request types.
Starting a new service at Oruka Mobile took three to five weeks of copied repositories and tickets to four teams. Copied services drifted, secrets ended up in CI variables and twice in one year a database password was printed in a build log. During one USSD outage the on-call engineer spent 25 minutes finding the owner of a downstream service in an eight-month-old spreadsheet, and when internal audit asked who had approved production database access last quarter, the answer was spread across email and chat.
Slipway gives Oruka's engineers one platform with two faces. The slip CLI scaffolds services from golden-path templates, requests resources, deploys and rotates secrets without printing them. The portal is the service catalogue: every service with its owner, tier, data class, scorecards and cost, plus an approval queue where the matching policy, required groups and separation of duties are shown before anyone decides.
About 380 engineers in 45 teams run roughly 260 services at Oruka, many of them handling subscriber data. The platform has to make the safe path the fast path, for engineers who live in a terminal and approvers who decide from a chat link.
Ownership lived in a spreadsheet eight months out of date. The catalogue reads a Backstage-compatible catalog-info.yaml from each repository, so the owner, tier, lifecycle and dependencies are kept next to the code.
Names, phone numbers, identity numbers and usage records are personal data under the Nigeria Data Protection Act 2023. Every service and resource carries a data class that drives log masking, audit of prod log reads and in-country hosting, without claiming to make Oruka compliant on its own.
Values stay in the vault and are injected at runtime. Slipway stores only vault paths, versions and rotation dates, and CLI and log output passes a secret scanner that replaces anything key-shaped with [redacted] before it is written.
Production resources, prod data access and tier 1 prod deploys need an approver who is not the requester. Oruka's own policies set who approves, how many and for how long, and each request keeps the policy version it matched.
Mapped 9 roles from service engineer to auditor, 36 screens (10 CLI command groups and 26 portal screens) and the data model for services, templates, environments, resources, approval policies, requests, deployments, secret references, scorecards, costs and a hash-chained audit trail. Wrote down the rules the design follows: the NDPA 2023 and the NDPC's 2025 directive, NCC regulation of operators, the Backstage catalogue model, OpenTelemetry conventions, vault-only secrets and separation of duties.
Built 5 key screens on a production dashboard kit: Home with KPIs, the requests waiting on me and items needing attention, the service catalogue with filters and a quick view panel, service detail with scorecards, deployments, resources, secrets metadata, declared versus observed dependencies, cost against budget and activity, the approval queue and request detail with the policy applied. All actions run on local state.
The slip binary and a shared API, single sign-on through Entra ID or Keycloak, GitLab or GitHub for templates and pipelines, Argo CD deploys, OpenTofu or Crossplane provisioning, HashiCorp Vault or OpenBao for secrets, the OpenTelemetry pipeline into Loki, Prometheus and Tempo, PagerDuty, Renovate, OpenCost and approvals in Slack or Teams. Plus the remaining portal screens, the audit trail and settings for tiers, policies, roles and CLI tokens.
A Do this from the CLI hint with a copy button sits on every page, and the New service, Deploy and Request resource sheets show the matching slip command. Engineers can learn the portal and stay in the terminal.
Service detail shows the owning team, the service owner and who is on call now, with versions per environment and SLO error budgets. Dependencies flag what is declared but not observed in traces, and what is observed but never declared.
Request detail shows the version diff, preflight result, justification and linked ticket, then the policy that matched and why, the groups and count required and Requester cannot approve. Prod approvals need a comment, rejections a reason, and the screen works at phone width.
Requests turn amber after 1 working day and red after 3. Bulk approve is limited to non-prod, low-risk requests, so prod changes are always decided one at a time. Home lists overdue secrets, expiring environments, single-person on-call, deprecated templates and services near budget.

Designed and built a clickable API gateway console for a Brno parcel carrier whose rates, labels, tracking and pickup APIs serve e-shops, marketplaces and shipping platforms across five countries: partner plans and limits, a request log with personal data redacted before storage, and version retirements with Sunset and Deprecation headers.

Designed and built a clickable developer console for a Riyadh payments and open banking fintech: a journey tracker from first sandbox call to production, app credentials with shown-once secrets, keys and mTLS certificates, synthetic sandbox data with scenario switches, and request logs that explain each error in plain words.
Enterprise Software Engineering - Human + AI
Contact Us
© 2026 - Copyright. All Rights reserved Oceanlab
Location
Global Headquarters
21 Merchant Road, 3rd Floor, Singapore 058267
Main corporate office and leadership operations
North America Office
548 Market Street, PMB 12345, San Francisco, CA 94104
Client operations and business development
India Office
402 Shivalik Shilp II, SG Highway, Ahmedabad 380015
Engineering and delivery center
Enterprise Software Engineering - Human + AI
Contact Us
Locations
Global Headquarters
21 Merchant Road, 3rd Floor, Singapore 058267
Main corporate office and leadership operations
North America Office
548 Market Street, PMB 12345, San Francisco, CA 94104
Client operations and business development
India Office
402 Shivalik Shilp II, SG Highway, Ahmedabad 380015
Engineering and delivery center
© 2026 - Copyright. All Rights reserved Oceanlab