Alex Tingle, Curriculum Vitæ



Similar documents
DIABLO VALLEY COLLEGE CATALOG

Diploma in Computer Science

ASSOCIATE IN ARTS DEGREE-60 UNITS

Syllabus INFO-GB Design and Development of Web and Mobile Applications (Especially for Start Ups)

DTWMS Required Software Engineers. 1. Senior Java Programmer (3 Positions) Responsibilities:

Syllabus INFO-UB Design and Development of Web and Mobile Applications (Especially for Start Ups)

HTML5. Turn this page to see Quick Guide of CTTC

Rupert Lane MEng / rl@rupert-lane.org

Evaluation of Load/Stress tools for Web Applications testing

SAMPLE RESUME FORMAT

JBoss Enterprise Middleware. The foundation of your open source middleware reference architecture

Computer Science Course Descriptions Page 1

internet, intranet and software development Ross McKay résumé

A challenging position as Software Engineer with an emphasis on Object Technology.

Kristopher Johnson. Web Site:

Specialized Training Calendar May August Training for Professionals by Professionals

Dr. Rob Donald - Curriculum Vitae. rob@statsresearch.co.uk, Web: Mob:

PIE. Internal Structure

Course Descriptions. preparation.

ZABBIX. An Enterprise-Class Open Source Distributed Monitoring Solution. Takanori Suzuki MIRACLE LINUX CORPORATION October 22, 2009

JAVA Technologies QUARTER 1 DESKTOP APPLICATIONS - ESSENTIALS QUARTER 2 NETWORKING AND OPERATING SYSTEMS ESSENTIALS. Module 1 - Office Applications

IT3503 Web Development Techniques (Optional)

BIRT Document Transform

Release 1. ICAPRG604A Create cloud computing services

For Course Details, visit:

Via Amedeo Peyron 12, Torino (Italy) Sex Male Date of birth 27 Sep 1982

Cross-Platform Software Considerations for Internet of Things

Whitepapers at Amikelive.com

EMC Software Release and Service Dates for NetWorker and NetWorker Modules Last Updated on February 21, 2013

COS 333: Advanced Programming Techniques

JAVA/J2EE DEVELOPER RESUME

IT3504: Web Development Techniques (Optional)

138 To satisfy a prerequisite, the student must have earned a letter grade of A, B, C or CR in the prerequisite course, unless otherwise stated.

opennms reporting generation tool

Efficiency of Web Based SAX XML Distributed Processing

Curriculum Vitae for Marc Munro July 2015

EMC Software Release and Service Dates for NetWorker and NetWorker Modules Last Updated on August 16, 2012

Web Development. Owen Sacco. ICS2205/ICS2230 Web Intelligence

BEST WEB PROGRAMMING LANGUAGES TO LEARN ON YOUR OWN TIME

Database Technologies MySQL, PostgreSQL, SQL Server, Oracle. Development Tools Eclipse, Aptana, NetBeans

Web Development Frameworks

24x7 Scheduler Multi-platform Edition 5.2

OIT 307/ OIT 218: Web Programming

COMPUTER SCIENCE (AS) Associate Degree, Certificate of Achievement & Department Certificate Programs

SOFTWARE DEVELOPER. Job Description. Rybná 682/14 Praha tel.: career@xitee.com

PG DAC. Syllabus. Content. Eligibility Criteria

Senior Oracle Developer Call us today to schedule this resource. CORP: (214) CENDIEN

CAREER OPPORTUNITIES

Abdullah Radwan. Target Job. Work Experience (9 Years)

Resume of Victor Kachan (Web developer, Java developer)

Ben Peter Professional Profile

Nick Fox Seattle, WA

SOFTWARE TESTING TRAINING COURSES CONTENTS

Architecture and Mode of Operation

Net Developer Role Description Responsibilities Qualifications

Course Descriptions. CS 101 Intro to Computer Science

Christopher Zavatchen

Modern Web Development From Angle Brackets to Web Sockets

Credits: Some of the slides are based on material adapted from

Title: Front-end Web Design, Back-end Development, & Graphic Design Levi Gable Web Design Seattle WA

Migration and Developer Productivity Solutions Retargeting IT for Emerging Business Needs

Skillsoft Course Directory

Complete Assessment Catalog

AT&T Global Network Client for Windows Product Support Matrix January 29, 2015

The Benefits of Modular Programming

COMPUTER SCIENCE (AS) Associate Degree, Certificate of Achievement & Department Certificate Programs

DEVELOPMENT PORTFOLIO

Chapter 13 Computer Programs and Programming Languages. Discovering Computers Your Interactive Guide to the Digital World

ACTIVE MICROSOFT CERTIFICATIONS:

<Insert Picture Here> Oracle Policy Automation System Requirements

PUBLISH YOUR COLLECTIONS TO THE WEB

Using MySQL for Big Data Advantage Integrate for Insight Sastry Vedantam

Kevin Cummings 20 Briarwood Road Framingham, MA Phone: (508)

ANDROID DEVELOPER RESUME USA

SOLUTION BRIEF. Advanced ODBC and JDBC Access to Salesforce Data.

