Xavier Petit · Developer, DevOps, Sysadmin
Skills
Language |
API / SDK / Library / Framework |
Go |
SQLite, AWS (EC2 & S3), Docker, Prometheus, Playwright, SDL2, BoltDB |
JavaScript |
DOM, WebExtensions, React, Node.js, Selenium, Puppeteer |
Python |
Flask, Requests, pytest, SQLAlchemy, Alembic |
C |
POSIX, SQLite, win32, libcurl |
Ada |
GTK, SDL2 |
Lua |
LÖVE |
Bash |
UNIX |
Software
|
|
Debian GNU/Linux |
Desktop & servers operating system |
VSCode |
IDE, Text editor, Markdown editor (documentation), calculator |
LibreWolf |
Web browsing (Firefox with sane defaults) |
macOS, VirtualBox, Docker |
Cross-platform testing with other OSes |
Git, Sublime Merge, Pijul |
Distributed version control |
Caddy, Prometheus |
Web server & TLS termination proxy with monitoring & alerting |
CLI |
Command-line tools, UNIX, Debian, Internet, my own |
draw.io, Graphviz |
Diagrams |
Sysadmin
|
|
Remote Access |
SSH (tunnels), Rsync, X11 forwarding, VNC, TeamViewer, Spice |
Virtualization |
KVM, Xen, VMware, QEMU, VirtualBox |
Containerization |
Docker(-compose), LXD (LXC) |
Web server |
NGINX, Caddy, TLS (Let's Encrypt), pfSense |
Storage |
ZFS, Btrfs, ext4, Linux RAID (mdadm), DRBD, dm-crypt (cryptsetup) |
NAS, SAN |
AoE, NBD, iSCSI, NFS, Samba |
Experiences
Developer @Upfluence (2023-09
.. )
Developing Go libraries and micro-services (connected to Stripe & Amazon Ads APIs) in a scaleup company.
Kubernetes, AWS, Thrift, lots of in-house code & tools.
Developer (2022-11
.. 2023-08
)
Various personal projects:
- Undetectable Web automation (using a real/stock unmodified browser)
- Job board aggregator (with deduplication of similar ads)
- Scanning of all registered domain names (262 million) in 10 minutes for ~$20
- High performance ZIM file reader (indexing a full english Wikipedia archive: ~55 GB in under a minute on a MacBook)
Developer @Leboncoin (2022-02
.. 2022-09
)
- Micro-service development in Go. With Kubernetes, Kibana, etc
- Golang best practices
- Development of scripts & tools to help with development
Developer @01-edu (2018-10
.. 2021-11
)
- Created and documented an automated test system with Docker to run untrusted code
- Configured Traefik and replaced it with a service that listens to Docker events and changes Caddy configuration
- Created a private, custom Docker registry that automatically builds and mirrors images
- Wrote and reviewed educational content (subjects and automated tests) to learn Shell scripting and Go
- Created deployment scripts
- Wrote documentation and scripts to install and configure Windows 10 with everything needed to code
- Management of servers (sysadmin)
- Created and documented an ephemeral (readonly) version of Ubuntu for schools (with a USB key for data persistence)
- I conducted technical interviews
Developer @Adeo (2018-04
.. 2018-10
)
- I developed libraries, wrappers and REST APIs using Python with Flask, Requests, pytest, SQLAlchemy & Alembic libraries to:
- Automate tedious network operations for F5 load balancers
- Automate network filtering rules qualification
- Manage network addresses and security groups before creating firewall rules (Palo Alto)
- I created and led Python programming workshops for reskilling
- I conducted technical interviews
Teaching @Freelance (2018-01
.. 2018-04
)
- Programming courses (Ada, C, Lua, JavaScript) for college students, engineering school students, freelancers...
Sysadmin @NaN (2017-09
.. 2017-12
)
- Installation of an open-source programming school in Abidjan (Côte d’Ivoire)
- Deployment of 50 iMacs on Linux Debian (preseed) in triple-boot Linux, macOS and Windows (macOS & Windows UEFI entries disabled by default)
- KVM-based virtual server (DHCP, DNS, NTP, SSH, etc)
- Creation of the login system and centralized authentication (SSO)
- Efficient incremental synchronization (difference of snapshots), periodic (every 5mins) of each student's user directories with the server
Sysadmin @Thot (2017-09
.. 2017-12
)
- Deployment of a Gogs forge
- Development of a KISS CI (Continuous Integration) script through Git Hooks to manage the micro-services configured with environment variables
- Updating, restarting and stopping, both manual and automatic (on crash or each specific git branch push)
Sysadmin @Becoast (2015
.. 2016
)
- Management of dedicated Xen servers and their associated VMs (under Debian)
- Self-hosted DNS management (custom through GLUE records)
- Thin provisioning with ZFS on Linux
- Installation of a secure mail server complying with anti-spam best practices (SPF, DKIM, DMARC)
- Deployment:
- Webmail (Roundcube, then Rainloop)
- GitLab forge
- Monitoring with Netdata
- Collaborative communication platform: Mattermost (Slack alternative)
- File hosting system: Seafile (Dropbox alternative)
Sysadmin, Developer @Freelance (2013
.. 2017
)
- Development: real-time backup for Windows
- Development: file deduplication
- Development: Data recovery from faulty disks and corrupted file systems with Testdisk suite and custom disk cloning programs (dichotomous traversal of intact portions of the disk)
- Development: multi-platform games with SDL (with a custom Ada binding), one-time pad (Vernam cipher)
- Assembly, installation and maintenance of computers (Windows XP and 7 Pro), servers (GNU/Linux), routers...
- Recovery of customer accounts from the ERP database
- Setting up a newsletter (phpList) and importing customers
- Virtualization under Xen of Windows Server with direct access to a network card (PCI passthrough)
- Simplification of the SI architecture
- Writing a Windows 10 installation and tweaking tutorial
Sysadmin @SR Infosystèmes (2008
.. 2012
)
- Migration of a VMware disk image (VMDK) to Xen (with paravirtualized drivers)
- Immortal virtual machine with Xen, Remus & DRBD (manually patched and recompiled)
- Benchmarking for the implementation of a SAN: iSCSI, AoE and NBD
- Optimization of the ext4 file system on RAID (stride, stripe-width, no lazy init)
- Network cabling (RJ45 crimping, wiring closet, labelling, etc.), troubleshooting, installation, server and workstation optimization.
- First use of reverse SSH on port 443 (to bypass NAT, Firewalls...)
Sysadmin @Jacuru (2006
)
- Installing a Samba NAS with RAID 1 (mdadm) encrypted (dm-crypt) disks, the spare disks are sleeping and woken up if necessary.
- Admin account password cracking with John the Ripper
Education
42, Google, Wikipedia, man
, specs
Hobbies, interests
Chess, hiking, all things tech related, space, nature