Mike Hutton, Developer in Rhode Island, United States
Mike is available for hire
Hire Mike

Mike Hutton

Verified Expert  in Engineering

Software Architecture Developer

Location
Rhode Island, United States
Toptal Member Since
May 27, 2015

Mike is a software architect and developer with over 25 years of experience developing large-scale mission-critical systems. He currently specializes in Java and J2EE development, C++ and C development, and embedded systems for the IoT. Also, he is an internationally recognized expert in the area of lottery gaming systems. Mike has been delivering solutions employing geographically diverse teams for the past 16 years.

Portfolio

AC Research, Ltd.
C#.NET WinForms, JavaScript, AngularJS, Yocto, C, C++, MySQL Clustering, MySQL...
GTECH Corporation
JavaScript, HTML, Java, Unix, C++, Architecture, Web App Design, Marketing Mix...
GTECH Corporation
Rational Unified Process (RUP), UML, C++, C, Software Architecture...

Experience

Availability

Part-time

Preferred Environment

Linux, Visual Studio, Eclipse, Windows, IntelliJ IDEA

The most amazing...

...online systems I've launched have been delivered to thousands of locations and millions of people.

Work Experience

President/CTO

1998 - PRESENT
AC Research, Ltd.
  • Led the design and development of a J2EE-based video lottery game server for the Chinese National Sports Lottery.
  • Architected and consulted on the design for a project to build a national account-based lottery gaming system for the China Sports Lottery.
  • Architected, designed, and developed a J2EE-based mobile gateway for lottery ticket sales for the Shanghai Welfare Lottery. The gateway enabled integration between internet-based mobile sales application providers and the lottery’s legacy central gaming server.
  • Architected and led the design and development of a J2EE-based internet medical survey system.
  • Developed advanced technology for next-generation telephone switching systems using J2EE application servers and Java technology for clients in the telecommunications industry.
  • Appointed as an expert witness for the plaintiff in the area of lottery technology to the High Court of Justice in the UK in relation to a successful lawsuit against British Telecom by an independent UK lottery operator.
  • Architected, developed, and led the design of a next-generation lottery POS terminal for Norsk Tipping AS. The POS terminal was one of the first to be based entirely on a PC platform (from IBM), and was implemented entirely in Java.
  • Provided a technology analysis and recommendation for Norsk Tipping AS related to the incorporation of advanced J2EE technology in their internet-based distribution channel.
  • Developed an innovative TCP proxy solution to overcome scalability issues with the Microsoft Windows Server 2008 Remote Access Service.
  • Provided consulting support for a California automaker related to a third-party provided JEE-based manufacturing automation system.
Technologies: C#.NET WinForms, JavaScript, AngularJS, Yocto, C, C++, MySQL Clustering, MySQL, Jetty, Java EE, Java, Software Architecture, Technical Leadership, Requirements Analysis

Principal Consultant – New Business Development

1996 - 1998
GTECH Corporation
  • Led an interdisciplinary team chartered with developing the overall strategy, business plan, marketing plan, and technology approach in support of GTECH’s entry into the internet gaming market.
  • Spearheaded a program to deliver multiple internet product prototypes, including a web-based lottery industry information service and a Java-based internet consumer wagering service.
  • Provided technology consulting to corporate due diligence activities related to partnerships and acquisitions.
  • Worked with corporate human resources to operate the company's university partnership and internship programs. Participating universities included MIT, the University of Chicago, and the Stevens Institute of Technology.
  • Researched, designed, and built original system prototypes to support potential non-lottery business opportunities.
Technologies: JavaScript, HTML, Java, Unix, C++, Architecture, Web App Design, Marketing Mix, Technical Leadership, Requirements Analysis

Director, Software Architecture Group

1995 - 1996
GTECH Corporation
  • Administrated an internal R&D and consulting group consisting of the company’s most senior engineering professionals.
  • Spearheaded a large-scale strategic research project for the purpose of developing a vision and architecture for the company’s next generation of on-line systems. Resulted in an innovative vision of the future, and a comprehensive technical specification, which became a reference guide for the company's ongoing product development.
  • Conducted research including pilot projects aimed at understanding the applicability of various new technologies, Introduced best practices and lessons learned into the mainline organization.
