i build stuff.

my name is Theo

Intro

My name is actually Théophile. Three syllables that sound like [thé - eau - fil] in French and translate to [tea - water - wire] in English. Now you know ☺

I'm a Software Engineer with a decade of experience and three startup adventures as a founder and CTO.

My happy place is in crafting nifty web applications using ClojureScript/JavaScript and cooking up smart contracts on EVM blockchains with Solidity.

From dreaming up project architectures to writing code solo or jamming with a team, from giving your project a security audit to waving the magic wand for a smooth production launch, I'm your go-to tech wizard. Available up to 3 0 days a week (gmail: theophile.villard).

Here's a list of the projects (big ones in bold) I've been working on over the years:

2023

guCARD$/sell

Sell Gods Unchained cards instantly for GODS.
— Oct 2023

As an active participant in Gods Unchained marketplaces I saw the need for an "instant sell" product.

Fun fact As always it looked like an easy two-day project, but took way longer...!
Stack SvelteKit (Fullstack JS), Vercel, ImmutableX

GameFi is really interesting and probably the best reason for being bullish on crypto

Art

My digital art gallery.
— Sep 2023

Needed an excuse to build an app with the web4th framework. I like to draw so I decided to build my own art gallery.

Fun fact I hit all the possible roadblocks with this app. Bugs in libraries, breaking changes, blockchain support, etc.
Stack web4th stater kit (ClojureScript), ZeroDev (Account abstraction), Solidity (NFT 1155), Polygon

I'm happy with the article and the app. It's still v0 but the built-in support of a web4th app is buttery.

CoffeeSign

Meeting for coffee? Sign a contract.
— Jun 2023

Was brainstorming silly ideas to try this new Clojure "framework". Thought about coffee meetings.

Fun fact The name is a nod to all the YouSign, DocuSign, and HelloSign of this world
Stack Electric (Clojure dialect), ChatGPT (contract content), hosted on Fly

Got excited about 1/ removing template-creating lawyers and 2/ removing frontend-backend separations.

guCARD$/buy

Invest daily in top Gods Unchained cards automatically.
— May 2023

As a Gods Unchained player and believer, I wanted a way to passively invest in GU cards.

Fun fact Posted it on GU's reddit and got banned because they thought it was a scam
Stack Node.js, ImmutableX sdk, cronjob.org, hosted on Glitch

I'm considering making it open source so that anyone could run their own bot.

IBANovich

Use your bank account as a crypto wallet and buy into DeFi.
— Feb 2023

Discovered Monerium and had to dig deeper. The best way to go from EUR to crypto.

Fun fact The architecture is quite weird with the frontend opening a websocket to Cloudflare to open a websocket to Monerium
Stack Svelte, Monerium, Cloudflare workers, Polygon, Uniswap, DPI

This was a POC but I'm glad I could show the potential of Monerium.

2022

Audits

Smart contract security audits.
— Sep 2022 († Aug 2023)

Decided to get better at understanding Solidity and went into competitive security audits.

Fun fact It's a very cool way to discover promising projects before they get released!
Stack Solidity, Foundry, reading a lot of codebases 😮‍💨

I definitely got better at Solidity, but didn't manage to reach a profitable level. Auditing is fun but building is better.

MEV

MEV (Maximal Extractable Value) on EVM chains.
— Apr 2022 († Dec 2022)

What a weird world. But a world where there's no room for approximation. You have to be the absolute best to get a chance.

Fun fact Ironically one of the most profitable trade was a manual one (buying/selling one NFT)
Stack Solidity, Forge, Flashbots, Cloudflare workers, Blocknative

After fighting in the mempool for a few months I decided to pause that activity because of low volume (was doing mostly NFT arbitrage and liquidations).

crypto.coliving

Coliving powered by crypto.
— Jan 2022 († Apr 2022)

Coliving is the future. And it would have been a perfect use case for crypto in the real world.

Fun fact We came up with the acronym WAGBAC: We're All Gonna Buy A Casa
Stack Webflow (low-code), Solidity (NFT mints), ipfs (art), re-frame

Hopefully a project like this happens in the future. Coliving as a public good ♥

2021

web4ᵗʰ

web4ᵗʰ: the temporal web.
— Sep 2021

This was one of the main topic for my sabbatical. The idea was to add time as a new dimension on the web.

Fun fact Got a lot of interactions when I published the article, but none when I released the starter kit
Stack re-frame, matrix protocol

I'm still convinced that this is a superior format. It's up to me to convince more people now.

Lobbyist

Bribes for Curve voters.
— Aug 2021

Welcome to deep DeFi. My friend working at mStable had the idea to build an on-chain bribing platform for Curve voters.

Fun fact The one and only André released his version before us
Stack Solidity, Vyper, Hardhat

Transparent bribing is an interesting concept. But I now feel DeFi went a bit too far...

Guardians

Visualize your Argent guardians.
— Jul 2021

Argent is one of the best way to self-custody crypto with their guardians. But I wanted a way to see guardians as a graph and to assess its robustness.

Fun fact Nobody cared about this project
Stack re-frame (cljs), cytoscape (graph), PageRank (ranking)

