About this site
An independent engineer's notebook.
roman10.net is a long-running technical blog focused on practical software engineering — the kind of writing that sits closer to the compiler than to the conference stage.
What this site is
roman10.net is a personal engineering journal. Every article published here documents real work — debugging stories, implementation notes, performance experiments, and the occasional opinionated reflection on the practice of writing software. There is no editorial calendar, no sponsorship pipeline, and no growth funnel. The next post lands when there's something worth saying.
What you'll find
The site has its center of gravity in low-level and systems work. The recurring topics are:
- Android & the NDK — JNI bridges, native audio and video, AAudio and OpenSL, app architecture across the Java and Kotlin eras of the platform.
- Multimedia engineering — FFmpeg internals, PCM and WAVE, codecs, container formats, signal processing, and the occasional deeply unglamorous note on byte-aligned headers.
- Linux & systems — kernel and networking notes, ELF binaries, IPC, system calls, and the patient mechanical work that lets userspace pretend the world is simple.
- Algorithms & data structures — sorting, searching, primes, BigInteger arithmetic, strings, and the performance properties that decide whether a system survives contact with production.
- Distributed systems — Hadoop, Cassandra, Nutch, Solr, and the patterns that emerge when one machine isn't enough.
- Developer tools — Git, Maven, Selenium, JMeter, OpenCV, gnuplot, Nagios, and the command-line workflows that compound across a career.
- Software craftsmanship — programming habits, debugging instincts, career reflections, and notes on becoming a more deliberate engineer.
Editorial stance
Articles are written by working engineers. They are reviewed for technical accuracy by someone who has actually shipped the kind of code being discussed. When a post turns out to be wrong, it is corrected in place with a note explaining what changed. When a post becomes obsolete because the platform underneath it has moved on, that is acknowledged at the top of the article rather than buried.
The site does not take sponsorship money for editorial coverage. Tools, frameworks, books, and platforms that appear in articles are there because they were used in real work, not because someone paid to be mentioned. Read more in the Editorial Policy and Review Disclaimer.
Why "a journey to software craftsmanship"
The tagline is not a marketing slogan. It is the actual orientation of the site. Software engineering is a craft that rewards repetition, attention, and patience — the long-running kind, not the sprint kind. Most of what is published here is an attempt to capture small fragments of that journey: a JNI gotcha, a WAVE header oddity, a debugging session that taught something durable.