Agoda, part of the Priceline group, is one of the largest online travel agencies in Asia. I am managing a team of programmers, QA and DBAs working on systems that process payments from hotel bookings.
Built up the team from 6 to 9 developers, mentored new and existing staff. Ran the company’s first intern programme, working with dev managers and HR, as a long term initiative to hire new junior talent.
Reintroduced scrum practices - trained a scrum master from the team, created an up to date backlog, restarted sprint planning, retrospective and grooming sessions - leading to an increase in productivity of over 50%.
Increased system reliability and performance by a focussed series of sprints to identify and fix bugs and remove code and database bottlenecks that lead to a 32x increase in transaction capacity and a reduction in time spent on support.
Improved product engineering: automated tests, builds via Jenkins, source control from TFS to git, code review, deployments via Puppet - allowing us to deploy daily rather than once per sprint.
Refreshed the tech stack, moving from WPF desktop apps talking to the DB to MVC web apps talking to APIs, using ZeroMQ for service-to-service comms and linking to company Cassandra and Hadoop data stores.
Architected and deployed systems to make bank payments, collect currency rates and reconcile financial systems that reduced the amount of manual work the operations department does each day.
Reporting to the head of Equities Technology in Asia, my role was to strengthen management of the technology business focusing on the following areas:
Hardware asset management and budget - decreased hardware costs by improving the forecasting and purchasing process, reduced year on year costs by $4M in 2012 by relocating, retiring and virtualising servers.
Software development budget - ran the 2011 budget process to capture business requirements, forecast costs and resources and identify organisational changes to increase efficiency and reduce overall spend.
Audit and risk - working with the corporate controls team and audit organisations, improved internal controls and readiness for audit. Turned around the department from an internal audit fail in 2010 to a pass in 2011. Project manager for corrective action plans to improve software development lifecycle process, end of life planning and data change management.
People strategy - set up and ran a volunteer based programme to improve staff retention and productivity by identifying areas for improvement in talent attraction, development, culture, empowerment, engagement and diversity. This lead to the overall satisfaction score for the department going from 61% in 2010 to 67% in 2011 and 73% in 2012.
Lead architect and hands-on manager for in-house C++/Perl derivatives systems in Asia. During this period trade volumes grew by over 500% and the system was rolled out to Japan, Australia and Korea.
Working with trading management, set priority and managed resources for development projects across the region. Projects ranged from deployment to Australia (4 staff over 2 years, balancing localisation of services where low latency was needed with cost effectiveness by centralising other services in HK) to managing monthly releases including local tactical enhancements and bug fixes.
Scaled system development by setting up and running a QA team; migrating source control management to Perforce; automating builds and test processes; deploying issue trackers and documentation systems (Jira/Confluence).
Ensure production stability for systems, developing first line support teams in HK, Japan and Australia, reducing production outages and handling capacity management (via ITRS Geneos) and disaster recovery planning.
Recruit staff, train and mentor new developers and team leaders. Team went from 3 to 20 developers over this period. Kept staff retention high and promoted talent internally.
Set up and trained a new development team in Shanghai using Perl/Linux to develop and support the complex overnight Asia batch process (5 million records, 250 jobs per day). Due to its success in Asia this team grew to manage equivalent systems globally.
Development and deployment of a large derivatives trading and risk management system to Asia.
C++/Solaris/Sybase server components for exchange connectivity and pricing.
C++/MFC front-end for risk management and trading.
First line support and user training.
Working for the Syndicated Loans team, my role was to integrate the Loan IQ software package with the bank’s systems for the London and New York syndicated loans departments. Interfaces were mostly written in C++ as NT services linking to the Loan IQ DB/2 database.
Analysed and developed system to convert document data from two systems in NY and one in London to Loan IQ format. Created a document API to Loan IQ and wrote interfaces for each system.
Managed the static data conversion process from an in-house system to Loan IQ. Analysed systems, produced conversion scripts in Perl and helped devise post-conversion clean-up process.
Wrote Windows/C++ service interfaces to in-house market data system to load interest and FX rates daily.
Devised group policy and infrastructure for source code control using PVCS and wrote common libraries in C++ to handle database access and error reporting.
This was a newly created position to bring IT development direct to FX/bond trades and salespeople in Moscow, writing applications and supporting existing bank software.
Developed with a team of two programmers from London a customised trade capture and reporting system for government bonds and FX, using a C++ server, Visual Basic front-end and conversion scripts in Perl.
Devised a live bond prices link from the Moscow Intercurrency Exchange to the bank’s trading systems, working with the Exchange’s local software developers. This gave salespeople working in Moscow and abroad a competitive advantage due to increased speed and quality of data provided.
Directly supported traders’ use of Excel, market data feeds and the Wall Street software package.
As part of the settlement systems group, my role was to help develop a set of programs that linked Summit to several back-office systems and then run the conversion process to cut over the trades.
Designed and implemented new phase of the project to integrate FRA and swaption trade types. Improved database schema, coded trade handlers in C++ with a Sybase database. Worked closely with users when taking system live.
Extended functionality of system by writing reconciliation reports in Perl and automation scripts in Expect.
24-hour support for users, fixing failed trades and helping with conversion strategy.
Thyron produces of smart card and secure transaction processing systems. Working in the Unix systems section, I worked on the development and deployment of a range of server-side products using C and Informix or Oracle. I was responsible for system administration for a range of in-house Unix systems including HPUX, Sequent and SCO.
Inmos designed the parallel processing transputer. Attached to the company as part of a structured year of industrial training I was granted sponsorship through university plus vacation work in 1991–3.
Worked in the CAD group writing test machine drivers and measurement software
On vacation work in the Software Development group, created an advanced set of parallel program development tools using C and Solaris.
Networking: good knowledge of TCP/IP and libraries such as BSD sockets and Boost ASIO.
Data: lots of SQL experience on Sybase, MS SQL and SQLite; increasing knowledge on new platforms like Redis and Cassandra.
Systems: happy on Windows, prefer Linux; run my own VPS hosting email, web, blog, personal Wiki etc.
Dev tools: love anything that can automate what we can do, from humble make up to Docker, git, Puppet and Jenkins.
Imperial College, University of London
MEng (Hons) degree in Electrical and Electronic Engineering
Residence: Bangkok, Thailand - working visa
Also have Hong Kong permanent residence status