Bio | Summary

Summary

Dedicated software engineer ( experience).

  • OOP, TDD, SOLID, DRY, SMART, Clean, Agile / Scrum
  • C#, Javacript, HTML5/CSS, ASP.Net, .Net Core

Passion for game development and design ( experience).

  • System simulation, procedural content generation, optimization, core game systems
  • Unity Certified Developer, C#, Android, C++

Master's degree in Interdisciplinary Engineering (Industrial Engineering and Systems Engineering). Concentration in machine learning.

Bachelor's degree in Communication (minor in Computer Science)

Certified Unity developer. For more information, here is my resume and LinkedIn account.

Bio

I started programming on a TI‑99/4A when I was about 8 years old. My father taught me Beginners All-purpose Symbolic Instruction Code (BASIC), and my first project (after "hello world") was to write a character sheet generator for a table-top role-playing game that was popular among my friends and I.

In highschool, I took computer science and learned Pascal. For our final project we had to write a booking program to assign passengers to seats in an aircraft.

I went to Virginia Polytechnic & State University (Virginia Tech) for a computer science degree. I learned C and C++ while studying the usual subjects in CS, algorithms, data structures, object-oriented programming, etc. Unfortunately, after multiple extremely negative encounters with some of this profession's worst and most stereotypical representatives, I changed majors. I graduated with a Bachelor's in Communication, and a minor in Computer Science.

While at university, I interned with a technology company in Washington DC, where I learned how to build computers. By the end of the summer, I had built my first gaming rig from spare parts from our junk storage.

I joined the military to see the world and they sent me to Texas. I spent my time in a special unit whose primary purpose was to test and evaluate new equipment and technology.

I then switched service branches and joined the military again. I completed a bachelor degree equivalent in Broadcast Journalism, graduating at the top of my class with honors. In addition to learning technical skills for radio and television production, I discovered a talent for producing radio commercials (I even won an award). I deployed over seas where I produced radio and television news packages on a variety of events. I received a branch-wide award for my radio news reports.

I returned to the technology industry as a Systems Analyst at a large hospital. I became familiar with some of the technological implications of the vast complexities of the healthcare industry, especially HIPAA. I traained users in basic computer skills, removed viruses and malware, and solved a variety of technical problems. I gained a great deal of experience dealing with highly demanding customers in high-stress situations.

I took a year to backpack around Europe, visiting Spain, Germany, Czech Republic, and Poland. I studied their languages, photographed architecture, explored their cultures, socialized, and generally immersed myself in exposure to other parts of the world. I made many friends and amazing memories. I wish I had done this immediately after highschool, and I think taking a gap-year should be standard for everyone after highschool.

I accepted an analyst position working for a defense contractor in a simulation lab, leveraging my Secret security clearance provided by the military. I worked with a variety of software systems, including nuclear effects systems, tactical combat simulation systems, and specialized systems for artillery, drones, intelligence gathering, communications and control, and others. My duties demanded a broad technical skill set, ranging from QA and root cause analysis in Beta software, to installation and configuration of Linux servers, network router configuration (CISCO IOS), as well as routine software installation, and the configuration and operation of all our simulation and tactical software systems. Other duties included data configuration management for the simulation languages (DIS, MATREX), building scenarios for our battlefield visualization software (VBS2) and scripting tools to assist demonstrations. After several contract changes where the existing company left, a new company comes in, and all the personnel are rolled into the new company staff, I left.

While at my analyst position with the defense contractor, I also began developing video games in Java. Eventually I discovered Unity, which I took to immediately. I started writing games in C# and JavaScript, initially building simple versions of classic arcade games like Asteroids, Space Invaders, Missile Command, etc. I rapidly developed an advanced proficiency with the Unity system and was among the first to get certified by Unity Technologies. I have since worked on more sophisticated games and genres. I have built Sci-Fi, Fantasy, and Steampunk themed games across multiple gameplay genres such as first-person shooters (FPS), real-time strategy (RTS), endless runners, racing games, air-combat maneuver (ACM), third-person shooters (TPS) and others. I've also worked on many side projects for simple games like Memory, Chess, and tile-puzzles. During this time I learned Android and started building phone games and applications. I also built a number of construction and simulation systems.

During this time, my interest in procedural generated systems grew. I studied path finding, genetic algorithms, noise functions, parallel rewriting systems, terrain generation, and a lot of statistics and advanced mathematics. From there it was a small step to discover my interest in machine learning.

To facilitate my game-development efforts, I earned an advanced technical certification in character animation from AnimationMentor, and completed 100's of hours of training on Maya, learning 3d modeling, character rigging, and texturing. My interest in algorithmicly generated content expanded to include procedural animation, and procedural generation of textures and materials. Many of my games include extensive procedurally generated systems, adaptive systems, and machine learning elements, usually layered on top of a simulation engine.

Along the way I have also built games in Python, Visual Basic, and MIT's App Inventor (open-source Scratch-like application) when it was originally introduced by Google. For just about any code I spend time working with, I have written some sort of game in.

I accepted a software developer position with the local county government, where I worked on two major projects. I assumed the role of sole contributor on a modernization project to migrate the Sheriff Department's traffic citation process from pen and paper to a web-based application running on mobile devices. I received the project in its infancy, when it was merely a non-functioning mock-up thrown together by an intern. I designed the database schema, wrote the server-side and client-side components in C#, and built the front-end component with Bootstrap and JavaScript. I worked directly with the project owner to ensure project requiremnets were satified, while also working directly with the test users to build an intuitive user experience.

In addition, I rejuvenated a languishing project to update the District Attorney agency's aging case-management system. The project had been in meeting purgatory for three years when I joined. I identified and removed several key roadblocks and began working directly with the product owner. The project went live six months later for a limited number of users. Over the following year, we migrated the remaining users as we continued to add functionality for edge-cases and and address technical challenges.

With the two main projects winding down and no significant development work forcast for the future, I left the County to accept a software engineer position with a software development company in Austin working on project management software. My time was split between code optimization and working with the product owner to buildi UI mock-ups for our largest client.

I then accepted a software engineering position with another Austin-based company, building electronic health and medical record software (EHR/EMR/EMHR).

While working full time, I enrolled at Purdue and completed a Master's degree in engineering in Interdisciplinary Engineering, with concentrations in Industrial Engineering and Systems Engineering. My core focus of academic interest is the application of Machine Learning and simulated systems toward solving diverse systemic environmental, engineering, and socio-political problems.

Expanding and deepening my skill set is always an ongoing effort. I successfully completed the Machine Learning and Artificial Intelligence online courses taught by Peter Norvig (director of research at Google, and head of Computational Sciences Division at NASA) and Andrew Ng (global leader in AI, co-founder and leader of Google Brain, and a former Vice President and Chief Scientist at Baidu) through the Stanford Engineering Initiative. I have completed numerous additional courses in Computer Science, covering topics from system design, to software design patterns, to algorithms. My continuing education efforts also include courses in economics, finance, business strategy, game theory, astronomy, physics, and chemistry. Additionally, I have also studied advanced calculus, differential equations, linear algebra, matrix algebra, graph theory, set theory, and a lot of probability and statistics.

I am interested in many aspects of software development and system design. I welcome any opportunity to gain exposure to new problem domains and pursue new avenues of mastery.

My resume is available for download. Also, have a look at my LinkedIn page.