Sometimes, I write.
I find joy in building things. Then, I find joy in writing about what I've learned in the process. I suspect I learn new things just for the sake of having catchy stories to write later on. This blog is where I gather my technical entries, from newest to oldest.
Don't fancy getting updates through capricious algorithms? Subscribe to my newsletter or grab the RSS feed.
Poking around PostgreSQL full-text search: a beginners primer
Today, I want to share a different type of post. Nothing polished. Just me goofing around with PostgreSQL's full-text search capabilities.
Read this essay →Interfacing with external APIs: the facade pattern in Ruby
Interacting with third-party APIs is common practice in applications. This is where the structural design pattern called facade comes into play.
Read this essay →What if your private method was a public method? A practical tip to identify bad design
Where I share a badly designed piece of code, think about what process I can use to reveal its flaws, and how to make it better.
Read this essay →Add comments to your tables columns
Add extra documentation to your columns attributes with this one weird trick.
Read this essay →Delegated types in Rails: a real-life application
Delegated types are a modelization pattern introduced in Rails in 2020. And developers have mostly been scratching their head for a few years trying to use them in their applications. Today, I want to share a real-world use case. I'll walk you through my pre-existing domain architecture, my initial requirements, my mistakes, how I eventually used delegated types, what I learned and my open questions.
Read this essay →Pick a standard and move on
Why would you spend your cognitive capacity on useless choices?
Read this essay →Domain complexity vs applicative complexity
For years, code would fall into two categories: easy (good!) and hard (bad!). Recently, I've realized that not every piece of _hard_ code is created equal. Complex code often encompasses two kinds of complexity: domain complexity and applicative complexity. And I often failed to identify which is which.
Read this essay →Growing old as a programmer
I’ll be turning 40 this year, and I’ve started to wonder about my professional life in the next two decades. Not a lot of 60-year-old developers, hey?
Read this essay →Refactoring in practice: moving toward convention
A few months ago, I had to write a Rails micro-service that synchronizes data between two versions of an application. I'll show you the successive steps I used to refactor this piece of code, from shameless-green to convention.
Read this essay →Technical tests in 2023: were they any good?
As I'm reaching the end of this recruiting cycle, I wanted to reflect on the recruiting processes I've completed. Some were good, some not so much.
Read this essay →Algorithms are fun... I guess?
Something happened to me last week I didn't expect: I enjoyed working my way through algorithms. You may find me overly dramatic, but remember, I'm from the art world. Algorithm is a fancy term to describe the act of painting rectangles of colour in a specific pattern.
Read this essay →Looking for a job: handling fatigue and loneliness
Today, I would like to try something different. No polished new entries, just me sharing my day-to-day looking for a new job.
Read this essay →How to write better specifications for your features
For years, I've worked without thinking much about feature specifications. Many teams endure empty Trello cards, neglected Jira tickets, and misaligned communication. So today, I want to share how to write better specifications for your features.
Read this essay →How to test your Rails models with RSpec
Today, I want to share how to test your Rails models with RSpec. Testing your models is a no-brainer strategy when building your applications. It gives you the confidence to make changes without regressions. We'll cover the fundamental testing strategies with RSpec's built-in features. And for fun, we'll check some extra tools to amp up your models' coverage.
Read this essay →The never-ending days of DEI's importance
A few weeks back, the creator of Ruby on Rails wrote a pamphlet rejoicing on - what appears to him as - the waning days of DEI's dominance. This rebuttal talks about how diversity, equity, and inclusion were, are, and will always be essential to workers.
Read this essay →From stained-glass master to software engineer: it starts with a mess
Changing careers is a long, often-overlooked process. But I want to share both the (linear) story and the (messy) history of how I became a software engineer. And as a lot of good stories, mine always starts with a lie.
Read this essay →Build a minimal feature flags manager in under an hour
Feature flags (or feature toggles) are a neat way to hide in-progress features from your users. For those who need a simple on-and-off system, here's a minimal feature flag manager that'll take less than an hour to build, using plain Ruby objects, the Rails configuration, and some neat variables organization.
Read this essay →Exploring dependency injection in Ruby
Classes depend on each other all the time. But the way you tie those classes together will determine how hard it is to change your code. Dependency injection can help you reduce that coupling and reduce your cost of change.
Read this essay →Introduction to Git Bisect: travel through time and bugs
No matter how thorough your test coverage is, you can't test everything. So when you introduce a bug in your application, git bisect will help you zero in on your regression's origin.
Read this essay →Upgrading Ruby on Rails: a beginner's guide
You're about to upgrade your application to the newest version of Ruby on Rails. And you've never done it before? Fear not! Here's my battle-tested companion to migrating Rails.
Read this essay →Building large features: my process for branches, requests and reviews
Working on large features can be tricky. I've spent the last few months refining a process that makes it easy to keep in touch with the main branch, to make reviews more manageable, and with little GIT overhead.
Read this essay →Introduction to RSpec: the syntax
In this second part of my introduction to RSpec, I want to focus on the syntax. Here's a glossary of the keywords you'll use the most when testing with RSpec: describe, subject, let vs let!, it, context, etc...
Read this essay →An introduction to RSpec: how to install RSpec, naming convention and basic files structure
When you start programming, it's not easy to know what to test, how to test, and why should you test? So let's start with an introduction to RSpec: how to install RSpec, RSpec naming convention and and RSpec files structure.
Read this essay →Always serving someone
It's easy to tell yourself it's not your job to provide a great service to your users. But taking time to write beautiful code will bring joy and value to you and your teammates.
Read this essay →Debugging with pry-byebug: moving in the stack frame
Time to level up your debugging game with frames, adding breakpoints on the fly, and some handy shortcuts.
Read this essay →Get started with ActiveRecord scoped associations
Active Record Associations are a great feature of Rails. But I never thought of using scopes with has_one or has_many associations until recently! So let me show you a neat little trick that'll make your code much much more expressive (and keep your N+1 queries in check).
Read this essay →How to wrap your head around a new codebase
For the last eighteen months, I've spent my time trying to understand bits of code I'd never seen before. Eighteen months later, I still don't know every corner of the codebase, but what I do know, is how to get efficiently familiar with new parts of a codebase.
Read this essay →How not to live stream your code
This week, I did my first live stream on Twitch and it didn't turn out so well (to say the least). Here's a recap of my rookie mistakes, what I liked about it anyway, and what I'm planning on doing.
Read this essay →Asynchronous HTTP requests in Rails
Let's look at how we can update parts of our app's pages with asynchronous HTTP requests. This is a step-by-step how-to with some good ol' Javascript fetch() method, and Rails native server-side partial rendering.
Read this essay →A hands-on tutorial to debugging your code with pry-byebug
Like most new developers, I started as a puts developer. Then, I discovered pry-byebug and debugging things got a lot easier. This is a beginner-level, hands-on, introduction to debbuging your code with pry-byebug. Behold the power of binding.pry!
Read this essay →Going remote: a live documentation on transitioning out of the office
Last week, I started the process of transitioning from an on-site position to a full remote one. I'll publicly document what happens as it happens here. Interested in remote working? Join in!
Read this essay →Don't sell yourself short
You've just graduated from university. Maybe you're in your first two years as a developer. You are, what the market calls, a junior developer. And you're a burden to companies. That's what you're being told. Well, this is bullshit.
Read this essay →Working with tempfiles in Ruby
A while back, I needed to create XML files, send them to a distant server and delete them once the transfer completed. This is when I discovered Tempfiles and rejoiced in using Ruby.
Read this essay →2019 - a year in review
Well, here we are. December has come and gone. Now is the time to look back on what happened last year: a lot of writing and becoming a Real Developer™.
Read this essay →An Introduction to Ruby classes and objects
When you start learning Ruby, you often hear that everything is - or evaluates as - an object. Here's an introduction for developers who want to get the gist of objects and classes in Ruby.
Read this essay →Keep your finger on the pulse with RSS
Social media turned our lively corners of the web into glum ones. Let's breath life back into them with fresh signals.
Read this essay →The violence within
Our mainstream work culture cultivates systemic violence: bullying, constant competition, sexism, etc. You name it. What if talking about could empower and protect us?
Read this essay →Testing railway-oriented business transactions with Rspec
Railway-oriented business transactions are a great way to unclutter your Rails controllers. But how should we test them? Let's get down to it.
Read this essay →How to use railway-oriented business transactions to unclutter your Rails controllers
When your Rails app needs to handle multiple steps, your controllers' methods can become a mess. Let's see how to Marie-Kondo them with dry-transaction
Read this essay →Debugging PGError: ERROR: column of relation already exists
How do you fix a corrupted database's schema? Here's a hands-on tutorial on restoring your local database.
Read this essay →Meet your new friend: self
tl;dr: When you're new to coding, it's not always easy to know where the fuck you are in your code. Well, call the most unexpected friend to the rescue: self!
Read this essay →Own your story
When you put yourself out there, you get attention. Some of it is enjoyable. Some of it, not so much. It's not easy to keep your story straight.
Read this essay →WTF is time complexity? 🤔
People who learn web development through coding bootcamp aren't (usually) familiar with time complexity. They might have read the words, but that's it. I know I tried to look up the Wikipedia page only to fall asleep at the end of the first paragraph. When I finally woke up, I thought "Nevermind, I'll never have to deal with it anyway". And boy, was I wrong.
Read this essay →#TIL: a daily recap of my first two months as a Ruby on Rails developer
From early April to early June, I attended Le Wagon Paris' fullstack coding bootcamp. Each day, I shared what I'd learned on Twitter. Wanna know what it feels like to dive into coding for 2 months for the first time?
Read this essay →Life After Bootcamp: Always Be Shipping
Last week was the 9th and final week of my Ruby on Rails Bootcamp at Le Wagon Paris. My buddies and I showed to the public what could be shipped in two weeks. A lot of great projects stood out that night. But now, it’s Monday morning. The excitement has worn off over the weekend, the many naps and the odd drinks. What shall I do?
Read this essay →Add Omniauth GitHub to Your Rails App on Top of Devise
As I’ve moved into the last three weeks of Le Wagon coding bootcamp, the need to authorize people to sign-up with GitHub quickly arise. Here's a step-by-step tutorial on how to do it when you already use Devise to handle authentification.
Read this essay →How to set-up a lead generation strategy for small businesses: do’s 👍 and don’ts 👎
You’re building a product that can be used on the Internet? Good for you! But then, the thought of finding customers start to creep in. Should you talk about it now? Later? Should build a marketing war machine? Should you play it safe? After a few years of generating demand for companies, here is the gist of what I believe to be the best bet.
Read this essay →How to make Open Data sexy: 10 lessons learned while building opendatainception.io
In June 2015, Nicolas Terpolilli and I were ranting about the difficulty to locate Open Data portals. Poor SEO seemed to result in poor rankings. Existing listings were either outdated or partisan. We started joking around with the idea of building a truly comprehensive resource. A resource that would gather every single Open Data portal we could lay our hands on.
Read this essay →What is an API?
Wrapping your head around APIs can be challenging for non-technical users. What’s an API? What can be share through an API? Data? Services? How does one design an API?How do you code an API?
Read this essay →Recruiting Your Next Marketing Talents? Give ’em a Technical Test
Over the past years, I’ve been invited to several interviews for marketing positions. Yet, I’ve not been asked a single time to do a marketing technical test. And you know what, this sucks!
Read this essay →C'est quoi une API ?
This is the French version on an article explaining to newbies what are APIs.
Read this essay →