About Me Part 1

Xbox 360 Modded Controllers

During middle school, I was a huge Call of Duty 4 fan. I was part of a small clan, and would spend most of my weekends ranking up. I looked online for a modded controller, and many were well outside of my price range, with prices ranging from $100 — $200, depending on the features. My next thought was, how hard is it to make a modded controller?

Modded XBox controller schematic
Modded XBox controller schematic

Typically this was a small black button where users could cycle through various firing modes

Modded controllers essentially turn semi-automatic weapons into fully automatic weapons by “virtualizing” the trigger. For most controllers, this feature was activated via a small button underneath the controller.

After researching how to make modded controllers, it seemed rather straightforward: For about $15 on eBay, one can buy a pack of 3 modding kits. The kit included the wires, button, and micro-controller. Then, using the provided schematic, open the controller up, solder the correct leads to the micro-controller, drill a hole for the button, add hot glue, and voila! A modded controller. I killed one Xbox controller and some micro-controllers in the process, but once I got it working, I was in business.

I started to mod my friends controllers for $35, one paid me with their old Xbox controller, a $60 value I couldn’t turn down. But sadly, my naivety got the better of me.

After selling a few controllers, and making just enough money to keep my business afloat, a “client” asked to borrow a modded controller to see if it would work. As a kid in middle school, I obliged, never to see the controller again, and essentially bankrupting my business.

I still have the controller my friend paid me with, fully modded, with a cool Halo-themed controller cover to remember my modding empire. Without knowing it at the time, my enjoyment through soldering and tinkering further fueled my desire to learn more about Computer Science.

Minecraft, and how I started programming

It all started when I was about 14 years old. Minecraft was in it’s Beta release version, with Notch still chest-deep in the code base. At the time I was helping a friend run the Minecraft branch of their gaming community. After spending 100’s of hours setting up the server, configuring the plugins, and enlisting help in building the in-game world, we got around 10–20 concurrent players, which was amazing to me. The work of the admins and myself finally paid off.

Throughout this time, I kept up with the maintenance of the server, and as I optimized the server configuration and plugins, I began to learn about computers in the best way possible for me — hands on, solving real-world problems. Looking back, this (to me) exciting side-job sparked my interest in computer science.

After downloading and configuring dozens of plugins, I started to look into creating my own. I learned what Java was, and begin hooking into Minecraft’s popular server API at the time, Bukkit. By changing a few properties, spinning up the test server, and seeing my results materialize, the feedback loop was truly addictive.

Logo of Fly Payment Plugin
Minecraft flying plugin

Link to the project page can be found here

I would spend hours through the night, into the morning coding. My first plugin project was Fly Payment, which allowed a player to use commands to fly. Flying would cost either in-game currency, or items, pre-configured by the admin.

After a few weeks of coding, I came out with my first plugin. Within a few weeks of release, I got 100’s of downloads, which incentivized me even further. As I learned more about best practices, I went through multiple entire plugin rewrites, applying my new knowledge, adding newly requested features, and ultimately releasing an improved product.

Skyrim Mod Logo
Logo for my single-player Minecraft mod

Link to the project page can be found here

I also made a single-player mod, which attempted to merge the world of Skyrim with Minecraft. Compared to multiplayer plugins, single-player mods were exciting to create, because one could change the skins and textures of in-game assets, and utilize a much less restrictive API.

During my entire plugin/modding process, my gut told me this is what I should do. So I did it.

Computer Science

While I was learning Java and programming my Minecraft plugin, I took a Computer Science class in freshman year of high school, where we created basic websites with HTML and CSS, and used Visual Basic to create some games. The class was interesting, but at the time I was starting to self teach myself Java, so going to Visual Basic felt like a step back. Either way, I learned a lot along the way, and made great friends from the class.

Then, after transferring to a new high school at the start of my junior year, I had an excellent opportunity: free college classes.

My local college offered a free class per college semester, and with no computer science department at my new school, I decided to take night classes. Junior year I took Survey of Computer Science, and Software and Programming I. Senior year I took Software and Programming II, and Computer Security Basics. The classes were typically 4PM — 9PM on various weeknights, and I loved it. I was learning an enormous amount about programming, and was excited to put my newly learned skills to the test. But more importantly, after my first class, I knew I wanted to pursue a B.S. in Computer Science.

At this time, I was working at Staples, starting at their office supplies department and eventually moving up to their technology department. At $15/hour, the pay was great for a high school student.

But I was bored. And hated the monotony.

I then went to my school’s internship counselor (the school usually found internships for cooking), and he found two places he recommended I apply to. One was an internship, paid, at an email marketing company. Another, unpaid, was an internship for a server company. After submitting my resume to both, going in for the interviews, and getting accepted, I took a pay cut to $10/hour, and opted for the development job.

Now I was a high school senior with a software development internship. It felt good.

Regardless of the pay, I was constantly solving new problems every day, working on fixing bugs, and time flew by. I was constantly in a flow-state, and bordum was a problem no more!

After working at the internship for half my senior year of high school into my first semester at college, I was offered a permanent role as a Junior Software Developer. That was one of my happiest days. Finally, it was in ink. I was developing software, and I loved it. I continued to work on more complex projects, spear-headed development on new products, and coordinated with other development teams on projects, continually growing my skill-set in my dream job.

Today I work at the same company, and am entering my last year of college. Next semester I’ll be taking an Embedded Systems course, which will help me to start a hobby that involves small electronics. After graduating from console to PC, I still play video games when the time permits. I’ve also been trying to form a habit of reading more often, as well as meditating daily.

Leave a Reply