Alexis Gallepe

Hey there 👋

I’m Alexis Gallèpe, Software Developer, living in Lille 🇫🇷.


You can contact me Here !

Go

Network Protocols: TCP/IP, BGP/OSPF, HTTP, REST, Websockets, ...

Rust

Postgres

C

Experience

2021 - Today · Full Remote

Jellysmack

Auction System Development - Go, Ethereum Blockchain

I contributed to the development of a blockchain-based auction system, ensuring transparent and secure transactions on the Ethereum blockchain. In a team of two Go developers at the time, I used my Go programming skills and the Gin framework to build the backend architecture.
I also worked with product, design, and frontend teams to create a scalable and robust system infrastructure, demonstrating effective collaboration and technical skills in a small team setting.
Despite our progress, the project was put on hold two weeks before its release date, primarily due to the widespread crisis in the tech industry and a lack of interest in NFTs, leading to reevaluation of strategic priorities within Jellysmack.

Data Acquisition and Processing - Rust

When the Auction project was definitively stopped, I saw it as an opportunity to explore new areas. It seemed like the perfect time to transition to a team working with a language I had always been interested in: Rust.
So, I joined the Data Acquisition team, focusing on enhancing an existing Rust program that fetches terabits of data daily from the APIs of major platforms like YouTube, Facebook, Snapchat, and TikTok.
Our goal is to supply data that will be used to generate dashboards for product and business teams, along with training AI models to spot the best content trends and more.
I gained proficiency in Rust within a year, making significant contributions to our codebase. I overcame challenges related to its unique syntax and async/await paradigm. This task was particularly challenging as I transitioned from a background in Go.

Here is a brief overview of what I worked on at Jellysmack, within the Data Acquisition team :


  • Enhanced our quota management system by designing and implementing a buffering algorithm, aggregating requests into large batches before sending them to Redis, effectively eliminating preventive timeouts due to overload.
  • Maintained a fully Rust-based data acquisition CLI tool, handling the collection and streaming of large-scale data, like channel and video metrics to our AWS Kinesis Firehose, ETL, Databases.
  • Deployed containerized applications using Docker, Kubernetes, and Argo CD, ensuring efficient and scalable application deployment.
  • Orchestrated daily acquisition strategies and managed data acquisition pipelines through Airflow DAGs.
  • Enhanced system reliability and performance monitoring using Datadog for logging, monitoring, and alerting.
  • Benefited from mentoring by a senior developer and participating in mutual code reviews of our pull requests, promoting a culture of mutual learning and continuous improvement.
2021 - 2021 · Full Remote

Myel

Freelance at Myel, a Community Powered Content Delivery Network.
I mostly worked on a Go program named Pop, where every Pop node belongs to a network of peers, which, coupled with IPFS & the Filecoin blockchain, offers resilient & scalable storage, as well as fast & cheap data retrieval.

It was my first experience working in the Web3 world, so I had to re-think how data was accessible (DHT, Pubsub, Gossiphub, ...) and organised (Merkle-Dag, IPLD, dag-cbor, ...). I also, obviously had to understand the code of Pop already written by the team, then I finally read the Filecoin documentation in order to understand how the payments work.

It was for me a short but intense experience in an early startup trying to tackle some new problems introduced by the web3.

2020 - 2021 · Lille (France)

Vigie

Software developer at Vigie, a sales estimation platform of Amazon, Facebook, Vinted, ManoMano and CDiscount.

I worked on the creation of a crawler architecture capable of fetching up to hundreds of thousands of pages per day and per platform. To achieve this hard task, we decided to use intensively the Go language, allowing us to scale more easily by using a fast language and its easy to use way of dealing with concurrency (thank you Goroutines).

Because it would be extremely difficult to make so many requests on one server, we had to use hundreds of proxies.
We then developed an internal library called Hydra, which is a middleware of our Crawler Server made to efficiently control our proxies.

Web crawling is often viewed as a Cat & Mouse game, so we used and developed some technics integrated into Hydra, to pretend we are not a bot.

At Vigie, we love PostgreSql so all of our databases use it. Because we were storing hundreds of gigabytes of data, we started to have performance issues, so we took time to investigated how to scale our PostgreSql databases using indexes, partitions or even Citus.

I also enjoyed working on some DevOps tasks. We had many dedicated servers, so Linux, Ansible, Grafana and Prometheus were our best friends.


Ultimately, I can say that working for a young startup like Vigie brought me out of my comfort zone, and I found myself working on unexpected projects for a Software Engineer with a primarily Backend experience :

  • Reverse engineering Android apps
  • Doing some MITM between our computer and Android apps to look for api routes
  • And I even did some Frontend dev, using React (Nextjs) deployed on Vercel (I actually enjoyed doing that).
2019 - 2020 · Paris (France)

ADYOULIKE

Software developer at Adyoulike, a native advertising company, where I maintained and developed new features on a Go/Python codebase, doing thousands of real time bids per second.

I was working on a Docker based environment, where tests and optimisations were strongly recommended.

2017 – 2018 · Paris (France)

Partoo

Software developer at Partoo, a startup that helps businesses to develop their online visibility & e-reputation.

I implemented some Python pipelines to automate data fetching from the API/files of our clients, to our database.

I also contributed to a rewriting of parts of the legacy code and added more unit/integration tests.

2017 - 2017 · Paris (France)

THALES Communications & Security

Intern for 6 months at Thales, a French multinational company that provides services for the aerospace, defence, transportation and security markets.

I worked on the conception & implementation of decoders which extract data inside protocols, in IP networks.

I used C, Python, Wireshark, and read lots of RFC in order to understand these different protocols.

I also had to create different network topologies to test my decoders in a controlled environment.

Projects


Pytorrent

Pytorrent

2015 · CLI tool that downloads files from the BitTorrent network.
My first personal project, made to learn how a decentralized protocol works and improve my Python/Network skills.
It is written from scratch using Python 3.7.


Kademlia

Kademlia

2018 · An attempt to implement the Kademlia protocol using the Go language.
Kademlia is a Distributed Hash Table (DHT) protocol for decentralized peer-to-peer computer networks and is mainly used in BitTorrent to find peers without relying on a tracker server.
I first read the Kademlia protocol specifications then, once I implemented the appropriate data structures, started to fight with the un-connected UDP protocol (made me realize how much of a privilege it is to work with TCP).


BitPy

BitPy

2016 · Attempt to implement a Wireshark like program, where we can see messages sent & received by the Bitcoin protocol.
Written with a friend, we can send and receive Version, Ping, Pongs, Verack, and Getblock messages.
The code is in Python 3.5. The GUI was built using pyQt.

Education

2017 · Paris (France)

Master in Computer Science & Networks

Pierre et Marie Curie, Sorbonne University - Paris 6

2015 · Lille (France)

Bachelor in Computer Science

Lille 1 University

Get In Touch

Let's talk about everything!

Don't like forms? Send me an email. 👋