Technologies: Rational Unified Process (RUP), UML, C++, C, Software Architecture, Technical Leadership

Director, Software Communications Group

1993 - 1995
GTECH Corporation
  • Managed the organization responsible worldwide for the development, deployment, and maintenance of the communications software required to operate our customer's lottery POS networks.
  • Established the software communications organization as a formal function. Defined the group’s vision, mission, and charter. Performed the organizational design, work process definition, and staffing of the organization.
  • Coordinated the research, design, and timely delivery of the networking systems for the largest lottery system in the world for the UK national lottery.
Technologies: Architecture, Telecommunications, Fortran, Java, Management, Assembly, Embedded Systems, High Availability Disaster Recovery (HADR), Internationalization, Software Architecture, Technical Leadership

Senior Technical Consultant – Communications Systems Engineering

1989 - 1993
GTECH Corporation
  • Led the team charged with the development of the overall architecture for the company’s European communications systems. Delivered a set of concise technical specifications describing the architecture, interfaces, and protocols oft he system.
  • Conceived and managed a product development effort pioneering the use of inexpensive, off-the-shelf PC technology as the basis for the network interface front-ends for online systems. The completed project resulted in the reduction of the capital cost of deploying an Online/POS communications system by over 65 percent. Led the development of the software and worked with hardware vendors such as Intel and Emulex to design the underlying hardware.
Technologies: Requirements Analysis

New York City CIR COVID-19 Vaccination Program

As a senior member of the team responsible for maintaining the New York City citywide immunization registry (CIR), I was the principal engineer owning the build-out and ongoing management of the IT infrastructure and applications supporting the NYC SARS-COV-2 vaccines rollout in NYC.

This involved transforming the city's existing vaccination tracking and vaccine distribution infrastructure, which was originally developed to support tracking childhood vaccinations and the distribution of publicly funded childhood vaccines, to be able to support the logistics of ordering, receiving, storage, inventory management, and distribution of the SARS-COV-2 vaccines, along with tracking the administration of the vaccines to millions of adults in the NYC metropolitan area.

This was accomplished under intense public scrutiny in a constantly evolving clinical and administrative environment, where requirements changed daily.

The technical approach taken was to graft a small set of Spring Boot-based microservices onto the CIR's existing J2EE-based application systems, along with minimally invasive changes to the systems themselves. This allowed us to be extremely agile in adapting to the ever-changing requirements.

Architecture Consulting for an IoT Product (via Toptal)

Provided architecture and design consulting to an organization developing a cloud-based Internet of Things (IoT) product to monitor heavy equipment in the field. The system was based primarily on managed services leveraging the AWS IoT product suite. The client was facing a very tight delivery timeline for an MVP ship and required assistance getting it out the door.

EHR Integrations for a Large U.S. Health Insurance Company (via Toptal)

Developed standards-based (FHIR, CDS Hooks) and proprietary EHR integrations for a large health insurer using a Spring Boot microservice-based solution. The microservice was created from scratch based on the open-source specifications and subsequently supported successful integration testing with EHR partner organizations.

Azure Spring Boot Microservice (via Toptal)

A US-based multinational heavy equipment manufacturer was encountering performance and reliabilty issues with a Spring Boot REST microservice they were developing to serve equipment maintenance support data to their worldwide dealer network. The service was deployed as an Azure AppService inside a Tomcat container.

I joined the development team tasked with reviewing the microservice architecture and implementation with the aim of eliminating the problems. I identified and corrected defects in the coding design that were responsible for the majority of the reliability problems. I then developed a suite of JMeter tests that allowed us to pinpoint and correct the performance problems caused by both the microservice software itself along with the Azure AppService cloud deployment characteristics.

We successfully ameliorated the problems we identified and the service was able to reliably meet its performance requirements. It is now in production on the Azure cloud worldwide.

NYC Department of Health and Mental Hygiene – CIR

