A Belated Introduction To Stephen Kennedy
One of the things we've always tried to push here at Armor is that when you work with us, you're not just working with some outsourced stranger from another country, but you're working with a passionate individual with a depth of knowledge in their field. Well, my name is Stephen Kennedy, I am Armor's Lead web developer, and let me tell you a little about how I got into this, and why I love it so much.
I've always had a passion for computers, and I've talked about it in some of my previous blog posts, but let's go a little more in-depth into that statement. One of my earliest memories is using my Dad's old DOS computer right after we'd just moved into a new apartment. He hadn't had time to set up his office yet, so all of the software was just in boxes around the computer, most of it in 5 1/4" floppies. I remember him showing me the level editor in Jetpack and it being one of my favorite things. He had a number of other games, a Racing game I don't remember, a few episodes of Commander Keen, but none of them latched onto my little brain the way that level editor did.
I spent a lot of time when I was younger either playing games with my Dad or watching him play games. I watched him play Wolfenstein 3D (and was probably way too young to do so), I remember distinctly when DOOM came to our house. I grew up around 3D games maturing and becoming common. I watched from the sidelines as Epic Games and ID software each tried to push past the other with each new engine release, and I loved it. I loved the technology behind it, and I loved the way all the complicated things going on could be broken down into little pieces, simple to understand chunks of a problem that were recycled and reused over and over, like clockwork.
I made my first Mod for a video game (Unreal Tournament) in my early teen years. It wasn't anything complicated. I opened up their code for the Minigun weapon, and I replaced the projectiles it spawned with rockets. I did it poorly too, because when I tried to share the code with another computer on a network, so I could show my cousin my Minigun Rocket Launcher, I somehow managed to prevent the player from moving their mouse. To this day, I don't really know if it was my fault, or if her mouse was just malfunctioning, but it was a great introduction to the problem of compatibility. She was running a different operating system (Windows ME, which had its share of problems if you don't remember it), and it fascinated me how much a little change like that could cascade if you didn't understand what you were changing.
Right around the same time, I got into HTML with the help of my Aunt. I made my first website, a repeating tiny image of a dragon in the background with bright red text talking about how cool I was. It was awful, but I made it. Later, I got my first introduction to C++, by reading a few of my Dad's computer science textbooks and following their tutorials. The grand sum of this experience was a wall-paper calculator that the book described line by line for me. But it gave me my first full realization that even the operating system was, at its core, just another collection of simple pieces, and I started exploring customizing things like the boot screen of my windows, looking into applications that would help me push my operating system past what Microsoft had laid out for it.
When I was in college, Minecraft was released. Minecraft, for those who don't immediately see weird cubes and hissing noises at the very mention of the word, is a Voxel-based 3D survival/crafting/building game that was one of the first major Public Alpha success stories. Because the source was written in Java, and a Development Kit was freely available, the modding community swarmed on the game. What this meant was that one could either find a mod to make the game behave in almost any way one could imagine, or you could make your own. I fell in love with a number of mods that added a lot to the built-in "electricity" system, called "redstone" (which you may notice is now the name Microsoft is using for their core updates). One of the mods this led me to was called ComputerCraft, which implemented programmable Lua based computers and peripherals into the game. By programming the computers, you could automate all sorts of tasks for yourself, and this is where I fell deepest down the rabbit hole. I took my TI-RPG and turned it into a slightly more detailed game that I could play on the in-game computers while I waited for various timers to tick down.
Along with our team, I have developed a number of core systems that now power Arrow. Throughout the process, my work has focused on solving problems that slow our clients or our developers down, ultimately costing those clients money. I saw that our deployment process was complicated and error-prone, so we wrote a script to automate most of it and take the human element out, reducing the deployment time from between 15 - 30 minutes down to roughly 5. We saw that a number of our clients were vulnerable to creative new PHP shells as their frameworks aged, so we reverse engineered a number of the shells used against those clients and started writing defenses and detection methods that were framework independent. We noticed that our clients were asking more and more for API-dependent features, so we wrote a library to help us quickly develop and prototype communications with them without having to fiddle with small details like data-type conversions or manually configuring headers.
I love this work. I love solving problems with code. I love automating and simplifying tasks with creative problem solving. Come, get in touch with Armor, let us put my passion to work on the problems your business needs to solve. Not only do we have the skills to solve your problems, but time and time again we've proven that we have the ability to adapt our existing skills to new environments. We're constantly training on new technologies with an eye towards what is important now and what will become relevant in the future. If you're interested in working with our team, contact us below: