Software Engineer / Systems & Open Source / est. 2014

Iliyan Angelov.

Designing, building & running reliable systems · end‑to‑end.

From pricing engines and data pipelines to POS & fiscal integrations, realtime UIs and server administration · I design and ship software that does the unglamorous work of staying up, staying correct, and staying maintainable. I care about open source, durable architecture, and the kind of craft that shows up years later in someone else's codebase as clarity.

A practitioner across the full stack, with depth where it counts.

Years of operational experience across four interlocking disciplines. Below · the work I actually do, day to day, mapped to the tools and practices I bring to it.

01

Backend & Systems

Logic · APIs · Throughput
  • Python / Django · services, ORM, admin, REST
  • Java · long-lived enterprise services
  • C++ · performance & native integration
  • API design, queues, background jobs, schedulers
  • Relational data modelling (PostgreSQL · MySQL)
Depth
02

Frontend & Realtime

UI · State · Streams
  • Angular · large, long-lived applications
  • TypeScript · strict, well-typed codebases
  • RxJS · component architecture · state design
  • HTML · CSS · accessibility · responsive layout
  • WebSockets · MQTT · live telemetry, dashboards
Depth
03

Infrastructure & Ops

Unix · Servers · Mail
  • Linux / Unix · administration & tuning
  • Mail · Postfix · Dovecot · DKIM · DMARC · SPF
  • nginx · systemd · cron · log pipelines
  • DNS · TLS / PKI · certificate automation
  • Deployment, monitoring, on-call hygiene
Depth
04

Security & Networking

Hardening · Boundaries · Trust
  • Server hardening, attack-surface review
  • iptables / nftables, segmentation, ingress
  • SSH, key management, principle of least privilege
  • Application-level authn/authz patterns
  • Audit, logging, intrusion detection basics
Depth

Six things I do especially well.

These are the engagements where my background pays off the most · problems that sit between disciplines, where understanding the whole stack matters more than any single tool.

01

Backend systems & domain APIs

Service architectures in Python/Django, Java, or C++ · depending on the problem. I design models around the business, not the framework, and I keep the seams between domains explicit so the code stays legible as the system grows.

Python · Django Java C++ REST Postgres
02

Realtime web applications & operational dashboards

Angular + TypeScript front ends backed by WebSockets or MQTT for live telemetry, control surfaces and operational dashboards. Strict typing, deliberate state design, accessible UI, and the kind of interaction detail that makes a tool feel competent.

Angular TypeScript RxJS WebSockets MQTT
03

POS, fiscal & hardware integrations

Point-of-sale flows, receipt printers, fiscal devices, ECR protocols and regulatory edge cases. The work that nobody likes touching · the last 5% that decides whether a system can actually go live in a retail or hospitality environment.

POS Fiscal devices ECR Serial · USB · TCP Compliance
04

Pricing engines & data pipelines

Rule-driven pricing, tiered discounts, real-time recalculation, and the ETL machinery that feeds them. I build pricing logic that auditors can read and operators can override, and pipelines whose failure modes are visible rather than mysterious.

Pricing rules ETL Batch · Stream Validation Observability
05

Server administration & mail infrastructure

Standing up and running Linux servers with the boring parts done right · Postfix & Dovecot tuned, DKIM/DMARC/SPF in good order, TLS automated, nginx and systemd configured properly, logs going somewhere useful. Mail in particular is a craft of its own.

Linux Postfix · Dovecot DKIM · DMARC · SPF nginx TLS / PKI
06

Security review & open-source collaboration

Pragmatic security review for small-to-mid-sized systems · hardening, attack-surface reduction, sane defaults, and credentials done right. I'm also genuinely happy to contribute to open-source projects: from drive-by patches to maintainership and feature work.

Hardening Threat modelling Audit Open source Maintainership

Where I've spent real time in production.

Each of these represents a body of work · not a one-off. The kind of problem domains where I can step in, read the existing code, and start contributing within a day rather than a quarter.

D-01Commerce

Pricing engines

Rule-driven, tiered, real-time. Logic that an auditor can read and an operator can override without breaking the model underneath.

Rules Tiers Realtime recalc
D-02Retail

POS & fiscal integrations

Receipt printers, fiscal devices, ECR protocols, regulatory quirks. The unglamorous work that decides whether software can legally go live.

POS Fiscal ECR
D-03Data

Data pipelines

Ingestion, transformation, validation. Batch and stream. Built so failures are visible, replayable, and recoverable · not mysterious.

ETL Validation Observability
D-04Realtime

Realtime UIs

Angular dashboards backed by WebSockets/MQTT. Live telemetry, control surfaces and operator tools where latency and clarity both matter.

Angular WebSockets MQTT
D-05Infra

Server & mail infrastructure

Linux administration with the boring parts done right · Postfix, Dovecot, DKIM/DMARC/SPF, TLS automation, nginx, systemd, logs that actually help.

Linux Postfix DKIM/DMARC
D-06Open Source

Open source

Contributions, libraries, tooling. From drive-by patches to feature work and maintainership. Genuinely happy to collaborate on things people use.

Patches Features Maintainership

The tools, candidly catalogued.

Everything below is something I've shipped with, not just read about. "Core" means I reach for it without thinking. "Working" means I'm productive in it. "Supporting" means I use it where it fits.

Languages04.01

  • TypeScriptCore
  • PythonCore
  • JavaScriptCore
  • JavaWorking
  • C++Working
  • HTML & CSSCore
  • Bash · ShellWorking
  • SQLWorking

Frameworks04.02

  • AngularCore
  • DjangoCore
  • RxJSWorking
  • SpringSupporting
  • Express / NodeSupporting
  • Django REST FrameworkWorking
  • Celery · workersWorking

Systems04.03

  • Linux · UnixCore
  • Postfix · DovecotCore
  • nginxCore
  • systemdWorking
  • BIND · DNSWorking
  • TLS / Let's EncryptWorking
  • iptables / nftablesWorking

Data & Transport04.04

  • PostgreSQLCore
  • MySQL / MariaDBWorking
  • RedisWorking
  • WebSocketsCore
  • MQTTWorking
  • REST · JSONCore
  • GitCore

How I work, in four principles.

Conviction matters more than fashion. These are the trade-offs I make on every project · the lens through which I read other people's code and the standard I hold my own to.

“Software is communication first. The compiler is just one of the readers.” working principle
Principle 01

Reliability over novelty

Boring tools, used well, win almost every long-running engagement. I reach for the unfashionable, proven choice unless there's a real reason not to.

Principle 02

Systems thinking

Every change is a second-order effect waiting to happen. I look for the seam, the queue, the timeout · the places where one component's certainty becomes another's surprise.

Principle 03

Craft & clarity

Code is communication. I write for the person who replaces me, name things honestly, and prefer the readable diff to the clever one. Comments only where they explain the why.

Principle 04

Long horizon

I design for the system in five years, not the demo in five days. Migrations are planned, secrets rotate, monitoring exists from day one, and someone can take over without a handover doc.

Open to good problems.

Contracts, long-term collaborations, open-source work, second opinions on architecture, or the kind of weekend favour that turns into a proper engagement · get in touch with what you're working on.

Let's build something durable.

I'm currently accepting new work and happy to talk through what you're building. Short conversations are fine. Long, technical ones are better. Either way, the more context up front, the more useful the first reply.

Bulgarian and English. Comfortable across timezones, but Europe-aligned hours are easiest. Remote-first; in-person where it matters.

What helps in a first message: the problem you're trying to solve, the rough shape of the stack, the timeline, and whether you're looking for a contractor, an extra pair of hands, or a second opinion.