available · London software developer · london

Fikrat Allahguluzada

Software Developer in London — working on enterprise Spring Boot systems, growing into backend engineering and infrastructure.

Politics & International Relations graduate, self-taught engineer for over five years — started with Java plugins for game servers, moved into backend engineering. Currently a Software Developer at Renful in London, working on legacy modernisation, REST APIs, and Linux production environments.

~/fikrat — zsh
$ whoami
fikrat allahguluzada · software developer · london
$ background --short
politics & ir graduate · 5+ years self-taught · joined renful 2025
$ stack
java/spring-boot · postgres · linux · python
$ status
> growing into backend engineering, one production system at a time

5+

years self-taught

Spring

current focus

Linux

daily driver

London

based · UK

Java Spring Boot PostgreSQL Linux Python Bash Git Docker REST MongoDB Redis JavaScript TypeScript Next.js React Node.js Nginx Java Spring Boot PostgreSQL Linux Python Bash Git Docker REST MongoDB Redis JavaScript TypeScript Next.js React Node.js Nginx

/now

What I'm on, currently

A small, deliberately incomplete snapshot — updated when something genuinely changes, not on a schedule.

last updated · 2026-06-01

  • Building features on an enterprise Spring Boot platform at Renful — REST APIs, reporting, Linux production.
  • Studying event-driven patterns and messaging systems — Kafka, queues, retries.
  • Pushing small backend repos to GitHub as I work through them.
  • Writing short notes on infrastructure, AI policy, and the geopolitics of computing.
  • Reading more politics than tech, honestly — it shows up in how I think.
  • Interested in fintech, infra, and media-tech — always up for a good conversation.

Public Code

Live on GitHub

Most of what I've built sits in private repos — client work, side projects, modifications I sold years ago. This one's open: a take-home assignment with concurrency protection at its core.

public repo

URL Shortener

Solo

View on GitHub

REST API that shortens URLs, tracks click counts, and caches hot redirects in Redis. Submitting the same URL twice returns the same code — no duplicates.

  • Redis cache on the redirect path — cold misses fall back to PostgreSQL and warm the cache
  • Idempotent shortening: same URL in → same code out
  • Atomic click counter via UPDATE ... SET click_count = click_count + 1
  • Unit tests with Mockito covering cache hit, cache miss, and not-found paths
Java 21Spring BootPostgreSQLRedisDocker

public repo

Kafka Order Pipeline

Solo

View on GitHub

Event-driven order processing: REST API publishes order events to Kafka, a consumer reads and persists them to PostgreSQL. Demonstrates producer/consumer, idempotent processing, and KRaft-mode Kafka.

  • POST /api/orders returns 202 immediately — processing is async via Kafka
  • Consumer deduplicates on order ID before persisting — safe for at-least-once delivery
  • Topic created with 3 partitions, keyed by orderId for ordered per-order processing
  • Kafka running in KRaft mode (no Zookeeper) via Docker Compose
Java 21Spring BootApache KafkaPostgreSQLDocker

public repo

Grocery API · take-home assignment

Solo · open source

View on GitHub

Production-shaped NestJS backend: product catalog, cart management, and checkout with real concurrency protection via SELECT FOR UPDATE. Built end-to-end as a take-home assignment.

  • Checkout locks cart + product rows in sorted order to prevent deadlocks and overselling
  • Soft-deleted products stay invisible in catalog but preserve order history snapshots
  • Order cancellation with atomic stock restoration
  • Concurrency stress test: two simultaneous checkouts compete for single-unit stock — exactly one wins
  • One-command boot via Docker Compose; Swagger at /api
NestJSTypeScriptPrismaPostgreSQLDockerSwagger

// github · live

Recent activity

Pulled live from the GitHub API, revalidated hourly. Not curated.

View profile

System Design Studies

Architectures, worked through on paper

Distributed-systems designs I'm reasoning through as study — backend, messaging, ops. Targets, not production metrics.

1.2M events/min

Realtime Event Processing Platform

01

Horizontally scalable event pipeline ingesting millions of events per minute with sub-second end-to-end latency.

// architecture

ProducerKafkaConsumerRedisPostgreSQL

// design targets

throughput

1.2M ev/min

p95 latency

180 ms

uptime

99.95%

consumer lag

< 1.5 s

  • Partition-aware consumer groups with cooperative rebalancing
  • At-least-once delivery with idempotent sinks (Redis dedupe keys)
  • Backpressure via reactive streams; lag-based autoscaling
KafkaSpring BootRedisPostgreSQLKubernetes
design study · not deployed
99.97% delivery SLO

Distributed Notification System

02

Multi-channel notification fabric (push, email, SMS) with delivery guarantees, per-tenant routing, and provider failover.

// architecture

APINATSWorkerProviderAudit DB

// design targets

delivery

99.97%

p99 dispatch

240 ms

tenants

1,800+

retry rate

0.4%

  • Tenant-aware fan-out with priority queues
  • Exponential retry + dead-letter policies per channel
  • Active/active provider failover with health-weighted routing
GoNATSPostgresgRPC
design study · not deployed
p99 < 180ms

Payment Gateway Infrastructure

03

PCI-aligned payment orchestration with deterministic settlement, idempotent ingress, and pluggable PSP adapters.

// architecture

ClientAPI GWOrchestratorPSPLedger

// design targets

p99

178 ms

auth success

98.6%

reconciliation

T+0

PCI scope

SAQ-D

  • Idempotency keys with replay protection
  • Encrypted at rest (KMS) and in transit (mTLS)
  • Adapter pattern for PSPs — Stripe, Adyen, in-house
JavaSpring BootKafkaVaultTerraform
design study · not deployed

Insights

Study notes, written down

Notes I'm collecting as I read and work through backend systems and infrastructure.