Building software since 2015 — the latest systems

Ledgers, cities, a language, AI agents.I build the systems underneath.

01 — System

This machine is a map

Every deck below is a system I designed and built, or a part of how I build them. The upper decks are the latest work — a lender’s books, a city’s app, a language’s dictionary and editor, an AI sales engine, a real-estate business, a ride-hailing app, a product of my own. The lower decks are the machinery behind them: the stack, the record, the operator.

Scroll to descend through it, or touch any deck to go straight there.

Unit
Robert Berisha
Function
CTO, Syncore · software architect
In service
Since May 2015 — 10+ years
Base
Prishtina, Kosovo
Surfaces
Web · iOS · Android · macOS · Windows · Linux · browsers · Office
Core
C# / .NET · TypeScript · Angular · SQL

02.1 — Work · 2025 — present

Syncore Microfinance Suite

Lending, general ledger & central-bank reporting

The system of record for a regulated microfinance institution: every loan, every payment, every ledger line and every report the central bank asks for.

API endpoints
283
database tables
50
permissions
76

Role Architect & lead engineer, as CTO of Syncore — domain engine, migration, reporting, delivery

02.2 — Work · 2023 — present

SmartCity

White-label civic platform — mobile apps and CMS

A municipality’s own app — news, services, transport, emergency numbers, citizen reports — run entirely from a CMS, so a new city is configuration, not a new codebase.

tables in 2.0
109
API routes in 2.0
~358
permission codes
57

Role Sole engineer — backend, admin, mobile apps, store releases

02.3 — Work · 2020 — present

Shkrimori

The Albanian language as software

Albanian written well, everywhere people write: a national dictionary of 120,000+ unique words, an editor that checks spelling, grammar and style, AI rewriting, a voice that reads Albanian aloud, and a keyboard that types ë and ç anywhere.

unique words in the dictionary
120k+
platforms, one account
11
services
7

Role Lead engineer — I built every client: web, desktop, mobile, browser extensions and Office add-ins

02.4 — Work · 2026 — present

Sales Autopilot

Self-hosted AI outbound engine

An engine that researches each prospect’s website, writes to them from a real mailbox, carries the reply conversation within limits you set — and hands qualified opportunities to a person.

lines of TypeScript
111k
tests
800+
HTTP routes
161

Role Architect & engineer — system design, specification and review; built with parallel AI coding agents

02.5 — Work · 2026

Domino

Real-estate platform — listings, CRM and AI search

A real-estate business in one system: a listings site in three languages, the CRM the agents work in — and a search you can simply talk to.

API endpoints
~190
data models
40
languages
3

Role Architect & lead engineer — the whole architecture and most of the features

Built with Vorbulla

02.6 — Work · 2026

Voom

Ride-hailing — the rider and driver app

The Voom mobile app, designed and built screen by screen for riders and drivers — with calls between them that ring like a phone call, without either side seeing the other’s number.

screens designed & built
77
roles, one app
2
stores, live
2

Role Mobile UI/UX & engineering — the whole app experience, and in-ride calling end to end

Built with Inspired Tech

02.7 — Work · 2025 — present

themelui

A premium Angular admin template — designed, built and sold on my own

Four dashboards, six apps and forty-plus pages in Angular 22, signals throughout — a product I build alone at Syncore, with licensing automated at the edge.

dashboards
4
apps
6
components
136

Role Sole author — product, design, engineering, licensing and the site

03 — Technology

The drive

Not a wall of logos — the parts I actually run in production, and what each one does for me. Select a component to see where it works.

Intelligence

Data

Services

Interfaces

Delivery

Select a component to see what it does and where it runs.

04 — Experience

Runtime

Ten years, since May 2015. The inner rings are the eras before this record; the outer five are the latest systems — one arc per system, height by commits that month, read from the repositories.

  1. 2015–20
    Albasoft CMSA custom CMS on ASP.NET, and the websites built on it.
  2. 2020–24
    Gjuha Shqipe foundationsInternal systems behind Kulla e shqipes: Leksikografia, Morfologjia, Fjalësi, Korrektori, Faqosësi.
  3. 2023
    SmartCityA city platform’s API, admin, identity and apps — solo.
  4. 2025
    Syncore Microfinance · themeluiA regulated lender’s whole system; a product of my own.
  5. 2026
    Shkrimori · Domino · Voom · AutopilotEleven platforms, an AI-searched catalogue, a ride app, an AI engine.
  • Albasoft CMS · 2015–20
  • Gjuha Shqipe foundations · 2020–24
  • Shkrimori
  • SmartCity
  • Syncore
  • Products & sites
  • Voom
  • Autopilot

05 — About

Operator

I’m Robert. I’ve been building software since May 2015, and I’m CTO at Syncore. I design the systems other people’s work depends on — a lender’s ledger, a municipality’s app, the tools a nation uses to write its own language — and I build most of them myself, from the database schema to the pixels.

I like the whole stack because the interesting problems never stay in one layer: an interest formula that has to match the central bank to six decimals, a search that has to stay instant however many listings there are, an app that becomes a different city when you change its hostname.

Most days are C# and TypeScript: .NET services, Angular front-ends, SQL, with React Native, Electron and Docker around them. A growing part of the work is AI — systems where models do real work inside hard limits, and coding agents I direct to build them.

Now
CTO at Syncore
Since
May 2015 — 10+ years
Based in
Prishtina, Kosovo
Writes
C# · TypeScript · SQL

06 — Contact

Open a channel

If you are building something that has to be right — money, public services, language, AI that people must be able to trust — I’d like to hear about it.

