Recruiters: Please note that I live in Denver and like it that way. I'm not interested in moving or traveling elsewhere. Although I appreciate your interest, I'd rather not hear from you if the job requires that. Thanks!

(last updated 02.04.2017)

Michael A. Thomas

mike_thomas@yahoo.com

Phone: 303-221-6685 (h)
Phone: 303-229-7980 (m)

Objective

A senior-level (but still very hands-on) position with a company that desires a highly creative technical leader with a track record of making teams more effective.

Skills, Technologies, and Tools

Perhaps most importantly, I am an unusually effective (for a techie, at least) written and verbal communicator. I communicate well with all levels of business and end users, verbally, in writing, and graphically. I lead by example, and am constantly improving productivity by identifying, and implementing, pragmatic processes and technologies.

I also offer expertise in the following areas:

aws certified solutions architect, developer, sysops administrator - associate
AreaExperience
LanguagesJava, Groovy, Javascript, Ruby
WebHTML, CSS, Javascript, JSF, JQuery, Underscore, Dojo
ServerTomcat, Glassfish 4, WebLogic (8.1. certified)
Alternatives such as Ruby on Rails, Meteor
Libraries & FrameworksJava EE 7, Spring, Hibernate, Quartz, Drools, Camel, many others
DatabaseOracle, MySql
OSLong-time *nix user, administrator "light"
BuildsMaven, Ant, Gradle, Jenkins, Hudson, Cruise Control
DevOpsVagrant, Chef, Packer
Cloud Amazon Web Services (AWS): VPC, EC2, RDS, CloudFormation, OpsWorks, SQS, ELB, ElastiCache etc.
Soft skillsMentorship, presentations, technical writing
ProcessAgile: Scrum, XP, TDD
TestingJUnit, EasyMock, PowerMock, Fitnesse, RSpec, Jasmine
ModelingUML and data modeling
Source Code ControlGit, Subversion, CVS, many others

Experience

Predictive Logic

(06/2013 ~ current)

Tech lead and architect for a rewrite of the company's successful automated underwriting system. The rewrite involves creating a highly decoupled collection of micro-services communicating mainly via message queues (ActiveMQ), and using Apache Camel for routing, transformation, etc. Deployed locally using Vagrant and Chef, and integration, test, and production in AWS.

Was instrumental in championing, and implementing, the company's move to the cloud (AWS). Based on my research, recommendations, and DevOps work, we successfully used AWS OpsWorks and CloudFormation as automated deployment platforms using a combination of open source and locally-developed Chef cookbooks and Maven plugins.

Technologies used: Java EE 7, JPA, JSF, Drools, PrimeFaces, Maven, Git, Camel, ActiveMQ, MySql, Chef, Vagrant, Packer, AWS, JUnit, Mockito, Infinitest, Fitnesse

Digital Answers, LLC:    Panera Bread, Mountain Goat Software

(11/2012 ~ 05/2013)

Provided custom development services to Panera Bread and Mountain Goat Software.

For Panera Bread, developed a number of custom "plug-in" modules for a commercial enterprise data management package that Panera uses to manage corporate reference data. The plug-ins were written in Java Swing, and accessed an Oracle database to provide a variety of useful extensions to the package's basic functionality. Also helped to devise a "template-based" menu creation design, and the related implementation, which builds custom menus for delivery to POS devices in Panera Cafes. This solution completely avoided the costly duplication of effort in building menus that was previously required.

For Mountain Goat Software, developed a corporate dashboard using the Geckoboard SaaS platform. To provide data to the dashboard, developed custom JSON push (POST), and pull (GET), feeds using simple Ruby CGI scripts. These feeds used private JSON data extracts and third-party services as datasources.

Technologies used: Java, Swing, JDBC, Gradle, Git, JUnit, EasyMock, Oracle, Ruby, RSpec, JSON, CSS.

Pivotal Labs

(09/2012 ~ 11/2012)

Contributor on the Pivotal Tracker project. Paired with other Pivotal developers to complete stories in both the front-end and back-end aspects of Tracker.

Technologies used: JavaScript, Backbone.js, Handlebars.js, Underscore.js, JQuery, Jasmine, Ruby on Rails, RSpec, Git.

ePlan Services (formerly Fast401k.com, now a Paychex company)

(02/2004 ~ 10/2012)

Recommendations: coworker

"When we hired Mike at ePlan, we were looking for the best architect in Colorado and I think we got one.

When Mike came in, we had a large legacy code base that didn't follow specific architecture. Today we got most of that code moved to a well-layered architecture. Over last several years Mike led the team to achieve technical excellence by making the right technology choices and guiding the team in adopting them. Mike also embraced agile software development practices and strived for simple designs and collaborative decision-making. Mike stays on top of technological developments, yet suggests simple and effective solutions. This is very important for a small and growing company like ePlan. Mike is an asset to ePlan and I can't imagine the team without him."

--Nanda Lankalapalli

vp of engineering

"Mike came into a situation with a challenging, fairly buggy Java codebase. He was tasked with figuring out how we could migrate this large application from one architecture to another to support the requirements of this growing business. His ideas were instrumental to the success of the business."

--Mike Cohn

co-founder

"I had the pleasure of working with Mike over the past 8+ years, whereby his knowledge and experience aided us greatly in the ongoing development of our SaaS platform. Mike was an invaluable individual contributor and outstanding leader for our development team, who I would welcome the opportunity to work with again."

--Mark Gutrich

co-founder

"Mike was that rare colleague who understands the priorities of the business, holds the respect of his team, and is also a top-performer individually. Companies only get a handful of these types of people, we count ourselves lucky to work with Mike for over 8 years. A team player and quiet leader, Mike is a value to any project or team with whom he works."

--Dan Gutrich

Lead developer/architect, with responsibility for the company's 401(k) record keeping and plan operations system, from the UI through to the details of the back-end services and third-party interfaces I was a founding member of the Scrum team formed in late 2003, and originally managed by Mike Cohn. Responsibilities and achievements include:

  • Mentorship of the (relatively senior) development team in development best practices, OO design, design patterns, J2EE and general application architecture, component-development, site design, developer testing, etc.
  • A program of continuous improvement for the Fast401k system, which had a poor architecture, and generally low-quality, unmaintainable code. To achieve this, I:
    • Defined a properly layered and modularized architecture for new code added to the system.
    • Devised techniques to allow legacy code and new code to work together under the same application without excessive coupling (see my article on Strangling Legacy Code).
    • Introduced or championed development practices and tools such as Test Driven Development, Domain Driven Design, etc.
    • Led on developer testing techniques. During my tenure the suite of JUnit tests increased from 20+ to 6,000+.
  • Leadership of the library/framework selection process. Under my guidance the team adopted and mastered the Spring framework for web MVC, back-end, and batch development; Hibernate, Groovy, EasyMock, Quartz, Dojo Toolkit and many other development tools and libraries.
  • The creation of an all-new attractive and feature-packed UI for 401(k) plan administrators using HTML, CSS, Javascript, and the Dojo Toolkit.
  • Technical oversight (and hands-on development) of many new or rewritten system features including: a higher-performance fee asset-based fee processing framework, annual compliance testing, payroll contribution entry and processing, electronically-signed loans, distributions, and plan documents, and the implementation of an automated, scheduled, batch trading system.
  • Applying component-based development concepts that save development time and increase consistency. Examples:
    • A set of web components that give a common look and feel to end-user requests for financial transactions such as loans and distributions. New such requests are assembled from these components in a minimum of time compared to prior approaches.
    • UI and back-end components to collect electronic signatures on documents and transaction requests.
  • Built a custom Quartz job-management UI, and adapters to manage asynchronous processes in the system: job overview, job detail, add job trigger
    jobs overview
    job detail
    add trigger
  • Created a document-generation framework with Windward Reports at its core. The framework provides centralized configuration and creation of dynamic plan document PDFs. The design of this framework allows plan documents to be delivered separately, or aggregated into larger compound documents, all via configuration.
  • Performance tuning as the need arose, using various profiling tools.
  • Used Ant to achieve automated configuration of the web application for differing deployment environments, branded CSS generation, code coverage reporting, etc.

Technologies used: Tomcat 5.x, Glassfish Web Server, Java, Groovy, J2EE, Spring Framework, Velocity, HTML, CSS, Javascript, Dojo Toolkit, Hibernate, Quartz, Oracle, Windward Reports, JUnit, EasyMock, Fitnesse, Ant, Emma, Korn Shell, Ruby.

BEA Systems

(11/2001 ~ 02/2004)

Recommendations: manager

"Mike was simply one of the best developers I have ever worked with. He has a great mind for detail and is very competent. He also has a strong ability to execute so Mike's projects get done. I looked to Mike to provide a technical leadership role on our team based on his years of experience and his love of software development. He acted as a mentor to our junior developers and really helped to make the department stronger.

I'm a believer that a top performer can make a huge difference on a team and Mike is one of those people. I'd hire Mike again any chance I got."

--David Miller

Acted as a lead developer for the MyBEA enterprise infrastructure team, which provided frameworks and services for the MyBEA suite of "member" applications (e.g., eSupport, Dev2Dev, etc.). Responsibilities and achievements include:

  • Designed the MyBEA cluster architecture, which spanned three WebLogic domains, offering high-availability for applications and services on the MyBEA platform.
  • Designed, developed, and deployed a single sign-on (SSO) framework for MyBEA member applications. The framework was a more pluggable version of the old framework which makes fewer assumptions about a given application's design, while at the same time centralizing control of the main SSO algorithm.
  • Quality evangelist for our deliverables, including not only code correctness and performance, but testing, and documentation for our end users.
  • Performance tuning of infrastructure services using JProbe and OptimizeIt.
  • Mentorship of other staff on development practices, unit testing, Unix, and BEA's development environment.
  • Introduced JUnit as a replacement for proprietary testing harnesses.

Technologies used: WebLogic Server (6.1, 8.1), WebLogic Portal 4.0, Java, J2EE, Oracle, JUnit, Ant, Together/J, Korn Shell, Ruby.

Digital Answers, LLC:    Oppenheimer Funds

(12/2000 ~ 09/2001)

Consultant and Lead Developer on the "Portfolio Builder" project at Oppenheimer Funds. Contributions include:

  • The design and implementation of a financial performance "calculator" component. The calculator produced total return and internal rate of return figures for multiple timeframes for a given portfolio. The return figures were included on paper and web-based quarterly investor reports.
  • Performance tuning using JProbe. My work resulted in a roughly 50% improvement in responsiveness of the application to online queries, and brought the application well into conformance with established SLAs.
  • The design and overall architecture of the statements-generation subsystem. I pushed back on a very over-architected solution, and implemented a simpler and better-performing approach.
  • The design and implementation of a multithreaded batch "driver" for statements production (which, due to intensive JUnit testing, had zero defects reported in test and production).
  • Consultation and mentorship on general object-oriented design and WebLogic Server architectural approaches.
  • The development of an automated build process using Ant

Technologies used: WebLogic Server, Sybase, Java, J2EE, JUnit, JProbe, Ant, Together/J, Korn Shell, Windows CMD shell.

Qwest Communications

(6/1999 ~ 12/2000)

Recommendations: manager

"In the first few months at Qwest Mike developed an application administration module used to maintain user and work routing information. Mike recognized and took an opportunity to make the module based on a set of framework classes he created. He also recognized that the framework could be used to help other applications evolve quickly...The framework represents a conservative estimate of 78% productivity improvement for this kind of development work".

...

It is easy for me to say Mike's work paid his salary and then some in terms of what he saved the company.

...

There is an additional and more important side effect of Mike's time at Qwest. His example inspired a change in the development culture in our group. Developers now spend more time and effort trying to design efficient and correct solutions than they did before.

--Roger Burnett

manager

"Mike Thomas makes everyone around him a better engineer. I can think of no higher compliment. Mike raises everyone's game just by being who he is. He introduce and facilitated brown bag lunches to discuss and review books, technologies, trends ... He introduced new technologies into the team, not because they were cool, but because they solved a problem efficiently and effectively. I have been trying to hire Mike again for the last 10 years. And I will keep trying for the next 10 years."

--Paul Karsten

coworker

"I just wanted to say thank you for everything you have brought to our team. I know that my understanding of Java and OO development has grown at a much more significant pace than it would have without your input."

--personal correspondence

coworker

"As you know, prior to your arrival our development team was in disarray. Instead of joining the other members who complained, you decided to take our effort to a higher level. Your leadership and experience, technically and otherwise, has made us better developers and our product a better product."