Programming Languages

Mohammed Khan SUMMARY

QuickSpecs. QuickSpecs. Description. HP OpenVMS Application Modernization and Integration Infrastructure Package,Version 2.3

PRINCIPAL JAVA ARCHITECT JOB ID: WD001087

Caplin Trader 1.4. Catalog Of Documents. August 2009 C O N F I D E N T I A L

A Tool for Evaluation and Optimization of Web Application Performance

Open Source SOA with Service Component Architecture and Apache Tuscany. Jean-Sebastien Delfino Mario Antollini Raymond Feng

GUI and Web Programming

Tools for ITIL Capacity Management: How not to spend 100,000

E-commerce. Web Servers Hardware and Software

Preface. Motivation for this Book

Even if your end-users only push a digital button for a living, I want to use my background and my abilities to enrich that experience.

The Learn-Verified Full Stack Web Development Program

TECHNICAL SKILLS UNIX, UNIX-like including Solaris, Linux, Mac OS X, BSD, SySVr4, HP-UX

Transcription:

, Curriculum Vitæ I am a hands-on Technical Architect, with 14 years of C++ working on multi-threaded, client-server applications. 1 Current Technical Skills C++ (14 years) Expert level. Lead programmer on a number of real-time multi-threaded Unix server applications. Extensive knowledge of the STL and Boost. Exposure to Visual C++/MFC for development of Win32 applications. Great experience of porting applications between operating systems. Unix (12 years) Great experience of the C++ development environment on a number of Unix flavours; Linux, Solaris, HP-UX, Tru64/Alpha, AIX, Mac OS X. Very comfortable with a variety of scripting tools; shell scripts, Awk. Some knowledge of Unix systems administration. Oracle (12 years) Experience of using SQL, both as a scripting language and from within Python and C++, using the OCI interface. Also some experience with MySQL and SQLite, popular open-source relational databases. XML/XSLT (11 years) Used XSLT to perform complex transformation between XML schemas. Designed DTDs, and used both SAX and DOM parsers in C++ and Python. Responsible for porting the Apache Xerces parser to the Tru64/Alpha platform. Python (9 years) Built multi-threaded CORBA servers and clients for the steel industry and expert systems for the insurance industry. Designed a Python-based automated testing framework. Used SWIG to make Python interfaces to C++ libraries. Used Django, Zope & FastCGI to build Python-based web-applications. HTML/CGI/JavaScript (11 years) Dynamic web application design with HTML, CSS and JavaScript. Server side scripting with Python, PHP and Perl, database integration and cookies. Wrote the popular Event-Calendar plug-in for Wordpress, Flood maps mash-up, Easy Ajax Album online gallery. CORBA (10 years) Principal author of omnievents a real-time, C++ messaging application that implements the OMG Event Service specification v1.1, and of omniifr a CORBA interface repository. Familiar with the Object Management Group s C++, Python and Java IDL mappings. All technical skills used within the last 12 months. 1

2 Experience 2.1 Standard Chartered Bank, Contractor (Jul 2010 present) Contributed to internal development of a new back office infrastructure for the bank. Designed and implemented a real-time FX transaction messaging system using C++, Boost, Oracle and Websphere MQ, all on Linux. Helped with FX Trade Server, and with threading and database functions of the core framework. Developed the process manager, which is responsible for starting and stopping other components. Contract renewed. 2.2 IG Index, Senior Price Feed Developer (Mar 2009 Jul 2010) IG Index specialise in financial spread-betting. I am a senior developer, working on real-time exchange connectivity servers. All the work is cross-platform C++ on Linux, Windows and Solaris. We use the STL, Boost and XML. IG use a venerable format called Invision for much of their in-house data feeds. I addressed widespread performance problems by rewriting their API library to support multi-threading. My enhancements use a lock-free queue to minimise latency and maximise throughput. I used HP s Atomic Ops library for cross-platform atomic data accesses and memory barriers. These changes successfully quadrupled some applications throughput. I designed and coded protocol converters to translate Reuters RFA MarketFeed and OMM formats into IG s in-house format. Again, my multi-threaded, lock-free design quadrupled throughput, and reduced latencies. Finally, I led the design and prototyping of a brand new price aggregator for order driven markets. I favoured a modular design, with components linked by Unix Domain Sockets, carrying a fast, custom protocol. This design reduces the complexity of individual components, making it easier to manage development. Everything is crafted to be as small and memory efficient as possible, in order to minimise cache misses. 2.3 Broner Metals Solutions (Feb 1999 Mar 2009) (This work overlaps with various consulting jobs see below.) Broner develops plant-optimisation solutions for the steel industry. Their software sits between the factory-floor Manufacturing Execution Systems (MES) and high level Enterprise Resource Planning (ERP) systems. Each application in the suite is able to co-operate with all the others, so that they work together as an integrated system. The whole suite is also able to interact with a wide variety of third-party MES & ERP systems, which customers may already have installed. 2.3.1 Team Leader, Lead Developer For my first four years at Broner I was Lead Developer of their new caster and hot-mill schedulers, which run on both Windows and a variety of Unix platforms. These are multithreaded client/server applications written in C++/STL. I was responsible for requirements analysis using UML, design and coding of the solution. I also led the team of five, planned the project timescales and helped with recruitment. 2