Send a signalhello@roberisha.com

Prishtina, Kosovo · CET

Robert BerishaSoftware architect

00SurfaceDepth 000.0

Boot 0% · Loading

Subsystem 02.1 · 2025 — present

Syncore Microfinance Suite

Lending, general ledger & central-bank reporting

The system of record for a regulated microfinance institution: every loan, every payment, every ledger line and every report the central bank asks for.

Role
Architect & lead engineer, as CTO of Syncore — domain engine, migration, reporting, delivery
Status
In production at a regulated institution since late 2025
Platforms
Web · Windows desktop

01What it is

An end-to-end loan management system for a microfinance institution in Kosovo. Branch staff onboard clients, guarantors, co-borrowers and collateral; applications go to an approval committee; approved loans get a generated repayment schedule and a contract; payments, arrears, penalties and court cases are tracked day by day.

Underneath, every financial event posts balanced double-entry lines to a general ledger. Accountants run purchases, cash registers, journals and payroll in the same system, management gets twenty reports, and the regulator gets its official templates filled in.

02The problem

Microfinance in Kosovo is regulated like banking. Loans must be classified by days overdue and provisioned accordingly, the effective interest rate must be disclosed using the central bank’s formula, and monthly, quarterly and half-yearly reports go to the regulator in a fixed format.

The institution ran on a legacy SQL Server system whose business rules lived in stored procedures. Moving off it could not mean starting over: every client, loan and payment had to come across, and the old rules — including a few peculiar ones — had to keep producing the same numbers.

03What I built

  • The lending core: annuity and flat schedules with grace periods and irregular first periods, the effective-interest calculation, penalties, payment allocation and payoff rules.
  • A replayable loan-event engine that can rebuild any loan day by day and post its ledger entries — the same path serves the nightly job, catch-up after downtime, backdated corrections and bulk rebuilds.
  • A smart migration off the legacy system: clients, loans and their full history moved across in dependency order, the old rules reproduced and verified, and a cut-over date from which the new engine takes over — so the institution switched systems without missing a day.
  • General ledger, cash register, purchases, manual journals and payroll with Kosovo’s progressive tax brackets and pension contributions.
  • Twenty management reports and the central bank’s Excel pack, driven by the regulator’s chart of about 5,000 accounts.
  • Identity on OpenIddict + ASP.NET Identity, 76 permissions, and branch-scoped data access enforced on the server.
  • PDF documents rendered in headless Chromium, real-time notifications, GitLab CI to IIS, and a Windows desktop build with native printing.

04Architecture

Angular 19 SPAWebElectron shellnative printingOpenIddicttokens · 76 permissionsASP.NET Core 8 API283 endpointsSignalR hubcommittee votesLoan-event engineaccruals · provisionsGeneral ledgerdouble entryReporting20 reports · CBK packNightly jobs00:01 · catch-upSQL Server50 tablesHeadless Chromium9 PDF templatesLegacy database24 migration servicesbalanced entriesimport
One institution per deployment; data scoped by branch through token claims.

05Technology

Interface
Angular 19TypeScriptTailwindElectron 37
Services
.NET 8ASP.NET CoreEF Core 9OpenIddict 6SignalRFluentValidation
Data
SQL Server52 EF migrations
Documents
PuppeteerSharpClosedXMLEPPlus
Delivery
GitLab CIIISDocker Compose (dev)

06Engineering notes

  1. 01

    Matching the regulator to the sixth decimal

    The effective interest rate is solved with Newton–Raphson on the net present value of the cash flows, with upfront and spread fees handled exactly as the regulation prescribes and cumulative rounding to the cent. The tests reproduce the central bank’s own published examples: 9.381299%, 10.474957% and 10.368635%.

  2. 02

    A loan you can replay

    Any loan can be rebuilt day by day from any date — disbursement, month-end accruals spread across months, fee amortisation, payments, class changes, payoff, provisioning — with every step posting balanced ledger entries. One code path serves the nightly run, catch-up after downtime, backdated payment corrections and bulk historical rebuilds; a cut-over date guarantees migrated loans are never posted twice.

  3. 03

    Classification that can’t drift

    Thirty, sixty, ninety and a hundred and eighty days overdue move a loan through five classes provisioned at 1, 5, 20, 50 and 100 percent. Lost is terminal. Provisions post as net adjustments and are reversed and re-booked on every change of class, so the ledger always explains itself.

  4. 04

    Financial statements as formulas

    Seventy-eight balance-sheet and income-statement lines are defined as formulas over account-code subtrees — sums, differences and percentage splits — each with a drill-down endpoint. The regulator’s pack fills the official templates, including a matrix of loans migrating between classes month over month.

  5. 05

    A smooth move off the legacy system

    Twenty-four migration services move the legacy database in dependency order, in batches of five thousand, mapping old user identities and repairing dangling references on the way. The legacy T-SQL became an executable specification — the old 360-day schedule, the old payoff rule and historical payrolls are reproduced and tested — and the replay engine takes over from a cut-over date, so nothing is ever posted twice.

  6. 06

    One query engine for every grid

    A JSON filter tree — nested AND/OR groups, nine operators, filtered includes, sorting and paging — is compiled into LINQ expression trees on the server, powering the query builder behind every table in the app.

07Results

283
API endpoints
50
database tables
76
permissions
20
reports + regulator pack
24
migration services
294
commits
  • Running the institution’s lending and accounting in production since late 2025.
  • A smooth transition from the legacy system: every client and loan migrated with its history, the old rules reproduced and verified.
  • Central-bank disclosure examples reproduced to six decimal places in automated tests.

The client institution is not named.