support@aleksamiskovic.com
Services/Custom Software
Service · Custom Software

Replace the spreadsheet.

Internal ERPs, CRMs, ops dashboards, billing systems. The thing that is holding your business together and that nobody can fix when the senior operator is on holiday. Postgres-heavy, role-based, audited, integrated with the tools your team already uses.

The stack.

Postgres at the center, with row-level security, audit columns, and history tables where they earn their keep. Node or Python on the API tier, Next.js for the operator UI, TypeScript end to end. Background jobs in BullMQ or Celery, scheduled work in pg_cron or a managed scheduler.

Integrations through whatever your stack speaks: Xero, QuickBooks, HubSpot, Salesforce, Google Workspace, Microsoft 365, Slack, and your existing SSO. Hosted in your cloud account, observable through Sentry and a metrics tool of your choice.

Five phases,
planning to handoff.

01

Discovery & Scoping

Internal software replaces something. A spreadsheet, a folder of PDFs, three Slack channels and a senior person's memory. Discovery starts by mapping that thing, end to end, with the people who actually run it. We sit with operations, not just leadership.

We document the workflow as it is, not as it should be. Who sees what, who approves what, who blames whom when it breaks. Then we map roles, permissions, and the audit trail your auditor or regulator will eventually ask for. Compliance does not get bolted on at the end.

Phase ends with a fixed-fee SOW, a migration plan from the existing system, and a written cutover strategy. We are explicit about what gets replaced on day one, what gets parallel-run, and what stays exactly where it is.

Deliverables

  • Workflow map and as-is process documentation
  • Roles, permissions, and audit-trail requirements
  • Data migration plan from existing systems
  • Signed SOW with cutover and parallel-run strategy
02

Architecture & Design

Internal tools live or die on the data model. We model entities, relationships, and history with your domain experts in the room, then write the schema. Postgres carries the heavy lifting: row-level security where it pays for itself, soft deletes, audit columns on every table that matters.

Design is unglamorous and that is the point. Operators want speed, keyboard shortcuts, dense tables, and predictable behavior over hero animations. We design for the eight-hour shift, not the marketing screenshot. Accessibility is not optional: your team includes people who use screen readers, magnifiers, and high-contrast mode.

Integrations are scoped here: Xero, QuickBooks, HubSpot, Salesforce, Google Workspace, Microsoft 365, Slack, your existing identity provider. Each integration gets its own contract document so the next engineer knows what assumptions live in the wire.

Deliverables

  • Database schema with audit, soft-delete, and history strategy
  • Role-based permission matrix
  • Integration contracts (Xero, HubSpot, identity provider, etc.)
03

Build

Build runs in regular sprints with deployed previews on a staging environment that mirrors production. Your operations team gets access from sprint two and starts using the build for non-critical work, in parallel with whatever they are replacing.

Every pull request runs typecheck, lint, unit tests, and integration tests against a real Postgres. Migrations are reviewed by a second engineer; destructive changes never ship without an approved rollback. We use feature flags liberally so the team can land code that is not yet ready for the operators to see.

We hold a weekly demo with the people who will use the tool, not just the executives who bought it. Their feedback is the source of truth. Half the surface of an internal app is shaped by quirks the executive sponsor does not know about, and we go find them.

Deliverables

  • Staging environment mirroring production
  • CI: typecheck, lint, unit, integration with real Postgres
  • Migration review with rollback plan on every change
  • Weekly demo with operators, not just sponsors
04

Testing & QA

Automated coverage focuses where the money is: financial calculations, permission checks, audit-log writes, and the export paths that finance and compliance live in. We use property-based tests on calculation-heavy code, because example tests miss the edge cases that show up at year-end close.

Manual QA covers the role matrix line by line. Every role logs in, attempts every action, and either succeeds, fails cleanly, or raises an audit event. We test deletion behavior, export behavior, and the recovery path for an operator who clicked the wrong button (because they will).

Security and compliance review covers authentication, session handling, audit log integrity, encryption at rest and in transit, dependency audit, and secret rotation. If the tool falls under a specific regulation (GDPR, HIPAA, SOC2 scope), we run the relevant checklist and document the gaps.

Deliverables

  • Test suite covering calculations, permissions, audit log
  • Role-by-role manual QA pass
  • Security review: auth, audit, encryption, secrets
  • Compliance gap assessment if applicable
05

Launch & Handoff

Cutover is the riskiest day. We rehearse it on staging, write a minute-by-minute runbook, schedule it for a window your operations team can absorb, and stand by during the entire production migration. We default to parallel running for two weeks, then sunset the old system once the new one has earned trust.

Monitoring covers uptime, error rates, slow queries, and a synthetic check on the critical workflow (the one whose downtime stops the business). We wire alerts into the channels your IT or operations team already monitors, not yet another inbox.

Operational handoff covers an admin runbook, a recorded walkthrough, and training sessions for the operator team. We continue to own and maintain the code, ship updates, and respond to defects. The 30-day post-launch warranty covers any defect against spec at no charge, and we are reachable for cutover hotfixes outside hours.

Deliverables

  • Production cutover with parallel-run window
  • Monitoring: uptime, errors, slow queries, synthetic critical-path check
  • Admin runbook and operator training
  • 30-day post-launch warranty

Typical timeframe

Custom to scope

Discovery through production cutover.

Build cost

Free

We don't charge for the build.

Monthly maintenance

Subscription

You pay a monthly fee while we keep the system running and shipping changes.

Real questions,
answered straight.

Who owns the code and the data?

We own and maintain the code; the data is yours. The repository sits in our organisation, the database belongs to you, and we hand back any extracts your operators or auditors need.

What if we don't have designs or a spec?

That is the typical case for internal tools. We produce the spec, the data model, and the design as part of the engagement, by sitting with your operators and watching them work. We do not need a finished requirements document to start, just access to the people who do the job.

Can you take over an existing system?

Yes, often. We start with a paid one-week audit covering codebase, database, integrations, and team velocity, then deliver a written assessment with three options: maintain, refactor, or rewrite. We will tell you which one is cheapest in three-year terms, not just six-month terms.

Do you offer maintenance?

Yes. Internal tools age fast: integration partners ship breaking changes, regulations move, and your business changes how it operates. After the warranty, you move to a monthly retainer covering security updates, integration upkeep, and a fixed bucket of feature work. Most clients keep us on retainer for the life of the system.

Ready to ship?

Bring a rough brief or a half-built prototype. Real engineers on the call, no account managers.