Software company · Lahore, Pakistan

We build the systems companies run on.

ERP and internal platforms, products made to sell, and the AI that goes inside both. Designed, built and looked after by one team of more than fifty people.

Orders in one file.
Ad spend in another.
Stock in someone’s head.

When the numbers disagree, nobody knows which one to trust.

We turn all of it
into one system.

What we do

Five practices.
One team accountable
for all of it.

Tell us the problem in your own words. We’ll tell you plainly which part of it is ours.

Selected work

Three clients.
Three very different problems.

Choose a name to see what we built. Each of them agreed to be named here, and you’re welcome to ask them about the work.

Dubai at night, with amber highways curving between towers

Illustration with sample figures

Dubai · Multi-store Shopify

One system over five sources that disagreed.

Jansher Khan sells on Shopify out of Dubai. Every weekly number came from five places that didn’t talk to each other: Shopify orders, Meta and TikTok ad spend, a courier manifest and a payment settlement file. Column names, date formats and currencies all differed, so finding out what a week had really earned meant reconciling them by hand.

  • React
  • TypeScript
  • Supabase
  • Postgres

What we built

  • Each file is recognised by its own column headers, normalised into one shape and deduplicated by order reference, so the same export can’t inflate a total.
  • A written rule decides which source wins when two of them disagree.
  • Screens for orders, ads, couriers, settlements, returns, inventory and staff attendance, each with its own filters and export.
  • Profit and loss computed from the normalised data whenever someone asks for it.
  • Access scoped per store and per role from the first week.

What changed

It is one system now: several Shopify stores, the accounts behind them, inventory, settlements and the people who run them. “What did we actually make?” is answered by opening a page instead of five files, and the whole team works inside the system instead of one person exporting out of it.

Services behind this work

Pulseboard’s wall display: a map of Pakistan with a beam of light on a new order, the day’s revenue, a ranking of stores and a feed of orders
Pulseboard’s product leaderboard chart
Pulseboard’s three plans, priced by number of stores

From the public demo at pulseboard.com.pk

United States · Pulseboard

Pulseboard: every sale, live on the office wall.

Haseeb Iqbal wanted a product he could sell to people running several Shopify stores, people who already owned dashboards and never opened them. So we built a display rather than a dashboard.

  • Next.js
  • Three.js
  • Tone.js
  • Neon Postgres
  • Upstash Redis
Visit pulseboard.com.pk

What we built

  • Every sale, from up to fifteen stores, fires a beam of light and a musical note on a 3D map of Pakistan. The bigger the order, the taller the beam.
  • Orders arrive through Shopify’s Admin API and webhooks along one write path, and reach the screen over server-sent events, built to run all day untouched.
  • Scroll and the scene rewinds into hand-drawn charts: revenue against orders, top cities, the cash-on-delivery funnel and the hours when the country buys.
  • A TV pairs by holding a phone up to a code on the screen, with no typing on a remote.
  • Only a signed webhook from the payment provider can change an account’s plan.

What changed

Pulseboard is live at pulseboard.com.pk on three plans priced by how many stores a customer runs, each with a free trial, and its billing has been running since October 2026. It sells under its own name, not ours.

Services behind this work

A long warehouse aisle between tall shelves of stock, in warm light

Review queue3 waiting

Suggested reorder

Reorder 240 units of item A-1042

Sales over the last 60 days leave 31 days of cover. The supplier takes 38.

Suspected duplicate

“Steel bolt M8 x 40” and “M8x40 bolt, steel”

Two suppliers, very likely one product. Merge them only if you agree.

Supplier document

Invoice 7731: 3 fields need a look

Read from a supplier’s PDF. It reaches stock only after a person checks it.

Queue clear

Every decision has a name on it.

That is the rule on this system: the model reads and estimates, and a person signs.

Try it. Illustration with sample data

AI-assisted ERP · Run by us

AI-assisted inventory, with a person signing every decision.

Entrepreneur Hub asked us to run their ERP, not just build one and leave. Inventory sits at the centre of it, and five jobs were being done from memory and a spreadsheet: when to reorder, whether two suppliers ship the same product under different names, retyping supplier documents, tracking payments apart from stock, and keeping a team pointed at all of it.

  • Python
  • FastAPI
  • Postgres
  • pgvector
  • Next.js

What we built

  • Reorder forecasts run overnight and arrive as a suggestion with the numbers behind it, never as an order.
  • Product matching uses embeddings kept in the same database as the transactions. A suspected duplicate appears as a pair for someone to confirm.
  • Supplier documents are extracted into fields and land on a review screen before they reach stock.
  • Payments sit beside the inventory they paid for, and responsibilities live inside the system.
  • All five jobs end at a screen where a person approves, rejects or corrects.

What changed