http://www1.nyc.gov/site/doh/providers/reporting-and-services/citywide-immunization-registry-cir.page
As a member of a small team of senior IT generalists, I was responsible for the support, maintenance, and enhancements to the IT infrastructure and applications supporting the department's Citywide Immunization Registry (CIR). This included full-stack support and enhancements to the CIR's flagship application, the Online Registry: a public-facing web application used by thousands of healthcare providers in NYC to record immunizations, track vaccine inventory, and provide immunization and other health records used by other city agencies (e.g., schools or daycares).

Recently completed a successful project to migrate the CIR's databases, including the dependent client applications from Oracle to PostgreSQL.

Reliable and Horizontally Scalable NoSQL Data Store (via Toptal)

The client, a fast growing web startup in India, was faced with increasing schema complexity in their traditional SQL-based data tier, which hampered their ability to quickly onboard new developers. The rapid growth and aggressive expansion into new markets was also straining the scalabilty limits of their current MySQL-based infrastructure.

Working with the company CTO, I researched, designed, and developed a prototype for a lightweight NoSQL data store which provides persistent data storage for all use cases specific to the client's products.

The data store architecture consists of a set of sharded MySQL database servers, divided into index shards and data shards. Application data is stored in the data shards as JSON strings, and Apache Avro is used to provide schema support for the JSON data.

The data store interface was implemented as a Swagger documented REST API exposing CRUD-like semantics. The service supports code generation in both Java and PHP, allowing clients to read and write application layer objects from the data store without having to manipulate or even know the underlying JSON representation.

The system was implemented in Java as a Spring Boot-based microservice.

Architecture for a National Account-based Lottery System

Architecture and design consultant for a project to build a national account based lottery gaming system for the China Sports Lottery. The system employs a service-oriented architecture and supports player account management, retail location management, and game service interface.
It is designed to allow seamless integration of diverse third-party game providers using a standardized plug-in interface.

The system is designed to scale to millions of player accounts, thousands of physical gaming locations and any number of game content providers. It supports land-based as well as online (internet) gaming.

Once the architecture was complete, I performed the design and initial development of the retail location and gaming machine management module, then moved on to developing the first game server implementation to be used with the framework.

The architecture and development was conducted exclusively remotely from the US, with only a four-day brainstorming session in NYC to kickoff the project.

The system went live starting in Hainan Province in January 2015.

High Performance Forensic Disk Imager (via Toptal)

I developed high performance parallel pipeline based disk imaging software for use in digital forensics applications. The software was developed in C++ and runs on Linux and Windows platforms.

High Performance Video Lottery Game Server

A J2EE-based video lottery game server developed for the Chinese market, constructed entirely on open source technology (JBoss 7) with an in-memory database (MySQL Cluster). It supports up to 20 thousand gaming machines and 1,500 transactions per second.

The system has no single point of failure and is horizontally scalable. It employs advanced cryptographic techniques to ensure security and integrity and is fully internationalized, dynamically switchable between Chinese and English.

The server interfaces with an account management system using a secure REST interface and persistently maintains the game state in real time for each machine through cluster failovers, system restarts, and machine failures. It employs a plugin architecture for modules that allow for new games added as pre-packaged, digitally-signed Java. It passed Chinese government testing for security and integrity and includes a separate turnkey audit system to audit every transaction, verify, and digitally sign the software modules. It was implemented using a GWT front end and a REST back end based on Jetty and Apache Derby (JavaDB). The server was developed remotely, with only ten days on-site over the course of the eighteen-month project.

Windows POS Platform Back-end Server Integration

I developed a platform framework and associated Windows services in order to integrate a Windows 7 Embedded POS device that controls gaming machines located in geographically diverse venues (bars, hotels, etc.) with a central network management service (NMS) and a content distribution service (DLS).

The project involved integrating an existing Java-based windows service that provides the basic gateway connector to the central services, and developing two new C# Windows services to allow application components on the POS platform to communicate with the central services through the Java gateway. The C# services communicate with the Java gateway using a proprietary TCP/JSON based protocol, and expose WCF REST endpoints to talk to the POS applications.

The project was done primarily in C# with some Java, and used a SQL Server Express DB.

Slot Machine Interface Board

