Marc Chamberlin Web & Software Engineer

Work Experience

Kactus - Tech Team Lead, Engineering Manager
Remote - from Jan 2022 to present

Kactus Thumbnail

Kactus is a marketplace for MICE (Meetings, Incentives, Conferences, and Exhibitions) venues. It is a B2B SaaS platform that connects event planners with venues. The platform enables event planners to search, compare, and book venues for their events, while also allowing venues to manage and receive bookings.

In 2022, Kactus merged with a competitor, Bird Office, to become the European leader in the MICE market. As the technical expert of Kactus’ tech stack, I played a key role in integrating the Bird Office team. This involved conducting code reviews, engaging in technical discussions, and participating in pair programming sessions.

As an Engineering Manager, I lead the team in shortening the development life cycle and achieving continuous delivery with a focus on high software quality through DevOps best practices. I introduced concepts such as continuous deployment using Github Flow, standardized and automated components of the CI/CD pipeline, and implemented application monitoring tools. Through these processes and tools, I significantly reduced production errors and vulnerabilities, minimized tech support ticket volume, improved code quality, and increased test coverage.

I also actively participate in the recruitment process by conducting technical interviews and assessing the skills of potential new team members.

As a Tech Team Lead, I collaborate closely with Product Owners to provide the technical vision for our applications, propose alternative technical solutions, and take responsibility for project architecture and technical choices. Additionally, I manage a team of 1-2 developers and conduct regular 1-on-1 meetings to support their professional growth, assess their performance, and help them develop their skills.

www.kactus.com

Engineering Management People Management Product Oriented Development MICE


Kactus Marketplace

Description

The Kactus web application is a Ruby-on-Rails monolith, containing code segments from its initial version developed in 2015. We follow the ‘boring stack’ principle, relying on well-established technologies and frameworks to optimize speed to market and ensure the application’s long-term maintainability.

In the fast-paced world of marketplace startups, time-to-market is a critical factor, shaping our development cycle to expedite feature releases. We employ the Github Flow methodology for shipping features and bug fixes to production, often making multiple daily releases. Heroku Review Apps are instrumental in testing features within a production-like environment before merging them into the main branch. To streamline the development process further, the team relies on Github Actions, automating the CI/CD pipeline and enabling seamless deployments to production.

Our choice to utilize Hotwire (Stimulus/Turbo) over other prevalent front-end frameworks like React or VueJS is driven by the need to expedite feature delivery. This approach eliminates the overhead of maintaining a separate front-end application, enabling us to ship features more swiftly.

Ensuring quality is a fundamental aspect of our development process, and we utilize a range of tools to guarantee the dependability of our codebase, achieving a test coverage of over 80%. We do not merge any pull request unless it successfully passes through our rigorous testing suite, static code analysis, and a comprehensive code review process.

Stack
Back-end
Ruby-on-Rails Sidekiq Postgresql Redis
Front-end
Hotwire (Turbo / Stimulus) View Components ViteJS Bootstrap
Testing
Unit/Request Testing (RSpec) E2E (Capybara)
Third Party Applications
Algolia Segment Salesforce Intercom Sendgrid
Ops Tools
Heroku Github Actions New Relic Sentry
Development Tools
Notion Git Github

Decathlon - Tech Lead, Engineering Manager
Hong Kong - from Mar 2020 to Jan 2022

Decathlon Thumbnail

At Decathlon Hong Kong, the Tech Team is responsible for overseeing the Hong Kong-specific components of our e-commerce website, with the core functionalities developed by a separate team based in France. Despite this division, our team enjoys autonomy to conceptualize, implement, and maintain local applications used both internally and externally.

In my role as Tech Lead, I have played a pivotal role in streamlining our development life cycle and ensuring continuous delivery of high-quality software through the implementation of DevOps best practices. I introduced crucial concepts such as Test-Driven Development (TDD), static code analysis, and code reviews. I empowered team members by assigning application ownership (“you build it, you run it”), standardized and automated various components of our CI/CD pipeline, and established robust application monitoring tools.

I maintain close collaboration with Product Owners to provide a clear technical vision for our applications, offering alternative technical solutions when necessary. I also shoulder the responsibility for guiding project architecture and making informed technical choices.

Since assuming the role of Engineering Manager in October 2020, I have successfully managed a team of 6 developers, actively supporting their professional growth and skill development. My responsibilities include coordinating the appraisal process and leading recruitment efforts. Furthermore, I ensure alignment with Decathlon’s mission, purpose, and vision by defining annual team missions.

