I work with organizations that have these three problems:

  • Tangled code and infrastructure
  • Limited visibility and understanding into how users engage with the product
  • Experience stressful and unreliable deployments

What we can achieve together

A Less stressful development and deployment process:

  • Progressively roll out new features to user cohorts to spot issues early and roll back if needed
  • Automate testing (unit, end-to-end) with full reports of failures, successes, and coverage every time code is merged
  • Automatically prevent code that fails quality checks from ever being deployed to production

Faster and more confident iterations:

  • Make your code easier to understand, maintain, and extend
  • Lower your cloud costs by auditing your architecture and consolidating your cloud usage
  • Turn deployments into low-stress non-events

Allocate development effort where it matters to your users:

  • Identify which features your users love and which they ignore
  • Prioritize your backlog based on real data rather than guesses
  • Find out where the performance bottlenecks are based on your users' experience
  • Use A/B testing to iterate on ideas and see what yields the best results
  • Run beta programs with a small early-adopter cohort for testing and feedback

Handle customer and business issues more efficiently:

  • Solve hard-to-debug issues more easily by providing your support and engineering teams with all the context they need (e.g. user interaction replay, payload contents)
  • Prepare for unforeseen events by drafting Disaster Recovery and Business Continuity plans

Some of the tools I use

I favour open-source tools to avoid vendor lock-in wherever practical.

AI helps me understand your existing code more efficiently and challenge my designs. I use models and providers matching your sovereignty requirements and don't train on your data.

  • Languages/runtimes: TypeScript, JavaScript, Node.js, Ruby, Golang
  • CI/CD: GitHub Actions, GitLab
  • Testing: Jest, Mocha, Playwright, Cypress
  • Analytics: PostHog, Plausible
  • Monitoring: Grafana, Loki, Prometheus, Alloy
  • Infrastructure and containers: Ansible, Docker, Podman, LXC, Kubernetes (k8s)
  • Database: PostgreSQL

How I work

I work iteratively: once we have agreed on a plan together, we pick the next piece of work to tackle. I then share the latest changes with you or your stakeholders at regular intervals, typically every week or two, so you can see how things are progressing and whether anything needs to change. Frequent updates let us refine the requirements as we go, make small adjustments along the way, and stay on course.

I follow security best practices to keep your data safe. I use unique, randomly generated passwords stored in a password manager that is regularly audited by third parties, I enable 2FA wherever it is available, and I use SSH keys (no passwords, no root login). All my workstations are encrypted at rest, and so are my backups.

I carry professional liability insurance through MAIF France.

I have over 14 years of experience on projects of all sizes, with organizations ranging from startups and scale-ups to multinationals and government bodies, across North America, Switzerland, and France.

I have published and contributed to several open-source projects in JavaScript, TypeScript, Ruby, and Go. See this page for details.

I have taught at professional programming bootcamps in Canada, Switzerland, and France.

For certain infrastructure and DevOps topics, I partner with bilingual, France-based experts from Cloud Algebra, depending on the expertise required.

More about me

See a selection of my open source projects and contributions and my blog posts.

Find me on LinkedIn, or on GitHub.