- Project Management
- User Interface Design
- Object Oriented Design
- Systems Design
- Web Site Design
- Database Design
- iPhone & iPad
- Xbox 360
- Boost C++ Libraries
- Infernal Engine
- Gamebryo Engine
- Win32 API
- Advanced C++
President, Couchworld Games Inc.
November 2007 - Present
In charge of day to day operations, long term planning, project development, and new product concepts.
Worked on Disney's Guilty Party, for Wideload Games, on the Wii running with the Infernal Game Engine. I worked to improved performance and appearance of the game at a low level. This included low level programming of the Wii GPU, and enhancing the Infernal Game Engine low level implementation including doing a complete rewrite of the base Infernal audio system.
Worked on Xbox 360 technology integration for Wideload Games in "Texas Cheat'em" and to help bring the game to release status. I integrated their game engine, backed by the Gamebryo Engine, with the Xbox 360 3D avatar system, online voice chat, leader-board tracking and display, game lobby implementation, and game matchmaking. The work included taking the project through release onto Xbox Live Arcade.
Full production of Hedronism, a permutation puzzle game for the iPhone. Leveraging the game framework of Shards the project constituted a short development cycle of three weeks. Most of which involved refactoring of the Shards game framework into a generic component for future projects.
Full product cycle for Shards, a puzzle and arcade game for the iPhone platform, from design to sales on the Apple App Store. Development included design adaptation for the iPhone, porting of the Irrlicht 3D engine, creation of game framework, and implementation of art and audio pipeline. The game is 98% C++ with a small portion of Objective-C to bridge between the iPhone APIs and the game engine. Much of the C++ code leverages Open Source Software and open APIs including the Irrlicht 3D engine, Boost C++ Libraries, OpenAL, and OpenGL.
President, Redshift Software, Inc.
November 2000 - Present
In charge of day to day operations, long term planning, project development, and new product concepts.
Complete development of version 2 of sales presentation for Marsh. The development of the new version was done in parallel to the Flash version and kept closely matched in functionality. In order to accommodate the expanded functionality and content I had to rewrite the base code to use entirely the CoreAnimation system as an animation component initialized from JSON descriptions. The expanded content necessitated dynamic memory management to load and unload animations and images on-demand.
Ported existing sales presentation, written in Flash, to the iPad device for Marsh. The existing interactive presentation runs on a large format 16/9 touch screen. To do the port involved re-designing the presentation to fit the 3/4 iPad aspect and doing various improvements now possible with the capabilities of the iPad.
Developed "MarketingStandees.com" e-commerce web site. The development included a full service design, site sopy, implementation, and deployment based on a customized X-cart system.
Redesigned and refactored user interface framework for financial analysis application. The new design, written using Visual Studio .NET 2003 and 2005, makes heavy use of advanced C++, MFC, and the Boost C++ libraries.
Worked on a game development tool for Midway Games. This internal tool, is a 3-D scene sequencing setup and manipulation program to help artists visually integrate the many small interaction sequences. The work entailed C++ programming with MFC and DirectX to display and manipulate the various 3-D scenes.
Implemented, and deployed a PHP based personal web site for a Real Estate professional. The site, mariamorell.com, involved the design of the web pages, development of a web based administration back end, and artwork for the site. The site is based around a weblog presentation with additional data stored with an embedded relational database. This was a short four week development for the basic but complete site.
Web development for Follett Library Resources (www.flr.follett.com). Including both back end and front end development. The site uses both PHP and Perl with mod_perl backed by an Oracle 8i database.
Development of Gulo Solutions Web Content Management System (gulosolutions.com). This is a PHP based system backed by MySQL database. The system supports client editable content and a flexible structure to facilitate online content creation and maintenance.
Worked on development of the North Shore Live web site, www.northshorelive.org, with Gulo Solutions and refactoring of the Content Management System.
Contributor, Boost C++ Libraries
January 2003 - Present
Develop and maintain the Boost Jam, and Boost Build tools. Manage testing procedures, resources, and support programs. Maintain web site including development of new site design. Mentor for Google Summer of Code program since 2006. Participated as a member of the organizing committee for BoostCon'07 (Boost Libraries Conference).
Lead Software Engineer, Jellyvision Inc.
November 1998 - August 2001
Led the development of a one to four player party game based on a new concept. This included the design of the gameplay code, the programming of a large portion of the gameplay code, the programming of enhancements to some of the tools used to produce the game, and the continued enhancement of the base code.
Led the development of "You Don't Know Jack: The 5th Dementia", the 5th in the series of "You Don't Know Jack" titles. This involved a full cycle of development from prototype, through production, up to release of the game. I oversaw the overall programming design and programmed a large portion of the gameplay. Included in the programming was large additions and changes to the base code support. Also, I was responsible for managing the work of, at one point in the project, six programmers. The major innovation for this project was the addition of multiplayer networked gameplay over the Internet. The game was published for the 2000 Christmas sales season by Sierra Attractions®.
Supported the development of "Who Wants To Be a Millionaire" CD-ROM game both first and second editions, published by Disney Interactive®. This mostly consisted of supporting the base code libraries and engine used to drive the game. This support varied from simple debugging and fixing of the code, to expansion of the code to improve the very short development cycles of these two games.
Developed educational cross-platform game for distribution by Tom Snyder Productions. This was the educational version of "You Don't Know Jack", "That's A Fact: Jack! Read". I designed and implemented the basic Java infrastructure for programming the game play. And ported the Windows playback engine, written in C++ and used with JNI, to the MacintoshOS.
Lead Software Engineer, Institute for the Learning Sciences - Northwestern University
January 1994 - October 1998
Developed multimedia information system for the Environmental Protection Agency. This Win32 application is intended to run as a kiosk and makes use of QuickTime for video playback.
Developed multi-user generic data building tool for Knowledge University. The tool's intended use is to enter course structuring material that will be served to students through an HTML interface from a server with Java Servlets. It is a multithreaded tool using an ORACLE 7 server backend through JDBC.
Implemented role playing game in 100% Java. This included the design and implementation of a rule based engine to drive the game. Being a graphics oriented game I also developed a framework for the GUI, with fully graphical elements and double buffering. In addition I was responsible for the distribution of programming tasks within our programming team.
Developed multi-tier database connectivity for WWW based application for Learning Sciences Corporation. Implemented in 100% Java, the API layer provides a configurable multi-tier object wrapper to the backend relational database. Using Java RMI for the API improved the scalability to allow for mass distribution uses.
Implemented multimedia goal based learning system for the Environmental Protection Agency. Targeting the Win32 platform and written in Borland C++ 5, the simulation provided the user with a first person experience in a real life situation. Throughout this one year project I extended and improved our common Win32 GUI framework originally developed by me. We employed the use of the object oriented database "NeoAccess" to store some of the program's information.
Developed collaborative problem solving infrastructure for DARPA. Written in ACL Lisp on a Solaris 2.5 platform, the application provided a multi-user HTML interface. With it the users could collaborate in a common task from anywhere. It was built as a stand-alone UNIX application communicating with a Web server through IPC. It used as its backend database an ORACLE 7 server using OCI for the SQL communications.
Implemented WWW delivered mass user application for CBS. This was an implementation of a previous concept expanded to a mass user market. The "Virtual Clinton vs. Dole Debate" Web application is written in ACL Lisp and ANSI C running on Solaris 2.5. It included the use of CGI programs to handle HTTP requests and also the use of NeoAccess as the stand-alone database.
Implemented integrated help system with HTML interface for DARPA. This project included the difficult task of tightly integrating a proactive help system to an already existing X Windows application. We used socket IPC to observe the use of the application and generated contextual help in HTML.
Developed component technologies for access and display of object database. This cross-platform project for both Win32 and Mac OS entailed the design of highly portable database and GUI code. The components developed for this are still in use as a reusable code resource and is the basis for all C++ applications we build. It was written in C++ on Borland C++ 5 and Metrowerks C++.
Developed smart document delivery and filtering system for Ameritech. This project involved the use of a variety of applications to solve one problem, information overflow. Integrating a word processor (Word for Windows), a communications program (Crosstalk), and an SQL Server (ORACLE 7), we where able to produce a system that would deliver custom newsletters to individual employees.
Programmer, Motorola - Ballas Engineering
November 1993 - December 1993
Developed automation scripts for processing circuit design documents. Included preparation, translation, and transportation of the documents.
Programmer, ACCESS 2000 - Loyola University of Chicago
December 1991 - February 1992
Developed hardware interface software in multiple languages. It allows a programmer to control an input-output interface card that is connected to optical sensors and electric motors.
Teaching Assistant, Department of Energy Pre-Freshmen Enrichment Program - Loyola University of Chicago
June 1991 - August 1991
I taught students practical aspects of programming, individual and group work on small programming projects, and the basics of problem solving. My duties included design of the curriculum, preparation of course materials, and lecturing in both English and Spanish.