Graph theory is not so straightforward.

PoolTogether adapter

Enzyme adapter for PoolTogether.
— Jun 2021

I've always been a fan of PoolTogether (no-loss lottery) and the integration was missing on Enzyme. I put together a proposal to build it.

Fun fact Two years later the frontend is still not showing that integration
Stack Solidity, Hardhat

Getting to know an intricate set of smart contracts was a good challenge.

La Crypto C'est Rigolo

On-chain crypto hedge fund.
— Mar 2021

I had a group on Messenger where I gave crypto tips. I decided to turn it into a proper fund thanks to the Enzyme platform.

Fun fact In 2021 I got elected to join the Enzyme Security Council
Stack Enzyme finance (no-code)

I accepted 35 depositors into the fund. Now trying to be ready for the bull market of 2023 ☺

2020

99 items

Minimalism: I've got 99 items.
— June 2020

Towards the end of the first lockdown I started making a list of all the items I owned. Minimalism FTW.

Fun fact In 2023 I'm still travelling with the same backpack and suitcase
Stack Airtable (no-code)

The list is definitely not up to date as I'm using objet.cc now.

CryptoTwittos2

Improving CryptoTwittos.
— May 2020

Still locked down and bored. Wanted to re-launch CryptoTwittos (see below) with a better architecture (NFT support).

Fun fact I chose to use a retro windows98 design, and that's how I discovered this retro mac design
Stack Solidity, re-frame

My life became literally 100% crypto during the first lockdown. I got overwhelmed and didn't release it.

Flashloans

MEV: buy on TokenSets, sell on 1inch.
— Apr 2020

This was covid time, working with an ex-colleague. I came up with the design: flashloans on Aave, auctions on TokenSets, trade on 1inch.

Fun fact This was before MEV was called MEV
Stack Solidity, Aave, TokenSets, 1inch, node.js

Flashloans are fascinating. This concept doesn't exist in the legacy world, only in Crypto.

2019

parens

Conference talk: streaming parens.
— Dec 2019

Gave a talk in London at a Clojure conference. Built a small app for the occasion to showcase the power of serverless architecture.

Fun fact I got complimented on this talk for being fun but interesting
Stack Fullstack ClojureScript (re-frame and Node), Firebase, GitHub actions

Was the first time using GitHub actions. I was impressed.

2018

Multis

Crypto wallet for companies.
— Apr 2018 († Apr 2021)

Started working with eFounders on this project. Then onboarded a cofounder. We did YC in the summer of 2019. We raised millions.

Fun fact The YC experience was unique: https://medium.com/multis/how-was-yc-1954b509c645
Stack Fullstack ClojureScript (re-frame and Node), Firebase auth-db-storage-hosting, TheGraph, ethers.js etc.

The company is still going. I left in 2021 as this was not working with my cofounder anymore.

Paco

Social network for movie recommendations.
— Mar 2018 († Dec 2018)

Got in touch with two business guys who needed a tech person to build this app. Idea made sense.

Fun fact This was just when the Cambrige Analytica scandal happened
Stack Cycle.js, Messenger sdk, Firebase, Movies API

Building a Messenger bot was interesting. But I would not work again with people without technical knowledge.

CryptoTwittos

Own Twitter accounts, on the Ethereum blockchain.
— Feb 2018

I was going all-in in crypto and had just finished an Ethereum course. Wanted to get my hands dirty and build something that would make sense on-chain.

Fun fact Managed to get more than a thousand transactions when I launched it
Stack re-frame (ClojureScript), web3.js, Etherscan and Twitter API

Users would collect and steal (virtual) Twitter accounts from each other. Fun time.

Mining Rig

Mining rig to provide hash power.
— Jan 2018 († Jan 2020)

I got the idea of getting into crypto mining. We built a mining rig with a friend who kept it in his attic. Converting electricity into coins.

Fun fact At the beginning it felt like printing money, then not so much...
Stack 6 GPU cards (sorry gamers)

Hardware is such a mess. Very hard to debug. Thank god I'm mostly in software.

2017

Plop

Slack game to get better at knowing your coworkers.
— Aug 2017

This was a warm summer in Corsica and we had just read a book about "Chatbots". With my gf we built that Slack app following those bot principles.

Fun fact It was the first time I made it to the first page of hacker news (with the article)
Stack Node.js, botkit framework, Firebase, hosted on Glitch

First serious attempt at conversational interfaces. Something felt right about it.

Jeu des Massifs

Game: how many mountain ranges in the Alps can you recognize in 42 seconds?
— Jun 2017

This was a fun side project when launching the summer version of Booctin (see below). The goal was to build something that could drive organic traffic to us.

Fun fact I didn't get better at knowing my mountain ranges though
Stack re-frame (ClojureScript), clojure.spec, Firebase

One of my favorite codebase. So clean ♥

2016

Buddycenter

Find the perfect spot to hang out with your friends according to your positions.
— Nov 2016

Inspired by Bornycentre (see below), I built this more useful tool with my gf. Finding a good spot to meet in the middle is never easy.

Fun fact I know people who were using it to find bars for their Tinder dates
Stack Rum (ClojureScript), Firebase, Foursquare

