Andrei Martynenko

Backend Developer specialising in Go (Golang)

Designing and building reliable, concurrency-oriented backend systems with Go.

Go-focused backend developer with a strong interest in reliability, concurrency, and performance-aware backend design. Interested in predictable system behaviour, failure handling, and building services that remain stable under load.

Profile

Domain-Driven Engineering Perspective

SMBC SMBC
Deutsche Bank Deutsche Bank
Alfa-Bank Alfa-Bank

Background in banking and financial systems strongly influences how I approach backend design.

Experience in regulated financial environments developed a practical awareness of:

  • System reliability and failure impact
  • Data correctness and consistency
  • Latency sensitivity in critical workflows
  • Risk, edge cases, and unexpected states

This perspective naturally translates into backend engineering, where predictability and robustness matter.

What I work on

  • Backend services and API-driven systems in Go
  • Concurrency-oriented designs (goroutines, channels, worker patterns)
  • Reliability-aware backend components
  • Performance-aware service behaviour
  • Data processing and integration-heavy services

Performance & Behaviour Focus

Latency

optimisation target

Reduction through timeout tuning and contention control.

Throughput

optimisation target

Improvements via bounded concurrency and simplified hot paths.

Stability

optimisation target

Backpressure, retry limits, and clearer failure semantics under spikes.

Efficiency

optimisation target

Resource efficiency via simpler hot paths and reduced retries.

What I optimize for

  • Typical optimisation goals in experimental systems
  • Latency reduction through timeout tuning and contention control
  • Throughput improvements via bounded concurrency
  • Stability improvements through backpressure and retry limits
  • Resource efficiency via simpler hot paths and reduced retries

Faster real-time decisions

Reduce end-to-end propagation time from event ingest to client delivery. Lower latency improves fill quality, reduces stale decisions, and makes real-time workflows usable at scale.

Typical outcomes

  • Consistent p99 latency targets for streaming endpoints
  • Less client-side polling and fewer redundant requests

Higher throughput without linear cost growth

Increase throughput by removing contention and avoiding per-request overhead on hot paths (allocations, locks, IO fan-out). Aim for predictable scaling rather than peak benchmarks.

Typical outcomes

  • Better utilization (CPU, memory) under sustained load
  • Lower infrastructure cost per request/message

Fewer incidents under load spikes

Design services to degrade gracefully: rate limiting, bulkheads, and shed non-critical work first. Keeping the system available is usually more valuable than returning every response.

Typical outcomes

  • Lower timeout rates during peak traffic
  • Clearer operational signals and faster debugging

System design examples

Conceptual examples from personal projects and active study

Concurrency (fan-in / fan-out)

goroutines + channels

source A source B fan-in worker 1 worker 2 sink

Parallelize independent work, then merge results deterministically. Keep coordination explicit and bounded.

Backpressure (bounded queue)

saturation behaviour

producer queue (bounded) consumer when full: block / shed / drop

When demand exceeds capacity, the system should respond in a controlled way instead of accumulating unbounded work.

Latency distribution (tail matters)

p95 / p99

p95 p99 lower is better tail drives UX + cost

Average latency is rarely the issue. Tail latency and queueing behaviour define user experience and reliability.

Projects

AI Sentiment Market Prediction

Real-time signal pipeline & verification-oriented system

AI Sentiment Market Prediction platform screenshot

Problem / Focus

While the modelling components use Python/ML tooling, the project is primarily framed as a data and decision pipeline problem, focusing on:

Key engineering aspects

  • End-to-end latency from ingest to signal delivery
  • Deterministic processing stages
  • Clear separation of offline vs live-style workflows
  • Signal verification and reproducibility
  • Operational clarity of the pipeline

Tech stack

Go (Golang) Python ML/NLP Web UI Crypto market data Redis WebSockets Kafka

What it solves

A real-time pipeline that turns noisy external signals into a verifiable, reproducible output that can be delivered to clients with predictable latency.

Signal pipeline (live) External sources News / social Market data Target: 50–500 msg/s Ingest + normalize Ordering Dedup / idempotency Budget: ≤ 25ms NLP / model stage Deterministic steps Feature extraction Budget: ≤ 90ms Verification Reproducibility Signal confidence FP cap: ≤ 3% Delivery Web UI WebSockets Fanout: 100+ clients E2E targets: p95 ≤ 200ms, p99 ≤ 400ms · SLO: 99.9% · Retry cap: 2 · Timeout: 250ms Verification loop (offline-style) Replay / backtest Same stages as live Deterministic runs Window: 30d+ / runs Compare outputs Expected vs observed Regression checks Precision: ≥ 60% Promote to production rules Thresholds / filters Audit-friendly changes Change log: versioned Numbers shown are illustrative targets (budgets/KPIs), not production metrics. Replace with measured values when available.

FlowForge

In Progress — event-driven microservices architecture prototype in Go

FlowForge platform architecture diagram

Problem / Focus

Event-driven microservices architecture prototype built for learning and research purposes, exploring service boundaries, async communication, and observability-oriented design.

Key engineering aspects

  • gRPC service-to-service communication with a gateway layer (Envoy)
  • Event-driven integration via Kafka for decoupled downstream processing
  • Explicit ownership of data per service (Postgres, MongoDB) and caching (Redis)
  • Async notifications and side-effects isolated from the order hot path
  • Observability stack: metrics, traces, logs for debugging and capacity planning

Tech stack

Go (Golang) gRPC (foundational knowledge) Envoy Kafka / event-driven concepts PostgreSQL MongoDB Redis (basic caching patterns) OpenTelemetry Prometheus Grafana Kibana Jaeger

Education

Kingston University London

MSc Software Engineering with Management — Kingston University London

2025 — 2026

Graduate degree focused on software engineering practice with delivery and management foundations.

Capital City College Group

Capital City College Group — Westminster Kingsway

2022 — 2025

Software Engineer

Kingston Business School

MSc Banking & Finance — Kingston Business School

2020 — 2022

Focus on banking, markets, and financial systems in a regulated environment.

Plekhanov Russian University of Economics

Plekhanov Russian University of Economics — Moscow, Russia

2013 — 2018

Bachelor’s Degree in Finance

Focus on financial analysis, markets, and quantitative methods — strong foundation for work in regulated environments.

Contact

Location

London, United Kingdom