Retail Digital Transformation DevOps International Company People Management


Decathlon Plus

Description

Decathlon Plus represents an innovative venture aimed at exploring the sport retail marketplace business, covering the entire spectrum from seller onboarding to shipment tracking.

The creation of this marketplace website was initiated using a Ruby-on-Rails e-commerce framework known as Solidus, which furnished the core functionalities essential for an e-commerce platform, including product listing pages, product details, checkout processes, payment integrations, and more. The adaptable nature of this framework allowed us to seamlessly extend the data model to incorporate critical data pertaining to sellers and their respective brands.

To enhance the user experience, our Design Team introduced a fresh visual branding concept, which was seamlessly integrated into our user interface through slight customizations of Bootstrap using a tailored theme.

The strategic decision to leverage an existing framework, even if not entirely tailored to our specific needs, proved to be prudent. In just a matter of months, we successfully launched a comprehensive marketplace, encompassing critical aspects such as partnerships, business development, communications, and financial operations. As a result, we have swiftly immersed ourselves in the market and are actively learning from this experience.

Stack
Back-end
Ruby-on-Rails (Solidus) Postgresql
Front-end
Bootstrap SASS Slim Templates
Testing
TDD/BDD (RSpec) E2E (Cypress)
Third Party Applications
Stripe Sendgrid
Ops Tools
Google Compute Engine AppSignal Github Actions
Development Tools
Jira Git Github Sublime

Recommendation Gateway

Description

The Recommendation Gateway was developed to empower Data Scientists with the continuous application of their product recommendation models on the local e-commerce website. This system comprises an endpoint where Data Scientists can efficiently bulk-upload product recommendations for every customer member of Decathlon Hong Kong. When a Decathlon Hong Kong member visits the e-commerce website’s homepage, a query is transmitted to the application’s API, accompanied by the member’s unique identifier, which elicits a response containing personalized product recommendations.

The decision to initiate requests to the Recommendation Gateway API from the frontend was driven by the objective of enhancing the autonomy and, consequently, the delivery performance of the Hong Kong Decathlon Tech Team. Since the development of the e-commerce website is undertaken by a separate team based in the company’s home country, the local team primarily focuses on frontend development.

The primary challenges encountered in developing the Recommendation Gateway revolved around providing Data Scientists with an efficient means of maintaining uploaded data and ensuring speedy retrieval of product information. The source of product information originates from a legacy internal API, which typically yields an average response time of 2 seconds per product query. Leveraging functional programming with Elixir facilitated straightforward parallelization, and the utilization of Redis, combined with an effective caching strategy, significantly improved I/O performance and reduced the average response time to a remarkable 800 milliseconds for each query involving up to 6 products.

Stack
Back-end
Elixir Redis
Testing
TDD/BDD (ESpec)
Ops Tools
Google App Engine Google Cloud Run AppSignal Github Actions
Development Tools
Jira Git Github Sublime

Appysport - Senior Developer
Hong Kong - Part-time since Sep 2018, full-time since Oct 2019 to Feb 2020

Appysport Thumbnail

Appysport (shut down in 2020) was a start-up based in Hong Kong aiming to facilitate sports practice in Hong Kong with technology. Appysport started with tennis and watersports to make them more accessible to the many and wants to make it possible for sports lovers to easily propose or join activities, invite their friends, hire coaches, or even rent equipment.

As a Senior Developer, my role was to design and build the Appysport platform, work closely with the product managers to provide technical solutions and integrate the existing external platforms to our own backoffice.

Web Development Startup Sport Innovation


Appysport Platform

Description

The Appysport platform aggregated various sports marketplaces, including watersports, tennis (discontinued at the end of 2019), and fitness. Shopify served as the hosting platform for data storage and the display of services, such as classes, lessons, rentals, etc., using a custom Liquid template. It also facilitated the checkout process.

To efficiently manage data integration between the data provider Anybuddy and Shopify, we developed an ETL (Extract, Transform, Load) system using Elixir. This ETL system was meticulously designed to be fast, lightweight, fault-tolerant, and capable of mitigating Shopify API rate limits. Leveraging Elixir’s built-in scheduler, we established an integrated CRON service for seamless task scheduling.

For managing booking-related follow-up emails, including confirmations to customers/partners, cancellations, and instructions, we utilized a Ruby-on-Rails application. Within this system, we designed a custom Domain-Specific Language (DSL) to simplify the configuration of automated email workflows and their seamless integration with Sendgrid.