2.3.2 Technical Architect From 2003 I moved over to a higher-level Technical Architect role, where I designed a framework for integrating many of Broner s products together. My design used CORBA, XML and a shared Oracle database schema for inter-application communication. I helped to implement the interfaces by designing and writing a set of cross-platform, multi-threaded libraries that were then incorporated into many of Broner s existing applications. In addition to my own technical work, I coordinated and mentored 15-20 software engineers. I led regular developer meetings, focussed on technical matters and knowledge-sharing. I performed code reviews in order to spread best practice, and ensure a consistent quality across all projects. I acted as a general trouble-shooter and problem solver. As active development wound down and Broner s products moved into maintenance mode, I gradually reduced my commitment to 3 days per week. I spent the remaining time doing a variety of independent consulting jobs. 2.4 Consulting Jobs (2004 2009) (This work overlaps with my time at Broner Metals see above.) 2.4.1 Aircom International Ltd. (Feb 2009 Mar 2009) I built a C++ CORBA interface component for the client s telecom optimisation suite. Implemented a dummy server using Python, to enable off-line testing. Trained client s staff about CORBA programming in C++ and Python. 2.4.2 Red Redemption Ltd. (Feb 2008 Apr 2008) Wrote a library to model the topology of hexagonal grids, including algorithms for finding optimal paths. Provided interfaces in C++ and Python (using SWIG), and a separate Javascript implementation. The test suite was written in Python. 2.4.3 Red Redemption Ltd. (Aug 2007 Dec 2007) I designed and implemented Javascript UI sugar for the client s new social-networking web application. I used Yahoo s excellent YUI library to help with the Javascript. I used Cascading Style Sheets (CSS) to format the UI elements and to ensure that the look and feel fitted with the client s design. The server-side code was implemented with Python and Django. 2.4.4 Vielife Ltd. (Jun 2006 Sep 2007) I was employed for my specialist knowledge of Blueorange s BOSI application framework, which is written in Python with a web-browser front-end. I advised the client how to get the best from their product, debugged their business logic, and added features. I designed and built a Python translation tool to assist their internationalisation project. The tool found and extracted strings to be translated, while cleverly avoiding strings that were used as internal enumerations or file-names. The string were written into a custom XML format, which gave the translators enough context to be able to work accurately. When the translated file returned from the translators, the application replaced the original strings to create a new language version of the original application. 3

Finally, I trained client s staff in Python programming and application specific skills. 2.4.5 Blueorange Technologies (Apr 2006 Aug 2007) Enhanced medical questionnaire applications using the client s BOSI application framework, which is written in Python and Zope. Added Unicode support to much of the client s complex Python code-base. Led technical liaison with customers and partners. 2.4.6 Rubix Information Technologies (Mar 2004 Jan 2005) Rubix makes a Rapid Application Deployment Environment for the telecoms industry. They use omnievents my real-time, C++, CORBA messaging application as a core component of their distributed architecture. Rubix employed me to add fault-tolerance and fail-over features, to make omnievents suitable for a high-availability environment. I also gave general advice about CORBA to the project team. 2.5 Reuters Group Ltd. (1997 Dec 1998) I joined Reuters Exchange Market Data team as a programmer. I worked on their realtime financial database and data-collection software, which was written in C++, Pascal and FORTRAN on Windows NT and VMS. I was soon promoted to Project Coordinator, responsible for the London Stock Exchange and London Metal Exchange services. I managed teams of up to five programmers, and played an active role in design and development. I led the Y2K compliance project for the London Stock Exchange ticker, and managed a major upgrade to Reuters coverage of the then-new Stock Exchange electronic order-book (SETS). I led the design and development of a major extension to Reuters coverage of the London Metal Exchange. 2.6 GEC Marconi Radar & Defence (1993 1997) I was recruited as a graduate to work on a large defence project. My first year was spent creating battlefield simulations in Ada to define acceptance test scenarios. This critical task involved negotiation with the customer, and required broad technical knowledge of radar and electronic warfare systems. Later, I worked as a Software Engineer, part of a team working on a large software simulation project. I analysed requirements using Yourdon s methodology and helped design the simulation with the HOOD tool. Eventually, I was promoted to Design Authority and Team Leader for the development of real-time embedded software for an important component of the system. I worked on requirement analysis, design and multi-threaded Ada & XDAda coding. I led a team of eight engineers, costed and planned the project, formally appraised staff s performance and recruited new team members. I was responsible for ensuring compliance with ISO-9001 standards. 4

3 Education Birmingham University, Birmingham, UK. (1990 1992) Physics with Theoretical Physics: 2nd Class Honours, Division ii. Christ s College, Cambridge University. (1988 1990) Natural Science Tripos. Tettenhall College School, Wolverhampton. (1978 1988) Tettenhall College School, Wolverhampton. S Level Physics grade one. 5 A Levels: Physics, Chemistry, Maths, Computer Studies (all grade A); Art (grade B). 4 References Excellent references available upon request. 5