Richard Dawe's Curriculum Vitae

Age:

39

Nationality:

British

Locality:

Bristol, United Kingdom

E-mail:

cv@phekda.org

LinkedIn profile:

http://www.linkedin.com/in/richdawe

Github:

richdawe and rdawemsys

Telephone:

0777-6141675


Software engineer and systems programmer with 16 years' commercial experience of developing C and C++ software on Linux, in small- to medium-sized companies.

Self-starter, with a desire to understand the big picture down to the details. I love digging into issues, starting at the high level, diving down into the code of individual components and gathering data, to build up a mental model of the system.

History of delivering solid, reliable code in on-premise and cloud environments. Customer-focussed, results-driven; I'm always looking for ways to help my colleagues succeed. I'm always looking for ways to improve the quality of the systems that we're building.

Skills

Development languages

C (proficient) (19 years); Lua (intermediate) (5 years); C++ (STL, boost) (intermediate) (9 years)

Scripting / glue languages

Perl (intermediate); bash shell scripting (intermediate)

Development environments

Linux (mostly) and Solaris; multi-threaded software; client and server software; event loop with threadpools

Development practices

Version control (Mercurial, git, subversion); debugging (gdb, valgrind, strace, lsof, small amount of DTrace / perf); packaging for install/upgrades/uninstalls (rpm); design and code reviews, Continuous Integration, Continuous Deployment

Development processes

Kanban, Scrum, waterfall

Networking protocols

SMTP, ESMTP, SMPP, SNMP; SSL and TLS (including X509 certificates and Public Key Infrastructure (PKI)); TCP/IP (IPv4, IPv6, UDP, TCP)

Data formats

MIME, RFC 2822 and related standards for e-mail; JSON; XML (DOM, SAX, schemas); YAML; CSV

Employment

September 2007 - present

SparkPost, and Message Systems, Inc. (remote working, from home), UK

SparkPost is built by Message Systems, the world's #1 email infrastructure provider. Customers including Facebook, LinkedIn, Twitter, Groupon, Salesforce, Marketo, Pinterest and Comcast send over 3 trillion messages a year, over 25% of the world's legitimate email. These companies choose SparkPost to provide the deliverability, speed and insight they need to drive customer engagement for their business.

SparkPost provides email delivery services for apps and websites, hosted in the Amazon Web Services cloud, and accessible via REST APIs and SMTP (Simple Mail Transfer Protocol). Reporting and metrics are provided via webhooks, APIs and the administrative UI.

Message Systems's Momentum software is a high-performance messaging server supporting SMTP for mail reception/delivery, supporting extensions via C or Lua, e.g.: for integrating anti-spam technologies.

March 2015 -

Principal Engineer at SparkPost:

As part of the Platform Engineering team, I designed and implemented new features in our SparkPost and Momentum products. I provided architectural oversight for the messaging platform and integration with other systems and with internal teams. I provided technical leadership and encouragement to the rest of the team. Some highlights:

  • Designed and prototyped the Relay Webhooks feature, for converting inbound SMTP traffic into HTTP POST calls. This feature enables customers to support e-mail using purely HTTP/REST protocols.
  • Designed and built the C and Lua APIs to allow REST APIs to be built using idiomatic Lua on top of Momentum's HTTP server. This allowed faster development and iteration of key APIs than would have been possible with C.
  • Designed the click and open tracking system, and led the team building it.
  • Triaging and diagnosing escalations from our SparkPost support team; tracking down and resolving production issues; providing advice, guidance and encouragement to other colleagues working on production issues.
  • Provided the vision and technical guidance for turning on a domain management feature. This reduced the work required to add and manage domains, but imposed restrictions on customers where none existed previously. Others did the data analysis and data migration required to avoid impacting customers. We learnt a lot of lessons from this process.
  • Part of the API Governance team, which was responsible for designing the APIs for SparkPost, setting the internal REST API standards, and providing on-going review and assistance for new APIs and API changes.
  • Provided internal training, from "lunch and learns" through to deep dive training for on-boarding new hires.
  • Kept people focussed on delivering the minimum functionality required. This was partly to ensure we could iterate rapidly, but also to ensure that we did not over-build software before we understood what our customers wanted or needed. We used Kanban, and earlier Scrum.
  • Subject-matter expert on the internals of our software, Lua, and mail standards.

