Skip to content
Available for freelance

Software businesses depend on.

I design and build ERP systems, business platforms and SaaS products that companies rely on every day.

4
Projects delivered
2
Running in production
5
Industries served
12
Technologies in use
About

Most businesses don't need more software. They need better systems.

Operations break down in the gaps — between a spreadsheet and an order, between what a team knows and what the system actually records. That is where I work.

I build ERP platforms, internal tools and SaaS products that close those gaps: one source of truth, automated where the work repeats, and fast enough that nobody builds a workaround.

Every decision gets made twice — once for the release, once for the version of the system that has to exist in three years. Maintainability and performance are not polish. They are what keeps a platform worth running.

Features shipped
16Features shipped
Running in production
02Running in production
Technologies in use
12Technologies in use
How I work
  • Clarity
  • Scalability
  • Reliability
  • Maintainability
  • Performance
  • Business thinking
Selected Work

Software designed for real businesses.

Each project solves an operational problem — cutting manual work, keeping data consistent, and giving the business something it can keep growing into.

Engineering philosophy

How I build software.

Technology changes. Engineering principles do not. I choose maintainability over shortcuts, clarity over cleverness, and long-term scalability over quick wins.

  • Maintainability

    Readable code wins. Someone opening this in three years should understand it without an archaeologist.

  • Security

    Secure by design, never bolted on. Auth, authorisation, validation and rate limits belong in the first version of a feature.

  • Performance

    Every interaction should feel instant. Server-rendered by default, images sized, transform-only animation. Speed is a constraint, not a later optimisation.

  • Business value

    Technology exists to solve a problem. If a feature does not cut work, cut error or add clarity, it does not ship.

Technology

What I build with, and why.

  • React / Next.js
  • TypeScript
  • Tailwind CSS
  • FastAPI / Python
  • PostgreSQL
  • Supabase
  • Redis
  • Docker
  • Vercel
  • Cloudflare R2
  • Nginx
  • VPS
Process

How a project actually runs.

Eight steps, in order. The expensive decisions happen early, where changing them is still cheap.

  1. 01

    Discovery

    Understand the business goal, find the bottleneck, define scope, and put the highest-value work first.

  2. 02

    Planning

    Wireframes, data model, API surface. Decided before code, so the build has a target rather than a direction.

  3. 03

    UX

    Flows before screens — the fewest steps to the outcome the user actually came for.

  4. 04

    Architecture

    Boundaries, data ownership, failure modes. The decisions that are expensive to change later get made here.

  5. 05

    Development

    Component-driven, typed end to end, reusable by default. Small pieces that compose into a system.

  6. 06

    Testing

    Responsive, accessibility, performance and regression passes — on real devices, not just a resize handle.

  7. 07

    Deployment

    CI on every push, containerised builds, monitoring and logging from day one, and a rollback that has been tried.

  8. 08

    Support

    Maintenance, updates, optimisation, scaling. Shipping starts the system's life; it does not end it.

Code quality

Quality comes first.

  • Type safety

    TypeScript in strict mode, end to end. The compiler catches what a review misses.

  • Code review

    Every change read before it merges, by a second pair of eyes or a rested one.

  • Reusable components

    A design system, not one-off styling. One change lands in one place.

  • Documentation

    Why, not what. Decisions recorded where the next person will go looking.

  • Linting

    ESLint and formatting enforced in CI, so style is never a review topic.

  • Testing

    Build, typecheck and lint gate every push; behaviour is verified before release.

Security

Never an afterthought.

  • Authentication

    Signed, expiring sessions. Secrets stay on the server, always.

  • Authorization

    Checked on the server for every action, never inferred from a hidden button.

  • Validation

    Untrusted input validated server-side before it reaches the data layer.

  • Rate limiting

    Login and public forms throttled per client, so brute force and spam cost something.

  • Encryption

    TLS everywhere, hashed credentials, and security headers set at the edge.

  • Backups

    Content and data recoverable. A restore that has never been run is not a backup.

Software should still make sense in three years.

The next developer to open it — often me — should be able to change it without fear. That is most of the job.

Services

Software shaped around your business.

Every engagement is built to cut manual work, make the numbers trustworthy, and leave you with a system that can still grow next year.

FAQ

Questions worth asking first.

The things most people want to know before the first call.

How long does a project take?

A focused MVP is usually four to eight weeks. A full ERP or multi-module platform runs longer and ships in stages, so you have something usable well before the last feature lands. You get a scoped timeline after discovery, not before it.

How does pricing work?

Fixed price per scoped phase, so you know the cost before work starts. Scope comes out of discovery — a short paid or free session where we define what the system actually has to do. Open-ended hourly billing is available but rarely the right fit.

Do you work on existing systems?

Yes. Rebuilding from scratch is often the wrong call. I audit what exists, keep what earns its place, and replace the parts that block you — incrementally, so the business keeps running through it.

Can we start with an MVP?

That is usually the right way in. Build the one workflow that hurts most, put it in front of real users, and let what you learn shape the rest. The architecture is planned for the full system from day one, so the MVP is a foundation rather than a throwaway.

Do you provide maintenance?

Yes — updates, monitoring, optimisation and scaling after launch. Shipping starts the system's life. Ongoing support can be a retainer or on-demand, whichever matches how much the system changes.

Can you integrate existing APIs?

Yes: payment providers, accounting systems, logistics, government or partner APIs. If it has documentation it can be integrated; if it does not, it usually still can, with more discovery time.

Do you sign NDAs?

Yes, before any detail is shared. Client systems, data and business logic stay confidential — nothing appears in this portfolio without permission.

Can you work with a remote team?

Yes. I work with in-house developers, designers and agencies, in the client's tools and process. Written updates and reviewable code mean the work stays visible without daily calls.

Let's build software that grows with your business.

Whether you're launching a new product or modernising a system that has outgrown itself, tell me what it needs to do and I'll tell you what it takes.

Start your project
Contact

Prefer to skip the form? These reach me directly.