Scroll To View More
Michael Truog, Erlang Developer in Seattle, WA, United States
Michael Truog

Erlang Developer in Seattle, WA, 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

  • Nd FORGE
    Python, C++, Erlang/OTP, PostgreSQL, CloudI, AWS
  • Exponential
    C, JSON, Linux, Solaris, cmake, Real-Time-Bidding
  • Samvia
    Erlang/OTP, Objective C, PostgreSQL, AWS, DynamoDB, APNS, SNS, JSON...

Experience

  • Linux, 15 years
  • C++, 15 years
  • Distributed Systems, 15 years
  • Python, 12 years
  • Erlang, 9 years
  • Java, 7 years
  • Ruby, 6 years
  • JavaScript, 3 years
Seattle, WA, United States

Availability

Part-time

Preferred Environment

Linux, Python, C++, Erlang, Java, Go, Git

The most amazing...

...software I've developed is CloudI, an implementation of cloud functionality for polyglot programming written in Erlang.

Employment

  • Founder

    2012 - PRESENT
    Nd FORGE
    • Consulted on the creation of reliable distributed systems.
    • Developed and maintained cloud technology as open source R&D.
    Technologies: Python, C++, Erlang/OTP, PostgreSQL, CloudI, AWS
  • Senior Software Engineer

    2017 - 2017
    Exponential
    • Eliminated more than 10 memory leaks in the core source code library and fixed race conditions related to the memory leak checker's fiber use.
    • Added JSON integration into more than 20 modules for runtime type introspection to aid debugging.
    • Added the concurrent initialization system.
    • Added a minimal testing framework with backtraces using macros for simple reuse. Used the testing framework to verify two algorithms and migrate all use to the newer algorithm.
    • Developed ad serving C source code for efficient real-time production use with a very specific style guide.
    Technologies: C, JSON, Linux, Solaris, cmake, Real-Time-Bidding
  • Senior Software Engineer

    2015 - 2016
    Samvia
    • Did all back-end server development of the Timeshake iOS app for real-time presence matchmaking with voice communication.
    • Created a matchmaking test iOS client and regression tests and managed the dev/beta operations tasks.
    • Added monitoring (Graphite, OpenTSDB, SNMP, StatsD) integration to CloudI.
    Technologies: Erlang/OTP, Objective C, PostgreSQL, AWS, DynamoDB, APNS, SNS, JSON, MessagePack, CloudI
  • Senior Software Engineer

    2015 - 2015
    Adroll
    • Created a global deploy/rollback system for weekly production deployments of Real-Time Bidding (RTB) servers.
    • Python, Erlang and bash development with AWS/EC2 to create a dependable workflow for releasing source code.
    • Automated a complex release process that would previously take more than 8 hours when done manually.
    Technologies: Erlang/OTP, Python, Bash, AWS, EC2, Real-Time-Bidding
  • Senior Software Engineer

    2013 - 2014
    Ubiquiti Networks
    • Developed CloudI source code and provided CloudI integration support.
    • Created CloudI API implementations in JavaScript, Perl, and PHP.
    • Added CloudI Services for Riak and OAuth v1 integration.
    • Extended HTTP cowboy integration with web socket-related features and multipart handling.
    Technologies: Erlang/OTP, JavaScript, Perl, PHP, CloudI
  • Senior Software Engineer

    2013 - 2013
    Voalte
    • Developed database integration and schema based on legacy system limitations.
    • Created an authentication server with database objects using BossDB (from ChicagoBoss).
    • Used PostgreSQL to create a fourth normal form schema with async presence notifications.
    Technologies: Erlang/OTP, PostgreSQL, Ejabberd
  • Senior Software Engineer

    2011 - 2013
    Jana
    • 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.
    • Created an automated regression/integration testing framework and load-tested with Tsung.
    Technologies: Python, CouchDB, Gunicorn, Eventlet, Tornado, Tsung
  • Senior Software Engineer

    2010 - 2011
    SiXiTS
    • Developed a Scala-based MMOG server. The server was used for the Facebook/Android game Babies Everywhere.
    • Created a quest system (known as Activities) with extensive usage of MongoDB.
    • Created the item state machine representation used for all stateful in-game items.
    Technologies: Scala, JSON, MongoDB, MySQL, Struts2, Tomcat, FTL
  • Principal IT Architect

    2009 - 2010
    E*Trade
    • Developed a C and Erlang server to replace installations of Oracle Tuxedo.
    • Improved scalability by eliminating global state and added robust timeout/error handling.
    • Utilized OTP behaviors and best-practices in development to create a minimal amount of source code that is easy to maintain.
    Technologies: C, Erlang/OTP
  • Senior Software Engineer

    2008 - 2009
    Nokia
    • Created an integration-testing framework for validating two separate XMPP servers to determine compatibility problems.
    • Developed Erlang XMPP server code to provide features found in a legacy XMPP server. Modifications made the transition transparent for legacy clients by ensuring protocol compatibility.
    Technologies: C++, Log4cxx, CPPUnit, Boost::asio, Iksemel, Erlang/OTP, ejabberd, Tsung
  • Co-founder

    2005 - 2009
    PortfolioWatcher, LLC
    • Created an internet startup 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.
    • Created PreferredSearch, an open-source Python web scraper that utilized Qt, SQLite, PyParsing, libcurl, Psyco, and Py2exe to show preferred stock yield and price data after processing information from both QuantumOnline.com and Yahoo.com. PreferredSearch required only minimal maintenance after its creation for more than 10 years (2005-09-22 until 2017-11-01).
    Technologies: PHP, Perl, MySQL, Python, Qt, Qwt, Curl, SQLite, PyParsing, Libcurl
  • Senior Software Engineer

    2007 - 2008
    Sony Pictures Imageworks
    • Developed bug fixes and features for an image and movie viewer using C++, Python, and Boost. The viewer has remote syncing capabilities as a server or client and is a subscriber to digital asset information through SOAP RPC. The viewer is used in India and Los Angeles throughout the pipeline, from animators to directors.
    • Modified the viewer 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.
    Technologies: C++, Python, OpenGL, PyQt, Boost, PIL, Py2exe
  • Platform & Server Core Software Engineer

    2006 - 2007
    Perpetual Entertainment
    • Led the development of the C++ platform middleware (PEPSDK). Coordinated many features and made protocol additions by making the necessary changes within the PEPSDK, game server/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++, Boost, XMPP, JMS
  • Software Engineer

    2002 - 2005
    Signature Research, Inc.
    • 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, developed with C++, Boost, MPI, pthreads, and UML.
    • 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 a SGI with IRIS GL and Fortran 77 to Linux with OpenGL and C. Exceeded previous polygon limitations and was approximately 6 times faster when using hardware acceleration.
    • 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 nine times faster to import MUSES thermal signature files through a more efficient algorithm that used caching and a dynamic lookup.
    Technologies: C++, Boost, MPI, UML, GDB, ElectricFence, TotalView, Purify, OpenGL, C

Experience

  • CloudI: A Cloud at the Lowest Level (Development)
    https://cloudi.org

    CloudI is an open-source private cloud computing framework for efficient, scalable, and stable soft-real-time 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

    Java, Ruby, C, Erlang, Python, C++, SQL, Bash, Go, JavaScript, OCaml, Scala, Haskell, Perl, PHP
  • Platforms

    Linux
  • Other

    Distributed Systems
  • Storage

    PostgreSQL, AWS DynamoDB

Education

  • Bachelor's degree in Computer Science
    1998 - 2002
    Michigan Technological University - Houghton, MI
I really like this profile
Share it with others