GNU/Linux Inside

Software Development

I began software development at the age of ten as a hobby. I remember playing a fun little game (LaserTank). At the time, I was enthralled by it – but not only because of the gameplay. The best part of the game was the level editor. I was able to create my own little maps to challenge myself or anyone else whom I victimized (mostly family). Rather than working against the map designers, I was working against the player. It was a wonderful, challenging new perspective that quickly consumed me.

But as great as that game was, I thought back to some of the other games in my past. What if I wasn’t limited to a simple level editor for such a basic game? What if I could create any game I wanted? That is how I got into software development (initially game design and development).

While I did initially get into software development for game creation, I’ve only created a few simple games (such as bop-a-mole and breakout, along with various minor ones, including a small 3D game where you try to run away from rising water…yeah). However, the book I picked up didn’t introduce me to games. It was a beginner’s book on Visual Basic focusing on business applications. So you can imagine what might have happened next.

While I was then (and still am) very interested in game development, there was something about the generic types of software you could create with Visual Basic that had me intrigued. I began to explore normal desktop applications, creating whatever I could with the various components I discovered. I finally settled on creating network applications, such as chat servers and clients. This was my bridge into network software (which would ultimately lead to web development).

I worked with software development for many, many years, and still do from time to time. However, once I began getting into web development, I worked on hacking desktop software less and less (aside from scripting). The languages I have [at least some] experience in (note that this does not include web development) include:

  • BASH scripting
  • C/C++
  • GNU Assembly (x86 and x86_64)
  • Haskell
  • Java (only with liberated libraries)
  • Perl
  • Python
  • Scala
  • Visual Basic 6 (no longer)
  • VB/C#.NET (no longer)

I initially developed for Windows systems, but have since moved to strictly GNU/Linux systems. While I primarily focus on web development, I do write command-line applications and scripts. I’m not too fond of GUIs when they have a viable CLI implementation; I believe that GUIs, while they have been beneficial to making software available to the masses, have greatly crippled users. Therefore, I try not to encourage it. The only GUI-like interfaces I develop are web pages/applications.