RSSAmplifier

Blog

Franck Verrot

Recent content on Franck Verrot

franck.verrot.usRSS feed ↗41 posts

Latest posts

Convergence Engineering

Everyone is writing about loops right now. Boris Cherny said he stopped prompting Claude : loops prompt Claude now, and his job is to write the loops. Andrew Ng followed up with three nested ones , an agent coding loop inside a developer feedback loop inside an external feedback loop, Russian dolls all the way down. “Loop engineering” is the buzzphrase of the summer, and the takes are…

Fine-Tuning Actually Worked

Quick follow-up to the college search post . Last time, I gave up on fine-tuning a generative model and built a DistilBERT classifier instead. The classifier works great (100% precision, 100% recall), but I always had this nagging feeling that fine-tuning should have worked if I’d found the right model and the right tooling. Today Liquid AI released LFM2.5-350M , and it changes the picture.

Running a 0.8B Model on an iPhone to Help My Kid Pick a College

College search is a 10-dimensional optimization problem that families solve with spreadsheets, gut feelings, and way too many browser tabs. My kid wants to study biology, play D1 soccer, and ideally not pay more than $40K/year. Oh, and not biomedical, just bio. That’s four constraints already. Add in state preferences, school size, acceptance rates, graduation rates, application systems…

Moving to Hugo

This blog has been running Jekyll since 2014. It served me well for years, but the theme was showing its age, the tooling felt stuck, and I wanted something faster and more modern. So I migrated to Hugo. One theme per decade I guess.

Build vs. Buy Your Software Factory: an 8090 Review

Originally posted as a thread on X . I was reading that 8090 just landed a partnership with EY last week, and this got me interested in test-driving it. Most of the coverage out there focuses on enterprise usage, I wanted to know if it could help me on an open source project (no budget, PMs, just me/Claude/my repos.) And if this is good for thousands of consultants, maybe it could also be good for…

AI Agents as Programs, Not Just Prompts

Originally posted as a thread on X . I’ve been building AI agents for a while now and I’m a bit puzzled about where the industry is going. We’re writing the most autonomous software we’ve ever built, but the tools we use to build them are a mess. Python script calling APIs, state scattered everywhere, YAML configs, framework-of-the-week. It works until it doesn’t, and…

Running Graphical Apps in Apple's Container Tool

