Rogo Darius
My projects
Startron (2020)
Kidding Cows (2019)
Into the Soup (2017)
Escape from the King (2016) Crashteroids (2015) Magic Ian (2014) Rido (2013) Gauntlet of the King (2011) Soup (2010)
Zone (2009)
Recre John (2007)
John (2005)
Rock Shock (2004)
- There are way more projects than this; these are just the important milestones
Rogo Darius
I am a senior software developer working for an asset-manager/fund-investor management company in the UK. Out of the office, I am a game developer, a hobby I've pursued for over 20 years now.

This is not my real name, I use an alias online to protect my identity.
About me
I have over 5 years experience of Java based fullstack enterprise development enriched with a variety of infrastructure (CI/CD) scripting, automation testing and front end library applications.

As well as this, I have extensive knowledge in game development including best practices, performance improvement, heuristic algorithms and volumetric raytracing (accumulated over time outside of the workplace).
My focus
Java
I started Java at university trying to get into the C-based languages and migrated the bulk of my personal game development attention to Java libraries like LWJGL. Eventually I landed my first job developing Java based identity software where I was introduced to enterprise web development and Javascript integration (alien concepts to me at the time).
Javascript & React
While I'd had exposure to RichFaces, an outdated Javascript library, I quickly picked up React development for use in my current job and this is where I spend most of my time coding in a professional capacity. (I am regarded as the UI expert even though we're all full-stack developers on my team.)
C# & Unity
After realising Java game development wasn't for me as I had become accustomed to more modern shader standards and the accessibility of developing 3D games, I shifted my attention to Unity and quickly got to grips with C# for this reason. (I also like to create games with C# without using Unity just for the challenge.)
C & Arduino
There has always been a background interest in robotics and electronics so naturally I got into Arduino development. While I can't say I have too many applications these days for custom hardware like this, as my focus is mainly software, I have had successes and won a competition or 2 with various electronics projects in the past. (I know how to make PWM servos do what I want and made a 9x9 LED display mounted in a coffee table that plays a primitive RPG style game with a Sega Megadrive controller.)
DarkBASIC Pro
This really afforded me the chance to get down to some serious programming in my youth. If it weren't for a chance purchase of DBP at PC World when I was 12, I would not be the coder I am today. I used to describe it as providing the power of something like C++ but with the syntax of a BASIC language, and while it served me well in the DirectX 9 era, it is fairly obsolete nowadays with the advent of Unity & Unreal.
HTML & CSS
Of course I can't be much of a React developer if I can't do web development, so naturally I've picked this up by osmosis over the years and while my eye for web design may not always be on point, the techniques required to implement designs do not elude me. (I've used anything from pagination and lazy loading to transitions and web2.0 effects professionally and for personal projects.)
Ruby & Selenium
Alongside my professional development there has always been a need to have automated browser tests and while I've seen plenty of libraries and shortcuts for doing this, there is nothing like coding it yourself and having your own framework to really get control of things. (I've got Selenium talking to Chrome, running a bunch of routine tests and firing off the results to TestRail each time a build comes from Jenkins.)
MySQL
I wouldn't be much of a developer if I couldn't use databases too. I regularly produce various scales and complexities of database integration for Java systems (predominantly JDBC and Hibernate based) and have overcome performance issues with long running or large queries/views.
Shell/RPM/Chef
Although I don't get to do a lot of it these days, I've done my fair share of continuous delivery and integration. Anything from packaging up an entire enterprise solution into an RPM for each of the 4 different servers it ran on to simply ensuring my own personal software releases are as painless as possible.
IDEs
It goes without saying that I stick all of these commands and method calls together in various IDEs but predominantly I've used Visual Studio, Eclipse & Netbeans over the years (with the odd Notepad++ window open beside them).
Tomcat & JBoss
While I personally prefer runtimes and executables, I have of course been exposed to application server development including various configuration of Tomcat 8+, JBoss EAP & JBoss AS.
The Games Factory
I can't really start the page off saying I've been making redistributable software for 20 years then say I started coding at age 12 (only 16 years ago); The Games Factory was a visual programming environment that taught me many of the core principles of content creation and game design even before learning an actual programming language 4 years later. (The Games Factory can be thought of as an amalgamation of Flash, PowerPoint and Excel.)
My philosophy
Virtually everything I program (including this website) is hand crafted/coded because I learnt early on not to take shortcuts or use templates. This approach has allowed me to excel in my profession and ensure reliability in my work as well as consistency in my APIs and user interfaces.

I am a big supporter of "comment driven development" (CDD) which derives from business driven development (BDD) whilst also naturally resulting in documented code after the solution is fleshed out. This also helps drive the need for a requirement to begin with clear business-oriented acceptance criteria as these serve as the basis for the CDD structure before implementation.

While the CDD example below is trivial, this approach has saved significant headaches in the past when it comes to more complicated procedures and algorithms: