Boris Brodski · Systems · since 1999
Systems & C/C++
From an operating-system kernel written at 19 to a JNI library compiled for six platform/architecture combinations and used worldwide — C and C++ where it has to be correct, portable and fast.
Kernel to library. Unix-like RTOS kernel in 386 assembler and C (1999); 7-Zip-JBinding, a JNI library in production since 2007.
Portable by construction. Linux, macOS, Windows, 32/64 bit, ARM — CMake, CTest, GCC, MinGW, one test suite everywhere.
Language runtimes. Interpreter and bytecode VM for IDScript; C ↔ script and Python ↔ C++ bridges.
Modern C++. Template metaprogramming where it buys safety, plain C where it buys clarity.
7-Zip-JBinding
The flagship: a JNI-conformant C++ library around the 7-Zip algorithms with an archive-format-independent Java API, password-protected and multi-part archives, built for Windows, Linux and macOS in 32 and 64 bit plus ARM, with a test suite that runs on every target. Founded in 2007, maintained since, around ten thousand downloads a month on Maven Central. Heavy C++ metaprogramming inside; a simple API outside.
Bridges and ports
A Python ↔ C++ bridge for a CAD manufacturer across several interpreter versions and architectures; a Qt application moved from Windows to Linux with a new CMake build; the C ↔ script bridge and bytecode VM of IDScript; a stdio-like encryption layer in C.
Where it started
A Unix-like real-time kernel in 386 assembler and Watcom C in 1999 — boot, protected-mode memory management, scheduler, drivers — written to find out what an operating system is.
What I do for clients
- Native libraries and bindings: JNI, Python extensions, C APIs.
- Cross-platform build systems and CI for C/C++.
- Porting, performance work, and the occasional rescue of a build nobody understands any more.
Relevant work
-
7-Zip-JBinding — Java binding for the 7-Zip compression algorithms
JNI-conformant C++ library around 7-Zip with heavy C++ metaprogramming, cross-compiled for six platform/architecture combinations with CMake and tested with CTest and JUnit on each.
C++JNIJavaC++ metaprogrammingCMakeCTestJUnitGCC
-
Unix-like real-time operating system (educational)
Written at nineteen to understand what an operating system is — boot sequence, protected-mode memory management, scheduler and the drivers needed to get there, in 386 assembler and Watcom C.
x86 assemblerWatcom C386 protected mode
-
Qt application port from Windows to Linux
C++/Qt application moved from Windows to Linux with a clean CMake build.
C++QtCMakeGCCMake
-
Python ↔ C++ bridge for a CAD manufacturer
Binary bridge between Python and a C++ library across several Python versions and 32/64-bit builds, with an automated test matrix.
PythonC++CPython API
-
IDScript — a general-purpose scripting language
Interpreter and bytecode VM in C/C++ with an OLE automation layer and a plugin ABI.
- Parser, bytecode compiler and virtual machine built from scratch
- Bidirectional C ↔ script bridge and generic OLE automation
- Eclipse RCP IDE and full language documentation
CC++OLEEclipse RCPJavaLaTeXVisual Studio
-
Copy protection with hardware-bound licences
Native Windows component in C/C++ with Crypto++ and WMI hardware fingerprinting.
CC++Crypto++Windows WMI APIOLEVisual Studio
-
Cryptographic layer for transparent access to encrypted files
C/C++ I/O layer with a stdio-like interface wrapping Crypto++ ciphers.
CC++Crypto++Visual Studio
-
DOS virus techniques and a matching antivirus (study project)
Low-level x86 assembler — interrupt hooking, memory-resident code, file-format surgery.
x86 assemblerDOS
-
PIC microcontroller projects — assembler, C++, Bluetooth LE
Firmware in assembler and C++ on hardware with kilobytes, not gigabytes.
PIC assemblerXC8 C++ArduinoBluetooth 5.0 (Toshiba PAN1762)simulator
Skills in this direction
Security
- ★★★★★ Security-conscious design 1998–
- ★★★★★ Cryptography: ciphers (AES, RSA, DES), Crypto++ 2001–2009
- ★★★★☆ Reverse engineering: x86 disassembly, OllyDbg, assembler-level debugging 1997–2009
Languages & DSLs
- ★★★★★ Interpreter & bytecode VM design 2002–2007
Infrastructure
- ★★★★★ Linux (Debian/Ubuntu) 2004–
- ★★★★☆ systemd 2020–
Systems & embedded
- ★★★★★ C / C++ 1999–
- ★★★★★ C++ metaprogramming 2007–
- ★★★★★ JNI 2007–
- ★★★★★ GCC / CMake / Autoconf / Make 1999–
- ★★★★☆ Cross-platform builds (Linux 2009–
- ★★★★☆ Windows API / OLE 2003–2007
- ★★★☆☆ Qt 2021–2021
- ★★★★★ x86 assembler 1997–2000