Originally posted as a thread on X . I’m building an agentic harness modeled on Elm’s architecture: a strict functional pipeline where untrusted agent code runs in total isolation. Containers felt like the natural security boundary. Apple’s open-source container tool seemed like the ideal foundation. Building and running containers is dead simple ( container build . -t my-image ,…

Types in Ruby

Quick thoughts on Sorbet , that has been announced at RubyKaigi 2018 and once again in the 2019 edition , the type-checker for Ruby.

Request Routing with Nomad and Consul

Request Routing in the scheduler/container world is an ongoing challenge, with a lot of different and competing solutions that tries to provide a solution. Some solutions are built on top of others, some only support specific schedulers, some operate only at the L7 layer, which doesn’t make things easy for Platform Engineers when it comes to adopting a specific solution. Building and…

Introducing Terraform Stripe Provider

I build products regularly, most of them don’t survive their prototype phases. In 2018, I built: a (fast) FaaS with v8 and mruby a cryptocurrency exchange prototype a programmable cryptocurrency trading platform some more stealth projects… (As an aside, my Open Source work isn’t included in this list as I considered it as a “horizontal” supporting these projects, but…

Introducing Trek

Having spent a lot of time working with the Hashicorp stack lately, I have been working a lot with the HashiCorp stack lately, mostly with Consul, Nomad, and soon Vault. Even if I was more used to operating Kubernetes, I really appreciate the simplicity and focus that HashiCorp builds into its products. I also spend a lot of time in the console (mix of tmux, vim – or Visual Studio Code when…

Happy New Year!

Happy New Year! I will try to write a little more on this blog in 2019. Mostly about programming, but also as a way to use social media less and express thoughts in more than a few lines. May 2019 be great for you, spending time on this shiny blog. Franck

Looking forward to Ruby's future

Ruby became a more stable and mature language over the years. Some would say innovation slowed down (and I was probably one of them), but I still appreciate writing Ruby on a daily basis on the job. In this blog post I will succinctly explain why Ruby is still a valid choice for writing new (web and non-web) applications, the challenges of maintaining large code bases and what I look forward in…

Benchmarking Ruby's `method_missing` vs `define_method`

After recently benchmarking PostgreSQL to find out if some of the techniques we used were efficient, I decided to look at the usage of a controversed Ruby feature: method_missing .

Benchmarking PostgreSQL's SELECT Query Planning and Performance on Columns Aggregates

Executing a single query doesn’t always literally mean executing exactly ONE query . Sometimes PostgreSQL (like any other relation database) will have to extract parts of your query (subqueries) and re-execute it as many times as needed to generate the results you are expecting it to generate. This article shows how N+1 issues can also happen without an explicit intent to produce them.

Hijacking gem commands

Rubygems has been made extensible by the usage of plugins. Any gem that provides a lib/rubygems_plugin.rb file will be discovered by the gem infrastructure, whether it is loaded by your application or not. Adding new commands is fairly easy, here’s how we could replace existing ones (like install ), using only Rubygems’ public API.

Moving back to Jekyll

This blog used to run Octopress and I blame myself for not updating it as much as it should have been updated. From now on, I’ll try using a basic Jekyll/GH Pages setup. Permalinks have been preserved, so I believe it can’t be a bad move anyway. As usual, finding subjects is going to be the tricky part, but I have some topics I always wanted to cover. So… stay tuned? :-)

Method definitions in Ruby 2.1.0 will not be void anymore

Ruby 2.1.0 will be released at the end of the year and among other features, a change done in the parser caught my eyes…

New username

A couple of days ago I’ve decided to drop my old username CesarioGW to become franckverrot . My GitHub and Twitter accounts have been renamed. I will slowly take care of the remaining accounts.

Pitch, Business Model, People: my wrap up of the 3rd Startup Weekend Lyon

Last weekend I had my first Startup Weekend experience. I must admit I have always been skeptical about this kind of events and came with two goals in mind: try to change my mind about it and pitch some idea I had in the back of my head for a little while.

ActiveValidators 1.9.0

ActiveValidators 1.9.0 is out! gem install activevalidators Read on for the full - yet concise - changelog.

What is the best way to pass NSManagedObjectContext around in iOS applications?

TL;DR Passing an NSManagedObjectContext in each and every NSViewController that needs CoreData can be done by different means, but some are frowned upon. In doubt, inject it. While pair-reviewing some code with my colleague Vincent Tourraine , we realized we wrote this kind of code into each viewDidLoad: method of each NSViewController subclasses we created: managedObjectContext = [[[…

ActiveValidators 1.3.0

ActiveValidators 1.3.0 has been released! gem install activevalidators Read on for the full changelog.

Find out where a Rake task is defined

TL;DR Rake > 0.8.7 has a handy Rake::Task#locations method that makes it damn easy to know where a task is defined or enhanced. During the last LyonRb meetup we read a quite large portion of Rake’s source code. The idea was to find an easy way to determine what file was defining/enhancing what task. Richard and I just opened Rake 0.8.7’s source code (from our local machine’s RVM…

LyonRb Bilan de l'apéro Ruby Lyon du 19 février 2011

Que de monde pour ce nouvel apéro Ruby à Lyon. L’élément encourageant étant que le groupe ne descend plus en dessous de la douzaine! Quatre nouvelles têtes: Marion , Michel, Vincent et Richard . Bienvenue à vous! Les discussions se sont rapidement orientées sur le StartUp Weekend Lyon , où Vincent, JM, Pierre-Alexandre et Frédéric ont eu pour mission de faire un peu se prosélytisme :) Côté…

LyonRb Bilan apero Ruby du 2 decembre 2010

Encore de nouvelles têtes!

No Querying Views

I made this plugin when we migrated to Rails 3. It basically prevents the development team from triggering any database query from the views.

LyonRb Bilan de la dernière rencontre

Bien que cela fasse plus d’un mois que la dernière rencontre des “Rubyistes” Lyonnais (disons Rhône-Alpins) ait eu lieu, je ne trouve que maintenant (à moins d’une semaine du prochain apéro) le temps de le commenter… Je pense qu’il s’agit du premier apéro qui réunit tant de personnes. Nous étions une bonne douzaine (14?), dont Philippe de retour du…

New blog engine

Trying out a new blog engine. Pretty simple backend: everything is stored on Github so publicly accessible.

RubyCampLyon 2010 wrapping up

The RubyCamp Lyon 2010 took place yesterday, Saturday 17th. I was great meeting all those people interested in Ruby, for both professional and amateur matters. Eyrolles was sponsoring the event and offered 10 books (I didn’t win one though - that’s for the sucking part :)). I also obtained a last-minute sponsoring from Engine Yard, but as I obtained the required info the night before…

Rails 3, Railties and Engines

Rails 3 brings a lot of useful features. The main one, in my humble opinion, is the introduction of the classes Rails::Railtie and Rails::Engine. They bring the modularity that made code more reusable and easily integrable in your current code base. They also prove that there no reason to say that Rails is not ready for the Enterprise. One quick tip for the party poopers (you know who you are ;)):…

Live-Note got its own Google Chrome Extension

Thanks to Luciano (@lucianosb) Live-Note has got its own Google Chrome Extension. He even shot a video about it:

Fatal GCJ GNU Compiler for Java is not supported by JRuby

If you ever encountered this when installing JRuby on Ubuntu: Fatal: GCJ (GNU Compiler for Java) is not supported by JRuby. Doing export JAVA_HOME=/usr/lib/jvm/java-6-sun/jre could do the trick, given you’ve installed sun-java6’s packages on your machine. I hope it’ll help.

Git Fast Forward Merges

Moving our current projects codebase from Subversion to Git was a nice move. This plus the adoption of the feature-centric way of developing (BDD + Scrum + Kanban) and our repositories are now cleared of any form of waste (useless LOC written “just in case”). Now, we must adapt the usage we have of Git and one that we just initiated is the non fast forward merge. Moving our current…

Introducing Live-Note appspot com

I was about to call this article “Gemcutter Webhooks on Google Wave (and Google App Engine) part 2” but then I realized that it was no more about that I wanted to focus on, but more on the Wave part (sorry Rubyists friends, but I had fun with Python (as long as I don’t try to do metaprogramming Python is nice to play with :)). Google released the Google Wave Robot API v2…

Rails 3 Let ActiveRecord Manage Your Translations

With the previous versions of Rails we have the choice between storing the translations into a YAML file (one per language) and standard Ruby Hashes. Bringing the ActiveRecord backend to light, the I18n gem allows us now to manage all our translations in a regular database. The I18n gem (required to run Rails 3) has been released in late December and is providing all you need to store your…

Executing binary files with Ruby on Rails and Heroku

One would easily wonder why in hell someone else would want to do that, but it’s actually often because you are forced to. In this post, I’ll explain how to proceed.

Talk to Gemcutter's API using XMPP/Google Talk

Working with Ruby in my day job made me try other exciting things, especially with Google App Engine. Programming in Python is not so bad, but I won’t say I’m having fun remapping my brain onto the weirdosities of the language. Anyhoo… Tonight I wanted to talk to Gemcutter, but not programmatically, I wanted to have it in my GTalk contact list and start having a little…

Gemcutter Webhooks on Google Wave (and Google App Engine) part 1

So what are Gemcutter webhooks? It s a way to automatically notice an online app (say gemhooker.appspot.com for instance) about the activities of your favorite (or all) Gemcutter s gems... As mentioned in the documentation , let s install gemcutter s gem if not already done: Now this is done, let s get it started and fire up a new Python s powered GAE app (gemhooker.py): If you deploy this app…

About

I’m an engineering executive who likes the messy middle: the point where product ambition, constraints, architecture, and people collide. Over the last decade in digital health, I’ve led teams through growth by designing scalable systems, improving quality and reliability, and building execution muscle across engineering and product. More recently, I’ve been driving practical AI…

Portfolio

Experience Omada Health Full-time – 10+ years Vice President of Engineering (Aug 2021 – Present) Promoted from VP of Architecture and Infrastructure to lead the entire engineering organization Oversee architecture, infrastructure, and cross-functional engineering initiatives aligned with company strategy Drive adoption and integration of AI/ML technologies across the organization…