Marc de Mas
  • Home
  • Lessons Learned
  • Data Engineering
  • Tools & Automation
  • Analytics
  • BigQuery
  • dbt
  • Python
Data Engineering

How many jelly beans are in the jar?

by Marc 27 May 2026
written by Marc

Here is a jar of jelly beans. How many are in it?

Take a guess and hold onto it. We’ll come back to it — and to the slightly unsettling fact that nobody, including the people who set the puzzle, actually knows the answer.

Continue Reading
27 May 2026 0 comments
0 FacebookTwitterPinterestEmail
Twelve game-cover examples in a 4x3 grid, each labelled: clean, 3d_render, deluxe_bundle, multi_platform, wrong_console, wrong_game, low_resolution, bad_background, margins, placeholder, gkc, ciab
Python

Teaching a small CNN to pick the right cover image

by Marc 22 May 2026
written by Marc

A side project of mine is a video-game price-comparison catalogue. It pulls product data from a handful of retailers — affiliate feeds, public web APIs, a couple of cookie-based scrapers — and shows you which of them currently has the best price on a given title. About 27,000 editions across ~12,000 games.

Continue Reading
22 May 2026 0 comments
0 FacebookTwitterPinterestEmail
Three LiitoKala 34B 18650 cells stacked, showing positive terminals and flat tops
Tools & Automation

LiitoKala 34B 18650 — first impressions in a Waveshare UPS 3S

by Marc 22 May 2026
written by Marc

I picked up three LiitoKala 34B flat-top 18650s to populate the Waveshare UPS Module 3S sitting under my Raspberry Pi 5 home server. The cells are sold as a Panasonic NCR18650B rewrap — the printed cell label reads NCR18650B Li-ion. They came from the LiitoKala official store on AliExpress at about $2/cell after coupons and AliExpress coins (closer to $4 at sticker), which is well under half what genuine retail-channel Panasonic cells go for.

Continue Reading
22 May 2026 0 comments
0 FacebookTwitterPinterestEmail
Lessons LearnedTools & Automation

The Caveat Nobody Mentions

by Marc 5 May 2026
written by Marc

I started using Claude Code in December last year. In four months, I’ve delivered what my team would have needed two or three years to ship — at least. That sounds like a happy ending. It isn’t quite.

Continue Reading
5 May 2026 0 comments
0 FacebookTwitterPinterestEmail
Lessons Learned

Builder is the new role

by Marc 2 May 2026
written by Marc

Early 2025 AI was a toy. ChatGPT could write a function, sometimes correctly, often not. It was impressive in demos and frustrating in practice. A year later the picture is unrecognisable. AI is now genuinely useful — useful enough that I can build almost anything I want in a single day, regardless of how complex it is.

Continue Reading
2 May 2026 0 comments
0 FacebookTwitterPinterestEmail
Lessons LearnedTools & Automation

The Productivity Multiplier Has a Tail at Infinity

by Marc 2 May 2026
written by Marc

Last year I went to the Google Cloud Summit with a few colleagues. We saw a lot of impressive projects built around agents and LLMs, and walked out a bit deflated. As a data team — analysts, engineers, but not “pure” software developers — we could see the value clearly, but we’d seen this movie before: the moment we wanted to build something real, we’d be queuing up for backend developer time, or pricing out an external consultant to implement agents for us. Same bottleneck as always, just with a fancier label.

A year later, that bottleneck has quietly dissolved. We built it all ourselves — fast — with Claude Code as the agent in our IDEs. The projects we thought we’d have to outsource, we shipped on quiet afternoons.

And it isn’t just the work-shaped projects. I’m finally shipping ideas that have sat in my personal backlog for literally ten years — the kind of thing where every time you open the notebook you remember why you closed it last time. Now they’re real, deployed, and — the part I keep being surprised by — they’re solid. Tests, sensible error handling, security defaults that hold up to scrutiny. Not vibey demos. Things I’d hand to a friend without a list of caveats.

