I recently completed a full Computer Science degree in fifteen months. This is a brief summary of the skills I developed and several of the projects I completed in that time.
After one month of C++ experience, I wrote this Game of Life implementation as an exercise in arrays.
By the end of my term introductory course, I completed a final project in object-oriented design: a simple dungeon maze RPG with a Battleship Easter Egg.
During an intensive Operating Systems course, I completed large projects using:
- File IO to replicate the Unix
myar
command - Threads and forked processes in parallel computing project to compute 100k+ twin prime numbers
- Sockets and other network communications (which I expanded upon in a later networking project to make a FTP application in C++ and Python)
Finally, I wrote an in-depth comparison of multiprocessing methods in Win32 and POSIX.
Before I started in programming, I already had extensive work experience in software testing at WB Games Inc.
Recently, I wrote a test squite using both unit and randomized testing for an extremely buggy C implementation of the Dominion card game.
Years before starting my Computer Science degree, with no prior experience in Python, I sat down and wrote a Twitter bot to scrape exchange rate data from a bank web site and post the results daily. Unfortunately, this code no longer works with the new Twitter API and is somewhat embarassing to look at now.
Since this experience, Python has become my weapon of choice for all projects without language requirements, especially those involving system operations.
For a good example of my current Python skill level, see the client-side of my FTP project.
I used Python and the Google App Engine API to create a cloud address book.
Unlike approximately 95% of my peers, I loved learning MASM. Something about knowing exactly what instructions the processor is receiving and executing is very satisfying to me.
The following examples depen on the Irvine32 library.
- Prime number generator and exercise in array usage.
- Implementation of input/output functionality and string to integer conversion using recursive assembly processes.
I am currently studying ARM assembly on the Raspberry Pi and hope to be working on the Pebble Time smartwatch platform soon.
I create simple, elegant, and user-friendly interfaces through mobile-first design principles. I integrate bootstrap CSS and Javascript into my web development projects to create consistent, flexable interfaces across all devices.
One early project I completed was a time-relational "done and todo" list.
A complex relational Pokemon database including types, a strength/weakness chart, user accounts and matchup analysis. (See also: my schema and queries.)
I completed a course in usability engineering, during which I designed and tested a UI for pixel artitsts.
During my liberal arts studies at Willamette University I took intro and data structures coureses in Java. Most recently, I worked on a team of three to write a small JUnit test suite for the Apache Commons URL Validator.
I have completed several group projects using many different development methods, including Spiral, Agile, Scrum and Waterfall.
In Analysis of Algorithms, I worked on a team of three for all programming projects. We used the Cloud9 platform to collaboratively edit code in real time, which resulted in many hours of pair-programming and some very solid code. Our signature achievement was a travelling salesman algorithm that utilized greedy and two-opt swap methods to calculate a near-optimal solution quickly, placing within the top 5 of 25 teams in testing.
In my capstone, I acted as both the liason between the client and the team as well as in the roles of scrum master and developer. Our client was the Oregon State advising faculty and the task was to create a system to filter incoming appointment emails, generate an iCal event for their calendars and add the events to a mySQL database with a Python CLI.