CTO and Principal engineer.
Over 15 years of work experience. Domain experience in trading systems, blockchain research & implementation, real-time bidding, and language tooling. Worked in Seoul and Berlin. Most recently CTO at a securities-lending platform in Korea.
Most of my open-source work is collected here.
D programming language, core team member with merge rights on the compiler, standard library, specification and tools, from 2013 to 2016. Much of that time went on reviewing and merging other people's pull requests, as well as implementing several impactful features and numerous bug fixes.
I designed and implemented documented unittests, where a unit test placed after a declaration becomes that declaration's documentation example, so published examples are compiled and executed by the test suite. It is now the standard way the D standard library documents itself.
I redesigned the release changelog. It had been a short note followed by links out to Bugzilla queries. I introduced the format still in use today: hand-written entries explaining each significant language and library change, with rationale and code samples showing the old and new behaviour, alongside the generated bug lists. I rewrote much of the generator that produces them and wrote the changelogs for the releases that followed.
The reception by the community was very positive dlang thread saying it was "paying off big time", and the 2.063 release thread is largely people reacting to the changelog rather than the release.
Over the decade I filed over 1,000 bug reports against the toolchain and fixed 233 of them myself, several of which had been open for many years. A lot of that work went into compiler diagnostics, making error messages say what is actually wrong, saving developers' time.
- My commits to dmd, the compiler
- My commits to phobos, the standard library
- My commits to dlang.org, the specification and website
bosagora/agora, a proof-of-stake blockchain built from scratch in D. What I built there with the help of my team:
-
The transaction script engine, a stack machine with locking and unlocking scripts, redeem scripts and signature coverage modes
-
Time-locks at transaction and input level, and the opcodes to use them
-
Threshold signatures letting any N of M parties authorise a transaction without interacting
-
Validator selection, run periodically, using staking and randomness that anyone can verify but nobody can predict
-
Clock synchronisation between nodes
-
The second-layer payment channel implementation, an Eltoo-style design covering channel opening and closing, hashed time-locked contracts, onion routing and invoices
-
Integrating Stellar's SCP consensus, written in C++, into the D codebase
statefun-rust, the Rust SDK for Apache Flink Stateful Functions. I picked it up after three dormant years and upgraded it to the v3 protocol, which was a breaking change: the invocation bridge, function registry, state handling and egress paths all had to be reworked, and the test suite rebuilt alongside them. I reshaped the API, added Kafka and timeout examples, and published the releases to crates.io.
- dchip, the Chipmunk2D physics engine ported from C to D
- dbox, Box2D ported from C++ to D
- dtk, a D wrapper for the Tcl/Tk toolkit
- DWinProgramming, a collection of Windows programming examples in D
- DSequencer, a toy D sequencer in D
OpenHub profile, an aggregate view of my open-source contributions across projects.
LinkedIn · andrej.mitrovich at gmail