June 2014 - March 2015

Lead Engineer at Message Systems -- please see above.

July 2013 - June 2014

Senior Software Engineer at Message Systems -- please see above.

September 2009 - July 2013 (~6 years)

Principal Solutions Engineer at Message Systems:

As a part of the Professional Services team, I designed and implemented solutions based on Message Systems' Momentum messaging server, primarily for e-mail. This involved extensive customisation, including extending the platform with C, C++ and Lua.

I was the technical sponsor and development lead for several large Professional Services engagements, including two separate multi-year projects. These involved extensive requirements analysis, design and solution implementation work on behalf of the clients.

Many of the projects were replacements for existing mail systems. Challenges included "hidden requirements" where the functionality of existing systems was undocumented or not well understood; providing feature parity or equivalence, including integrating with other customer systems; in some cases, no access was permitted to customer systems due to regulatory requirements.

Other activities included working with the Engineering Team on development of the mail platform, discussing client requirements with Product Management, and working with the Support Team.

May 2009 - January 2012

Client Integration Architect at Message Systems -- please see above.

May 2009 - September 2009

Professional Services Engineer at Message Systems -- please see above.

September 2007 - May 2009

Senior Software Engineer at Message Systems -- please see above.

May 2003 - May 2007

MessageLabs, Gloucester, UK (Now Symantec Email Security.cloud)

MessageLabs is a provider of managed services for e-mail, Instant Messaging (IM) and web communications, to companies of all sizes, and with partners such as IBM and Verizon. In the case of e-mail, messages sent to/by a customer pass through MessageLabs's e-mail infrastructure before being delivered. Services such as anti-virus (AV), anti-spam (AS), Image Control (IC) and Content Control (CC) are applied as the message passes through.

October 2005 - May 2007

Senior Software Engineer at MessageLabs:

  • Responsible for the SMTP mail server software at the core of MessageLabs's e-mail infrastructure. This software accepted, scanned, modified (if required; e.g.: tag with "[SPAM]") and delivered messages according to customer-configurable policy. Written in a mix of C and C++ (STL and boost), packaged for installation with rpm, all on Red Hat Linux.

  • Designed & implemented new features in the mail server to support updated versions of AV/AS/IC/CC services, working closely with cross-functional teams (Development, Test, Operations, Client Services, Product Management).

  • Led a team of 2 - 4 people implementing new features and bugfixes in the mail server, and associated software. This included maintenance releases for critical bugs in tight timescales.

  • Supported the Operations and Client Services teams in resolving customer issues.

  • Experience of the full software lifecycle, from requirements analysis to ongoing maintenance.

  • Ensured quality: peer code reviews; unit testing; end-to-end test suites (using Perl and other harnesses); memory debugging/valdation tools such as valgrind; helped define C++ coding recommendations; investigated and evaluated static analysis tools for improving C++ code quality; local expert resource on rpm (mostly from painful real-life experience).

  • Technical Lead for two projects to improve mail reporting to customers: one succeeded; one failed, due to factors including problems with project dependencies, and storage limitations.

  • Technical Lead for a proof-of-concept (PoC) to evaluate a replacement for the aging SMTP mail server software. The PoC was successful, Ecelerity was chosen. Subsequently I advocated its adoption in several solutions, to improve time-to-market, reliability and manageability.

  • AccuRev and CVS administrator; Linux systems administration

May 2003 - September 2005