When people ask how much faster I work with the agent, my honest answer is that “faster” is the wrong axis. I built this chart for an internal talk last week to explain why.

Continue Reading
2 May 2026 0 comments
0 FacebookTwitterPinterestEmail
Lessons LearnedTools & Automation

Tricks and Behavioural Patterns I Taught My Coding Agent

by Marc 25 April 2026
written by Marc

I wrote three months ago about the context files and memory system behind my AI coding agent. This post is the follow-up I wish existed back then: the concrete tricks and patterns that make the agent reliably useful, not just occasionally impressive. Most of these are small. They compound.

Continue Reading
25 April 2026 0 comments
0 FacebookTwitterPinterestEmail
BigQueryData EngineeringdbtLessons Learned

Teaching an AI Bot Your Metrics, Part 2: One Layer for Logic, One Thin Layer for Aggregation

by Marc 25 April 2026
written by Marc

In Part 1 I wrote about how our AI Slack bot was confidently wrong about revenue, and how a hand-maintained corrections file fixed it. That file grew. After three months it was six hundred lines long and still did not stop the bot from producing numbers that disagreed with the dashboards. This post is about why the corrections file could never work, and the week-long migration that finally made it unnecessary.

The short version: we already had a semantic layer. That was the problem. The bot had to reconcile business logic that lived in two places at once, and no amount of prompting was going to make it good at that.

Continue Reading
25 April 2026 0 comments
0 FacebookTwitterPinterestEmail
Lessons LearnedTools & Automation

Four Months Debugging a DRAM-less NVMe on a Raspberry Pi 5

by Marc 24 April 2026
written by Marc

In January I mounted a Crucial P3 Plus 4TB NVMe on a Raspberry Pi 5 inside an Argon Neo 5 M.2 case and moved everything onto it — Immich photo library, motionEye camera recordings, Docker volumes, a few databases, the odd SFTP sync target. It worked. Then it froze. A week later, it froze again. Then every few days. Then every few hours.

What followed was four months of hunting a ghost. If you are running a DRAM-less NVMe (P3 Plus, WD Blue SN580, Kingston NV2/NV3, HP EX900, many others) on a Pi 5, this post is written for you.

TL;DR. The Pi 5’s firmware disables Host Memory Buffer by default; DRAM-less drives need HMB to stay alive under load. There is no fix that makes a DRAM-less drive truly stable on a Pi 5 — only mitigations (HMB on, PCIe Gen 1, throttle stack) that reduce the wedge rate without eliminating it. The Practical Checklist below is the mitigation list. The full post is the four-month version of how I got there — and why the only real answer is to replace the drive with one that has on-board DRAM.

Continue Reading
24 April 2026 0 comments
0 FacebookTwitterPinterestEmail
Lessons LearnedTools & Automation

Ditching Cloud Secret Managers: Age Encryption in a Git Repo

by Marc 5 April 2026
written by Marc

Google Secret Manager costs money. Not much per secret, but when you run five side projects across four servers, and each has its own set of API keys, database passwords, and service tokens, the bill adds up — and so does the cognitive overhead of managing IAM permissions, service accounts, and secret versions across multiple GCP projects. So I replaced it with a private GitHub repo and age encryption.

Continue Reading

5 April 2026 0 comments
0 FacebookTwitterPinterestEmail
Newer Posts
Older Posts

Recent Posts

  • How many jelly beans are in the jar?
  • Teaching a small CNN to pick the right cover image
  • LiitoKala 34B 18650 — first impressions in a Waveshare UPS 3S
  • The Caveat Nobody Mentions
  • Builder is the new role

Recent Comments

No comments to show.
  • Linkedin
  • Telegram

© 2026 - NoeMarc. All rights reserved.


Back To Top
Marc de Mas
  • Home
  • Lessons Learned
  • Data Engineering
  • Tools & Automation
  • Analytics
  • BigQuery
  • dbt
  • Python