Crazy that Foursquare was such a big thing.

Booctin

Ski instructor booking platform.
— Jul 2016 († Mar 2018)

A childhood (mountains) friend had the idea to try and modernize the ski instructor booking business. We quit our jobs and started Booctin.

Fun fact The name was initally [Booctin'] but nobody got it right so we courageously rebranded to [Booctin]
Stack Clojure backend, ClojureScript frontend (re-frame), Firebase, Algolia, Stripe, Material UI, OneSky

We managed to get bookings but only by paying Google Adwords. We failed at the SEO game and had to close the company.

Type Letter

Learn to type fast with Type Letter.
— May 2016

This game was only built for me to try and use core.async. I needed an excuse to play with timeouts.

Fun fact Put your mouse over the top right corner of the screen (over the GitHub mascot)
Stack Reagent, core.async

Old Clojure code always works well. Go play with it and tell me your score.

Pancetonne

Marketplace to exchange Eurostar tickets.
— Apr 2016

Working with a friend at LifeWorks. We wanted to create a way for people like us to buy or sell Eurostar tickets which could be very expensive.

Fun fact We were often going on Sundays to an italian place in Clapham to work on stuff
Stack Reagent (Clojure)

We never released it.

Bornycentre

Find the place that represents the (iso)barycentre of the cities where you lived at least 9 months.
— Mar 2016

A very random idea. I don't remember why I built it but I still like it. Discovered Cycle.js at a conference in Bratislava and wanted to try it.

Fun fact Mine was here: https://www.google.com/maps/place/46.34422333333333,2.6112949999999997
Stack Cycle.js

Trying to get that viral loop by letting people easily share their Bornycentre on Twitter.

Le Test

Coding interview for JavaScript developers.
— Jan 2016

I was trying to hire JavaScript developers for the company I was working for. I created this small test to help me assess them.

Fun fact Only 1 in 40 candidates who took the test was able to get everything right
Stack JavaScript

Still ugly JavaScript, but that tail-recursive one-liner for question 8 is my favorite.

2015

find the 8

Game: find the 8 hiding between 9s.
— Aug 2015

A friend built this mini game in JavaScript. Another friend re-wrote it in React. It was time for me to prove that Clojure and Reagent were better options.

Fun fact The game was previously hosted on Heroku (RIP), now on Replit
Stack Reagent (Clojure)

This was the beginning of a long love story with Clojure on the frontend.

park

Showing parking spaces on a map.
— May 2015

Another coding interview. Decided to use all the cool tech of that time. The goal was to display and interact with parking spaces on a map.

Fun fact After submitting my work I never heard from them. I didn't want the job so I dropped it :shrug:
Stack React, Immutable.js, Velocity, JS Standard code style

Coding interviews can be annoying but they also are great to make you build something.

fb

Calendar app.
— Mar 2015

Applied to join The Facebook in early 2015. The first challenge was to build some kind of calendar app in JavaScript.

Fun fact I passed that test but got rejected after the in-person whiteboard interviews
Stack vanilla JavaScript, and some React

Facebook was really cool at the time. My carreer path would have been different. Glad it didn't happen.

2014

tdx

Relaunching Tradixo. Kind of.
— Aug 2014

With Tradixo shutting down I still had all the translations people contributed on the platform. I built an interface to search through all of them.

Fun fact I built it while staying in Sofia for my first solo-travel experiment
Stack React, Parse, Foundation, webpack

It was my second React project. I knew this was the future. Unfortunately I had just accepted a Angular job ☹

bbq in ldn

Photos of London BBQs on a map.
— Jul 2014

Just wanted to try out things. Using Instagram's data and Google Maps.

Fun fact I was moving from Paris to London in September
Stack d3.js, Google Maps, Instagram API

Data was more open at the time.

renecoty.io

René Coty tee-shirts.
— Jul 2014

Working with a friend at Dailymotion. Couldn't think of a better idea than selling tee-shirts with René Coty on them. Merci à toi, René.

Fun fact We spent more money on the domain name (renecoty.io) than we made in sales
Stack No code

René Coty is a French private joke made famous in the movie "OSS 117". The goal was to go viral. It did not happen.

Remote

Remote control for Dailymotion playlists.
— Jun 2014

Working with that same friend at Dailymotion. Wanted to use React.js and peer.js for a company hackathon. We built a webapp that could control a playlist page.

Fun fact React was really new at the time and people hated on it. I loved it after 5 minutes.
Stack React, Peerjs

10 years later the fundamental idea of React is still the same. Probably time for a new paradigm.

2011

Tradixo

Gamified social translation platform.
— Sep 2011 († Mar 2013)

Was doing my Erasmus in Madrid. Struggled to get Spanish translations I could really trust. Decided to build a product where users could help each others with translation of short sentences.

Fun fact Had to convince my engineering school to let me work on that instead of doing an internship
Stack PHP (Symfony), jQuery, MySQL, Redis, Pagodabox

Translation services have been getting radically better in 2023 but nothing competes with asking a native "how do we say __?". Mostly for bad words indeed.

Outro

Ubi Ludus Vita.