Raf Gemmail

Raf Gemmail

Leader and Educator in Lean, Engineering and Architecture

Summary

  • Implemented, led, architected and delivered at scale solutions for leading brands since the early 2000s.
  • Built big data/low latency solutions for BBC i-Player, Morgan Stanley, NTT, Spark's Spotify Integration.
  • Specialised JVM/Node full-stack polyglot (Data Architectures/EAI/DDD/BDD/TDD/Microservices/Frontend).
  • Strong generalisations across immutable infrastructure, Linux, datastores, security.
  • Provided direct technical and architectural coaching for multiple teams.
  • Successfully mentored/championed/partnered with my teams to achieve full cross-functionality, user engagement and continuous delivery.
  • Champion of user empathy, a common business language, fast-feedback, automation and continuous improvement.
  • Always improving craftsmanship of myself and those around me.
  • Experienced Agilist with a preference for Kanban and Lean.
  • ICAgile Certified Coach ICP-ACC. Mentored by Katherine Kirk on her contextual Leadership framework.
  • Iteration Master on a large transformation for New Zealand's Prime Minister and Cabinet Office, working with the Cabinet Secretary.
  • InfoQ.com News Editor, Home Schooling Dad, DevOpsDaysNZ organising team, speaker at meetups and conferences.

Work Experience

  • Engineering Manager (Mobile Messaging and Platform/SRE Teams) October 2021 - present
    Marigold (Formerly Campaign Monitor) Fully Remote with direct reports across 5 TZs

    As a member of the Sailthru leadership group, I have the pleasure of leading two cross-functional teams of polyglot engineers who build, ship and maintain a high-performance Marketing and Messaging Solution used by global brands with reach in the billions. In addition to partnering on DevRel and strategy with the leadership group, I create effective relationships and technical cohesion across a large grop reports and team members, spanning US central, US east, India, New Zealand and Manilla. I also run a Functional Programming Guild to spread understanding of the virtues of functional programming styles.

    • My mobile team is responsible for fullstack architecture, devops and delivery of an asynchronous push and in-app messaging solution which handles some of the highest volumes on the planet.
    • My platform team manage the underlying software infrastructure depended on to send billions of marketing and sms campaigns a month.

    Participated in 2023 InfoQ Culture and Methods Trends Podcast - https://www.infoq.com/podcasts/culture-trends-2023/

    • Remote leadership, paring and coaching
    • Remote Facilitation and Coaching
    • High performance and high throughput
    • AWS (ECS/EKS/DynamoDB/SQS/SNS/S3/EC2/SSM)
    • DevOps
    • DevRel
    • Agile Leadership
    • Java/js/Ruby/Elixir/go/python/php
    • React/Rail
    • Terraform
    • MongoDB (Atlas)
    • Direct Cross-timezone Line Management
  • Head of Technology (Fully Remote) October 2021 - present
    Developers Institute Fully Remote

    Promoted to Head of Technology, following a year as Head of Product in which I grew the teaching team and programme. Architected a Cloud-based data-driven solution using Security by Design, setting boundaries for an emergent architecture with consultation from the team. Developed project plan and costing encorporating Finops practices. Kick-off for a new team.

    Supporting Learner onboarding and off-boarding automation. Created new CD pipelines with Terraform Cloud and Okta to provision base-line identity platform.

    Implemented Mobile Device Management and designed intersection with Ansible and other config management tools. Leading a junior in using Terraform providers for provisioning.

    Assumed responsibility for our techology support function of the business using Jira Serice Desk and a daily fixed capacity

    Participated in 2022 InfoQ Culture and Methods Trends Podcast - https://www.infoq.com/podcasts/engineering-culture-trends-report-2022/

    • Remote leadership, paring and coaching
    • Facilitation and Coaching
    • DevOps
    • Education Creation and Delivery
    • AWS
    • Agile Leadership
    • Line Management
    • Python
    • Terraform
    • Okta
    • MDM
  • Head of Product (Fully Remote) November 2020 - January 2022
    Developers Institute Fully Remote

    As a remote Head of Product I helped create a professional environment where I hired and grew a team of commercially experienced engineers from industry to shape learners into the people we'd want to hire. I was directly involved in the hiring process and helped grow a team with impressive commercial track-records; including authors and conference speakers. I led the technically orientated Product Team and its design of a software development programme which was representative of the full-stack needs of industry, engineering approaches and commercial context.

    My reports scaled from 4 to 12 during my time in this role. Over this period we have grown into one of the fastest scaling private training institutions. I have encouraged a T-Shaped mindset and XP like practices. Ran org-wide session to help align varied interpretations of remote-working. Guided use of terraform for provisioning.

    Through a secondment with our sister company, I also provided professional consulting to a large national utility company. I have designed and delivered an 8 module Agile introduction to senior management, analysts, developers and architects. Successfully helped engage a large client contract through early phase discovery work resulting in the onboarding of a team of Associate Developers.

    Led my team of Technical Leads in initial automation of reporting and adding intentionality to tools used. Implemented use of Terraform for provisioning of AWS learner accounts. I helped instill Lean practices, backlog visibility with Jira and Kanban workflows to help visualise work during early scaling phases.

    Using DevEx focussed tools like AWS Copilot, I designed and delivered a LeanUX, Kanban and AWS centric Agile and DevOps programme. Also delivered and refactored a Server-Side Course based on BFF, Express, Auth0 and Mongo.

    One-to-ones and pairing with team members in various context. Delivered a talk at nz.js 2021 conference on the value of a teaching competency and growing junior developers. The talk was targeted at Technical Leads, Senior Engineers and Coaches: Turning Around Lives Through Teaching.

    • Remote leadership, paring and coaching
    • Facilitation and Coaching
    • DevOps
    • Education Creation and Delivery
    • AWS / Copilot / Terraform
    • Agile Leadership
    • Line Management
    • Mongo/Pg/MERN/PERN Stacks
  • Senior Technical Consultant (DevOps) February 2020 - November 2020 (COVID)
    Assurity Consulting Wellington, NZ

    DevOps and Testing consulting, implementation, delivery, teaching and talks. I joined Assurity immediately before lockdown and then was able to immediately start sharing my experience in remote working and facilitation.

    Coded, tested and consulted on-site at NZQA helping a team begin strangling a JEE monolith to use Spring Cloud-Function (Lambda) Microservices which were documented and tested using Specification by Example. Developed an internal abstraction and guide its journey to BDD/SBE using the open source framework, Concordion. Regularly consulted with Nigel Charman (the primary maintainer), with whom I co-delivered a talk on Concordian. Partnered with Analysts and stake-holders to create self-validating documentation (in the business language).

    I contributed to pre-sales activities through delivering DevOps lunch and learn talks for an embedded software provider and was involved in marketing targetted product offerings. Delivered a remote Containerisation Workshop with Allen Greer for Dunedin Techweek's Agile Stream on behalf of the Agile Alliance NZ.

    Developed patterns for remote teaching and created a Remote Foundations of DevOps course inline with the ICAgile syllabus. Provided remote Java Testing coaching for a team of test engineering consultants tasked with automating a Salesforce integration. Took an idea from fruition and organised a remote conference with international speakers on remote working challenges; raising funds for New Zealand foodbank.

    I highlighted Conway's Law to a goverment agency's CTO; illustrating how team structure is reflected in architecture. This led to delivering an overview of Team Topologies to their technical leadership teams. Championed Team Topologies in other settings, inviting the author to speak to an audience.

    • Facilitation and Coaching
    • DevOps
    • Education Creation and Delivery
    • Remote pairing and coaching
    • SQLServer in a Hybrid Cloud
    • Spring Cloud Functions
    • AWS Lambdas and API Gateway
    • Concordion
    • SBE/BDD/ATDD
    • Conference Planning
  • Agile and DevOps Coach November 2019 - February 2020
    NZTA Wellington, NZ

    Contracted to help New Zealand's Transport Agency on its path to adopting Agile and DevOps; also doubling up as a Scrum Master. Worked across two teams adopting Agile practices and helped provide context around a struggling vendor engagement. Partnered and coached tester in test-automation and use of mocks. Partnered in a team reset after a project collapse. Helped teams define a testing strategy, spike through uncertainty, collaborate with external partners and work through an Azure DevOps migration. Also supported program and project leads in lean principles, facilitating road-mapping and producing an example framework based on lean ux, kanban, DevOps and team topology principles. Interviewed to build an internal team. Mentored a scrum master and a junior.

    • Road-mapping
    • Azure DevOp
    • Coaching
    • Remote pairing with vendor
    • Facilitation
    • GIS
    • Situational leadership
    • Terraform
  • Remote Computer Science Professor March 2019 - current (_on going partnership_)
    OpenClassrooms Fully remote, NZ & Paris, Fr

    Contracted as a professor by title, I have developed my ability to explain technical concepts by building a teaching aptitude. I created technically heavy undergraduate classes for a French accredited online university. In partnership with Learning Specialists and learner-feedback I have built online courses with working code, using (and teaching) TDD and modern JVM development practices.

    I designed and developed deep courses on Java Testing, Java Debugging, Java Concurrency and Building REST API's with Spring Data. I also provided contracted consultations to support other professors teaching Spring related courses. I have partnered with OpenClassrooms on their syllabus for a Master's Program in Architecture and produced industry-based projects using real code and other artefacts to simulate reality.

    • fully remote working
    • teaching
    • consultancy
    • media training
    • presentation of technical material
    • script production
    • course and syllabus design
    • applying learning loops to teaching
    • self study of training from the back of the room
    • TOGAF ADM
    • architecture
    • Springboot
    • Spring data
    • Spring security
    • Testing pyramid
    • Swagger/OpenAPIv3
    • cloud formation
  • Agile and Technical Consultant July 2018 - January 2019
    MPorium London, UK

    I return to the UK in 2018 and contracted at MPorium as a hands-on Technical and Agile Coach on an AWS/Java/Scala/Python/Js Stack. During my time there, I supported an 8-person development team experiencing the growing pains of a scaling start-up in the data intelligence domain. Leading by example, I spent half my time developing and delivering ad optimisation stories on an AWS/Spark/Storm/Springboot/Angular/OIDC stack.

    In my capacity as a coach, I ran test strategy workshops, business/technical risk elicitation sessions, domain modelling events, Scala/Spark/Storm mob programming tutorials and Clean Code brown-bag lunches. Attempting to create a safe-to-fail culture of continuous improvement, I also ran 5-whys sessions.

    I supported Product Owners and developers in working with the broader organisation to start using hypothesis driven development and specification by example. I also developed Agile Fundamentals training for the teams, to address confusion over Agile ceremonies which were technically biased.

    MPorium's new CTO partnered with me on rebooting the teams and defining team level working agreements and backlogs before a new Sprint Zero.

    • coaching remote teams
    • AWS
    • ECS
    • Lambda
    • Java
    • Springboot
    • Spring-data
    • Swagger/OpenAPIv2
    • Auth0
    • OIDC/JWT
    • Spark
    • Containerised Gatling Tests
    • Scala
    • Hypothesis-driven development
    • team-rebooting
    • coaching
    • mentoring
    • facilitation
    • working with uncertainty
    • Scheduled Lambdas
    • Gatling
    • Docker-compose
    • couchbase
  • Technical Design Lead January 2018 - June 2018
    Bank of New Zealand Wellington, NZ

    Actively led and coached teams across BNZ's partner commercial online banking platform. During my time at BNZ I placed my focus on several teams which were cutting new ground by building public API's outside of its long-standing monolith. Using techniques such as DDD and domain modelling, pair programming, continuous delivery and containerisation I supported several teams in launching microservices containerised on OpenShift.

    As a member of a broader architecture, technical leadership and API governance teams I also helped provide governance and review of proposed OpenAPI specifications and strategic technical pivots.

    I also conducted retrospectives for mobile teams which were struggling with legacy architectural decisions. I supported adoption of security championship and participated in security training.

    Attended Security Championship and Apigee Training whilst there.

    • coaching
    • product teams
    • architecture
    • recruitment
    • Kafka
    • OpenShift
    • Swagger/OpenAPI
    • Java
    • Spring
    • React
    • Scala
    • Technical Radar
    • Hypothesis-driven development
    • Mule
    • DDD
    • Oracle
  • Technical Coach and Lead May 2015 - January 2018
    Stuff.co.nz, Fairfax Media Wellington, NZ

    A hands on technical lead supporting multiple teams and products on JVM/OSGI/AWS/js stacks.

    This role at New Zealand's most popular domestic website balanced departmental leadership, Domain Ownership, Agile technical coaching across multiple teams, Lean architecture, hands on development and mentoring. I served my teams in delivering Content Navigation features using AI and NLP, editorial video capabilities and a new reactive frontend.

    My teams were the first to achieve continuous delivery using TDD, BDD, Mob Programming, DDD and Trunk Based Development. I coached a culture of ownership with a "build it, ship it, own it"-mentality.

    As part of the leadership team I helped create an empowered culture with team self-selection and alignment with business goals. I encouraged a safe-to-fail culture of experimentation, using hypothesis driven development and captured architectural and organisational experiments using a Technology radar.

    I joined Stuff.co.nz as the only Technical Lead across a large team of 20+ developers working to monthly release cycles on a debt-heavy monolith. Together we strangled this monolith. On my departure multiple specialised teams were releasing daily within bounded domains, using single responsibility Microservices and successfully using modern techniques such as mob-programming. I shared insights into our journey in a talk given at the Javascript New Zealand conference in 2017.

    • coaching remote teams
    • Springboot
    • OSGI
    • vertx
    • node.js
    • Java
    • Scala
    • Gatling
    • JCR
    • PostgreSQL
    • Elastic Search
    • ELK
    • Jenkins
    • AWS
    • EC2
    • ECS/ECR
    • SQS/SNS
    • S3
    • Express
    • JPA
    • Spring-Data
    • OpenAPI/Swagger
    • OIDC/OAuth2
    • Mocha
    • cucumber.js
    • cucumber-jvm
    • Web Driver
    • Testing Pyramid
    • Strangler Pattern
    • Continuous Delivery
    • Feature Flags
    • A/B/Multivariate Testing
    • React
    • Redux
    • GraphQL
    • Canned
    • Technical Coaching
    • Mentoring
    • Puppet
    • Vagrant
    • Docker-Compose
    • Codeship
    • Raygun
    • Loggly
    • Mailchimp
    • Prometheus
    • Splunk
    • Consumer Contract Testing
    • Architecture
    • Sys. Admin & DBA
    • jHipster
    • Angular
    • cloud formation
  • Senior Software Engineer, Solutions Architect & Iteration Master October 2013 - May 2014
    Catalyst IT Wellington, NZ

    I moved to New Zealand to work with Catalyst as a Solutions Architect and eventually took on the role of Scrum Master and Agile Lead on one of the country's largest projects for Government. I worked with the Cabinet Secretary, as my product owner, with whom I served a team of 30+ BA's, testers and developers, in modernising New Zealand's policy making process. Through leading by example on agile development practices, such as BDD/TDD/pair programming, I developed and architected the integration of New Zealand's largest telecommunications provider with Spotify's partner API using microservice and DevOps patterns to continuously deliver features. I also worked for Stuff, New Zealand's largest site, and performed DevOps and Development duties on their high-performance site. This included using node.js to migrate data between two very large CMS's.

    • Java
    • node.js
    • Ruby
    • Perl
    • PHP
    • Spring
    • Spring-integration
    • Spring-batch
    • Spring-data
    • Rest
    • WSO2
    • Feature Flags
    • Microservices
    • Jenkins
    • Alfresco
    • Saml
    • Puppet
    • Vagrant
    • Packer
    • Mocha
    • Jira
    • Mockito
    • DevOps
    • TDD
    • BDD
    • pairing
    • facilitation
    • mentoring in agile practices
    • running retrospectives
    • running requirements workshops
    • creating a culture of continuous improvement
    • JIRA
    • Sequelize
    • Mocha
    • Cucumber
    • Architecture
    • RabbitMQ
    • ELK
  • Senior Software Engineer (Returned to the BBC on a targeted Contract) April 2013 - October 2013
    BBC iPlayer London, UK

    Short contract returning to the BBC to build business-critical Java microservices in a timely manner. Reverse engineered and migrated a legacy set of Perl microservices to Spring and asynchronous Camel pipelines using intermediary queues. Optimised and automated release process to support near-continuous delivery. Defined business acceptance criteria using BDD workshops.

    • part- remote
    • Java
    • Perl
    • Ruby
    • Python
    • Spring
    • Apache Camel
    • JMS
    • Cucumber
    • Mocha
    • Jira
    • Mockito
    • Jenkins
    • BDD
    • DDD
    • TDD
    • MQ
    • Pair programming
    • S3
    • SQS/SNS
    • MySQL
    • AWS
    • EC2
    • DevOps
    • Third party integration
  • Senior Software Engineer January 2012 - April 2013
    Headforwards Cornwall, UK

    Contract where I designed and delivered subsystems for NTT's enterprise cloud solution. Co-architected and led initiatives to integrate single sign-on, automation testing and large OVA upload and bootstrapping. Stood in for Architects on request.

    • OO Perl
    • Java
    • JavaScript
    • Python
    • VMWare VCD / VC
    • Rest
    • Microservices
    • JQuery
    • SASS
    • CORS
    • HMTL / CSS / JS
    • MVC
    • Pysaunter / WebDriver
    • PSGI / Plack
    • PostgreSQL
    • Cassandra DB
    • Mocha
    • Jira
    • Mockito
    • Jenkins
    • TDD
    • Kanban
    • Pair programming
    • Multi-part uploads
    • Multimaster replication
    • Fault tolerance
    • Automation Testing
    • DevOps
  • Senior Software Engineer October 2010 - January 2012
    BBC iPlayer London, UK

    On contract at the BBC, I led performance optimisations of one of the UK's most performant services, supporting iPlayer. Visualised platform metrics and built versioned Rest API's for serving high-performance data. Paired on talk with Katherine Kirk at QCon 2012 on this team's agile journey.

    • Java
    • C
    • Perl
    • MySQL
    • memcached
    • Database migrations
    • Linux
    • Solaris
    • Rest
    • TDD
    • Pair Programming
    • XP
    • DDD
    • Ops
    • Mocha
    • Jira
    • Mockito
    • Hudson / Jenkins
    • Splunk
    • Database migrations
    • Kanban
    • WSDL
    • jmeter
    • profiling
    • Event driven architecture
    • Virtualisation
    • Automation Testing
    • DevOps
    • JPA
  • Senior Software Engineer July 2009 - October 2010
    Trinity Mirror Digital Recruitment London, UK

    Helped architect and scale a major job board. Performance optimisation of search and began migration to Spring.

    • Java
    • OO Perl / TT2
    • Solr
    • Lucene
    • PostgreSQL
    • Linux production support
    • Database migrations
    • Lucene optimisation
    • MVC
    • Salesforce
    • Apex
    • Hudson
    • Mocha
    • Jira
    • Importing external models
    • TDD
    • Pairing
    • Automation Testing
  • Software Engineer August 2007 - July 2009
    Morgan Stanley London, UK

    Designed and built high-performance ETL services to consume and publish market reference and timeseries data. Designed and implemented reactive credit spread software.

    • Multi-threaded Java
    • OO Perl
    • JEE
    • MQ
    • AbInitio
    • Sybase
    • TDD
    • JMS
    • Production Support & Delivery
    • Expernal API Integration & Testing
    • Automation Testing
    • Internal Talks
  • Software Engineer November 2006 - August 2007
    VisionOSS Green Park, Berkshire, UK

    Short contract integrating a CMDB with CISCO VoIP hardware. Included automation testing using C#. Extended queing system using C.

    • Perl
    • C
    • CISCO Call Manager
    • C# Test Automation
    • XML/XSLT/XSD
    • PostgreSQL
    • Linux Sys. Admin
    • Automation Testing
  • Senior Asset Control Developer February 2005 - November 2006
    Abbey Financial Markets (Santander) London, UK

    Implemented performant data-intensive applications and middleware for traders and internal systems. Created domain language in XML. Appointed to intra-department Architectural Governance committee.

    • Perl / inline-C
    • C++ / STL
    • C#
    • WSDL
    • WebSphere MQ
    • J2EE
    • Swing
    • DDD
    • Sybase
    • JMS
    • Architecture
    • Sys. Admin & DBA
    • Middleware
    • Timeseries Databases
    • WebShere MQ
    • Automation Testing
  • Experienced Software Engineer February 2003 - February 2005
    ING Bank Amsterdam, NL

    Implemented perfomant data-intensive applications and middleware for front office traders and internal consumers.

    • LAMP
    • Perl / inline-C
    • C++ / gSoap
    • Solaris
    • Sybase
    • Oracle
    • J2EE
    • MQ
    • JMS
    • Sys. Admin
    • HTML/CSS
    • Timeseries Databases
    • Servlets
    • Automation Testing
  • Senior Software Engineer February 2002 - February 2003
    Booking.com Amsterdam, NL

    Developer number 4 and the first commit. Refactored original code to be more OO and normalised Database.

    • ModPerl
    • inline-C
    • Linux
    • FreeBSD
    • MVC
    • Database design
    • MySQL
    • PostgreSQL
    • HTML/CSS
    • Automation Testing
  • Software Engineer and Systems Administrator January 2001 - February 2002
    Codix.net London, UK

    Worked as both a SysAdmin and Software Engineer, building and maintaining brand-name sites on bespoke projects.

    • Perl
    • C
    • Java
    • Linux
    • FreeBSD
    • Solaris
    • MySQL
    • PostgreSQL
    • HTML/CSS
    • Automation Testing
  • Junior Software Engineer February 2000 - January 2001
    Sportingbet.com London, UK

    Cutting my teeth in the commercial world building statistical interactive TV and web applications.

    • LAMP
    • Perl
    • HTML/CSS
    • Automation Testing

