Born in Washington State, I traveled around a lot as a kid in a military family before eventually settling back in WA. Having a natural affinity towards Math and Science, I became interested in computers. I taught myself HTML / ASP / PHP in middle school and high school. I graduated from Steilacoom High School in 2004 and enrolled in the Computer Science program at Pacific Lutheran University where I learned Java. I graduated with a BS in Computer Science in December 2007 and started an internship at my former school district in the summer of 2008. At the beginning of 2011 I was hired full time by the Steilacoom Historical School District as a Computer and Peripherals Technician.
In my spare time, I pursue intellectual curosity: I want to learn new things. These include, but are not limited to: learn new games, experience new music, learn to play the guitar (in progress), sewing, knitting, magic tricks, investing, business, traveling, etc…. If it seems interesting and I can’t answer the question “Tell me about…”, I go learn about it.
I’ve always had a fascination with computers and electronics from a very young age. When I learned how to play Solitaire as a kid, the only aspect of the game I didn’t like was the cleanup. Imagine my elation when I discovered how to play Solitaire on my parents old 386 computer, but not only that, other games like Commander Keen, Oregon Trail, and Super Munchers!
Fast forward to 5th grade when AngelFire and Geocities spread around the web like wildfire. My older sister created a simple page and I competitively thought “I can do better!” I wasn’t about to be outdone by my sister of all people. I tried using the WYSIWYG editors but recognized they were far limited in their capacity, but luckily, they offered an HTML editor for the “advanced” user. Not even knowing what HTML meant, I began researching and viewing the source (once I figured out how) of pages that had elements I wanted. I copied-and-pasted code and modified it endlessly until I not only figured out what it did, but also had what I was looking for.
By the time I hit 6th grade, I had a fancy, table-based layout website that I shared with my friends to help organize event gatherings during the summer. I even utilized my newfound skill to help my 6th grade teachers win an award in Intel’s ’97-’98 Intel ACE (Applying Computers in Education) program.
But I wanted more. I took Running Start (earn college credit at a local community college) in high school and took a web development course. It wasn’t much help because I already knew for years most of the content that was covered, but it helped reaffirm my skill. Afterwards, I volunteered to help redesign and rebuild the ancient website for my high school where I got to experience / experiment with ASP.VBScript, and build a few websites from napkin drawings for a friend using PHP. That’s where I discovered I had a fondness for programming.
In 2004 I enrolled at Pacific Lutheran University, already certain I wanted to major in Computer Science. I took the introductory course to Java and quickly realized: this is it. This is what I want to do. Each assignment had the basics, but left it open to the student to experiment with the “above and beyond” and enhance the program. Which I did. At every opportunity, and grateful that I did. I learned on my own how to investigate new features, research how to implement them, and explore the JavaDoc to help solve general compiler problems.
After I graduated from PLU with a Bachelors of Science in Computer Science (BSCS), I thought I knew quite a bit there was to know about programming. However, the more I researched, the more I realized I knew pretty much everything there was to know…about the basics. I knew practically nothing about Network/Client-Server, encryption, serialization, synchronization, data mining, and multi-threaded programming. I immediately got to work.
The first program I wrote was a simple “fireworks” program utilizing custom swing painting and multiple threads. After that, I experimented with data mining by developing a program that when given an ISBN it would scrape the: Title, Edition (if applicable), Author, Description, and Publication Date from Amazon.com (which no longer works, with good reason, due to changes made in the design of Amazon’s website).
Now with some experience in Network programming, I decided to write a chat room program using basic text serialization, then integrated an instant messaging program utilizing object serialization. I felt like it was time for a real project.
Employed by the Steilacoom Historical School District as a member of the Technology Department, part of my responsibilities included installing updates on the computers over summer. My two options at the time were: 1) Update a computer, capture an image of it, ghost it onto the rest of the computers, and rename all the computers and put them back on the domain, or 2) Go around and run Windows Update on each computer, 5-6 at a time before bandwidth caps out. Option 1 was faster and took a day or two at the cost of more effort; Option 2 was slower and took anywhere from 2-4 days but required less effort. However, I noticed that the faster I started Windows Update, the more computers I could get updating before the bandwidth caps out and prevents any more computers from downloading updates, so I had the idea:
What if I could get ALL  computers [in the computer lab] to start downloading the updates, all at once?
I ended up writing a client-server program that would continually send screenshots to the server of the first computer that connected to the server (because all computers were identical). I used that as a primitive form of VNC, and any key strokes or mouse clicks I did on the server would be replicated on all the computers connected to it. With this program in hand, I set out to test my theory as to what would happen if all the downloads started at once.
That’s where our Network Administrator found out the bandwidth caps were just soft caps: all 30 computers in the lab started downloading at once, at normal speeds, temporarily exceeding the bandwidth quota. About one hour later and a phone call confirming that the district was NOT, in fact, under a DOS attack, the lab was updated. I repeated the process on the rest of the labs in the district and within 2-3 days, about 90% of the 1000+ computers in the district were up to date.
Since then, I’ve volunteered to help my friends with assignments involving programming when they needed help or when I recognized the problem required a solution in an area I haven’t dealt with before. I’m constantly researching and trying out new technologies to stay relevant in an ever-changing, fast-paced, and thoroughly enjoyable field.