Resumé
System architect with extensive experience in scaling commercial websites both with traditional datacenter and optimizations and with cloud based solutions. Expert Perl programmer with over ten years speaking experience at numerous conferences. Versatile team member used to functioning in an Agile Scrum environment.
PDF • Word • Pages • Plain Text • Markdown
Education
- 2:1 BSc Computer Science, 2000, University of Bath, Bath, Somerset, UK
- 4 ‘A’ Levels (Maths, Physics, Chemistry, Further Maths, 1996), 10 GCSEs (including French, 1994) Hardenhuish school, Chippenham, Wilts, UK
Previous Employment
Head of Architecture, Photobox, London, UK (2007–present)
System architecture for Photobox’s photo printing websites. Responsible for scaling a large-user base, seasonal, rapidly expanding international e-commerce site.
- Working with Agile Scrum Teams. Serving at different times as both as product owner and as a developer. Responsible for working with business owners to refine and prioritize work prior to entering scrum teams’ backlog.
- Cloud Computing and AWS (EC2, RDS, etc) based on demand scaling, including managing the process for migrating active members on demand out of our datacenter into the cloud during our peak services and then re-integrating them once demand had reduced. Cloud image storage.
- Continuous Integration with Hudson/Jenkins and Puppet. Packaging. Testing with both with Perl unit tests and Selenium.
- Scaling technologies. Caching and invalidation (e.g. Memcached, CDN.) Redundancy (LVS, ldirectord, reverse proxies, nginx.) Asynchronous programming (Coro, AnyEvent,) Job processing and batch control (hand rolled, TheSchwartz)
- Performance techniques. Perl profiling (NYTProf et al), optimization (XS conversion, currying, custom OP codes)
- MySQL (scaling, slow query optimization, complex replication trees) NewSQL database (Clustrix.) ORM (bespoke and DBIx::Class)
- API Development. XML, XML-RPC, JSON, AMF, etc. Permissions models. Type checking and coercion. Exception handling. Logging and rate limiting.
- Image Handling. Petabyte scale storage, serving, on-the-fly transformation, end user uploading multiple images (including rescaling in the client)
- Internationalization. In depth understanding of character encoding, Unicode, UTF–8. Currency conversion. Creating localizable and “white label” site using custom HTML::Mason subclasses.
- Financial Transactions. Online Payment Processors such as Paypal, Cybersource, Bibit, SocGen, Adyen. Financial reconciliation. Currency conversion. C2C transactions. Offer handling
- JavaScript. Created “pluggable” architecture to allow RAD by assembling pre-defined JavaScript components capable of bypassing frontend servers and talking directly to backend API. Use of jQuery, jQuery UI and Underscore.js libraries.
- Team Management. When necessary I undertook team lead and HR responsibilities.
- iPhone Development both managing external agencies and directly modifying the source code myself.
Head of Technology, Fotango, London, UK (2003–2007)
Building large scale photo sharing and other sites for Canon while launching groundbreaking server-side JavaScript PaaS product. I started as a developer, shortly after ran my own ‘backend’ development team, then became the head for the technology department reporting directly to the COO with multiple team leads reporting to me.
- Management Experience. Oversaw department of twenty plus staff members, made up of three teams practicing Extreme Programming workflow. Provided technical direction to company. Managed department budgets, salaries, etc. Earlier in my employment I also directly ran one of the larger development teams and gained significant hands on experience of coordinating development across the codebase.
- Worked on a Serverside JavaScript Engine development. Perl XML API, wrapped Spidermonkey, JavaScript support libraries. Billing model. User data storage.
- Helped develop and architect the Template Toolkit, one of the most popular Perl templating language currently used.
- Maintained Canon Image Gateway, Canon’s european photo sharing website, involving significant scaling, file storage, redundancy and internationalization challenges.
- Image Handling. MogileFS backed (redundant commodity hardware) user upload and serving solution with on-the-fly transformation, image scaling, watermarking, etc.
Head of Research and Development, Profero, London, UK (1998–2003)
Developing new technologies for a full service New Media company during the dot com years. Started as employee number nine, left five years later when the company had five international offices and I was running my own team.
- Developed Custom AdServer technology (mod_perl & pure C extension to Apache, CMS, offline data crunching and reporting interface, Excel spreadsheet generation) pioneering techniques such cost-per-click, post-click registration conversion tracking, and impression conversion tracking.
- Strong ability to deliver. Client meetings to discuss requirements, analysis, technical task breakdown and ability to deliver solutions for the client appropriate to the resources the team had available. Reputation for being able to deliver major work on tight deadlines.
- Scaling high volume websites of prime-time television programs for leading UK broadcasters capable of handing traffic caused by over the air call to action prior to mid-show commercials. Threaded and kernel based webservers.
- Extensive use of browser side Java. Created real time RSS-driven news feeds displayed in banners for major international news broadcaster. Pioneered the ‘game-in-a-banner’ concept (kick the ball, play golf, etc, etc.) Creating executables and assets less than 14K.
- Developed custom CMS for leading consumer rights magazine able to “bake” hundreds of variations of their website to allow high performance while tracking the effectiveness of their various direct marketing campaigns.
Other Previous Employment
- IT Support and Sysadmin for traders in the City of London (1998)
- Working for Energis creating database of telecommunication switch circuits (1996)
- Numerous work experience during education (Semiconductor design and production, custom PCs manufacturing, spreadsheet programming)
Important Other Information
- Regular conference speaker at Perl and other Open Source conferences. Favored topics include Teaching Perl, Test driven development in Perl (testing with Test::More, building your own Test::Builder based libraries), Unicode handing, tours of the best modules in CPAN (a result of my starting the Perl Advent Calendar), JavaScript, Mac OS X with Perl (using CamelBones the Objective-C Perl bridge, automating your Mac with Perl).
- Author of over twenty distributions on the CPAN, including several core modules distributed with perl itself. Particular focus on testing modules, XML processing, templating extensions, unicode, and language enhancements.
- Perl Blog
- Ex-Leader of London Perl Mongers (London Perl user group.) and joint organizer of the first London Perl Workshop
- Familiar with many programing languages: Expert: Perl, JavaScript. Used Professionally: Java, Objective-C (iOS, Mac), Python (Django, Jython), PHP, C, Laszlo Studied: Miranda, OO Turing, Prolog.
- Sysadmin experience. Linux (Ubuntu, Debian, Fedora, etc), Mac OS X, FreeBSD
References available on request.
Copyright Mark Fowler, permission to distribute unaltered granted.