Skip to content
Avatar

Highlights

Organizations

@jetstack @touist

Sponsoring

@meyskens @smorimoto @alexellis @networkop @zaquestion @haya14busa @bep @dominikh @caarlos0
maelvls/README.md

Hi! My name is Maël (prononciation). I am a software engineer living in Toulouse (France). I like to promote psychological safety through empathy and kindness. What I enjoy the most is to tinker with containers, networking and Linux-y security. I love being part and contributing to open-source communities. I also enjoy building cool CLI tools.

You may read about me digging into networking, Go development, and Kubernetes on my blog.

Some of my contributions: cert-managergitlab (Ruby), boost-graph (C++), auto-multiple-choice (C++, Perl), kubernetes-sigs/kind and kubernetes-sigs/cluster-api (Go), ocaml-minisatocaml-qbf, ocamlyices2opam (OCaml). I authored homebrew-amctouist (OCaml) and a couple of vscode-extensions.

🔰 Curriculum & contact information

System Software Engineer at Jetstack (2021–present)

I joined the cert-manager team at Jetstack, where I work at building the open-source community around cert-manager as well as contribute to the enterprise offering.

System Software Engineer at Ori Industries (2019–2020)

As a Software Engineer at Ori Industries, my main focus was to develop an edge-aware version of Cloud Foundry. Telcos would use this infrastructure platform to leverage its low-latency last-mile 5G network. With this platform, they can sell compute time to developers with a network latency of 1-2 ms, acting as a public cloud provider of their own.

As an individual contributor, I helped shape the Kubernetes components that would make up the Ori infrastructure platform. Among others, my team built a Kubernetes native API for spinning up VMs on AWS, GCP, and OpenStack and bootstrap them into Kubernetes clusters. I also worked on a custom control plane for Envoy (our platform’s data plane) inspired by Istio. I contributed to the company’s initial REST API built-in Go that used a CQRS approach and NATS for the event persistence. My main achievement as an individual contributor has been to become the go-to person anyone would come to regarding Kubernetes controllers as well as for debugging Kubernetes and network-related issues.

After a few months, I stepped up as tech lead in a team of four people. I would run the daily standups, make sure the backlog is in good shape, work with the Product Manager to flesh out stories, point the stories with the team, run a biweekly retro meeting (we ended up working in an uninterrupted sprint). Notable achievements are the “project office hours” I started; the meeting increased the cross-team communication through demos and open discussions about anything more or less related to my team’s project.

Beyond my primary assignment, I also worked with the rest of the company on topics such as

  • Helped grow the remote-first culture thought experiments such as the “wormhole” and by pushing for better video call quality (more than 70% of the company now equipped with proper standalone mics such as the Blue Yeti). A blog post about my experience of remote work is published here.
  • I initiated a movement towards transparency across the company that led to a rewrite of the “values” page. We started recording meetings and creating, for each meeting, a shared document with an agenda and collaboratively-written minutes.
  • Contributed to the company knowledge base on various topics such as “the git guide,” “slack etiquette,” and “recording and sharing meetings.”
  • Attended all weekly meetings of sig-cluster-lifecycle to keep the company up to date with upstream developments as well as advocate for our solution; contributions: kubernetes-sigs/kind, kubernetes-sigs/cluster-api
  • I helped develop a self-learning program where each engineer spends 20% of their time training on various topics. I authored a couple of blog posts and proposed learning topics engineers would pick during their training (mainly around Kubernetes controllers, networking, and Linux-y things).
  • I authored the technical test given to applicants and was part of the technical interviews.
  • I wrote multiple internal kubectl plugins for interacting with our custom resources and a tool for monitoring and removing unused VMs on OpenStack, AWS, and GCP.
  • I authored ngroker, a tool we used at Ori for running a shared ssh session without the hassle of exchanging ssh keys (using Github usernames).
  • I wrote an interactive ChatOps bot using Github Actions for applying Terraform changes through PRs.

Tools used: Go, Kubernetes, Github Actions, Helm, Terraform, AWS, GCP, OpenStack, Agile.

Fullstack Software Engineer contracted to La Banque Postale (2019)

As part of a network operations team, I built a web application meant to become a self-updating repository of IP assignments (as opposed to using Excel sheets), which helps the operations team plan and execute fail-overs.

Tools used: Java, Spring Boot, Typescript, Angular 2+, NgRx.

Systems Software Engineer contracted to Orange (2018)

As part of an operations team, I built a Terraform plugin in Go for a private cloud used within Orange (mainly interacting with VMWare vRA 7 APIs). I also worked on the continuous testing and delivery of Docker images used by application teams across the company.

Tools used: Go, Terraform, Gitlab CI, Bash, VMWare vRA 7.

Education

Ph.D. in Computer Science (2016–2018)

I developed touist, a compiler written in OCaml for a new logic language meant to formalize and solve problems expressed as SAT expressions. The tool is now used to teach logic to first-year students at Université Paul Sabatier in Toulouse and is used by researchers to explore new SAT encodings; see the thesis (in French).

As part of my PhD, I also helped develop a web application serving as a frontend to the compiler written in VueJS and Rust; we deployed it through Docker images built by Travis CI and run using AWS ECS.

Tools used: OCaml, Rust, Typescript, AWS ECS, Travis CI.

Contact details

Pinned

  1. Automatically provision and manage TLS certificates in Kubernetes

    Go 6.9k 1.2k

  2. 🐳 A gRPC microservice for dealing with users and its CLI client + Helm chart

    Go 5 1

  3. 🐧 ChatOps + Terraform using Github Actions

    HCL 1

  4. ⛵️ Infra-as-code for my playground Kubernetes cluster stuff hosted on *.k.maelvls.dev

    Shell 1

  5. 🧸 Ngroker is a tiny helper for creating an ngrok session for pairing with my colleagues just by using their Github usernames

    Shell

  6. TouIST, the IDE & Language for Logic (backed by SAT, SMT and QBF solvers)

    OCaml 57 11

1,151 contributions in the last year

Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec Jan Mon Wed Fri

Contribution activity

January 2021

Created 2 repositories

Created a pull request in cert-manager/website that received 8 comments

Note about what assignees on Github issues and PRs mean to us

I created this PR after this Slack convo: Mael Jan 13th at 19:53 Quick question: I noticed in #3457 that we seem to be using Github assignees: J…

+17 −0 8 comments
Opened 5 other pull requests in 3 repositories
Reviewed 5 pull requests in 3 repositories
jetstack/cert-manager 3 pull requests
jetstack/google-cas-issuer 1 pull request
maelvls/we-want-ics 1 pull request

Created an issue in actions-ml/setup-ocaml that received 6 comments

Action breaks with ubuntu-20.04

Hi! Thank you so much for your work on this github action!! I tested your action with ubuntu-20.04; the reason why I use ubuntu-20.04 instead of …

6 comments
Opened 3 other issues in 3 repositories
maelvls/vscode_autotools
1 closed
JoshVanL/stand-up
1 open
c-cube/ocaml-qbf
1 closed
Answered 1 discussion in 1 repository

Joined the Jetstack organization

@jetstack
Jetstack

Jetstack helps businesses to build and operate modern cloud native infrastructure with Kubernetes.

12 contributions in private repositories Jan 13 – Jan 22

Seeing something unexpected? Take a look at the GitHub profile guide.