<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>MoskitoHero</title><link>https://moskitohero.com/</link><description>Recent content on MoskitoHero</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Tue, 12 May 2026 22:10:00 +0000</lastBuildDate><atom:link href="https://moskitohero.com/index.xml" rel="self" type="application/rss+xml"/><item><title>Opening the Mind of a Thinking Agent</title><link>https://moskitohero.com/post/2026-05-12-opening-the-mind-of-a-thinking-agent/</link><pubDate>Tue, 12 May 2026 22:10:00 +0000</pubDate><guid>https://moskitohero.com/post/2026-05-12-opening-the-mind-of-a-thinking-agent/</guid><description>Reflecting on my experience of using AI agents for coding, I start wondering what is really hiding behind the concept of a &amp;#34;thinking agent&amp;#34;. Time to take a look inside its brain…​</description></item><item><title>Zed Turtle Extension</title><link>https://moskitohero.com/post/2025-05-19-zed-turtle-extension/</link><pubDate>Mon, 19 May 2025 00:00:00 +0000</pubDate><guid>https://moskitohero.com/post/2025-05-19-zed-turtle-extension/</guid><description>I have just released the first version of a Zed extension for the Turtle format.</description></item><item><title>An introduction to Barley, the fast model serializer</title><link>https://moskitohero.com/post/2025-05-06-an-introduction-to-barley-the-fast-model-serializer/</link><pubDate>Tue, 06 May 2025 00:00:00 +0000</pubDate><guid>https://moskitohero.com/post/2025-05-06-an-introduction-to-barley-the-fast-model-serializer/</guid><description>How I built and open-sourced Barley, a fast and simple model serializer gem for Rails, born from real-world performance needs and benchmarked against the best in the Ruby ecosystem.</description></item><item><title>Set up Ghost with Podman on a VPS</title><link>https://moskitohero.com/post/2025-05-06-set-up-ghost-with-podman-on-a-vps/</link><pubDate>Tue, 06 May 2025 00:00:00 +0000</pubDate><guid>https://moskitohero.com/post/2025-05-06-set-up-ghost-with-podman-on-a-vps/</guid><description>A step-by-step walkthrough for running Ghost on a VPS using Podman quadlets backed by Systemd, with MySQL and Caddy as a reverse proxy.</description></item><item><title>Working For Your Manager’s Success</title><link>https://moskitohero.com/post/2025-03-18-working-for-your-manager-success/</link><pubDate>Tue, 18 Mar 2025 00:00:00 +0000</pubDate><guid>https://moskitohero.com/post/2025-03-18-working-for-your-manager-success/</guid><description>Estimates are inevitable in software development, but committing to deadlines — like a mechanic does — requires honesty with your manager rather than optimism to impress them.</description></item><item><title>From Chaos to Clarity: My Journey with ADHD, TickTick, and PARA</title><link>https://moskitohero.com/post/2024-12-16-from-chaos-to-clarity-my-journey-with-adhd-ticktick-and-para/</link><pubDate>Mon, 16 Dec 2024 00:00:00 +0000</pubDate><guid>https://moskitohero.com/post/2024-12-16-from-chaos-to-clarity-my-journey-with-adhd-ticktick-and-para/</guid><description>How I use TickTick and the PARA method to manage ADHD and transform daily chaos into a structured, productive second brain.</description></item><item><title>Track and debug your ActiveRecord SQL queries with annotations</title><link>https://moskitohero.com/post/2024-12-10-annotating-sql-queries-for-debugging-purposes/</link><pubDate>Tue, 10 Dec 2024 00:00:00 +0000</pubDate><guid>https://moskitohero.com/post/2024-12-10-annotating-sql-queries-for-debugging-purposes/</guid><description>Embed contextual comments directly into your SQL queries using ActiveRecord’s annotate method, making log analysis and debugging far easier.</description></item><item><title>Ruby Best Practices - Method Arguments</title><link>https://moskitohero.com/post/2024-01-12-ruby-best-practices-method-arguments/</link><pubDate>Fri, 12 Jan 2024 00:00:00 +0000</pubDate><guid>https://moskitohero.com/post/2024-01-12-ruby-best-practices-method-arguments/</guid><description>Simple rules for ordering Ruby method arguments — put optional arguments last, and switch to keyword arguments when you have more than one optional parameter.</description></item><item><title>Love your error messages as thyself</title><link>https://moskitohero.com/post/2022-05-17-learn-your-error-messages-as-thyself/</link><pubDate>Tue, 17 May 2022 07:44:36 +0000</pubDate><guid>https://moskitohero.com/post/2022-05-17-learn-your-error-messages-as-thyself/</guid><description>Stop ignoring error messages and start reading them — it will make you a better developer and help you understand your language from the inside out.</description></item><item><title>Writing code for your future self</title><link>https://moskitohero.com/post/2021-11-21-writing-code-for-your-future-self/</link><pubDate>Sun, 21 Nov 2021 07:44:36 +0000</pubDate><guid>https://moskitohero.com/post/2021-11-21-writing-code-for-your-future-self/</guid><description>A set of guidelines to write clean, readable code that you — and your future self — will thank you for.</description></item><item><title>Lessons learned after migrating from Heroku to a kubernetes cluster</title><link>https://moskitohero.com/post/2021-02-20-lessons-learned-after-migrating-from-heroku-to-a-kubernetes-cluster/</link><pubDate>Sat, 20 Feb 2021 00:00:00 +0000</pubDate><guid>https://moskitohero.com/post/2021-02-20-lessons-learned-after-migrating-from-heroku-to-a-kubernetes-cluster/</guid><description>I recently migrated my company’s rails hosting from Heroku to a kubernetes cluster. It was a daunting task, but I learned a lot. Here are the lessons I learned, and how you can avoid the pitfalls I encountered.</description></item><item><title>An alternative to the ActiveRecord after_initialize callbacks</title><link>https://moskitohero.com/post/2020-10-08-an-alternative-to-the-activerecord-after-initialize-callbacks/</link><pubDate>Sat, 03 Oct 2020 00:23:33 +0000</pubDate><guid>https://moskitohero.com/post/2020-10-08-an-alternative-to-the-activerecord-after-initialize-callbacks/</guid><description>Avoiding the callback hell in Rails by creating a simple method in the model to initialize associated records.</description></item><item><title>Chaining conditions in regular expressions</title><link>https://moskitohero.com/post/2020-10-03-chaining-conditions-in-regular-expressions/</link><pubDate>Sat, 03 Oct 2020 00:23:33 +0000</pubDate><guid>https://moskitohero.com/post/2020-10-03-chaining-conditions-in-regular-expressions/</guid><description>Unleash the full power of regular expressions by chaining conditions together.</description></item><item><title>A Leap Into the Unknown</title><link>https://moskitohero.com/post/2020-05-19-a-leap-into-the-unknown/</link><pubDate>Tue, 19 May 2020 00:00:00 +0000</pubDate><guid>https://moskitohero.com/post/2020-05-19-a-leap-into-the-unknown/</guid><description>After 19 years as a teacher, I finally made the leap into a new career as a software developer. Here are my thoughts on this transition, the challenges ahead, and the feelings that come with stepping into the unknown.</description></item><item><title>Prevent Devise from sending confirmation emails</title><link>https://moskitohero.com/post/2020-01-26-prevent-devise-from-sending-confirmation-emails/</link><pubDate>Sun, 26 Jan 2020 00:00:00 +0000</pubDate><guid>https://moskitohero.com/post/2020-01-26-prevent-devise-from-sending-confirmation-emails/</guid><description>When you need to import users into a new Rails app using Devise, you may want to skip sending confirmation emails. Here’s how to do it by overriding an instance method in the User model.</description></item><item><title>Genesis of a Career Change</title><link>https://moskitohero.com/post/2020-01-20-genesis-of-a-career-change/</link><pubDate>Mon, 20 Jan 2020 00:00:00 +0000</pubDate><guid>https://moskitohero.com/post/2020-01-20-genesis-of-a-career-change/</guid><description>After 19 years as a teacher, I decided to change careers and become a software developer. Here are the reasons that led me to this decision, and the first lessons I’ve learned from this transformation.</description></item><item><title>First, I drink the coffee...</title><link>https://moskitohero.com/post/2019-01-24-first-i-drink-the-coffee/</link><pubDate>Thu, 24 Jan 2019 00:00:00 +0000</pubDate><guid>https://moskitohero.com/post/2019-01-24-first-i-drink-the-coffee/</guid><description>Here is a wallpaper I made. Feel free to download…​</description></item><item><title/><link>https://moskitohero.com/about/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://moskitohero.com/about/</guid><description>&lt;div class="imageblock left"&gt;
&lt;div class="content"&gt;
&lt;img src="https://moskitohero.com/assets/img/me2.png" alt="My Photo" width="150" height="150"/&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="paragraph"&gt;
&lt;p&gt;My name is Cédric Delalande. I am a french software engineer. I live near Poitiers, France. I am a husband and a father of four.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="paragraph"&gt;
&lt;p&gt;After a 19-year career as an English teacher, I switched to IT - no regrets. Check out my résumé.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="paragraph"&gt;
&lt;p&gt;I code in Ruby on Rails. I’m interested in Rust, Golang, Crystal and Gleam. I have a DevOps streak, with solid experience in Kubernetes on Google Cloud and AWS.&lt;/p&gt;
&lt;/div&gt;</description></item><item><title/><link>https://moskitohero.com/resume/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://moskitohero.com/resume/</guid><description>&lt;div class="cv-container"&gt;
&lt;div class="resume-header"&gt;
&lt;div class="header-left"&gt;
&lt;div class="name-block"&gt;
&lt;span class="first-name"&gt;CÉDRIC&lt;/span&gt;
&lt;span class="last-name"&gt;DELALANDE&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="header-right"&gt;
&lt;div class="contact-column"&gt;
&lt;p&gt;&lt;i class="fa fa-map-marker"&gt;&lt;/i&gt; Poitiers, France&lt;/p&gt;
&lt;p&gt;&lt;i class="fa fa-phone"&gt;&lt;/i&gt; &lt;a href="#" id="phone-link"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;i class="fa fa-envelope"&gt;&lt;/i&gt; &lt;a href="#" id="email-link"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div class="contact-column"&gt;
&lt;p&gt;&lt;i class="fa fa-globe"&gt;&lt;/i&gt; &lt;a href="https://moskitohero.com"&gt;moskitohero.com&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;i class="fa-brands fa-github"&gt;&lt;/i&gt; &lt;a href="https://github.com/MoskitoHero"&gt;github.com/MoskitoHero&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;i class="fa-brands fa-mastodon"&gt;&lt;/i&gt; &lt;a href="https://ruby.social/@MoskitoHero"&gt;ruby.social/@MoskitoHero&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="pdf-download"&gt;
&lt;a href="https://moskitohero.com/assets/pdf/cedric_delalande.pdf"&gt;
&lt;i class="fa-solid fa-file-pdf"&gt;&lt;/i&gt; Download PDF version
&lt;/a&gt;
&lt;/div&gt;
&lt;h2 class="section-title"&gt;Who am I?&lt;/h2&gt;
&lt;div class="who-am-i-section"&gt;
&lt;div class="photo-container"&gt;
&lt;img src="https://moskitohero.com/assets/img/cedric-photo.jpg" alt="Cédric Delalande"&gt;
&lt;/div&gt;
&lt;div class="intro-text"&gt;
&lt;p&gt;Senior Ruby Developer with 15+ years experience building scalable web applications. Expert in team leadership, system architecture, and cloud migrations.&lt;/p&gt;
&lt;p&gt;Creative, flexible and eclectic.&lt;/p&gt;
&lt;p&gt;I believe clean, tested code is key to maintainability and performance. I believe in trust and ownership.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="skills-bars"&gt;
&lt;div class="skill-bar"&gt;
&lt;span class="skill-label"&gt;Ruby on Rails&lt;/span&gt;
&lt;div class="bar-container"&gt;
&lt;div class="bar-fill" style="width: 100%;"&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="skill-bar"&gt;
&lt;span class="skill-label"&gt;Kubernetes&lt;/span&gt;
&lt;div class="bar-container"&gt;
&lt;div class="bar-fill" style="width: 90%;"&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="skill-bar"&gt;
&lt;span class="skill-label"&gt;Team Leadership&lt;/span&gt;
&lt;div class="bar-container"&gt;
&lt;div class="bar-fill" style="width: 90%;"&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="skill-bar"&gt;
&lt;span class="skill-label"&gt;AWS/GCP&lt;/span&gt;
&lt;div class="bar-container"&gt;
&lt;div class="bar-fill" style="width: 80%;"&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="skill-bar"&gt;
&lt;span class="skill-label"&gt;CI/CD&lt;/span&gt;
&lt;div class="bar-container"&gt;
&lt;div class="bar-fill" style="width: 80%;"&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="skill-bar"&gt;
&lt;span class="skill-label"&gt;Rust&lt;/span&gt;
&lt;div class="bar-container"&gt;
&lt;div class="bar-fill" style="width: 40%;"&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2 class="section-title"&gt;Experience&lt;/h2&gt;
&lt;div class="experience-list"&gt;
&lt;div class="experience-entry"&gt;
&lt;div class="entry-date"&gt;2025-Present&lt;/div&gt;
&lt;div class="entry-content"&gt;
&lt;h4&gt;Full Stack Developer&lt;/h4&gt;
&lt;div class="entry-company"&gt;Happydemics - Full Remote&lt;/div&gt;
&lt;p&gt;Full stack development for market research platform. Ruby on Rails backend development. React/TypeScript frontend development. Python development. AI prompt engineering and integration.&lt;/p&gt;</description></item></channel></rss>