Michael Truog

Michael Truog

Seattle, United States
Hire Michael
Scroll To View More
Hire the top 3% of freelance developers
Michael Truog

Michael Truog

Seattle, United States
Member since January 28, 2011
Michael is a top architect, engineer, developer, and entrepreneur with a proven ability to develop efficient, scalable, and fault-tolerant server solutions for complex problems. He has extensive experience and skills with all levels of software and architecture.
Michael is now available for hire
Portfolio
  • Jana
    Python, CouchDB, gunicorn, eventlet, tornado, Tsung
  • SiXiTS
    Scala, JSON, MongoDB, MySQL, Struts2, Tomcat, FTL
  • E*Trade
    ANSI C, Erlang
Experience
  • C++, 12 years
  • Python, 8 years
  • Erlang, 5 years
  • Linux, 13 years
Seattle, United States
Availability
Part-time
Preferred Environment
Linux, Erlang, Python, C++, Scala/Java, git
The most amazing...
...software I've developed is CloudI, an implementation of cloud functionality for polyglot programming written in Erlang.
Employment
  • Senior Software Engineer
    Jana
    2011 - 2013
    • Created a reusable scalable back-end server for coordinating both surveys and sweepstakes for mobile phone users within emerging markets for http://mcent.com.
    • Developed the core database interfaces for CouchDB data and back-end service APIs.
    • Used Python threads, gunicorn, eventlet, and tornado to create reusable software that grew as required without any rewrites. Created the core business logic for the administration interface, surveys, sweepstakes, and authentication.
    Technologies: Python, CouchDB, gunicorn, eventlet, tornado, Tsung
  • Senior Software Engineer
    SiXiTS
    2010 - 2011
    • Performed Scala MMOG Server development with JSON, MongoDB, MySQL, Struts2, Tomcat, and FTL.
    • Server currently used for the Facebook game Babies Everywhere (http://apps.facebook.com/babieseverywhere).
    • Created quest system (known as Activities) with extensive usage of MongoDB.
    • Handled online payment integration with reliable postback handling.
    • Developed item state machine representation used for all stateful in-game items.
    • Created a JSON update mechanism for pushing data model updates to client.
    • Created a digital asset migration system for deploying newer content to other instances.
    Technologies: Scala, JSON, MongoDB, MySQL, Struts2, Tomcat, FTL
  • Principal IT Architect
    E*Trade
    2009 - 2010
    • Developed an ANSI C and Erlang server to replace installations of BEA Tuxedo.
    • Improved scalability by eliminating global state and added robust timeout/error handling.
    • Conformed to common Erlang development techniques.
    Technologies: ANSI C, Erlang
  • Senior Software Engineer
    Sony Pictures Imageworks
    2008 - 2009
    • Developed bug fixes and features for an image and movie viewer using C++, Python, and Boost.
    • Implemented remote syncing capabilities for viewer as server or client and subscribed viewer to digital asset information through SOAP RPC.
    • Created product used in India and Los Angeles throughout the pipeline, from animators to directors.
    • Modified to allow different resolutions and 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, successfully delivered within four days of request on both Linux and Windows using Python, PIL, and Py2exe. Tool later became part of Locus, a motion capture tracker system 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
  • Senior Software Engineer
    Nokia
    2008 - 2009
    • Created an integration-testing framework for validating separate XMPP servers to determine compatibility problems.
    • Developed Erlang XMPP server code to provide features found in a legacy XMPP server.
    • Ensured that Erlang server modifications made 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
  • Co-Founder
    PortfolioWatcher, LLC
    2005 - 2009
    • 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
  • Platform & Server Core Software Engineer
    Perpetual Entertainment
    2006 - 2007
    • Handled critical development tasks to enable sale of Platform/SDK to BioWare; Platform/SDK continues to be sold by PlayGrid.
    • Worked as lead developer for the C++ Platform middleware (PEPSDK), a vital cross-platform API that facilitated 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 protocol agnostic software.
    • 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++
  • Software Engineer
    Signature Research Inc.
    2002 - 2005
    • Developed a physics-based global illumination renderer and ray tracer for army test and evaluation programs.
    • Included three distributed systems that were cross-platform and multi-threaded.
    • Used an actor model that conserved memory and avoided global state.
    • 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, etc.
    • Performed all Linux debugging (with GDB, ElectricFence, TotalView, Purify).
    • Worked on the EOView project from conception to ship date.
    • Increased the efficiency of RenderView, a Windows physics-based ray tracer written in Visual C++, by at least ten 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. Resulting software was stable, cross-platform with dynamic memory allocation, exceeding previous polygon limitations and achieving a speedup of approximately 6x 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.
    • Implemented single improvement to achieve 9x speedup when importing MUSES thermal signature files through a more efficient algorithm that used caching and a dynamic lookup.
    • Planned, installed, and configured an eight 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
Experience
  • CloudI: A Cloud at the lowest level (Development)
    http://cloudi.org

    CloudI is an open-source private cloud computing framework for efficient, scalable, and stable soft-realtime event processing.

  • Modernizing Legacy Software: MUD Programming Using Erlang and CloudI (Publication)
    The need to adapt legacy code and systems to meet modern day performance and processing demands is widespread. This post provides a case study of the use of Erlang and CloudI to adapt legacy code, consisting of a decades-old collection of multi-user game software written in C, to the 21st century.
  • CloudI: Bringing Erlang's Fault-Tolerance to Polyglot Development (Publication)
    Clouds must be efficient to provide useful fault-tolerance and scalability, but they also must be easy to use. CloudI (pronounced "cloud-e" /klaʊdi/) is an open source cloud computing platform that is most closely related to the Platform as a Service (PaaS) clouds. CloudI differs in a few key ways, most importantly: software developers are not forced to use specific frameworks, slow hardware virtualization, or a particular operating system. By allowing cloud deployment to occur without virtualization, CloudI leaves development process and runtime performance unimpeded, while quality of service can be controlled with clear accountability.
Skills
  • Languages
    Python, Java, Ruby, C, Erlang, C++, Bash, Scala, UML, Regex, SQL
  • Platforms
    Linux
Education
  • Bachelor's degree in Computer Science
    Michigan Technological University - Houghton, MI
    1998 - 2002
Hire the top 3% of freelance developers
I really like this profile
Share it with others