It is running, and we run it. A reorder now has its working attached, a merge is someone’s decision that can be traced back, and a supplier’s paperwork is a set of checked fields rather than a retyped page.

Services behind this work

AI practice

AI that shows its working.

Plenty of companies have added AI to a price list. For us it is a practice, built on three commitments you can hold us to.

01

Answers that cite their sources

Retrieval shows what each answer was drawn from, so the person acting on it can check it for themselves.

02

Measured before every release

An evaluation set runs before a change ships, so a new prompt is a measured change rather than a hopeful one.

03

A cost you can read

Cost and latency per request are requirements from the first week, not a surprise on the first invoice.

The decision we write down first

What may the model decide, and what may it only suggest? We agree that with you in plain words before anything is built, then build the screen where a person approves, rejects or corrects.

How we work

You can open it in the first week.

  1. 01

    Scope

    We write down what the system has to do before anyone debates how. You get a document you can challenge while changes are still cheap.

  2. 02

    Build in the open

    Working software from week one, deployed where you can open it on your phone. You see progress instead of hearing about it.

  3. 03

    Harden

    Error paths, empty states, slow networks, screen readers, the largest screens and the smallest. This is the distance between a demo and a product.

  4. 04

    Hand over

    The repository, the pipeline, the runbook and the reasoning behind the hard decisions. Your team can carry on without us.

Technology

The tools we stand behind.

We name our stack in public, so you know what you’re getting before the first call. Python and Postgres sit at the centre of our AI and data work, TypeScript and React across our product work, and Rust wherever a service has to be fast and can’t afford to fall over.

  • Rust
  • Python
  • TypeScript
  • React
  • Next.js
  • Node.js
  • React Native
  • Flutter
  • Postgres
  • pgvector
  • FastAPI
  • LLMs
  • Shopify
  • AWS
  • GCP
  • Docker
  • Supabase
  • Redis
  • Three.js
  • Tone.js
The Badshahi Mosque in Lahore at dusk, with its red sandstone walls and marble domes

About

A studio first.
A company since 2025.

We spent years as a studio, building for international clients and growing our team around that work. We incorporated in 2025, which is why a young company has more than fifty people. The company is a year old. The people in it are not.

We build three kinds of thing: internal systems, which are most of our work and the least visible part of it; products made to sell, one of which is live and taking money under its owner’s name; and the AI that goes inside both.

Every engagement ends with a handover we’re willing to be judged on. If we disappeared, your team should be able to keep shipping.

Lahore
Pakistan, working with international clients
2025
Incorporated, after years as a studio
50+
People on the team
An engineer in amber headphones working across three screens, beside a tall window over the city

Careers

Send us your work, not your CV.

If you would rather build systems like these than commission them, we want to see what you’ve made.

EngineeringOn site in Lahore Data engineer Own the path from raw exports to the numbers a business runs on. Correctness is the job. See the details
  • Recognise files by their headers, normalise them, and deduplicate by order reference.
  • Write down which source wins when two disagree, and keep the tests that prove last month still reconciles.
  • Treat Postgres as the centre of gravity: query plans, indexes and constraints, with Python for the pipelines.
  • Work beside models: embeddings for product matching, document extraction, and forecasts a person approves. You don’t need to have trained one.

One position, on site with the team. We discuss pay in the first conversation.

Apply for this role

Not a data engineer?

Send us the work anyway: a repository, something you shipped, something hard you fixed. Tell us which part of the work you want to be in.

Write to us

Contact

Tell us what you’re building.

Two or three sentences is enough: what it has to do, the part you already know is hard, and when it needs to be live. You’ll get questions back, not a sales deck.

If you can’t describe it in an email, say so, and we’ll sign your NDA before the first call.

AI and data

AI transformation

Put models behind the manual work in a business that already runs well.

Not a pilot, and not a chatbot bolted onto what you already have. We find the work your team still does by hand, put a model behind it, and keep a person signing at the end.

How it runs

  1. 01

    Find the jobs

    We spend a week inside the business recording what is done by hand, how often and by whom. You get a ranked list to challenge.

  2. 02

    Draw the line

    For each job, we agree whether the model decides, only suggests or stays out, before anything is built.

  3. 03

    Build the approval first

    The screen where a person accepts or corrects goes in before the automation that feeds it.

  4. 04

    Measure, then release

    An evaluation set runs before every change ships. If the score drops, the change doesn’t go out.

What you get

Related workEntrepreneur Hub: five jobs, with a person signing each one

AI and data

Generative AI

Answers that cite their sources, a score that gates every release, and a cost per request you can read.

Everyone rents the model from the same few companies. What sets a system apart is what it retrieves, what it cites, and what it does when the material doesn’t support an answer.