I migrated a proprietary legacy C++ gaming machine controller code base from a Red Hat Linux-based server platform to an off-the-shelf Freescale I.MX6-based system module (EDM-1). The application was a Slot Machine Interface Board (SMIB) that will be installed in video lottery terminals (VLTs) in order to convert the machine's native proprietary serial protocol to a TCP-based protocol that can be run over a LAN.

The project including building the appropriate embedded Linux kernel and file system image for the target hardware using the Yocto-embedded Linux development environment and adapting the application build procedures as appropriate. The migrated code base was turned back over the the client's engineering team for further adaptation to their proprietary I.MX6 SMIB.

The project was completed entirely remotely using components shipped from the client and my own lab systems and equipment.

The product is expected to be deployed to several hundred locations in South Australia sometime in late 2015.

Mobile Gateway for Lottery Ticket Sales

I designed and developed a high-performance mobile gateway system for the Shanghai Welfare Lottery Corporation (SWLC).

The system enabled lottery ticket purchases acquired by diverse mobile application providers to be executed on the lottery's legacy back-end transaction processing system.

The system was implemented based on JBoss 7 and employed a JAX-RS REST API to communicate with the mobile application providers and a custom JCA resource adapter to communicate with the lottery's proprietary back-end transaction processor. It employed JPA/MySQL as the persistence solution.

The system serves as a gateway for potentially tens of millions of mobile users, and thus has very stringent requirements for both response time and transaction rate.

It was developed almost exclusively remotely from the US, with only five days on-site time in Shanghai to support the initial production roll-out.

The system went live in Shanghai in March 2013.

Enhancement and Ongoing Maintenance of a POS VLT Controller

I was responsible on an as-needed basis for the maintenance and enhancement of a JBoss 6-based "embedded" POS product.

The product functioned as a local controller ("site controller") for gaming machines (VLTs) in geographically diverse locations. It communicated with the gaming machines using a standard XML-based protocol (G2S) over TLS. It also communicated with a central state/provincial management system using similar protocols. The original implementation was based on JBoss 6 with a PostgreSQL database.

The client had inherited the code base from a partner team that had failed to deliver a functional product. Over the course of numerous engagements, I re-factored and reworked the code base into a functional product, and added features and enhancements as requested, eventually migrating it to JBoss 7. The product is currently used for demonstration purposes and is considered highly successful in that role.

Mobile Electronic Instant Ticket Game Server

I designed and developed a high-performance electronic instant ticket (EIT) game server, used as a component in an SOA used for a mobile EIT sales system in Jinan Province, China.

EITs are the virtual equivalent of "scratch-off" lottery tickets. Instead of a paper ticket, the player uses a mobile application to obtain an encrypted ticket, which they then "scratch" using a mobile application. For any particular EIT game, there are pools with a fixed number of EITs and a predetermined number of winners at each prize level. These EIT pools are generated by proprietary algorithms and encrypted.

I developed the server, which allowed the EIT pool files to be securely loaded, verified, and distributed to the mobile users via REST interface. I developed the core code, UIs, and REST API.

I designed techniques using public key cryptography that ensured the EIT files could only be read by the gaming server that they were generated for, and developed the cryptographic techniques used to secure the "tickets" in transit and ensure that an EIT was only readable by the purchaser.

The system was implemented in Java on JBoss 7 using JSF for the UI and JPA/MySQL for the persistence layer.

Online Medical Survey System

I was the architect and principal developer for the creation of a J2EE-based internet medical survey system for a medical metrics firm.

The system is completely turnkey and allows researchers to design complex custom medical surveys for targeted populations and then deploy them on the internet without any incremental web or back-end development.

The implementation was done on JBoss 5, using JSP, Hibernate, and MySQL.

Dial-up WAN TCP Proxy Service

I developed a serial line TCP proxy solution, implemented in C++, for TCP clients on geographically distributed systems to communicate with a central server over a secure dial-up connection. The solution is transparent to both client and server, who think they are communicating over ordinary TCP. My client had planned to use MS Remote Access Service (RAS) to allow local controllers to communicate with the central server, but RAS on Windows Server 2008 couldn't handle that number of connections at the time.

I built a system where a proxy application on the remote Linux client listens on a TCP port for incoming connection requests and forwards them to the proxy server, which receives the request over the serial connection and emulates the RAS service, forwarding it to the central server on a TCP port assigned to the client. The connection is accepted by the server and then at the remote side; data sent between the client and server is forwarded over the serial link.

