Michael Truog, USA

Member since January 29, 2011

Python Erlang C++ Java Ruby C
SQL UML Regex Bash/Csh Scala

Top Architect/Engineer/Developer/Entrepreneur with proven ability to develop efficient, scalable, and fault-tolerant server solutions for complex problems. Extensive experience and skills with all levels of software and architecture as well as experience with all levels of participation from individual developer to technical/group lead.

Employment

2010 — 2011

SiXiTS, senior software engineer

  • Scala MMOG Server development with JSON, MongoDB, MySQL, Struts2, Tomcat, and FTL.
  • Server is currently used for the Facebook game Babies Everywhere. http://apps.facebook.com/babieseverywhere
  • Created the quest system (known as Activities) with extensive usage of MongoDB.
  • Created the online payment integration with reliable postback handling.
  • Created the item state machine representation used for all stateful in-game items.
  • Created a JSON update mechanism for pushing data model updates to the client.
  • Created a digital asset migration system for deploying newer content to other instances.
  • Technologies: Scala, JSON, MongoDB, MySQL, Struts2, Tomcat, FTL
2009 — 2010

E*Trade, principal IT architect

  • Developed an ANSI C and Erlang server to replace installations of BEA Tuxedo.
  • Modifications improved scalability by eliminating global state and added robust timeout/error handling.
  • All changes conform to common Erlang development techniques and make the system maintainable.
  • Technologies: ANSI C, Erlang
2008 — 2009

Nokia, senior software engineer

  • Created an integration-testing framework for validating two separate XMPP servers to determine compatibility problems.
  • Used C++, log4cxx, cppunit, boost::asio and iksemel.
  • Developed Erlang XMPP server code to provide features found in a legacy XMPP server.
  • The Erlang server modifications made the transition transparent to the legacy clients by ensuring protocol compatibility.
  • Created a Messaging Bridge for publishing data updates to internal web services.
  • Created an efficient accounting log system for tracking server utilization.
  • Automated Erlang server initialization code for cluster deployment and data replication.
  • Modified an Erlang Distributed Hash Table (DHT) implementation to provide fault-tolerant key timeouts for both the Java and Erlang API.
  • Certified for Erlang OTP development by Erlang Solutions, Ltd. (http://erlang-solutions.com/) after instruction from Jan Henry Nystrom.
  • Technologies: C++, log4cxx, cppunit, boost::asio, iksemel, Erlang
2005 — 2009

PortfolioWatcher, LLC, co-founder

  • Created an Internet start-up with a private investor to provide an investment tracking service using rule-based email alerts.
  • Used PHP, Perl, and MySQL to create automated portfolio management.
  • Developed a stock comparison program using Python, Qt, Qwt, curl, and SQLite for financial technical analysis acting as a subscriber to free daily financial price quotes over HTTP.
  • Technologies: PHP, Perl, MySQL, Python, Qt, Qwt, curl, SQLite
2007 — 2008

Sony Pictures Imageworks, senior software engineer

  • Developed bug fixes and features for an Image and Movie viewer using C++, Python, and Boost.
  • The viewer has remote synching capabilities as a server or client and is a subscriber to digital asset information through SOAP RPC.
  • Used in India and Los Angeles throughout the pipeline, from the Animators to the Directors.
  • Modified to allow different resolutions and different media types for remote sessions.
  • Added annotation features that improved various parts of the pipeline.
  • Added audio/video sync calibration feature that solved longstanding lip sync problems.
  • Created a reusable, cross-platform point placement tool for manually manipulating motion capture data.
  • Was required within 4 days and was delivered successfully on both Linux and Windows using Python, PIL, and Py2exe.
  • Later became part of Locus, a motion capture tracker system. Was used for the face of Dr. Manhattan in the film “Watchmen”.
  • Created a testing framework for cutlist generation to ensure data integrity with regression testing.
  • Maintained various C++ libraries, adding bug fixes for 64bit compilation, media formats, and business logic. Provided substitutes for a legacy libSpBase library to aid future code development.
  • Technologies: C++, Python, Boost, PIL, Py2exe
2006 — 2007

Perpetual Entertainment, platform & server core software engineer

  • Critical development tasks enabled the sale of the Platform/SDK to BioWare and the Platform/SDK continues to be sold by PlayGrid. (http://www.playgrid.com/)
  • Lead developer for the C++ Platform middleware (PEPSDK), a vital cross-platform API that facilitates the Platform as a N-tier architecture.
  • Coordinated many feature and protocol additions by making the necessary changes within the PEPSDK, game server and game client.
  • Developed the PepPublisher, a game server process used to report game content and persistence data to the Platform for real-time updates of a player’s progress within the online game.
  • Fixed many elusive multi-threading/distributed race conditions and deadlocks within the game server and PEPSDK to improve game server stability.
  • Created a socket connection thread pool that enforced a real-time Quality of Service with limited memory consumption for efficient XMPP chat communication.
  • Designed to be protocol agnostic.
  • Created a distributed integration-testing framework for game server and client functionality.
  • Added localization to PEPSDK API and data structures, including regex functionality.
  • Technologies: C++
2002 — 2005

Signature Research Inc., software engineer

  • Developed a physics-based global illumination renderer and ray tracer for army test and evaluation programs.
  • Included 3 distributed systems that were cross-platform and multi-threaded.
  • Used an actor model that conserved memory and avoided global state. Included C++, Boost, MPI, and UML.
  • Designed and implemented efficient object communication routines via message passing, distributed memory management with throttling, a spatial partitioning structure, a custom file based database used to manage intermediate results, utilized various design patterns, etc.
  • Performed all Linux debugging. Used gdb, ElectricFence, TotalView, Purify.
  • Worked on the project (EOView) from conception to ship date.
  • Increased the efficiency of RenderView, a Windows physics-based ray tracer written in Visual C++, by at least 10 times after researching, implementing, and testing a spatial partitioning algorithm.
  • Converted a legacy physics-based global illumination renderer that was written for the SGI with IRIS GL and Fortran 77 to Linux with OpenGL and C.
  • The result was a stable cross-platform version that was able to use dynamic memory allocation, exceed previous polygon limitations and was approximately 6 times faster when using hardware acceleration.
  • Maintained and improved PRIMUS, a Visual C++ Windows OpenGL 3D model viewer and conversion tool that aided in-house integration of two physics-based thermal signature prediction programs.
  • One improvement made it 9 times faster to import MUSES thermal signature files through a more efficient algorithm that used caching and a dynamic lookup.
  • Planned, installed, and configured an 8 node supercomputing diskless cluster for distributed development.
  • The High Performance Computer (HPC) was easily expanded to a total of 16 nodes.
  • Technologies: C++, Boost, MPI, UML, gdb, ElectricFence, TotalView, Purify, OpenGL, C

Skills

OS, Tools, Libraries

Ubuntu/Centos Linux, OSX, OpenBSD, Windows, git, subversion, cvs, Perforce, Source Off-Site, Boost, sockets, OpenGL, Qt, pthreads, MPI, OpenMP, MongoDB, Postgres, MySQL, SQLite, TokyoTyrant, memcached

Languages

C++/C, Erlang, Python, Scala, Java, Ruby, SQL, UML, regex, bash/csh

Paradigms

Cross-Platform, Publisher/Subscriber, Actor Model, Multi-Threaded, Distributed Systems, Remote Procedure Call (RPC), Parallel Programming

Education

1998 — 2002

Bachelors in Computer Science

Michigan Technological University - Houghton, MI