Experienced full-stack developer
Mobile: 07950 686 615
Address: 19 Wren Avenue, London NW2 6UG
UK citizen. Available immediately. References available on request.
MySQL, Oracle, MS SQL Server, Sybase, data modelling, object relational mapping, query optimisation, reporting, data transformation.
Shell script, system admin, internals, Solaris, Red Hat, Ubuntu, Debian, Solaris, Nextstep, Openstep, Version 7, BSD, System V, X Window System.
Machine Learning 2018 -
Supervised and unsupervised learning, linear regression, gradient descent. MIT online course in progress.
CGI, MySQL, OO, Unix, Windows, networking, GUI, GD.
Unit testing, system testing, planning, specification, automation.
Adobe Experience Manager 2010-
Java development, Perl automation, Sling, client libs, troubleshooting.
Other Skills & Experience
- Source code control: Git, Subversion, Perforce.
- Java (4 years) WebObjects, Tomcat, Web Services, SonicMQ JMS, log4j
Networking (1985-) HTTPS, SMTP, TCP/IP, DNS, routing, Unix, Windows.
- C (8 years), VB (3 years), VBA, VBScript, Ant, Tcl, assembler, Emacs Lisp, configuration management.
- Assembly code (15 years) 68000, SPARC, 6502, 8086, transputer, ARM.
- PHP, Fortran, Lisp, Prolog, Miranda, Haskell, Parallel C, Occam, Tcl.
- Windows (1998-) 95, 98, NT, 2000, MS DOS, sys admin, Registry
- ICL George 4, Multijob, VMS, RISC OS, Acorn Basic (20 years)
- Documentum (6 years) DQL, API, Media Services, Web Publisher, DA, RightSite
- Agile, team leader, requirements capture, project management, presentations, Microsoft Office (VBA).
May 2006 – Apr 2018 GVC (ex Cashcade, Party Gaming, bwin.party)
- Automated website testing and monitoring (Perl, Node, PHP)
- Specified and maintained flexible object store for miscellaneous web site configuration data
- Web Content Management - technical and operational support, SEO, Google Analytics, Google Tag Manager, tracking
- Adobe AEM (ex CQ5), IIS, Documentum, Google Apps
- Responsive design targeting desktop (Chrome, IE) and mobile (iOS, Android)
- Task management - Agile, scrum, V1, Asana, SNOW.
Linux DevOps Engineer
- Configured and managed load-balanced farms of VMs.
- Apache configuration and troubleshooting, virtual hosts, mod_rewrite, rewrite maps, shared configuration, GeoIP.
- Configured content distribution networks - Akamai, Cloudflare
- Automated web site deployment via OpenVPN
- Registered and managed 300+ domain names, whois, DNS configuration, SSL certificates.
- Administered and supported network of 40 Windows PC users
- Set up and maintain e-mail services, sendmail configuration, MX, SPF records.
- Liaised with software and service suppliers
Senior Perl Developer
- Maintained and developed “Instant Win” games server Perl code with Oracle database
- Developed new, high performance, asynchronous, socket level server code
- Developed OO framework, unit tests
- Created plumbing code between third-party APIs, data feeds, databases, FTP file uploads, e-mail, reporting systems, web interfaces, data scraping from websites, MongoDB.
- Maintained and developed many web based and command-line Perl utilities and reports
- Integrated and tested new games, configured winning odds
July 2003 – April 2006 BBC
Software Engineer, News Interactive
Developer in team of ~30 supporting the BBC News and Sport web sites.
- Oracle, MS SQL
- Perl: OO framework, CGI, XML, Win32, GUI, GuiTest, GD
- Documentum 5.2: DFC, API, DQL, Java Methods, Server install and customisation, WDK, docapp, Media Services.
- Java: SonicMQ JMS, WebObjects, Tomcat, Web Services, log4j
- Ant, Nant, make, Eclipse build tools
- Apache, IIS, VB6, ASP, C#, .NET (practical + course)
- VSS, Perforce source code repositories
- Test tools: Empirix e-TEST, WinRunner
May 1995 – March 2003 Linklaters
Top UK corporate law firm with international presence.
Knowledge Management Systems - Analyst Architect Developer
- Lead analyst/architect/developer in team of two senior developers
- Successful international roll-out of 3 generations of knowhow system.
- From limited access, inflexible data model, “green screen” interface to highly configurable, open data model, web interface, available on every desktop.
- Maintained all the code for first system: Documentum, DQL, WebQL, and DocBasic (Documentum languages for dynamically generating HTML based on the contents of the DMS) and an Active-X control in VB5.
- "Knowledge Index" – dynamic object model in relational database.
- User requirements capture (UML use cases), high-level design, feasibility studies.
- Sole responsibility for successful migration of knowhow in a variety of complex formats: Perl, SQL, DQL, MS DOS.
- Designed and implemented sophisticated algorithm for dynamic generation of SQL to implement user queries created using a query builder interface, itself driven by the dynamic object model.
- Studied behaviour of MS SQL Server 2000 query optimiser.
- Evaluated enterprise full-text search software for a number of applications including the company intranet, resulting in the successful global deployment of Verity K2E.
Development Team Leader
- Lead team of seven full-time developers producing intranet and Internet web content and ASP applications and developing knowhow applications.
- Guided or contributed directly to successful international roll-out of three generations of intranet: static, Documentum RightSite, Documentum WebPublisher.
E-mail System Technical Consultant/Developer
- Collaborated with external developers in diagnosing and fixing bespoke NEXTSTEP e-mail system, enabling successful international roll-out.
- Wrote Tcl and shell programs to perform administrative tasks.
Web Analyst Developer
- Lead technical consultant and developer for Blue Flag (innovative service selling legal advice over the Internet).
- Requirements analysis and product selection.
- Oversaw evolution of system, worked with FrameMaker, Documentum document management system, C, Perl, shell scripts, HTML.
- Liaised with lawyers, external web designers, and hosting companies. Maintained and enhanced the system.
1991 - 1995 Imperial College
- Created and still actively maintain the world-famous Free On-line Dictionary of Computing (FOLDOC).
- Studied for PhD - implementation of functional programming languages.
- Extended two of the largest ever functional programs to do semantic analysis for program optimisation.
- Maintained Sun workstation running Solaris, including installation of new system software, writing utility programs. Studied SPARC cache performance.
- Participated in public domain software projects, submitting modules, bug reports, and fixes for packages such as GNU Emacs.
1980 - 1991 GEC Hirst Research Centre, Wembley
Sponsored student, Hardware & IC design, Embedded Systems, System Programmer, System Manager, Unix Guru, Networking
- Team and Project Leader (four graduate researchers + students).
- Contributed to all aspects of the design and construction of hardware and software of “PADMAVATI” parallel AI computer.
- Programmed in C, FORTRAN, 8086 assembler, 68000 assembler
- Wrote Unix device drivers. Understood Unix kernel, real-time systems.
- Maintained and debugged an Emacs-like screen editor. Installed departmental MMDF mail system.
- Installed and managed network of Unix computers and PCs. Fixed Unix kernel networking code using only machine code debugger, adb.
- Designed and built a Content Addressable Memory chip. Managed various groups involved in its fabrication and testing.
- 2018 Machine Learning, MIT (in progress)
- 1979-82 – BSc Physics (I), Imperial College, London
- 1977-78 – A-levels: Comp. Science (A), Maths (A2), Physics (A), Chemistry (B)
- 1975-76 – O-levels (11 subjects)
Farsi (conversational), French (enough to get around), Mandarin (3 years evening classes, HSK 1).
Activities and Interests
Maintaining FOLDOC, Algorithmic Art, Ingress, Foil Fencing, reading (SF&F, science), mountain walking. Brown belt in Shotokan Karate.