An experienced developer with a background in online advertising - low latency, efficient programming, large datasets and a focus on reliability and uptime.
- Extensive experience with OO and Functional Perl
- Significant experience with Python 2, MySQL, PHP
- Java, hadoop, svn, git experience
- 7 years Experience of working in a high transaction volume environment (>10k transactions per second, >1Tb of transaction logs daily, ~300 servers in the UK node), with 99.9% uptime
- Experience with managing and working with true Agile (scrum), waterfall and hybrid development methodologies.
Imperial College London
2012 - Present
Developing various solutions based around QR codes and NFC tags. A platform built from the ground up on Python, Kestrel, Simple DB, MySQL, Bootstrap, jQuery, Backbone and a running AWS (EC2, ELB, SDB, S3, Cloudfront, SES, Route 53).
2012 - 2012
2011 - 2012
1 month in India
3 months in Japan
1 month in Nepal
Director of Engineering
2010 - 2011
Managed UK engineering department, architected and advised on the largest projects
-Managed all UK engineering (22 people), reporting directly to the CTO in the US.
-Provided consultation to the product team on possible features and timeframes
-Advised on and worked with dev team leads to architect the largest scale projects
-Coordinated transatlantic projects with dev teams in the UK and US.
-Worked on the design and implementation of a SOX-compliant release process.
-Produced a new career progression structure for developers.
2008 - 2010
Led development on the adserver and data warehouse, led a team focussed on improving QA, UAT, dev best practice and tools, dealt with internal and external clients
-Built, tested and profiled a prototype hadoop + hive cluster (6 datanodes) which went on to form the basis of the data warehouse.
-Scrum master for ‘Scale’ development team, working to scale the performance of the core adserver and integrate the SM and Adviva technology stacks (Perl, Java)
-Mentored new team members and junior developers.
-Introduced and standardized the use of a set of developer tools: JIRA, Crucible, Hudson, Nexus, Confluence.
-Designed & implemented a release process which ensured sufficient code review, QA, UAT and business sign-off was in place prior to code going live.
-Consulted with internal clients on bugs and feature requests.
-Monitored external adserver perfomance with a combination of Gomez and in-house software. Worked with external clients who reported performance-related and other technical issues, to resolve their problems in an appropriate timeframe.
-Produced detailed investigations into performance bottlenecks on the overall scalability of the adserving system.
Senior Analyst Developer
2007 - 2008
Built and assisted with the architecting of some of the largest dev projects for the adserver, led Corp and Enterprise IT team
-Architected and built a new adserver transaction processing system (Perl) which read realtime logs from the core adserver and generated aggregated financial and other statistics for business users. Made substantial improvements to scalability and speed by creating a system which:
--used text log files rather than MySQL databases
--could be run on multiple application servers in parallel
--reduced the volume of inserts / updates on the main financial database
--integrated Nagios monitoring in all key components
-Created a distributed user profile database for the core adserver (Perl, MySQL), which removed a significant performance bottleneck
-Oversaw large growth across two datacenters, which involved deploying a large volume of servers and network hardware, increasing monitoring coverage and setting up the first on-call rota.
2005 - 2007
Dev work on both the front end UI and back end adserver, MySQL admin and tuning, server build automation, network hardware setup and deployment
-Extended and overhauled the internal UI (PHP).
-Refactored significant parts of the core adserver (Perl).
-Created a custom monitoring framework (Perl) to complement Nagios with metric vs metric graphs to calculate application / server performance capacities and limits.
-Performed significant Apache, mod_perl, MySQL performance tuning.
-Set up MySQL master-slave, master-master replication, scripted and scheduled backups and managed general MySQL administration.
-Implemented server-build automation via PXE and Kickstart.
-Managed Netscreen (Juniper) firewalls and Foundry Loadbalancers.
-Built a redundant pair of Nagios monitoring servers and wrote several plugins (Perl) to monitor services and record performance data.
-Helped to manage the build out of a second datacenter for adserving and a new simpler and more resilient network architecture
2004 - 2005
Extended internal UI (PHP). Worked on overhauling some small backend processes (Perl). Created Active Directory Group Policies, login scripts (vbscript), Windows file server setup, desktop support.