Verified Expert in Engineering
Software Architecture Developer
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.
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.
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.
Principal Consultant – New Business Development
- 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.
Director, Software Architecture Group
- 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.
Director, Software Communications Group
- 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.
Senior Technical Consultant – Communications Systems Engineering
- 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.
New York City CIR COVID-19 Vaccination Program
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)
EHR Integrations for a Large U.S. Health Insurance Company (via Toptal)
Azure Spring Boot Microservice (via Toptal)
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 – CIRhttp://www1.nyc.gov/site/doh/providers/reporting-and-services/citywide-immunization-registry-cir.page
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)
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
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)
High Performance Video Lottery Game Server
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
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
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
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
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
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
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 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
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.
REST APIs, React, OpenAPI
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
Socket Programming, Concurrent Programming, Service-oriented Architecture (SOA), Object-oriented Design (OOD), Agile Software Development, Microservices Architecture, Microservices, API Architecture, Unit Testing, Requirements Analysis, Model View Controller (MVC), Fast Healthcare Interoperability Resources (FHIR), DevOps, Management, Web App Design, HL7 FHIR Standard
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
Architecture, Requirements & Specifications, Business Requirements, Front-end Development, Integration, Software Architecture, Web Development, Senior Web, SOAP, GlassFish, APIs, Enterprise Architecture, Embedded Systems, Embedded Software, RESTful Microservices, Architectural Modeling, Yocto, API Integration, API Design, High Availability Disaster Recovery (HADR), Internationalization, Marketing Mix, Leadership, HL7, Computer Science, Cloud
Jakarta Server Pages (JSP), Spring Boot, Hibernate, Spring, Rational Unified Process (RUP), AngularJS, GWT, Windows Communication Framework (WCF), JUnit, Spring Microservice, Apache Struts
JSON, JBoss AS, PostgreSQL, MySQL, MySQL Clustering, Oracle RDBMS, Apache Derby, Microsoft SQL Server, SQLite, Data Integration, Amazon S3 (AWS S3)
Bachelor of Science Degree in Computer Science
City College School of Engineering - New York, NY