Software Engineer at MessageLabs:

  • Responsible for the SMTP mail server software at the core of MessageLabs's e-mail infrastructure.

  • Designed & implemented new features in the mail server, working closely with cross-functional teams.

  • Supported the Operations and Client Services teams in resolving customer issues.

  • Ensured quality through thorough testing, and validation with tools such as valgrind.

  • Integrated Symantec Brightmail Anti-Spam into the SMTP mail server. Packaged the Brightmail server provided by Symantec, and wrote monitoring software for the Operations team. Both the mail server and Brightmail server software were deployed and went live with no major issues.

  • Produced security updates for vulnerabilities announced via Bugtraq and other sources. This included porting fixes to older, vulnerable versions of the software.

  • AccuRev and CVS administrator; Linux systems administration

August 1999 - October 2002

Cabletron Systems / Riverstone Networks, Reading, UK

Cabletron (now Enterasys Networks, now part of Extreme Networks) was a producer of enterprise networking equipment. Riverstone Networks was spun-off to focus on equipment for Metropolitan Area Networks (MAN) and the Internet edge.

June 2000 - October 2002

Software Engineer at Riverstone Networks:

  • Sole microcode author for one custom processor. Wrote microcode (assembler) for two custom processors, including support for Multi-Protocol Label Switching (MPLS) and IPv6 protocols. Worked closely with the hardware, software and simulation teams in California.

  • Initiated and wrote significant portions of some tools in C++ for end-to-end black-box testing of microcode, software and hardware simulations. These were used to find several hardware bugs during simulation, avoiding re-spins of hardware, saving significant sums of money.

  • Responsible for porting the existing IP, TCP, UDP and PPP MIB support to a new SNMP agent, as part of a project to support monitoring and managing Riverstone's Metropolitan Area Network (MAN) routers with SNMPv3.

  • Developed using the GNU tool-chain on Debian GNU/Linux and Solaris. Extensive TCL, Perl and shell scripting for testing.

  • ClearCase administration; Solaris, Linux and Windows systems administration

August 1999 - June 2000

Software Engineer at Cabletron Systems:

Worked on Cabletron's Virtual Private Networking (VPN) software in embedded C for its range of small-office routers:

  • Extended the software's command-line interface.

  • Internet security protocol testing: IKE & IPSec.

  • Worked on support for Public Key Infrastructure (PKI) using digital certificates, which included porting a vendor's PKI toolkit to the router software environment. Liaised closely with the PKI toolkit vendor to report bugs, then test and integrate bugfixes into their toolkit.

  • Developed using the GNU tool-chain on Digital Unix.

Summer 1996, 1997, 1998

Alchemetrics Ltd., Wokingham, UK

Programmer: Wrote database programs on SCO Unix in C; wrote "man" page documentation for their C database library; wrote a caching library for their database library to speed data access; worked on a Motif-based database viewer.

Summer 1995

Murray Computing Ltd., Wokingham, UK

Programmer: Wrote database programs which eliminated invalid data and extracted statistics from the data. Used Borland C on DOS.

Education

1995 - 1999

University of Bristol, UK

MSci Physics with First Class Honours: Four-year course, combining a BSc and Masters degree. Final year included: 20-week research project with a partner on nanofabrication; 45-minute presentation on Free Electron Lasers. For my elective modules, I focussed on Quantum Mechanics, mathematics and the properties of materials.

1988 - 1995

St. Crispins's Comprehensive School, Wokingham, Berkshire, UK

A-Levels (1995): Chemistry (A), Maths (A), Physics (A)
AS-Level (1995): German (A)
GCSEs (1993): 8 As, 2 Bs

Prizes for GCSEs: Design & Technology; Physics; joint-best grades overall
Prizes for A- and AS-Levels
: AS-Level German; best grades overall

Interests And Hobbies


Mon, 5 Dec 2016 16:53:10 +0000 (cv.html 15da3549f1591484793e1faec5965a03833613e2)