--personal correspondence

Architect and lead developer for the Work Delivery System (WDS) team. Involved in all major technical decisions that affected the team.

My major accomplishment on the WDS team was to conceive of, sell to management, develop, and deploy two frameworks:

  • a domain-specific Web framework that allowed us to move away from a troublesome "fat client" approach to a far easier to develop and deploy web-based approach.
  • an external system integration framework

In particular, the Web framework was estimated by management to reduce GUI development time by two-thirds. We no longer had to deploy a Java client application, which had been a source of many headaches. Our applications, which previously crashed almost daily, became true 24x7 applications. Our users were thrilled with the browser version of the applications.

Technologies used: WebLogic Server, Java, J2EE, TopLink OO/relational mapping, Oracle, Together/J, RMI.

BoldTech Systems

(12/98 ~ 06/99)

Played an architect role on a number of projects:

  • Co-architect for a Vitria BusinessWare-enabled pilot project at a CLEC. Developed Java framework to non-intrusively detect changes in database tables in order to feed BusinessWare connectors.
  • Contributed to a pilot project for a major telecommunications provider using BusinessWare. My contribution consisted of the development of a "connector" to a source system in order to control batch processing.
  • Designed and developed a high-level wrapper library for JDBC. The library provided actions such as the insertion of an entire result set from one database table into another table in a different database, and greatly enhanced the productivity of the team for both of the above projects.

Technologies used: Vitria BusinessWare, Java, SQL Server, Oracle, and Microsoft Access.

Digital Answers, LLC:   FirstPlus Financial

(08/1998 ~ 12/1998)

Provided consulting services directly to the CIO, including organizational analysis, development process improvement, and the architectural review of a multi-tiered Java/CORBA-based application that was nearing completion.

Mirim, LLC

(05/1998 ~ 7/1998)

Held architect position in this accounting start-up. Responsibilities included:

  • Identification of appropriate development and deployment technologies
  • Mentorship of engineering staff in object-oriented analysis and design techniques using UML
  • Ownership of the enterprise object model and architectural models

Ernst & Young, LLP

(05/1993 ~ 05/1998)

Recommendations: manager

"Michael is one of the best technical architects with whom I have worked. He grasps highly technical concepts rapidly, understands how to embody them in software and delivers high-quality code and designs."

--James Taylor

coworker

"Mike and I worked together at EDS from 86-93 and then again at Ernst & Young from 94-97. We have remained in touch ever since. Though its been a decade since we've worked together, there are certain qualities about a person you can feel confident haven't changed. I say that to set up a recommendation for a shared work experience that's now 10 years in the past.

Mike is a quick study with new concepts; whether these concepts are new domains or domain facets, new technologies, or new tools. He has the ability to quickly wrap his head around these things and find the most effective path to apply them. He is a very clear thinker. So the above hints at great design and its also true that Mike writes great code. He has great attention to detail and demands perfection in all that he does. As such, his code is well-considered, readable, and as robust as is required.

Mike is also an interesting, multi-dimensional guy; having a variety of hobbies and excelling at each. When you are around Mike, you can't help but be inspired by his excellence on the job and his excellence in life otherwise."

--Bill Eisenhauer

counselee

"For all the jokes and very sarcastic remarks I make about my progress up the E&Y ladder, I know that I couldn't have done anything without a lot of guidance and assistance and PR and I appreciate your contribution to that more than you know. I know all of my future counselors will pale pathetically in comparison."

--personal correspondence

Lead developer on many high-visibility internal projects:

  • Architect, designer, and developer for a large ($10M) internal development effort to develop software products to automate the firm's own management consulting processes.
  • Designer and developer of the firm's first web-enabled methodology deployment mechanism.
  • Technical lead and developer for many projects centered around Navigator and Fusion, the firm's methodology and toolset, and owner/architect of the internally-developed application framework upon which the toolset was built.

Electronic Data Systems (EDS)

(01/1986 ~ 05/1993)

Lead developer on a large variety of projects on many platforms, including:

  • The first Windows-based, object-oriented, C++ system developed by my group.
  • Numerous projects on large mainframe Medicaid claims processing systems.

Published Articles

Presentations/Appearances

Site Meter