Stack
Back-end
Ruby-on-Rails Elixir Postgresql
Front-end
VueJS NuxtJS Liquid Templates
Testing
TDD RSpec/ESpec
Third Party Applications
Shopify GraphQL API Anybuddy Auth0 Sendgrid
Admin Tools
KintoHub Sentry Cloudflare
Development Tools
Jira Trello Git Github Sublime

BookingSync - Senior Developer / Team Leader
Hong Kong - Jun 2017 to Sep 2019

Bookingsync Thumbnail

BookingSync is a remote-based company with collaborators all around the world. It provides services to vacation rentals property managers through multiple in-house applications and external partner systems such as Airbnb, Booking.com and TripAdvisor. More than 20.000 rentals are managed in over 66 countries. More than 2.3 billion bookings were handled through Bookingsync.

As a Senior Developer, my role was to design more complex features and to oversee the work of other developers. I also had to keep applications under my scope up and running. Those applications had various business objectives:

  • Notification Center app that triggers emails sent to travelers
  • Owners portal app that facilitates communication between a property manager and the rental’s owner
  • TripAdvisor Integration app to help property manager oversee which rentals to push TripAdvisor platform
  • Invoice app that generates invoices based on custom templates
  • Website Builder, that generates fully functional rental booking websites automatically plugged to BookingSync

The stack being similar among the applications, I initialized the standardization of their README to cover installation, setup, development process, testing, deployment, and monitoring.

As a Team Leader, my role was to facilitate the communication between with other teams and also to smoother the organization within the team (4 developers & 2 customer supports).

www.bookingsync.com

Web Development Web Administration Vacation Rental


BookingSync Notification Center App

Description

