Career Profile

I am an experienced development manager working in the online gaming and gambling industry. I have a proven track record of delivering scalable software solutions in a highly regulated market. I encourage developers to write better code and promote a disciplined approach to engineering focusing on clean software that is well documented and well tested. I believe in predictability over speed; automating everything; and breaking projects down in to testable, demonstrable, and achievable units. I have experience working with large customers and reporting into senior management.

I am looking for a role where I can

  • Serve as hiring manager and build up teams, either co-located or abroad
  • Ensure the development process encourages review, testing, and accountability without obstructing developers
  • Define and breakdown project work while working closely with product and architecture
  • Drive security improvements and work to reduce technical debt
  • Ensure the tools and infrastructure are in place so developers can be productive and not struggle with difficult to manage build processes and unpredictable environments
  • Reduce the need for bespoke code and encourage adoption of industry standard solutions to common problems with the use of appropriate tools and design patterns
  • Challenge existing practices and code paradigms
  • Improve operational support by driving improvements in logging, monitoring, and incident management
As a development manager I feel my experience translates well to any development environment, but in particular I’m most comfortable in a Linux environment with a technology stack that includes Java/Spring/Tomcat, PostgreSQL, Python, Apache Kafka, and Nginx as well as development tools such as Maven, Git, Jenkins, and Docker.

Experiences

(Senior) Software Engineer, Technical Lead, Development Manager

2012 - Present
SG Digital (formerly OpenBet Ltd.)

In my current role I oversee development teams in London, Athens, and Bangalore. I have line management and mentoring responsibilities for Technical Leads and Senior Developers. In addition to project work, I’m responsible for incident management and meeting SLAs. I work closely with our Product, QA, Dev Ops, and Architecture teams and ensure that work is properly defined, there is an agreed technical solution, and we have a plan to test and deliver software with minimal risk. Our platform handles 30,000 bets per minute peak and I work with large companies such as Sky Vegas and Lotto Quebec.

Sabbatical

2010

I lived in Italy for 2 years and travelled extensively in Europe. I worked on some freelance projects, as an elementery school teacher, and as an asisstant videographer and photographer on and off.

Software Engineer, Lead Software Engineer

2003
Sakar International, Inc.

Lead Developer of an ERP platform originally written by a team from Samsung.

Software Engineer

1998
American Microsemiconductor, Inc.

Entry level part-time position (while attending University) where I worked on an inventory and sales management platform written on a LAMP stack.

Projects

Continuous Deployment - Incorporate several small services as a proof of concept into an automated Continuous Deployment pipeline. In addition to development tasks this involved defining and obtaining sign off with new compliance, risk management, and security procedures.
Network Jackpots - A greenfield project to develop a Jackpot Service that could manage the logic and complexity of running a shared jackpot pool across multiple games and multiple operators with minimal integration effort from third parties. A number of technical challenges had to be overcome in particular database contention because of the highly concurrent nature of the processing that had to be done.
Postgres Support - One of our core platform services was a legacy monolithic application that was tightly coupled to Informix, an IBM database with a high licensing cost, by using a number of Informix-specific optimisations as well as a number of complex stored procedures. The product was originally licensed out to large operators that absorbed these licensing costs. The business wanted to attract smaller customers on to the platform by launching a SaaS offering, however the database licensing made operational costs very high. To solve this, we looked into adding PostgreSQL support. A number of constraints made this challengning,
  • We had to maintain Informix support for our existing customers
  • The Informix specific optimisations were critical to maintain performance and could not be removed
  • The product was actively being developed which ruled out forking the application into two
  • The legacy code base could not easily be integrated into a more modern persistence framework such as Hibernate that could abstract away vendor differences for us
  • Informix is not widely used and persistence frameworks generally did not support it
Multitenancy - As part of the same push to offer SaaS and attract smaller customers, we wanted to add multitenancy support to our applications so that we could serve multiple customers from the same environment, something our products had not been designed for. We evaluated a number of designs and came up with an elegant solution that involved minimal application changes.