Skip to content

Case study · Housing and utilities · Kazakhstan

AulaThree releases a day instead of one in four months, 3 people doing the work of 16, and a cloud bill down 70%

Aula is one app for apartment residents and the 109 companies that manage their buildings, with 247,000 accounts. As fractional CTO I rebuilt how the product is made and run: development and testing went from 16 people to 3, the servers from 18 to 3, the cloud bill fell by 70% and errors in the mobile app by 97%. A task now reaches production in a day instead of 2 to 3 weeks, and the product ships three times a day at 99.99% uptime, a pace most in-house teams never reach.

Client
Aula
Industry
Housing and utilities
Country
Kazakhstan
Users
247,000 accounts, 38,000 active a month
Customers
109 property management companies
My role
Fractional CTO
Platforms
iOS, Android, web
Website
aula.kz

In numbers

releases, up from one every four months, a pace few teams reach
3 a day
people now do the development and testing that took 16
16 → 3
cloud bill after I cut the servers from 18 to 3
−70%
from task to production, down from 2 to 3 weeks
1 day
uptime, with a switch to the reserve data center in minutes
99.99%
call center cost, now that a voice agent takes the calls
−62%

The resident app

Requests to the management company, building news, votes and neighbours' listings. The screens come from the App Store listing.

  • Aula app home screen with the management company's announcement
  • List of maintenance requests with their status
  • Notice about a hot water shutdown
  • A residents' vote on bicycle racks in the parking
  • Neighbours' listings
01

The starting point

Aula connects residents of apartment buildings with the companies that manage them. Residents file requests, read announcements, vote and sign documents with a digital signature, and management companies run their dispatchers and repair crews in the same system.

When I joined, a release went out once every four months. Sixteen people developed and tested the product, it ran on 18 servers, more than six years of data sat in MongoDB, and human operators answered the call center. The product was slow to change and expensive to run.

02

What we did

  1. AI agents do the work of a 16-person team

    I moved coding, review and maintenance to Claude Code and Codex agents and built the team around them. Development and testing went from 16 people to 3, and development got at least five times faster. AI tools and tokens cost 15% of the payroll budget, a small price for the output of a whole department.

  2. Three releases a day, and a task in production within a day

    Unit and integration tests cover about 90% of the code, and our own end-to-end suite runs on top of them. The full set runs on every change, from the pre-commit hook to a pre-production check with automatic rollback. That is how a release goes out three times a day instead of once every four months, and a task reaches production in a day instead of 2 to 3 weeks, without the manual QA most teams still pay for.

  3. 18 servers down to 3, and a cloud bill 70% smaller

    I cut the infrastructure from 18 servers to 3, and the cloud bill fell by 70%. The attack surface shrank with it: distroless containers and a single entry point behind the Cloudflare WAF. Uptime is 99.99%, backups trail production by about a minute, and switching to the reserve data center takes minutes, the kind of recovery that usually needs a dedicated ops team.

  4. Full observability from day one, with nothing to build

    Aula runs on my engineering platform: my GitLab instance, my CI runners and my Sentry. The team saw everything from the first day and never spent time or money building its own tooling.

  5. 97% fewer errors in the mobile app

    Sentry and session replay catch every error together with the steps that led to it. Agents pick the errors up and fix them in cycles every six hours, so a bug is gone the same day instead of waiting in a backlog.

  6. Six years of data moved to PostgreSQL in six working days, and 3 times faster

    I moved six years of production data from MongoDB to PostgreSQL with less than ten minutes of downtime, a migration that usually keeps a team busy for months. The database now runs 3 times faster than the old MongoDB. The core stayed a single Laravel monolith with few moving parts, which keeps it fast and cheap to run.

  7. A voice agent cut the call center's cost by 62%

    A voice agent that speaks Russian and Kazakh takes the call, identifies the resident and files the request. The call center already costs 62% less, and as more of the operators' work moves over to it, more calls no longer mean more operators on the payroll.

03

The result

Three people on three servers now ship Aula three times a day at 99.99% uptime, on a cloud bill 70% smaller. It used to take 16 people and 18 servers to ship once every four months, and 2 to 3 weeks for a task to reach production; now a task gets there in a day.

The resultBeforeAfter
ReleasesOnce every 4 months3 a day
From task to production2 to 3 weeks1 day
Development and testing16 people3 people
Servers183
Cloud billPaid for 18 servers70% lower
TestingManual QAAI agents, ~90% coverage
DatabaseMongoDB, six yearsPostgreSQL, 3 times faster, moved in 6 days
Call centerHuman operatorsVoice agent, ru and kk, 62% cheaper
04

What comes next

Over the next few months I am moving the backend from PHP to Go. We estimate about twice the performance at half the server cost, with fewer services to maintain.

Stack

  • Laravel
  • PostgreSQL
  • Redis
  • Vue 3
  • Flutter
  • Docker
  • Cloudflare
  • GitLab CI
  • Grafana
  • Sentry
  • Claude Code
  • Codex
oleg.isSent on request

Full case · PDF

Aula

Three releases a day instead of one in four months, 3 people doing the work of 16, and a cloud bill down 70%

  1. 01Architecture before and after, with diagrams
  2. 02How 18 servers became 3, and what it did to the cloud bill
  3. 03How 3 people do the work of 16: roles, agents, review
  4. 04The pipeline behind three releases a day with no manual QA
  5. 05The six-day migration plan, step by step
  6. 06The voice call center: stack and cost per minute
Prepared by Oleg SotnikovPDF

The full Aula case

The public story stops here. The PDF has the rest: the architecture before and after, the migration plan, how the team works with AI agents, what it all costs to run and where the savings came from.

I send every case myself and use your email for nothing else.

More case studies

All case studies
02detachboxCloud machines for AI coding agents · USA and worldwideFractional CTO and startup advisorA founder, a fractional CTO and one engineer took detachbox from an idea to a commercial product in three weeksdetachbox gives Claude Code, Codex and other CLI agents an always-on Linux box: the developer closes the laptop and the agent keeps working, on the Claude or Codex subscription the developer already pays for. We built it as founder → fractional CTO → engineer, with no team in between, and it went from the founder's idea to paid plans in three weeks. I own the architecture, the infrastructure, the code review and the technical direction, and we keep developing it. No subscription token or API key ever lands in a box, which makes detachbox one of the safest ways to run remote agents on your own subscription.Read the case study03LeadTrainCold email and outbound salesFractional CTO and startup advisorA team of three built LeadTrain, a cold email platform that now sends more than 20 million emails a monthLeadTrain runs cold outbound end to end: it finds the buyers, buys and configures the sending domains, creates and warms the mailboxes, gives every sender a profile and a site, sends multi-step campaigns and sorts every reply. As fractional CTO and startup advisor, I designed the whole architecture and built the product with two more people. It now sends more than 20 million emails a month and is built to keep deliverability above 60%.Read the case study04GeneratedSEO and GEO content platformFractional CTO and startup advisorA founder, a fractional CTO and one engineer launched Generated in two months, and it now serves more than a million pages a monthGenerated writes and runs a company's blog by itself: it finds what people search for and ask AI assistants, writes articles tuned to those queries and prompts, translates and updates them, and publishes them on the customer's own domain. It is a hosted service for SEO and GEO: getting found in search and quoted in generative AI answers. The team was the founder, one engineer and me as fractional CTO and startup advisor. I designed the architecture, and we launched in two months. Generated now serves more than a million pages a month for its users.Read the case study

Want the next case study to be about your company?

In a 30-minute call we pick the first task to hand to AI and estimate what it will save you.

Book a callThe call is free, and you talk to me directly.