Rogo Darius
This is not my real name; I use an alias online to protect my identity.
Hi, I'm Rogo Darius, I'm a senior software developer working for a global asset-manager/fund-investor management company in the UK. Out of the office I'm a game developer, a hobby I've pursued for 25+ years.
About me
I have 9+ years of Java+Javascript fullstack development experience with a variety of infrastructure (CI/CD) scripting, automation testing and front-end library implementations along the way.
As well as this, I've honed a broad range of skills in game development outside of the workplace. These include game development best practices, performance enhancement, heuristics, mass modeling, volumetric raytracing & shader scripting.
As well as this, I've honed a broad range of skills in game development outside of the workplace. These include game development best practices, performance enhancement, heuristics, mass modeling, volumetric raytracing & shader scripting.
My focus
I started Java at university trying to get into the C-based languages. I migrated the bulk of my personal game development attention to Java libraries like LWJGL then 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).
While I'd had exposure to RichFaces, an outdated Javascript library, I quickly picked up React development for use in my current job and, as such, this is where I spend most of my time coding in a professional capacity. This transformed into using TypeScript over time as well.
After realising Java game development wasn't for me as I had become accustomed to more modern shader tech and the accessibility of developing 3D games, I shifted my attention to Unity and quickly got to grips with C# for this reason. I've also created games with .Net Core or Mono without using Unity just for the challenge.
I've always had a background interest in robotics and electronics, so naturally I got into Arduino development. While I can't say I have too many uses these days for custom hardware like this, as my focus is mainly software, I have had various successes and even managed to win 2 competitions with some old electronics projects. I've dabbled with PWM servos, made a 9x9 3-colour LED display mounted in a coffee table that plays a primitive RPG style game with a Sega Megadrive controller, created a virtual-pet-in-a-box and prototyped an operating system for a 128x64 display.
DBP really afforded me the chance to get down to some serious programming in my younger years. If it weren't for this chance purchase at PC World when I was 12, I would perhaps not be a programmer today. I used to describe DBP 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.
I've naturally picked up HTML and CSS in my time as a React developer and while my eye for web design may not always be to the level of an artist, the techniques required to implement designs do not elude me. I've implemented anything from pagination and lazy loading to transitions and web2.0 effects professionally and for personal projects.
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 had Selenium test Chrome, Firefox & IE11 and send the results to TestRail each time a build comes from Jenkins in 2 different companies. (Cypress has ended up taking the floor at work these days due to other people's preferences but it's the same principle despite its implementation limitations.)
I wouldn't be much of a developer if I couldn't use databases too. I've produced 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 when necessary.
Although I don't get to do a lot of it these days, I've done my fair share of continuous delivery and integration. From packaging up an enterprise solution into RPMs for each of its 4 distributed servers to simply ensuring my own personal software releases are as painless as possible with batch scripts.
It goes without saying that I glue all of this together in various IDEs but predominantly I use Visual Studio, Netbeans & IntelliJ (with the occasional Notepad++ window open beside them). Eclipse used to get a mention here too, but it's been largely superceded by the others nowadays. Lately I've been using Cursor as my professional role has transitioned to a vibe coder mainly.
While I personally prefer runtimes and executables, I have of course been exposed to application server development including various configuration of Tomcat via Springboot, JBoss EAP & JBoss AS.
Despite making software for 25 years, I only started coding 21 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 approach
Hand crafting
Most things that I'll code (including the HTML for this website) are hand crafted deliberately. I learnt early on not to: take shortcuts, use templates, or copy & paste code snippets. This approach has allowed me to excel in my profession and ensure reliability in my work as well as create consistency in my APIs and user interfaces through an overarching understanding of everything involved. The more buttons I've pressed, the more I control, so the more I can rely on without being subject to bugs in 3rd party libraries or flaky open source projects.
If I've written basically all of the code in a project, it'll only have as many bugs as I created; but if I pull in someone else's library, I inherit all their bugs along with it. - No thanks :)
Comment Driven Development
I am a big supporter of "Comment Driven Development" (CDD) which derives from Business Driven Development (BDD). While upholding the same principle as BDD, CDD also naturally results in documented and readable code after the solution is fleshed out. This helps drive the need for clear business-oriented acceptance criteria as these serve as the basis for the CDD structure even before implementation, which can help to reduce technical churn and feature bloat further down the line:

Vibe coding
The professional development world has, for better or worse, recently evolved to rely more on generative AI. While this poses a problem for training new programmers on best practices, I still have the advantage that I can use the experience gained over the last 2 and a half decades to ensure the generated code I implement at work adheres to my standards.
At work I am a vibe coder now but for my own hobby projects and games, I still code everything myself using CDD.