How it runs

  1. 01

    Read the corpus

    We learn what is really in your documents, tickets and schema before promising anything about them.

  2. 02

    Write the evaluation set

    Questions paired with the documents that should answer them, agreed with your users and committed in week one.

  3. 03

    Build retrieval, then generation

    The part that decides what may be said is built and scored before the part that says it.

  4. 04

    Price it per request

    Cost and latency are measured per request and reported, so you know what it takes to run at volume.

What you get

Related workEntrepreneur Hub: matching products with embeddings

AI and data

Advanced analytics

Forecasts and segments built on your own data, delivered as suggestions someone can check.

Reordering, demand, margin by channel, repeat customers. The useful version isn’t a model that claims to be right. It’s one whose working a person can read before acting on it.

How it runs

  1. 01

    Agree the decision

    Not the metric, but the decision someone will make differently because of it.

  2. 02

    Check the data

    Is the history long enough, clean enough and joined up enough? If not, that becomes the first job.

  3. 03

    Baseline first

    The simplest model that could work, scored. Anything more complex has to beat it.

  4. 04

    Ship it as a suggestion

    On a screen where a person acts, with the working alongside and a record of what they did.

What you get

Related workEntrepreneur Hub: overnight reorder forecasts

AI and data

Business intelligence and dashboards

The number your week ends on, as a page you open instead of five files you reconcile.

Most companies already own a dashboard nobody opens. The difference is rarely the charts. It’s whether the figure on the screen is one somebody is willing to be held to.

How it runs

  1. 01

    Find the figure

    The one number the week really ends on, before anyone lists thirty metrics.

  2. 02

    Settle the disagreements

    Which source wins when two describe the same order differently, written down.

  3. 03

    Compute, don’t copy

    The figure is derived from normalised data every time it’s asked for.

  4. 04

    Put it where it’s seen

    A page, a wall screen or a scheduled note: wherever the person acting on it already looks.

What you get

Related workPulseboard: a sales day on the wall, sold as a product

AI and data

Data modernization

Off the spreadsheets and exports, into one model the whole company reads the same way.

The work nobody asks for by name and everybody needs first. No dashboard, forecast or model is better than the agreement about where a fact lives.

How it runs

  1. 01

    Inventory what exists

    Every export, sheet and system of record, and where the same fact is stored three times.

  2. 02

    Decide which source wins

    Field by field, before anyone builds a screen on top.

  3. 03

    Model it once

    One shape in Postgres, with constraints that make a bad row impossible.

  4. 04

    Reconcile continuously

    Tests that prove last month still reconciles after this month’s change.

What you get

Related workJansher Khan: five exports, one data model

AI and data

Data management

Pipelines, quality rules and access control that keep your data true after launch.

Modernization is the move. This is what keeps it true afterwards: pipelines that run every night, quality rules that fail loudly, and an access model that decides who sees what.

How it runs

  1. 01

    Make pipelines fail loudly

    A changed schema stops the run instead of guessing its way through.

  2. 02

    Deduplicate at the reference

    By order or invoice number, the real key, never a heuristic on the total.

  3. 03

    Scope access in week one

    Who sees margin, who changes a price and who only reads, agreed before the screens exist.

  4. 04

    Prove it monthly

    Reconciliation tests run on every change, so someone else can safely take over.

What you get

Related workJansher Khan: deduplication and source rules

Commerce

Shopify apps

Private apps and integrations on the Admin API and webhooks, written by hand.

The work that sits inside Shopify rather than beside it: a private app for one merchant, or the integration that makes your store agree with everything else you run. Two of the three projects on this site run on this integration work.

How it runs

  1. 01

    Map the events

    Which API calls and webhooks, what each may change, and what happens when one arrives out of order.

  2. 02

    One write path

    Everything that changes state goes through one place, enforced by a lint rule.

  3. 03

    Fail safe on billing

    Only a signed webhook from the payment provider can change a plan.

  4. 04

    Prove the replay

    We replay duplicate and out-of-order webhooks against the real handler before launch.

What you get

Commerce

Multi-store commerce operations

Several stores, their stock, their settlements and the people who run them, in one system.

The point where one store became several and the spreadsheets stopped keeping up. Orders, ads, couriers, settlements, returns and inventory under one roof, with the arithmetic done once.

How it runs

  1. 01

    Take one week apart

    We reconcile a real week by hand with you, to find every place the sources disagree.

  2. 02

    Normalise and deduplicate

    Every feed into one shape, recognised by its headers and deduplicated by order reference.

  3. 03

    Compute the statement

    Profit and loss derived on request from the normalised data.

  4. 04

    Scope by store and role

    Who sees group margin, who sees one store, and who can only read.

What you get

Related workJansher Khan: several Shopify stores under one system

Product engineering

ERP and internal tools

One system over your stores, stock and people, instead of five files that disagree.

The screens a company runs itself on: orders, stock, suppliers, settlements, payments and the people who touch them, properly joined. You own the repository. It isn’t a product we license back to you.

How it runs

  1. 01

    Scope against a real week

    We walk a real week of your operation instead of working from a requirements list.

  2. 02

    Model and settle the rules

    The data model and the written rule for which source wins, yours to challenge before a screen exists.

  3. 03

    Build in the open

    Working software from week one, on your phone, with roles already scoped.

  4. 04

    Hand it over

    The repository, the pipeline, the runbook and the reasoning behind the hard decisions.

What you get

Related workJansher Khan: an ERP over several Shopify stores

Product engineering

Full-stack web

Dashboards, portals, booking and billing: software where being wrong costs money.

Software that happens to run in a browser, rather than a site with a contact form. We take on work where two people edit one record, where a refund has to fail safely, and where everything still has to be correct after six months of daily use. Where a service has to be exceptionally fast or reliable, we write it in Rust.

How it runs

  1. 01

    Name the screen that must be right

    The one where being wrong costs money. We build it first.

  2. 02

    Type the boundary

    Server and client share one set of types, so a response can’t drift from the code reading it.

  3. 03

    Harden the rest

    Error paths, empty states, slow networks, screen readers, the largest screen and the smallest.

  4. 04

    Ship the pipeline with it

    Build, configuration and deployment, set up in your own account.

What you get

Related workPulseboard: one write path, live on the wall

Product engineering

Mobile apps

One codebase when it’s the same product on both stores. Native where the camera or scanner is the feature.

The framework is a decision for each project, not a house habit. We’ll tell you which one we’d pick for yours, and why.

How it runs

  1. 01

    Pick the framework openly

    A recommendation with its reasoning, before anyone writes a screen.

  2. 02

    Prove the hard capability first

    The camera, scanner, offline queue or background job is built in week one.

  3. 03

    Build for the bad network

    Offline states, retries and conflict handling are designed in from the start.

  4. 04

    Take it through review

    Submission, privacy declarations and rejections handled, with signing keys in your account.

What you get

Cloud and platform

Cloud and platform

Infrastructure described in files, with a rehearsed way back when something goes wrong.

Containers, so what passed review is what runs. Environments that can be rebuilt from an empty account. Logs and metrics wired before launch, not after the first outage.

How it runs

  1. 01

    Describe it in files

    Infrastructure lives in your repository, not in someone’s console history.

  2. 02

    Wire the signals before launch

    Logs, metrics and alerts configured while there’s still time to fix them.

  3. 03

    Rehearse the rollback

    We write it down and perform it on the real system before you ever need it.

  4. 04

    Write the runbook for someone else

    Aimed at the person who wasn’t on the project.

What you get

Cloud and platform

Cloud integration

Make the systems you already pay for talk to each other, with one owner for every fact.

Most companies don’t need another system. They need the six they already have to agree, and to keep agreeing when one of them changes.

How it runs

  1. 01

    Decide who owns each fact

    Field by field, across every system you run.

  2. 02

    Make every handler idempotent

    A message that arrives twice does its work once, proven by replaying real traffic.

  3. 03

    Give failures somewhere to go

    Retries with backoff, and a dead-letter queue with a named owner.

  4. 04

    Version the contract

    So a provider’s change fails a build, not a total.

What you get

Related workPulseboard: one write path and a signed billing boundary

Working with us

Support and maintenance

Hours, a response time, and someone who already knows the codebase.

A retainer rather than a warranty. We keep our own systems running and take on other people’s, starting with a week to read the code and an honest write-up at the end of it.

How it runs

  1. 01

    Read it first

    A week inside the codebase, ending in a written assessment, even if the answer is to replace it.

  2. 02

    Fix the monitoring

    Nobody can honour a response time on a system that doesn’t report when it’s unwell.

  3. 03

    Patch on a schedule

    Dependencies and security updates monthly, not after an incident.

  4. 04

    Report what changed

    A short monthly note on what moved, what broke and what we’re watching.

What you get

Related workEntrepreneur Hub: an ERP we run, not just delivered

Working with us

Staff augmentation

Engineers inside your team, your repository and your standups, interviewed by you first.

Sometimes the problem isn’t a project. It’s three months of backlog and two fewer engineers than the plan assumed. Our people work to your standards, and we handle employment, cover and replacement.

How it runs

  1. 01

    Scope the gap honestly

    What is bounded enough to hand over, and what is really an architecture decision.

  2. 02

    You interview everyone

    We only put forward people we have shipped with ourselves.

  3. 03

    Work in your process

    Your repository, your reviews, your standups.

  4. 04

    Cover and replace

    Illness and leave are ours to cover. If the fit is wrong, we replace.

What you get