All work
Software20252025 — present

RedGiant Heartbeat

One Laravel ERP where an agency used to keep seven separate systems.

Abstract representation of Heartbeat: floating project, HR, recruitment, assets, inventory and field check-in surfaces suspended above a warm technical grid.
PlateAn abstract print of RedGiant Heartbeat — its real modules, none of its data. Move across it to bring it up sharp.
7Modules in one systemProjects, HR, recruitment, staff records, assets, inventory, field check-ins
LiveIn daily agency useheartbeat.redgiant.co.ke

The problem

The agency ran its operations across spreadsheets, chat threads and a handful of disconnected tools. Staff records lived in one place, assets in another, and anything involving a field team meant somebody sending a photo to a group chat. There was no single answer to a question as basic as who is on which project this week.

Constraints

It had to replace working habits, not just working software — anything slower than the spreadsheet would be abandoned.

One engineer building and running the whole thing, so every design decision had to stay maintainable by one person.

Field check-ins happen away from the office on phones and unreliable connections.

The agency could not stop operating while it was rolled out.

Approach

One domain model, many modules

Projects, people, assets and inventory are modelled once and shared, rather than built as separate mini-apps that happen to sit behind the same login. It means adding a module is mostly a matter of new views over data that already exists, which is why the scope could keep growing without the codebase becoming unmanageable.

Build the module the team is asking for next

The roadmap follows whichever manual process is hurting most, not a plan drawn up in advance. Each module ships to the people who asked for it and gets corrected while the reasoning is still fresh — a small enough loop that a wrong assumption costs days rather than months.

Design for the phone in a field team’s hand

Check-ins are the part of the system used furthest from a desk, so those screens are built mobile-first and forgiving of a bad connection. Everything else is designed for a laptop, because that is honestly where the rest of the work happens.

Run it as well as write it

I manage the hosting, SSH access and deployments for Heartbeat myself. Owning both ends means a bug report and the server it happened on are never more than one person apart.

Architecture

A single Laravel application over one MySQL schema, with modules sharing the same core records, deployed to a Linux server I administer directly.

Outcome

The agency runs its projects, people, assets and inventory from one system instead of seven, and field check-ins arrive as records rather than group-chat photos. It is in daily use and still growing — new modules are added as the next manual process becomes the painful one.

Loading Lincoln Madaraka