The proxy service can handle multiple port-pairs and is used in production to proxy the RSync protocol. The serial link is secured using AES encryption and authenticated using a proprietary protocol certified as secure by South Australian gaming regulators.

Lottery Retailer Management System Integration

I developed a web service-based interface that allowed the Maryland Lottery to integrate the retailer management function between the lottery's UniSys back-end business systems and the POS system operator's proprietary Windows Server-based system.

Just for background, in the US, state lottery agencies usually sub-contract the deployment and operation of the online retailer point-of-sale network (POS) to specialist vendors. The lottery itself will manage the back-office business operations with their retailers (convenience stores, etc.). However, a subset of the information regarding the retailers must be shared with the POS vendor in order for the vendor to properly provide and service the retailers' lottery point of sale equipment.

The service I developed allows the lottery to push updates to the online vendor's system via a SOAP RPC-based web service. The service is fully automated and requires no operation intervention except to verify the reporting data. This replaces a manual process that required the retailer information to be redundantly entered into both systems.

The system was implemented in C# on IIS using ASP.NET technology. It has been in operation since October 2006.

Languages

Java, C, Assembly, Pascal, C#, C++, HTML, HTML5, SQL, UML, Fortran, JavaScript, Python 3, PHP, Python

Libraries/APIs

REST APIs, React, OpenAPI, Node.js

Tools

Java Concurrency, WildFly, Apache Tomcat, Apache Maven, Subversion (SVN), Apache JMeter, Eclipse IDE, Microsoft Visual Studio, Visual Studio, C#.NET WinForms, Jetty, CVS, Git, GDB, Apache Ant, Mercurial, Bamboo, Jenkins, TeamCity, IntelliJ IDEA, RabbitMQ, Keycloak, SMART on FHIR, Postman

Paradigms

Socket Programming, Concurrent Programming, Service-oriented Architecture (SOA), Object-oriented Design (OOD), Requirements Analysis, Agile Software Development, Microservices Architecture, Microservices, API Architecture, Unit Testing, Azure DevOps, Automation, Model View Controller (MVC), Fast Healthcare Interoperability Resources (FHIR), DevOps, Management, Web App Design, HL7 FHIR Standard

Platforms

Android, Jakarta EE, Linux, Java EE, JBoss, Eclipse, Unix, Amazon Web Services (AWS), Oracle, Amazon EC2, Windows, Embedded Linux, Azure, Docker, AWS IoT Core, AWS Lambda

Other

Architecture, Requirements & Specifications, Business Requirements, Front-end Development, Integration, Software Architecture, Web Development, Senior Web, API Design, Software Development, SOAP, GlassFish, APIs, Enterprise Architecture, Embedded Systems, Embedded Software, RESTful Microservices, Architectural Modeling, Technical Leadership, Yocto, Windows Communication Foundation (WCF), API Integration, High Availability Disaster Recovery (HADR), Internationalization, Marketing Mix, Leadership, HL7, Computer Science, Cloud

Frameworks

Jakarta Server Pages (JSP), Spring Boot, Hibernate, Spring, Rational Unified Process (RUP), AngularJS, GWT, JUnit, Spring Microservice

Storage

JSON, JBoss AS, PostgreSQL, MySQL, MySQL Clustering, Oracle RDBMS, Apache Derby, Microsoft SQL Server, SQLite, Data Integration, Amazon S3 (AWS S3)

Industry Expertise

Telecommunications

1974 - 1977

Bachelor of Science Degree in Computer Science

City College School of Engineering - New York, NY

Collaboration That Works

How to Work with Toptal

Toptal matches you directly with global industry experts from our network in hours—not weeks or months.

1

Share your needs

Discuss your requirements and refine your scope in a call with a Toptal domain expert.
2

Choose your talent

Get a short list of expertly matched talent within 24 hours to review, interview, and choose from.
3

Start your risk-free talent trial

Work with your chosen talent on a trial basis for up to two weeks. Pay only if you decide to hire them.

Top talent is in high demand.

Start hiring