Work

Everything I've shipped or kept running, production and personal.

A multi-screen trading terminal: illustrative fintech imagery, not a screenshot of RBC's internal systems.

Royal Bank of Canada

Wealth management · contract

Microservices for a regulated wealth-management stack.

Turning requirements into small Spring Boot services, making the architecture calls for microservices and container orchestration, and holding the line on JUnit coverage in review. Kafka and Kubernetes, real stakeholders, real audit trails.

JavaSpring BootKafkaKubernetesJUnit
Server hardware in a data-center rack: illustrative telecom infrastructure imagery, not a screenshot of A1's internal systems.

A1 Austria Telekom

Telecom · current role

Core platform engineering, release ownership, and internal tooling on a high-impact telecom system.

Feature work in Java 8–22 against Oracle, plus the release side of it: I led a team-wide migration from Bitbucket to GitHub and moved the Jenkins pipelines across without a break in CI/CD. More recently I have been building an internal AI assistant that answers questions across our documentation, ADRs, Jira tickets and codebase.

Java 8–22
range maintained in production
Java 22Spring BootOracleDockerOpenShiftKafka
Explore21 Charts landing page, tagline "Signal, not noise", showing mining difficulty, block production and network throughput live from a self-hosted node.

Explore21 Charts

Personal project · data and visualisation

Time-series for the whole chain, read off my own node. Signal, not noise.

Mining difficulty, block production and network throughput, plotted from the node I already run for Explore21 rather than from a third-party API. Eleven charts, refreshed every ten minutes. The point is the shape of the data over time, including the noise, rather than a smoothed version of it.

11
charts, refreshed every 10 min
self-hosted
served from my own node
Bitcoin CoreTime-seriesSelf-hosted
Explore21 showing live Bitcoin network stats: block height 964,721, difficulty 125.81T, hash rate 1033.76 EH/s.

Explore21

Personal project · backend and ops

A Bitcoin block explorer I built because the one I wanted did not exist. It has been running on my own infrastructure since.

Address balances, transaction detail, and the network metrics I actually check: difficulty, hash rate, mempool depth. A Spring Boot service talks to Bitcoin Core through ElectrumX and serves it behind Docker, deployed by GitHub Actions. It tracks the chain tip live; the interesting engineering is in staying in sync, not in the lookups.

315
commits since Jan 2024
live
tracking the chain tip
JavaSpring BootBitcoin CoreElectrumXBitcoinJDocker
Explore21 бюлетин signup page for the first Bulgarian Bitcoin newsletter, published every two weeks.

Explore21 бюлетин

Writing · Bulgarian

The first Bulgarian-language Bitcoin newsletter. Fortnightly, for long-term holders rather than traders.

Every two weeks I take the charts from Explore21 and write up what they actually show: where the cycle sits, what moved and why, in about five minutes of reading. It is written in Bulgarian because nobody else was writing this in Bulgarian. No trading advice, no price calls; context and the data behind it.

every 2 weeks
publishing cadence
free
no paywall, RSS available
WritingRSS

Surplus Miner

Personal project · proof of concept

An ASIC miner controller that runs off whatever the solar array has spare.

Reads real-time solar surplus from Victron / Venus OS over MQTT and steps two miners' power draw to match it, shutting down and resuming on its own. Node backend, Socket.io dashboard. Built to be reliable and easy to extend rather than clever.

2
miners load-matched to solar output
Node.jsMQTTSocket.io

MentorMate

Product consultancy

Intern to Software Engineer II in two years.

Backend REST APIs across several client projects, then gradually the design side of it: JPQL, native and Criteria queries, architecture discussion, stakeholder-facing work. This is the path that led to RBC.

JavaSpringHibernateJPAREST