RSSAmplifier

Blog

Alessio Franceschelli

Recent content on Alessio Franceschelli

alessio.franceschelli.meRSS feed ↗22 posts

Latest posts

Can AI work outside of software development?

I think we are still light years away from applying it to just any job, unless the result is automatically verifiable.

Why Burla is built for real migrations

A few days ago I published Burla. That post was the public “why now” moment. This one is the more opinionated follow-up. Toy examples are where mocking libraries look tidy. Real migrations are where they tell the truth. One interface, one return value, one happy path proves almost nothing. The real test starts when you move a real suite, hit async-heavy code, wrestle with ref and out…

Burla is finally public

I finally had the guts to publish Burla. I have been using LLMs for coding since the beginning, and over the last few months I went properly down the rabbit hole: different hosted models, local models, agentic workflows, migration prompts, planning loops, the whole lot. At some point I realised I did not just want opinions about AI tooling. I wanted a real project that could absorb all that…

Stop wasting your Copilot requests on Claude Opus

If you’re still defaulting to Claude Opus in GitHub Copilot, you’re probably burning quota for very little in return. As of April 2026, Claude Opus 4.6 costs 3x requests and Claude Opus 4.7 costs 7.5x . Meanwhile GPT-5.4 is still 1x , even if you push reasoning effort all the way up to xhigh in VS Code. That cost gap is enormous, and I don’t see anything close to an equivalent…

Stop wasting premium requests in GitHub Copilot: the ask tool trick nobody talks about

I keep seeing engineers burn through 100 premium requests in an hour , then wonder why their engineering managers think GitHub Copilot is getting too expensive. Most of the time it’s a workflow problem, not a pricing one. Premium requests are at their best when you give them a full-bodied brief, let the model do a serious pass, and then tighten the result without restarting the whole…

Use the Windows ssh-agent in WSL without breaking auto-poweroff

I prefer WSL to shut down when I close the last terminal. I also want easy access to the keys I keep in my Windows ssh-agent. For a long time, trying to get both meant compromising. I tried a few hacks that kept WSL running forever, forcing me to always remember to manually terminate the WSL session. I finally settled on a tidy user-scoped bridge. It gives WSL access to the Windows agent and still…

Your AGENTS.md is probably full of vibes

There’s a growing trend in the AI-assisted coding world. People are posting their AGENTS.md , CLAUDE.md , or .cursorrules files on social media and writing blog posts about their “ultimate AI coding configuration”. The configs go viral. Everyone copies them into their own repos. Problem solved, right? Not quite. Most of these files are stuffed with two things the AI can’t…

Fixing Claude Code slowness in WSL

If you’re like me, you probably love the Claude models. But when you tried Anthropic’s Claude Code CLI on Windows (specifically inside WSL, where most of us prefer to do our coding), the experience felt completely broken. It was borderline unusable. We’re talking freezing for several seconds at startup, hanging before every / command, and even stuttering while typing. Since…

Onboarding AI into your codebase

You build a project. It’s clean, well-structured, cohesive. You know every corner of it. Then life happens: the project moves to a different team for day-to-day maintenance. They bring their own style, their own habits. Things start to drift. Not dramatically, just… gradually. The codebase gets a little messier with every handover. Now drop an AI agent into that codebase. Same story,…

The right way to handle changing configuration in ASP.NET Core middleware

You’ve got a middleware. It reads a comma-separated list of allowed hosts from configuration. Or maybe it loads a dictionary of route mappings, or parses a set of feature flags into a lookup table. The config value can change at runtime and you need to pre-process it into something your middleware can actually use on every request. How hard can it be? 🤷

Tempted to run a local coding model on your gaming rig? Don't.

Lately, I’ve successfully self-hosted a decent private chatbot and even run a near real-time voice-to-text model locally. So I thought: why not try running a local coding model? I have a pretty decent gaming rig, so it should be able to handle it, right? Well, it turns out: not really. I spent the whole weekend trying to set up a local coding model and ran into a pile of issues. The models…

Choosing the right GitHub Copilot model for the job

One of the most common questions I get asked is: “Which AI model should I be using with GitHub Copilot?” Open GitHub Copilot today and you are greeted with a dropdown menu that looks like a wine list. Sonnet? Gemini? Opus? GPT-5? 🤯 It used to be simple, but now it can be paralysing. Which one is best? It depends on what you are trying to achieve, how complex the task is, and how you…

How AI ruined voice assistants: losing the basics in the race for more

Voice assistants used to be simple, reliable helpers. Well, maybe not truly reliable. They weren’t perfect, but for years, you could count on them to set a reminder, add a calendar event, or play your favourite playlist. They quietly made life easier, even if they never lived up to the sci-fi hype.

WSL2 with Ubuntu 20.04 step-by-step upgrade: getting started on Windows 10 May 2020 Update

Now that the Windows 10 May 2020 Update is finally available to everyone, without requiring to join the Windows Insiders program and install preview versions, it’s finally time to embrace WSL2 . WSL2 is the second iteration of the Windows Subsystem for Linux which finally allows running linux virtualized inside Windows. This new version brings real virtualization using a real linux kernel ,…

How to test logging when using Microsoft.Extensions.Logging

Logs are a key element for diagnosing, monitoring or auditing the application’s behaviour, so if you are either a library author or you are developing an application, it is important to ensure that the right logs are generated. Would it be nice if there was an easy solution to write tests for it? Let’s start a journey through the best approaches to tests logs when using…

Build a .NET library with GitHub Actions

GitHub Actions are a great free tool to have continuous integration of your opensource .NET library for free, directly into GitHub, saving you from setting up other tools and linking accounts. Setting it up can feel a daunting task but, if you follow this guide you are going to be able to set it up in 10 minutes!

Should I use global.json?

I often get asked if it is better to have a global.json in a .NET project (not necessarily .NET Core) to define a specific .NET Core SDK version and, unfortunately, if you need a short answer you will get from me the typical engineer answer: it depends! Here is the full answer so you can decide what suits best for your needs.

HttpClientLab

HttpClientLab turns the HttpClientFactory into a lab, so you can mock the HttpClient to write tests.

Compile Python 3.4 on Raspbian

Recently I had to install Python 3.4 on the Raspberry Pi, which is not part of the current distribution as it is based on Debian Wheezy which includes Python 3.2.3. The following steps allow you to install Python 3.4 with pip and sqlite support, without messing with your other Python versions.

Fix Gradle warnings after Android Studio 1.3 update

Have you just updated Android Studio to version 1.3 Beta and have you found yourself overwhelmed by all the warnings in the Gradle files?

new Blog()

Once every while I feel the need to publish something on the web… a futile website, a lonely forum, a new blog… but since I am a software developer, i finally (eureka!) came to the conclusion that it’s better if I spend my (little) free time with my real vocation: develop! So… why am I starting again another blog? well, I’d like to start sharing pieces of code of what I’m working on, not with the…

self.about()

👋 Hi there! I’m Alessio Franceschelli. I’m a Principal Software Engineer based in London 🇬🇧. I’ve been building software for over two decades, and I remain as excited about it today as I was when I started. My passion lies in crafting code that isn’t just “functional” but high-quality, maintainable, and performant . 🚀 For me, software engineering is about…