cv

v18.8.17
Twitter: @go_robreid

Profile

I started developing software professionally in 2006 and in my time as a developer, I’ve written .NET, Go and Java applications, front-ends, APIs, application frameworks, web and Windows services and messaging solutions. I have designed and developed solutions for the police, the travel, sports betting, telecoms and retail industries and financial institutions.

Education

Kingston University (2005 - 2009) - First-Class with Honours and awarded "Best Software Engineer" by the BCS.

A-Grade modules include Foundations of Algorithms, Internet Security, Software Quality, Internet Protocols and Services, Systems Analysis and Design, Business Organisation and Practice, Network Software and a double-A for my dissertation.

Technical Skills

Languages (primary)
Go and C#
Languages (other)
Java, VB.NET, Ruby (and Crystal)
Databases CockroachDB (and Postgres), SQL Server, MySQL, Oracle, Sybase, MongoDB, Couchbase, Redis and InfluxDB
Messaging RabbitMQ, NATS and ZeroMQ
Cloud GCP, Algolia, Digital Ocean, AWS and Azure
CI/CD Docker, Kubernetes, GitLab, Jenkins, BuildMaster and ActiveBatch
Practices Agile, Kanban and a firm believer in the benefits of pair-programming and shift-left.

Employment History

Lush (November 2017 - present)
At Lush, I'm a backend Charter Lead. This has me heading up a team of backend engineers, helping to identify and decide the technology roadmap, evangelising agile, leading our interdisciplinary squad standups, and mentoring other developers, testers and agile coaches.

Right from the get-go, I've been writing critical Go microservices and tools, including but not limited to:
  • Payment Gateway, a service to handle all UK eCommerce and in-store transactions.
  • Product Master, a service that acts as a golden source of product information.
  • Stock Management Layer, a global real-time view of stock availability.
  • modelgen, a tool which generates boilerplate Go structs from MySQL and CockroachDB tables.
  • adyen-api-go, wrapper for the Adyen payment system, which I've been contributing to as part of my development effort for the Payment Gateway.
An enjoyable part of my role is filling our London office with engineers and involves the on-boarding of both recruiters and candidates. As part of the on-boarding process for engineers, I've written and conduct our initial Skype interviews and technical tests and also participate in final interviews.

I also run a Code Club for staff in our Soho office. I've dusted off my Python skills and am teaching this to staff on Wednesdays afternoons. It's a great way to interact with staff I might not otherwise get the chance to interact with and gives them an appreciation of what we engineers do, without boring them!

The experience I gained at that NewVoiceMedia, in a mature agile department and team, has put me at the centre of the adoption, proliferation, and honing of agile at Lush.

NewVoiceMedia (June 2016 - November 2017)
At NewVoiceMedia, I worked in the IVR (Interactive Voice Response) team. A small interdisciplinary team, who pair-programme, dev/test pair, and are held up to be the model agile team in the DevOps department.

The software created by the IVR team handles many thousands of calls at any one time, allowing customers to administer highly dynamic call flows. We were responsible for everything between and including the interfaces customers used to administer their call plans to the runtime logic routing calls through the system and various other interconnected systems.

In addition to my work in the IVR team, I propagated the use of the Go programming language across the department. I did that by way of lunch-and-learn sessions, one-on-one mentoring and providing projects kick-offs and code reviews.

My proudest achievement at NewVoiceMedia, was the spear-heading of a department-wide adoption of Go. To show the company that Go was the right tool for the job, I lead my team in the development of a mission-critical text-to-speech service. A number of mission-critical production systems have since followed suit.

Smartodds (August 2014 - June 2016)
At Smartodds, I worked in an agile team responsible for bet placement and market data/stats retrieval for quant models. This role allowed me to function as a frontend and backend developer interchangeably and I became a go-to for the middle tier because of my work with RabbitMQ; building the company’s central message bus, which is used across the business and extensively by clients outside the business.

I was known for my love of developing proof-of-concepts and my ability to build them quickly. My versatility, sense of teamwork, readiness to help and mentor colleagues was also frequently called upon. In addition to my day-to-day duties, I could be relied upon to scout out technologies which would benefit the company. In my time at Smartodds, I oversaw the adoption of RabbitMQ, Dapper and LINQPad.

One of my favourite non-technical responsibilities at Smartodds was the developer interview process. I liaised with recruiters, vetted candidates, produced interview content and conducted phone and face-to-face interviews.

Glencore (November 2011 - August 2014)
At Glencore, I functioned as Subject Matter Expert for UX and UI development and a number of widely used internal core components, which I developed and maintained and whose use I promoted within the company. I was also a go-to for all things C#, WPF, WCF, LINQ, UX, UI, multithreading, security and build-pipeline related, helping developers of all levels write code and design interfaces.

Barclays Capital (April 2010 - November 2011)
During my time at BarCap, I helped design, develop and build automated tests for the WPF-based base and precious metals trading platform. I build great relationships with the traders, sales and operations teams and held regular work groups for them.

My proudest achievement at BarCap was the design and development of a real-time WPF position monitoring interface, used heavily by traders, sales and operations.

In my role at Navitas, I used C#, WPF, WCF, MySQL and the Boo programming language to develop bespoke solutions that interfaced with all major Global Distribution Systems (GDS) for clients in the travel industry.

My proudest achievement at Navitas was the design and development of a robust application framework, which acts as a transparent interface between Navitas and all of the GDSs. It’s used as the foundation for all of their products and is used by many thousands of travel agents today.

Reveal Media (April 2006 - June 2009)
My development career began at Reveal Medial during my university “industrial placement” year. During my time there, I led the design and development of a solution which is used by the majority of police constabularies around the UK.  My development efforts represent a major part of an application, which handles evidential video footage from portable surveillance equipment. As part of these developments, I would frequently provide rapid proof-of-concepts, run exhibition booths and demonstrate my software to constabularies around the country.

I was asked to continue working for Reveal Media part-time during my final year at university and then full-time upon the completion of my degree.

Other Employment History
  • Customer Service Leader, HMV (2004 – 2006)
  • IT Assistant, Electronic Arts Ltd, 2 weeks (work experience) 2002
Personal Interests
When I'm not developing professionally, I following the Go and Crystal development communities online, at meetups and at conferences and I make contributions to the Open Source community on GitHub and via my blog.

With any time that’s left to me, I enjoy writing and performing music. To date, I have produced 2 studio EPs and have performed around the south of England. I play bass guitar, piano, guitar and dip in and out of learning the ukulele, violin and tin whistle. I also love ballet, opera and classical music and attend performances whenever I can. In my heart however, I'm still firmly a metalhead \m/.