Hi! My name is Victor, I am a data scientist and an enthusiast of software craftsmanship and design. I strive for writing code that is both useful and beautiful to look at, or as I like to call it, katana-code.
Katana-code Principles
The following are the main principles that guide my reasoning and behavior when building, delivering and maintaining software.
Kaizen
"Continuous improvement is better than delayed perfection." — Mark Twain.
Start with a working combination of processes, design and code. Deploy. Make gradual improvements to this combination. Repeat until result is satisfactory.
Robustness
"If they are going to use our swords, I shall make one that will not break." — Amakuni Yasutsuna, legendary swordsmith.
Aim for clear specs, type-safety, controlled side-effects, proper error handling, thorough testing, reproducible builds, continuous integration and delivery.
Usefulness
"As we both know, without purpose, we would not exist. It is purpose that created us. That guides us. That drives us. It is purpose that defines us." — Agent Smith, a piece of software.
A software product is a tool. Its value is not in itself, but in its ability to fulfill a purpose. Solid MVV statements and clear OKRs go a long way in keeping what's really important in the forefront.
Unity
The best software development teams (or any kind of team, for that matter) operate as one single organism. Aim to build teams where the standards are high, communication is effective and fluid, responsibilities are well-defined, well-distributed, and well-executed.