The Notification app is critical in the vacation rental process as it handles all the emailing of check-in and check-out details, contracts, payment reminders and other information to the travelers. It relies heavily on background jobs and real-time constraints. Being the application I worked the most on, it was released 2 years before I started working on it. I covered all parts of the app, including:

  • Improve UX by reducing risks of typos (especially for email address errors
  • Prevent emails from being sent twice by refactoring SQL queries
  • Implement soft-deletion feature for all DB records for data recovery and audit
  • Setup healthcheck that triggers alerts when delay sending notifications is too high
  • Implement a “retry later” feature when Mandrill’s servers are down
  • Fix all warnings and stylecheck offenses
  • Add pagination to index pages and remove n+1 queries to reduce request time
Stack
Back-end
Ruby-on-Rails Postgresql Redis Sidekiq
Front-end
Bootstrap HTML5 CSS3 SASS Slim Templates Liquid Templates
Testing
TDD RSpec FactoryBot CircleCI
Third Party Application
Mandrill/Mailchimp Geocoder
Ops Tools
Deis/Workflow New Relic Sentry
Development Tools
Jira Git Github Sublime

TripAdvisor Integration App

Description

This application helps any property manager of BookingSync to push to TripAdvisor platform all the availabilities of their rentals and the estimated price per day. However, the final price paid by the traveler was sometimes different than the direct price computed by BookingSync because of delays between refreshes of rental prices and discounts related to the length of stay.

I worked closely with the TripAdvisor technical team to implement an API endpoint based on their specifications. This endpoint was later used by TripAdvisor to display on their website the live rate for a rental according to the length of stay and the number of guests. The estimated number of requests during a peak day was 7,500 and so far, this endpoint has respected the SLA defined by TripAdvisor:

  • maintain less than 500ms of median response time
  • maintain less than 1.5s of response time for 90% of requests
  • return a successful response for at least 99.9% of unique requests
Stack
Back-end
Ruby-on-Rails Postgresql Redis Sidekiq
Testing
TDD RSpec FactoryBot CircleCI
Third Party Application
TripAdvisor Private API
Ops Tools
Deis/Workflow New Relic Sentry
Development Tools
Jira Git Github Sublime

HelperChoice - Tech Lead
Hong Kong - Jul 2015 to May 2017

Helperchoice Thumbnail

Rebuilt and enhanced the leading social platform in Hong Kong that connects families and domestic helpers. Being the second person to join this social startup, my role was to analyze the business needs, provide solutions adjusted to the users’ constraints. In addition, I had the responsibility to keep the website up and scalable by delivering clean, maintainable and tested codebase.

The website attracts more than 8000 users per day. The startup itself was rewarded in Hong Kong for its social impact and was the only Asian finalist in a purposed-based contest supported by the UN Foundation.

www.helperchoice.com

Web Development Web Administration Startup Social Enterprise


HelperChoice Platform

Description

Redesigned the whole application architecture, developed the new platform, managed the transition from the previous website, secured the payment workflow and integrated new business features. Business needs are specified directly by the CEO and then designed and implemented by me. The development cycle is agile following a TDD process, each feature is tested and developed piece by piece and deployed as soon as possible in production.

The website users are present in 10 countries and a large part is using the previous generation smartphones. To handle these constraints, we built the website by using responsive design techniques available on modern and legacy browsers. The core of the architecture is a Ruby-on-Rails application (MVC, REST) associated with the “best for the job” tools.

Stack
Back-end
Ruby-on-Rails Postgresql Redis Devise ActiveAdmin
Front-end
Bootstrap HTML5 CSS3 SASS
Testing
TDD RSpec FactoryGirl Capybara Guard
Third Party Applications
Paypal Stripe Mandrill/Mailchimp Facebook
Admin Tools
Engine Yard New Relic Sentry Google Analytics
Development Tools
Jira Git Github Sublime

DoctHeure - Founder
Paris - Jan 2013 to Jul 2015

Doctheure Thumbnail

Founded and managed a solo startup of web solutions for medical practitioners. Created a web application based on customer’s needs. Along with the technical parts, I worked on business development, costs estimation, sales forecasting, and sales.

www.doctheure.com

Web Development Web Administration Healthcare Entrepreneurship Customer's Relationship


DoctHeure Web Application

Description

DoctHeure is a web application that allows medical practitioners to easily automate the secretary’s tasks. The patient can take an appointment on the web application or by phone call. An email and/or an SMS is sent the day before the appointment. The features can be configured by the practitioner to fit his needs.

The application has been developed by myself and the open-source community through a rigorous development method. The kanban process was used to list and prioritize tasks and keep a trace of the deployment cycle (test, development, staging, production). The TDD process was used to keep the application clean and to avoid any regressions.

Stack
Back-end
Ruby Postgresql Devise ActiveAdmin
Front-end
Bootstrap HTML5 CSS3 SASS
Testing
TDD RSpec FactoryGirl Capybara Guard
Third Party Application
Twilio SMSFactor Mandrill Geocoder
Ops Tools
Heroku Sentry
Development Tools
Trello Git Github Sublime

Lipton Fit - Software Engineer Consultant
Paris - Mar 2011 to Jan 2013

Liptonfit Thumbnail

In mission at Caceis Fund Administration as Software Engineer, as Lead Developer of the Financial Reporting Team (3 developers), I was in charge of the enhancement of new features of the business core software as IFRS7 risk calculation or third-party software StatPro integration. I designed financial reporting templates and populated them with stored procedures that fetched data in a data warehouse.

Software Development Team development Banking Services Middleware Architecture


Financial Reporting Generation

Description

A financial reporting is 2 pages of technical information about a financial portfolio. The project was to automate monthly reporting of specific portfolios with informations saved in a datawarehouse. I used the software Actuate to design the reporting template and populated it trough stocked procedure.

Actuate design module is built on Visual Basic language. It allowed me to create DRY design component for templates (such as headers, footers, curves, tables).

Stack
Database
Datawarehouse Model Sybase Transact SQL
Design Tool
Actuate Visual Basic

IFRS7 Risk Calculation

Description

The IFRS7 notation is a value from 1(good) to 3(bad) that estimates the risk level of each asset of a financial portfolio (hedge fund). The value is weight by rules like for example the nationality of the fund or the type of asset. Each fund holder can choose the rules they want to apply.

The existing business core software had a Service Oriented Architecture so the feature was implemented as a web service and “plug” in the existing system. The service was triggered by a UI through an API. The UI also allowed the user to create and to weight rules to a portfolio. A specific algorithm was designed to reduce databases I/O and avoid unnecessary operations.

Stack
Back-end
Java Sybase Struts Hibernate
Front-end
JSP
Testing
JUnit
Development Tools
Jira SVN Eclipse

Education

Epita Thumbnail

EPITA - Master in Computer Science Paris - 2011

Specialized in Information System and Software Engineering

Learned programming, data structures and algorithms, UNIX, software development methodology, programming languages (C, C++, Perl, OCaml, Java), and general engineering skills.

Been elected class representative 5 years in a row. Worked on the cohesion of the group, delivered information to the class, organized the course planning of the last year school, improved the sense of organization and team working cohesion.

Languages Thumbnail

Languages

French
Mother tongue
English
Proficient