miker -at- miker -dot- org • 508-579-4478
I am a software leader with 12 years experience managing and growing cloud platforms built in a wide array of languages, including Java, Scala, C#, Python and Ruby.
I am active proponent of building scalable, well tested, service oriented architectures. I have led the development numerous platforms over my career, in a variety of languages ranging from the terrible (PHP 5) to the sublime (Scala). I am a champion for moving quickly and smartly. I have taken multiple products from slow, buggy, waterfall releases to fast, agile, daily releases.
My personal development projects include designing and building a new, self-hosted LLVM-based, purely functional, strongly and statically typed programming language.
I have deep and broad experience designing web-scale commercial applications. While at SmarterTravel I worked with the product management team to develop the business plan for the development of a new e-commerce product that became Tingo.com. As the engineering leader of Tingo, I investigated a wide variety of platforms before settling on a bespoke Java-based microservice architecture using MySQL as a backing store. Though the Java of that era was not a very pleasant language, the unparalleled scalability and superior tooling of the JVM provided a more then fair tradeoff.
During my time as the owner of Leaf’s platform teams, I evolved the pre-existing proof-of-concept into a robust, scalable and high-performance application. I developed Leaf’s existing SQL Server backed, .NET SOAP APIs into a distributed Scala platform running both in the cloud on AWS and on our custom Android tablets. Our partner APIs were a REST and RPC hybrid. Leaf’s platform maintained consistency using a derivative of the Paxos consensus protocol called Raft to replicate our immutable Akka-persistence log (stored in PostgreSQL and SQLite) across devices and clouds.
I have been a long time advocate of non-dogmatic agile engineering. I have always pushed my teams to be a fast as possible, using whatever combination of agile processes works best for us, borrowing the best idea from Extreme Programing, Scrum and Kanban. My experience has shown me that there are only three basic requirements for a good engineering team: a gold master so we can always release code; extensive easy-to-run automated tests, so we can ensure the master is gold; and one-click deployments so we can reliably and simply get our changes out into the world.
I would be happy to discus my production experience and exposure to: Ruby, Perl, Python, Maven, SBT, Gradle, Jenkins, Git, Mecurial, SVN, Apache, Tomcat, Jetty and Puppet.
I am an active participant on GitHub. Besides my many personal projects, I have contributed DTS → Dolby Digital audio transcoding to the MacOS X version of Kodi (formerly XMBC). I also authored the akka-persistence-android plugin for Akka.
TripAdvisor Vacation Rentals, 2015 – 2016
Skills Used: Java, Python, Gradle, Jetty, Mecurial, MySQL, SQL Server, TestNG, Jmeter
Overview: Principal Engineer responsible for porting the Vacation Rentals SEM bidding system to the core TripAdvisor SEM system. Also responsible for migrating legacy FlipKey property manager system from Python to new Java platform.
Challenges: Both migrations entailed keeping seamless compatibility with existing, undocumented processes. The PM system migration required zero downtime while migrating accounts to a new master database. Due to poor management decisions, we also had to ensure that billing worked perfectly the first time in the new system, as there was no provision allowed for backwards compatibility.
Technical Lead, Platform Engineering
Leaf Holdings, 2013 – 2015
Skills Used: Scala, C#, .NET, SBT, Gradle, Android, Git, MySQL, PostgreSQL, SQL Server, Akka, SBT, Scrum, Kanban, AWS, ScalaTest, Jmeter
Overview: Lead both the Android and API platform teams, enhancing the existing proof-of-concept to scale to 100k transactions per second. Hire up both teams to support Leaf’s growing size. Manage the offshore team in Istanbul. Direct Leaf’s process, working with PMs to build a roadmap and plan development milestones.
Challenges: Leaf’s clients (mostly restaurants) had remarkably poor Internet connections. The main obstacle we overcame was building a distributed, eventually consistent system that could handle network splits, so when a server with a tablet went out of Wi-Fi range, they could still process orders that would nicely merge with the rest of the system when they came back in range.
Manager Software Development
Skills Used: Java, Maven, Scrum, JUnit
Overview: Manage the newly formed Boston engineering team and continue to grow it. Handle developer outreach in Boston to build StubHub’s engineering brand.
Challenges: Working with StubHub’s very large, very legacy codebases. Implementing modern engineering best practices in a traditional, slow moving waterfall organization.
Technical Lead and Engineering Manager
Smarter Travel Media, 2009 – 2013
Skills Used: Java, PHP, Ruby, Symfony, Maven, MySQL, Memcache, Tomcat, Apache, Puppet, SVN, JUnit
Overview: Build and lead the Tingo team, creating an entirely new product. Hire engineers across the STM organization. Oversee technical due diligence for all of STM’s engineering groups. Design and manage e-commerce platform infrastructure using DevOps principals. Originally hired to fix the broken BBDN ad network.
Challenges: Balancing product management’s desire for new features and to move quickly with engineering’s need to tackle technical debt.
Cisco Systems (formerly WebEx and Intranets.com), 2005 – 2009
Skills Used: Java, C#, .NET, SQL Server, Oracle, Maven, JUnit
Overview: Build a user definable database system that could also, via APIs, support the development of an appstore ecosystem for Cisco’s web-based products.
Challenges: Growing from a small startup through two acquisitions and becoming the centerpiece of Cisco’s web-based offerings. Implementing good, fast code in an environment driven purely by business decisions, not technical suitability.
Blue River Systems, 2004 – 2005
Skills Used: PHP, MySQL, DB2
Overview: Maintain a Caribbean medical school information system, and expand it to become multi-tenant.
Challenges: Replicating data between the US and the Caribbean via a slow satellite link.
Worcester Polytechnic Institute (WPI), 2002
Bachelor of Science, Computer Science
Bachelor of Science, Drama Theatre