Ilya Volvovski

github.com/IlyaVolvo

I spent over 40 years developing software, the last fifteen from 2007 to 2022 on a distributed storage system. That work left me with a lasting interest in how large systems fail under rare and hard-to-reproduce conditions. I now spend most of my time on Faultitude, a source code aware fault injection platform for Java. On the side I build Wordaholic, offline word games around real languages, and Spin Master, software for a table tennis club which I frequently visit and play (hiking doesn't require too much management).

Goals

Faultitude

Professional interest.

Fault injection for Java applications. This is my attempt to build a comprehensive source code aware fault injection platform. It is the result of several years of analysis and research into the importance of fault injection for large distributed systems at the high level of product maturity. It is not a replacement for existing testing techniques but an additional tool for proving system resilience under adverse conditions. I felt the necessity for such a tool while working on a distributed storage system from 2007 to 2022. The recognition of the fact that adverse conditions should be reproducible in a reliable and repeatable form came later in the development cycle. The system was working in the large lab but failing infrequently in production under very suspicious and rare circumstances. I suspect that many practioners could relate to this observation.

I should address the inevitable AI question: what is its role in this project? It is significant, I most likely would not be able to make it happen alone and surely not in the time frame it was done. Of course, I used UI to search for papers and products in the area of interest. I used AI to draft technical documents and papers. The papers were rigorously edited. But the ideas, the architecture and the major design decisions are mine and mine only. A significant portion of the code is handwritten but I used AI heavily in the areas of bytecode generation.

I hope it answers this inevitable question.

The project is not complete. I have not yet implemented all the features I planned. But I have implemented most of the core features that are needed to prove the concept and actually use in many important real-life productioncases. The platform is open in every sensible direction: the idea is that engineers will add new application specific features. Or may be general purpose ones that I missed.

The code is private. The paper and a Docker demo are public. The README in the public repository explains the motivation behind the decision to release documentation only. A live presentation with a working demo of the platform is in this repo.

This platform is for Java only. That covers a lot of territory but clearly far from all. I am working on extending this idea into compiled languages. And possible interpretive languages. My hope and desire is to have a single platform that can be used to test and prove resilience of any platform or language. I need help and collaboration, contact me if you are interested.

Wordaholic

Linguistic work, in the form of games.

Offline word games built around real languages and word lists. I want to create a platform that maintains words from multiple languages, with enough metadata to generate the desired word set based on the game interest. It is far from complete. After trying to build my own workflow to generate the desired word-list, I concluded that this work should rely on extensive work already done. That is what I am in the process of doing.

Another bottleneck are the original ideas for games.

Spin Master

Web development practice, for a real club.

Player role user demo.mc.smash@gmail.com password demo123

Administrator role user demo.von.smash@gmail.com password demo123

Table tennis: ratings, tournaments, ratings, history, statistics, payment plans, payments, check-ins/outs. Built to be used, not only to learn the stack. This is my first intrusion in the world of web apps. Never ever did I do it before. It was a learning curve in AI usage: the initial codebase was a complete garbage. It took me a week to guide AI to a full system rearchitecture, and I realized that nothing will replace the good design. Not yet at least. But AI has written 100% of code here under my constant supervision and guidenance. Ask me how it works and you would be suprised that I claim to be the autho.

The system is used in test mode in my table tennis club in Portland.