Dulin.tech
Founded by Daniil Dulin · Ozon Bank · Wildberries · Minter

Backend, integrations
and architecture
for systems under load

A Go engineering team. Custom development, dedicated teams, migrations.

Concurrent by design.

View case studies

01 / Services

What we do

Five ways to work together — we pick what fits, no upsells.

Custom development

Projects end-to-end or in stages. Fixed price for a stable scope, T&M when requirements evolve.

Fixed / T&M2–8 months

Dedicated teams

Backend engineers working in your rhythm. Standups, access, retros — like your own team, without hiring.

Monthlyfrom 3 months

Integrations

API gateways, ETL pipelines, connecting ERP, CRM, billing and external systems into one contour.

Fixed / T&M1–3 months

Migrations & refactoring

Rewriting legacy to Go, decomposing a monolith into microservices, improving performance under load.

Fixed / T&M2–6 months

Architecture design

From concept to technical spec and roadmap. An architecture workshop, with optional implementation after.

Fixed2–5 weeks

02 / Technology

What we build with

We pick the tool for the job — we don't chase trends.

Core stack

GoPostgreSQLRedisKafkaRabbitMQNATSgRPCRESTDockerKubernetesPrometheusGrafana

Domain expertise

01

Fintech & payments

Processing, reconciliation, idempotency

02

E-commerce & retail

Catalogs, orders, warehouses, integrations

03

Logistics & warehousing

WMS, routing, tracking

04

Ticketing & aggregators

Supplier aggregation, booking

05

Distributed systems

API platforms, event-driven, CQRS

03 / Cases

What we've built

Numbers matter more than nice wording.

Ticketing

Ticket aggregator for a major operator

Problem

Aggregate tickets from 12 external suppliers with different APIs into a single catalog with unified search.

Solution

Microservice architecture in Go with event queues, an adapter per supplier and a caching layer.

0 RPS

writes

p99 0ms

response

0 wks

to add a supplier

0+

suppliers

GoKafkaPostgreSQLgRPCKubernetesRedis
Fintech

Payment processing for a fintech startup

Problem

Build a reliable payment processing layer with idempotency, reconciliation and support for multiple PSPs.

Solution

Event-driven architecture with the saga pattern, guaranteed delivery via Kafka and an independent reconciliation worker.

0%

uptime

0 dupes

transactions

0 PSPs

integrated

< 0ms

p99 end-to-end

GoKafkaPostgreSQLgRPCDockerPrometheus
Logistics

WMS for a warehouse operator

Problem

Rewrite a legacy PHP monolith into microservices from scratch, preserving business logic and ensuring a seamless data migration.

Solution

Phased migration: strangler fig pattern, dual writes during the transition, Go services in 5 months.

0 mo

migration

0×

speedup

0 down

in production

0 services

total

GoPostgreSQLRabbitMQRESTDockerGrafana

04 / Process

How we work

A predictable process removes the main objection — how to keep a vendor under control.

01

Request & first call

Getting to know each other, understanding the task. Free, up to 1 hour. We'll tell you honestly if it's not for us.

Free · up to 1 hour
02

Discovery

Technical deep-dive, estimate, architecture options. Paid or included for larger projects.

2–5 weeks
03

Scope & contract sign-off

We fix the boundaries, timeline, rate and format. No hidden terms.

1–2 weeks
04

Development

Sprints, regular demos, repository access from day one. Transparent status in real time.

On schedule
05

Handover & support

Documentation, knowledge transfer, optional warranty support. When we leave, you keep both the code and an understanding of the system.

1–3 months warranty

05 / Principles

Why us

There are plenty of engineering shops. Here's what sets us apart from typical outsourcing.

Experienced engineers only

Middle+ level minimum. No hidden junior staff-augmentation.

Transparency from day one

Access to the repository, statuses and metrics. No vague "work in progress".

Architecture before code

We design first, then write — not the other way around.

Documentation is part of delivery

When we leave, you keep not just the code but an understanding of the system.

Honest assessment

If a task isn't a fit, we'll say so upfront. We don't take projects we're unsure about.

06 / FAQ

Frequent questions

What people ask before the first call.

07 / Contact

Tell us about your task

The first call is free, up to an hour. We'll figure out whether we're a fit before spending time on details.

We reply within one business day.

By clicking the button, you agree to the personal data processing policy.