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-manager, gitlab (Ruby), boost-graph (C++), auto-multiple-choice (C++, Perl), kubernetes-sigs/kind and kubernetes-sigs/cluster-api (Go), ocaml-minisat, ocaml-qbf, ocamlyices2, opam (OCaml). I authored homebrew-amc, touist (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
- mael.valais@gmail.com
- +33 786484391
- Maël Valais on Kubernetes Slack and Gopher Slack
- Blog
- Toulouse, France