Professional Skills & Tools

Languages
  • Java
  • node.js
  • Scala
  • Ruby
  • Perl
  • Python
  • C
  • Go lang
JVM Frameworks
  • Springboot
  • JPA/Hibernate
  • Cucumber JVM
  • Play
  • Karate
  • Camel
  • Spark
  • AEM
  • Alfresco
JS Frameworks
  • Express
  • Typescript
  • React/Redux
  • GraphQL
  • Mocha
  • Cypress
  • Cucumber.js
  • canned
  • Sequelize
Datastores
  • PostgreSQL
  • Elastic Search
  • MongoDB
  • MySQL
  • Asset Control
  • memcached
  • S3
  • JCR
Platforms
  • Docker-Compose
  • AWS ECS
  • S3 (Lambda)
  • Vagrant
  • Hashistack
  • ELK
  • Splunk
  • Puppet
Holistic Leadership Skills
  • Handson DevOps Coaching
  • Handson Technical Coaching
  • Handson Agile Coaching
  • Lean/Kanban/Agile/LeanUX
  • JVM and Fullstack polyglot
  • Continuous Learner
  • Technical Leadership
  • Lean Architecture
  • XP and Lean Development
  • Facilitation
  • Teaching
  • Mentoring
  • Business goal alignment
  • Project Costing
  • Turning failure into learning
  • Creating cultures of psychological safety.
  • Empirical technical improvement through measurement
  • Technical Hiring

Relevant Education

BSc Hon. Computer Science and Artificial Intelligence
University of Birmingham
1994 - 1999
Study in Continental Europe, ECTS Credits
Dipartimento di Informatica, Universita degli Studi di Pisa
1997 - 1998
ICP-ACC ICAgile Certified Professional - Agile Coaching
Trained by Shane Hastie, Director of Learning at ICAgile
2016

Interests

I am a homeschooling dad who is fascinated by the sciences as well as futurism. I practice amateur astronomy in the night and love to go on coastal jogs during the day. My other life-long passion is music: I love listening to it as well as playing both the guitar and ukulele.

I enjoy writing engineering culture articles for InfoQ and regularly attending and contributing to conferences and meetups. Most notably, I gave a talk on different patterns of pair and mob programming at JSConNZ and a well-received talk starting at 30' on combating technical debt at QCon London. In recent years I've helped co-organise DevOpsDaysNZ which has brought me immense personal satisfaction.

References

I just wanted to thank you for this stellar work, it's a real pleasure to work with you and to benefit from your (seemingly endless) experience!

Clara Corazza OpenClassrooms

Something nice about Raf.

Katherine Kirk SAIL Leadership Training