I am a talented, motivated programmer with expertise in web development, computer gaming, and business application development.
Specialties: I hold a MS in Computer Graphics and Animation. I have experience in OpenGL and DirectX, with a focus on engine rendering code and programmable shaders. I have worked in C++, C, C#, Ruby, and Visual Basic.NET among a variety of operating systems
Lead Software Engineer @ Designing and building a platform from the ground up! A lot of details are not yet publicly available, but at a glance:
- Ruby on Rails web app and JSON API
- Integrating with JavaScript APIs
- Designing and architecting a system from the concept phase through production deployment
- Serving as a technical resource for the hiring team, conducting phone screening and in-person interviews with potential development candidates
- Setting development best practices and coding standards
- Developing database schemas with an eye towards performance and scalability
- Integrating with consuming applications on a number of different tech platforms From March 2015 to Present (8 months) Palo Alto, CaliforniaVisiting Professor @ - Promoted from Adjunct Faculty in January 2012
- Taught online sessions of GSP 390 – Computer Graphics Programming II, as well as GSP 111 - Introduction to Game and Simulation Programming
- Facilitated online course discussions to help students understand and work with the course material
- Worked to refine the course offering to enhance the student learning experience by designing and publishing course assignments, enhancing lecture materials, and refining processes
- Worked with students in a prompt and professional manner to address course questions and other concerns
- Met all course posting, grading, and student review guidelines, exceeding the recommended guidelines in most cases From July 2011 to Present (4 years 4 months) OnlineAdjunct Professor @ Have taught the following classes:
- IT-145 - Introduction to Programming (using Java)
- IT-135 - Introduction to Virtual Words (using Alice) From October 2012 to Present (3 years 1 month) OnlineSenior Software Engineer @ • Worked with Amazon S3 to implement resume bundling functionality for event attendees
• Cleaned up and organized 700+ unit tests, enhancing team code quality
• Worked successfully in a remote capacity, maintaining a high level of productivity and visibility
• Implemented solutions using Ruby on Rails, Javascript, and PostgreSQL
• Helped drive design decisions and highlight architectural improvements to existing Ruby applications From December 2013 to March 2015 (1 year 4 months) Chicago, IL/ REMOTESubject Matter Expert @ Designed Graphics Programming with OpenGL, Industrial Simulations, Introduction to Computer Graphics. Currently designing Shader Programming From August 2012 to March 2014 (1 year 8 months) Senior Software Engineer @ - Developed in Ruby on Rails, using Git for source control, and Linux/OSX as a development environment
- Implemented an A/B sampling tool for credit reports that helped to improve the company bottom line
- Implemented an interface to speak with Yodlee Financial Services over SOAP
- Implemented Pacnet Financial Services as a payment vendor in existing applications
- Consistently recognized for quality of solutions, breadth of knowledge, and detail orientation From August 2012 to December 2013 (1 year 5 months) Chicago, ILAdjunct Faculty @ Taught Game Design Theory 1 and 2 and DirectX Lighting From July 2012 to December 2012 (6 months) OnlineSoftware Engineer @ • Implemented a high performance mass emailing application back end using Amazon SES, Java, and PostgreSQL
• Proposed, developed, and implemented a code review process resulting in a decrease in shipped defects
• Implemented new functionality using Google Maps API that assisted users in accomplishing their goals
• Consistently shipped low-defect solutions to numerous business problems while helping to revise the software development life cycle to reduce redundancy and increase code reliability From August 2011 to August 2012 (1 year 1 month) Madison, WISenior Online Gaming Software Engineer @ - Develop server and client components for online versions of WMS slot machines
- Work with artists and designers to ensure viability and success of final product
- Write clear, maintainable, and robust code in a multi-threaded and networked environment
- C/C++, ActionScript 3.0
- Visual Studio 2008 and FlashBuilder 4 used for development
- Document written code, and assist other developers in usage of developed components
- Assist in setting strategy and objectives for new code artifacts, code reviews, and design meetings
- Assist overseas resources in performing assigned development tasks
- Work with source control tools to manage releases of the framework
- Utilize CVS for effective source control
- Work with SQL Server databases to support development efforts From March 2010 to August 2011 (1 year 6 months) Software Engineer @ - Develop common components in support of their flagship electronic futures trading product
- Write clear, maintainable, and robust code in a multi-threaded and networked environment
- C/C++
- Visual Studio 2008 on both Win32 and Win64 used for development
- Document written code, and assist other developers in usage of developed components
- Assist in setting strategy and objectives for new code artifacts From August 2009 to March 2010 (8 months) Software Engineer @ Develop and maintain a web application in Ruby on Rails
* Work on back-end code dealing with customer approvals
* Integrate changes to copy text into site design
* Suggest and implement improvements to the application and website design
* Independently manage tasks and projects, taking them from inception to completion using agile methodologies/Scrum
* Work with YAML, JSON, Rails, and other APIs as necessary
* Integrate with third-party web services
* Develop against multiple versions of Ubuntu (6.06, 8.04, 8.10)
* Work with VMWare to mimic production environments
* Database management with Postgres
* Source control using Perforce From February 2009 to August 2009 (7 months) Programmer @ - Shipped titles: Fast and the Furious to Drift Upgrade Kit
- Upgrade existing engine written against DirectX from version 8 to version 9
- Add a new programmable shader system using Pixel Shader 3.0 and Vertex Shader 3.0
- Maintain existing graphical code written against DirectX 8 and existing programmable shaders written against Pixel Shader 1.3 and Vertex Shader 1.1 profiles
- Optimize existing engine for memory usage and performance, fix bugs and track down memory leaks in existing engine code
- Optimize engine geometry throughput, working with vertices and indices at the byte level. Additionally, optimize engine state management for optimal graphical throughput
- Select, design, and implement new graphical features autonomously
- Integrate new features into artist tools and pipelines
- Write clear, maintainable, well-commented code
- Assist other developers in tasks covering multiple areas of game development
- Work with source control tools to manage game code releases From August 2007 to January 2009 (1 year 6 months) Software Engineer @ - Develop code in support of a game framework utilized throughout the company
- Write clear, maintainable, well-commented code
- C++, Perl, Python
- VI, SlickEdit used for editing
- Design and implement new framework features per game development requirements
- Assist in code reviews, and recommend improvements to existing code
- Support game developers and test engineers in resolving application issues
- MKS Change Integrity used for error tracking
- Work with artists to obtain the proper artwork for new features and to maintain the correct look and feel of the resulting application
- Serve as a consultant to game developers seeking to utilize the framework
- Work with the OS development team to properly implement new features and resolve existing issues
- Work with source control tools to manage releases of the framework
- Command line CVS, Cervisia, SlickEdit CVS plugin
- Araxis Merge, SlickEdit, VimDiff used for merging From May 2006 to August 2007 (1 year 4 months) Application Developer Specialist @ - Provide design artifacts for a department application development framework
- Write optimized, documented, maintainable code for assigned subsystems
- Translate and optimize legacy code to meet performance and scalability requirements
- Document assigned subsystems from both code architecture and usage guidelines standpoints
- Ensure code artifacts align with all department policies and procedures
- Provide training and support for assigned subsystems
- Work with agile processes
- Test driven development utilizing Nunit, continuous integration utilizing CruiseControl.NET, pair programming, code refactoring
- Work with multiple languages to complete assigned deliverables
- Visual Basic.NET, C#, Java, HTML, XML, SQL
- Utilize various DBMS interfaces to communicate with data repositories
- Create and maintain an automated build process
- Work with source control programs from both GUI and command line
- Evaluate new products and provide recommendations on their use From August 2004 to May 2006 (1 year 10 months) Application Developer Specialist @ - Provide design artifacts for a department application development framework
- Write optimized, documented, maintainable code for assigned subsystems
- Translate and optimize legacy code to meet performance and scalability requirements
- Document assigned subsystems from both code architecture and usage guidelines standpoints
- Ensure code artifacts align with all department policies and procedures
- Provide training and support for assigned subsystems
- Work with agile processes
- Test driven development utilizing Nunit, continuous integration utilizing CruiseControl.NET, pair programming, code refactoring
- Work with multiple languages to complete assigned deliverables
- Visual Basic.NET, C#, Java, HTML, XML, SQL
- Utilize various DBMS interfaces to communicate with data repositories
- Create and maintain an automated build process
- Work with source control programs from both GUI and command line
- Evaluate new products and provide recommendations on their use From 2004 to 2006 (2 years)
Master of Science (M.S.), Computer Science @ Georgia Institute of Technology From 2014 to 2017 MS, Computer Graphics and Animation, Developer concentration @ DePaul University From 2004 to 2007 BS, Computer Science @ Iowa State University From 1999 to 2003 Matt Billock is skilled in: Ruby, C#, C, C++, Agile Methodologies, Java, Python, Object Oriented Design, SQL, XML, JavaScript, Software Design, Software Engineering, Programming, Software Development, Git, Visual Studio, Web Applications, Databases, Perl