Skip to content
Rich Kitibwa.

Ascension Services · Enterprise software · Procurement / ERP

Ascension

Turning complex procurement processes into enterprise software.

My role
Full-stack software engineer
Status
In production · 2025 – present
Areas
Software & Product Engineering, Enterprise Solutions, Mobile & Web Applications
Stack
Python · FastAPI · Next.js · TypeScript · PostgreSQL
Ascension home page: 'Streamline your company procurement system'
ascensionservices.net: procurement for growing companies and enterprises.

The problem

Procurement involves many people, approvals, records and business rules. Run on email and spreadsheets, it is slow, hard to audit and error-prone.

Context

Ascension is built by a small team. I work across frontend and backend and own my work end to end: features, APIs, background jobs, deployment and CI/CD.

The solution

A web platform that turns procurement into trackable digital workflows, organised into modules for users and permissions, procurement (suppliers, RFQs, purchase orders), stores and inventory (items, assets, stock movements) and payments (invoices and payment processing).

Architecture

Platform architecture
  1. 01

    Next.js frontend

    React · TypeScript

  2. 02

    FastAPI backend

    Versioned REST API · JWT · role-based permissions

  3. 03

    PostgreSQL

    SQLAlchemy · Alembic migrations

  4. 04

    Celery + Redis

    Background and scheduled tasks

  5. 05

    Docker · Nginx

    Containerised deployment

What I did

Procurement workflows

  • Built purchase-order amendments and cancellations with recorded reasons, approval forwarding and approver prompts.
  • Hardened quote visibility, supplier filtering and quote/case integrity checks.
  • Worked on the procurement "transit ladder" (the timeline of procurement events) and printable procurement documents and templates.

Platform & integrations

  • Added trial and subscription-expiry handling with staged reminder emails, and branded transactional emails.
  • Moved supplier inquiry emails onto Celery background queues instead of sending them in-request.
  • Fixed realtime websocket notifications, S3 attachment handling, image compression and Alembic migration conflicts.

Delivery

  • Worked across the FastAPI backend and Next.js/TypeScript frontend, from requirements to deployment.
  • Collaborated with other developers through Jira; supported Docker-based deployment, CI/CD and documentation.

Engineering decisions

Background work off the request path
Emails and time-based jobs, such as moving bidding windows forward and closing stale cases, run on Celery workers and a scheduler, so user-facing requests stay fast.
Permissions and audit built in
Role-based permissions and audit trails are part of the core, because procurement is about accountability as much as data entry.

Challenges

Modelling real business processes
Procurement rules vary by organisation and change over time. Turning them into software means careful requirements work and schema migrations that keep existing data intact.

Outcomes

  • More than 700 commits across the backend and frontend since May 2025, spanning procurement workflows, subscriptions and notifications.
  • Live at ascensionservices.net.

Technologies

  • Python
  • FastAPI
  • Next.js
  • TypeScript
  • PostgreSQL
  • SQLAlchemy
  • Alembic
  • Redis
  • Celery
  • Docker
  • Nginx

What I took away

Business software works when it follows how people actually work. Understanding the requirements is half the engineering.

References

Let's connect

Have something to build or fix? Let's talk.

Whether you're building a product, improving an existing system or exploring an idea that needs someone who can work across disciplines, I'd be glad to hear from you. Open to new roles, projects and collaborations, remote or international.