BS in Game Design and Development, May 2012
Rochester Institute of Technology, Rochester, NY

Work Experience

Hofstra Group – Software Developer
June 2013 – Present
Responsibilities: programming generalist, computer repair

  • Web Crawler(Java) – Set up a Heritrix web crawler to gather information for archival purposes. We have a series of companies that we frequently resell their equipment and it is important to gather as much information about their products as possible. The crawler grabs webpages and converts them to PDF/A format for archival purposes.
  • High speed camera(C/C++/VHDL/python) – We got a camera that was manufactured in the ’90s, but still in high use in ballistics and material science industries. The camera talks to a computer via one Tx and one Rx line to addon card. The card’s format is outdated, the cards we got with the camera were shot, and the camera had no way to store the images it had taken. We decided to put a raspberry pi in the middle and talk out via Ethernet. The rpi’s GPIO ports are clocked at 4Mbaud max and the camera talks at around 7Mbaud, so we had to get a FPGA and write a buffer system on that. The FPGA we got didn’t have a USB driver for linux, so I wrote one. Once the images get from the camera to the rpi, we will use a django webserver to serve up the files and give the user a more rich experience.
  • Archival Website(PHP/python/javascript) – There was a piece of software we had made for us that would take PDFs, extract the text, and then process them for quick searching. The software uses a Apache/Django web server to search and display PDFs. We wanted to make it more usable and marketable, so made a WordPress page with a reverse proxy to show the page we wanted. The original python code was Mac specific, so I had to port it to linux first. It also did work on a single processor, so when large queues of PDFs were thrown at it, processing could take hours, so I made it multiprocessed. The display code for the front-end was Webkit specific, so edited the javascript library to allow the page to display in FireFox, Internet Explorer and Webkit.

New Mexico Consortium – Creative Web Design and Social Media Administrator
February 2013 – Present
Responsibilities: fixing bugs, enhancing webiste features and adding new features to the website Aurorasaurus is a aurora prediction website that uses social media activity combined with current aurora prediction models to display the locations at which the aurora can be seen and where it is most likely to be visible.

QuoJax – Game Developer
July 2011 – November 2012
Responsibilities: designed and developed web applications and browser games.
Worked on an OAuth layer for use with games and other external applications to securely access user information and publish user activity on external applications. This was primarily used with games that would send invitations to other users, update the user on the game’s state, and publish game statuses to the QuoJax servers.
Created a chat application using the ejabberd XMPP chat server and the Strophe.js JavaScript library. The application allowed for one-to-one chat sessions as well as multi-user chat rooms based on predefined group rooms and temporary rooms for on-the-fly multi-user chat sessions.

State of New Mexico Environment Department Technical Services Bureau – IT Intern
Summers of 2005 and 2006
Responsibilities: building and repairing computers and maintaining the network.
Built, repaired and upgraded computers for users. Wiped hard drives and took inventory of items to be disposed of. Installed network switches, printers and computers on a closed network.

Programming Languages
C++, C#, Java, JavaScript, PHP, HTML, Erlang
Programming skills
Network Programming, 3D programming, physics simulations, JSON, AJAX
Visual Studio, Unity3d, Eclipse, NetBeans, MS Excel, MS Word
Libraries and services
jQuery, ejabberd, strophe.js, Unity engine, Apache HTTP server, MySQL, OpenGL, DirectX, XNA

Chromathud – 2D block based mathematics puzzle game
Network Programmer
In charge of adding multiplayer functionality, producing networked gameplay and creating and publishing a leaderboard system.
Boggle™ clone – 2D word puzzle game
Lead programmer and researcher
Created a Boggle clone that demonstrates multiple different data structures to represent the lexicon and board and multiple algorithms to solve any given board.
Researched the linguistic dynamics of changing the board size by changing die complexity and face diversity. This was implemented by adding faces, changing face orientation, and expanding the board all without dramatically changing the difficulty of the game.