Mike Hutton

Mike Hutton

Rhode Island, United States
Hire Mike
Scroll To View More
Mike Hutton

Mike Hutton

Rhode Island, United States
Member since June 5, 2014
Mike is a software architect and developer with over 25 years of experience developing large-scale mission-critical systems. He currently specializes in Java/J2EE development, C++/C development, and embedded systems for the IoT. He is an internationally recognized expert in the area of lottery gaming systems. He has been delivering solutions employing geographically diverse teams for the past 16 years.
Mike is now available for hire
Portfolio
Experience
  • C, 17 years
  • Java, 16 years
  • SOA, 10 years
  • Software Architecture, 20 years
  • C++, 17 years
  • C#, 10 years
  • Visual Studio, 17 years
  • Java EE, 15 years
Rhode Island, United States
Availability
Part-time
Preferred Environment
Windows (Eclipse/Visual Studio), Linux (Eclipse)
The most amazing...
...online systems I've launched have been delivered to thousands of locations and millions of people.
Employment
  • President/CTO
    AC Research, Ltd.
    1998 - PRESENT
    • 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.
    Technologies: Java, Jave EE, Jetty, MySQL, MySQL Cluster, C/C++, Embedded Linux (Yocto), AngularJS, JavaScript, C#/.NET WCF apps
  • Principal Consultant - New Business Development
    GTECH Corporation
    1996 - 1998
    • 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 consumer Internet 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, University of Chicago, and Stevens Institute of Technology.
    • Researched, designed, and built original system prototypes in support of potential non-lottery business opportunities.
    Technologies: C++, Unix, Java, HTML, JavaScript
  • Director, Software Architecture Group
    GTECH Corporation
    1995 - 1996
    • 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: C/C++/vendor proprietary (e.g. VMS), UML, rational methodologies
  • Director, Software Communications Group
    GTECH Corporation
    1993 - 1995
    • Managed the organization responsible on a worldwide basis 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: Vendor Proprietary
  • Senior Technical Consultant - Communications Systems Engineering
    GTECH Corporation
    1989 - 1993
    • 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: Vendor Proprietary
Experience
  • High Performance Forensic Disk Imager (via Toptal) (Development)

    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 (Development)

    I developed a J2EE-based video lottery game server for the Chinese gaming market. The system was constructed entirely with open source technology (JBoss 7), including an in-memory database (MySQL Cluster), and will support up to 20,000 gaming machines and process over 1,500 transactions per second in its standard configuration. The system has no single point of failure and is horizontally scalable via clustering.

    The server interfaces with an account-based player management system using a secure REST interface, and persistently maintains the game state in real time for each gaming machine. It is able to maintain game state through cluster failovers, system restarts, and even gaming machine failures. It employs a plugin architecture for game modules that allows new games to be added as pre-packaged, digitally signed Java archives.

    The system employs a number of advanced cryptographic techniques to ensure system security and game integrity.

    The system is fully internationalized. All user interfaces and REST API messages are dynamically switchable between Chinese and English.

    The server has passed all Chinese government certification testing for security and integrity. It includes a separate turnkey audit system that I developed which is capable of auditing every transaction at every gaming machine. The audit system is also capable of independently verifying and then digitally signing the gaming 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 almost exclusively remotely from the US, with only 10 days on-site in Beijing over the course of the 18-month project.

    The server went live in Hainan Province in January 2015.

  • Windows POS Platform Back-end Server Integration (Development)

    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 (Development)

    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.

  • Architecture for a National Account-based Lottery System (Development)

    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 4 day brainstorming session in NYC to kickoff the project.

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

  • Mobile Gateway for Lottery Ticket Sales (Development)

    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 5 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 (Development)

    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 (Development)

    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 (Development)

    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 (Development)

    I developed a serial line TCP proxy solution that allows TCP clients on geographically distributed systems to communicate with a central server over a secure dial up telephone connection. The solution is transparent to both the client and the server. Both sides think they are communicating over an ordinary TCP connection.

    My client had originally planned to use the Microsoft Remote Access Service (RAS) to allow local controllers in several hundred geographic locations to communicate with the central server. However, at the time, RAS on Windows Server 2008 could not handle that large number of connections and Microsoft was not able to provide a solution.

    To solve the problem, I built a proxy system where a proxy application on the remote Linux client listens on a TCP port for incoming connection requests, and forwards them over a dial out connection to the proxy server. The proxy server receives the request over the serial connection, and emulates the RAS service, forwarding the connection request to the central server on a TCP port specifically assigned to the specific remote client. Once the server accepts the connection, the connection is also accepted at the remote side and data sent either way between the client and the server is forwarded over the serial link.

    The proxy service can handle multiple port-pairs, and is also used in production to proxy the RSync protocol.

    The serial link is secured using AES encryption and authenticated using a proprietary protocol that I developed. The security scheme was certified as secure by South Australian gaming regulator.

    The service is implemented in C++. and most of the code base is common between the Linux client side and the Windows server side.

    The proxy has been in production in South Australia since 2009.

  • Lottery Retailer Management System Integration (Development)

    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 on-line 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.

Skills
  • Languages
    C, Java, C#, Pascal, C++, Assembly, Fortran, UML, JavaScript, SQL, HTML5
  • Paradigms
    Concurrent Programming, SOA, Socket programming, Agile Software Development, MVC
  • Misc
    Software Architecture, Integration, JSP, Java concurrency, Embedded systems, Jetty, AWS EC2
  • Tools
    Enterprise Architect, Apache JMeter, Eclipse IDE, Visual Studio, SVN, CVS, GDB, Git, Ant, Maven
  • Platforms
    Linux, JBoss, Java EE, Embedded Linux, Windows
  • Storage
    MySQL, PostgreSQL, Apache Derby, SQL Server
  • Frameworks
    GWT, JUnit, AngularJS, WCF
  • Libraries/APIs
    API, SQLite
Education
  • Bachelor of Science degree in Computer Science
    City College School of Engineering - New York, NY
    1974 - 1977
I really like this profile
Share it with others