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 21 years now.
This is not my real name; I use an alias online to protect my identity.
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).
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 various successes and even managed to win 2 competitions with some old electronics projects. I can, for example, get PWM servos to do what I want and made a 9x9 3-colour LED display mounted in a coffee table that plays a primitive RPG style game with a Sega Megadrive controller.
DBP really afforded me the chance to get down to some serious programming as a teenager. If it weren't for this chance purchase at PC World when I was 12, I would perhaps not be a coder 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.
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 had Selenium talking to Chrome, running a bunch of routine tests and firing off the results to TestRail each time a build comes from Jenkins in 2 different companies.
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.
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 distributed servers it ran on to simply ensuring my own personal software releases are as painless as possible.
It goes without saying that I glue 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 21 years then say I started coding at age 12 (only 17 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.)
Virtually everything I program (including this website) is hand crafted/coded because 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 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: