My programming career began in April of 2007. I was fed up with working deadend jobs that I had no interest in, and that didn't reward my contributions accordingly. At that time I was working as a Material Handler, where after a year in which I introducted new workflow optimizations that potentially helped the company make millions of dollars more that year, among many other achievement, I was rewarded with a 6% raise, that amounted to about 47 cents. That motivated me to quit my job, and move into my parents basement. Where I studied and taught myself how to program, and built my first website on a LAMP stack environment.
I built my first website, which was a social networking website inspired by MySpace, using PHP, MySQL, HTML, and CSS. This website was enough to land me my first programming job in December of 2007, working for Options R Fun, where I was the sole programmer hired to fix and update their website. Sadly, this job did not last long, as the owner was forced to close and lay off all employees in April of 2008.
After being layed off, I became interested in shifting my focus to include game development. Microsoft was working on their XNA framework that would allow indie developers to create games that they could publish on the Xbox 360 console. For this reason, I decided to switch my website projects over to C# and the .NET framework.
In October of 2008, I came up with an idea for my first game, Cosmos, and began development.
That december, shortly after Microsoft officially launched their Indie Games platform, I launched Cosmos for the Xbox 360 console. I had now released my first game.
Over the next 2 years, while working full-time as a CNC machinist at a local machine shop, I spent as much free time as I could working on various project ideas. Much of this development included updating and rebuilding Cosmos, with the goal of turning it into a quality game. Tired of working on it, and wanting to move on to different ideas, I ended up abandoning Cosmos after a power surge corrupted my hard drive and caused me to lose several months of work, just when I was getting ready to relaunch the game.
This taught me an important lesson in the need to backup projects on multiple hard drives or devices. While looking into options for backing up data, I learned about version control software, and began using Mercurial and an online hosting company to backup my projects.
Then, in November of 2010, I moved to Florida. In January of 2011, I started my first programming job in a team environment at Expand Inc (aka The Internet Company; aka Softrock Inc).
Though I was self taught and had questionable experience as a professional software engineer, and I was unfamiliar with their primary programming langugage (Coldfusion), the owner saw my passion for programming and decided to give me a chance to prove myself. They started me at $400/wk for a probationary 90 days. At the end of that 90 days I would either be given a raise or let go. Within the first month the owner saw I was greatly exceeding expectations and gave me a raise to $500/wk. After my probationary 90 days I was raised to $600/wk. Those would be my 2 smallest raises within the company. 3 months later I was given another raise, after which I was given a raise about every 6 months. Within 4 years I was up to $105k per year.
During that time I worked on several projects, large and small, among different teams. I became the goto guy for solving the more challenging problems. And was often moved to either help with or take over struggling projects to get them finished and working as expected.
One of my first major projects that became widely used was building a security framework. This started as a proof of concept based on specs decided upon by the team. Once the concept was built and approved, it was integrated into several of the company's websites, including a new site we started working on that would become our primary customer facing site, as well as the company's primary internal websites used by Admin and Call-Center reps.
Another major project that I gained somewhat celebrity status for within the company was a project we called SR4. This website app was a single-page designed script interface for the call-center reps that spoke to customers calling into the call-center through recorded messages. The scripts were specially designed along with variant sound samples to make the conversations sound as natural as possible, while handling as many as 1,000 calls at a time. A major benefit of this system was to help force reps to stay on script, as well as allow each rep to handle up to 2 calls at the same time. This resulted in better closing percentages as well as lower costs per call, among other benefits.
Aside from my professional work, I also continued working on various game and website projects at home. As well as reading books and studying online to further my knowledge and experience.