-
Robotics Training Experiments: What Worked, What Didn't, and What Surprised Me
Part 2 of a series on practical robotics experimentation. See part1.
After building my simulation environment, the real learning began. I threw multiple approaches at the cube-to-bin task: Soft Actor-Critic (SAC) reinforcement learning, behavior cloning from demonstrations, and modern imitation learning with LeRobot. Each taught me something different about the practical realities of robot learning.
Here’s what I discovered—including some findings that challenged my assumptions and revealed the gap between academic ideals and development reality.
Read more… -
Creating a Robotics Experimentation Environment: My Experience and Practical Lessons
Part 1 of a series on practical robotics experimentation
As part of my journey into robotics, I found myself facing a classic problem: I wanted to experiment with different learning approaches for robotic manipulation, but I needed a flexible playground where I could quickly test ideas without being locked into any single framework or workflow.
The result is gym-so100-c, a simulation environment built around the Standard Open Arm SO101 that bridges multiple machine learning libraries—Stable-Baselines3, the
Read more…imitation
library, and Hugging Face’s LeRobot—all in one cohesive environment. -
Robotics Gym & Experiments
This post describes my gym-so100-c project. As part of my journey into robotics, I’ve built a basic simulation environment that matches my chosen platform, the Standard Open Arm – SO101, and used it to explore a wide set of libraries and tools.
For this next stage, I wanted a simple but flexible sim-first setup where I could try different approaches, compare them side by side, and build on what I learned. Even though I had access to physical robots, I’m more of a software person — I enjoy the comfort of my home office (and the flexibility to keep working while traveling) more than spending long days in a lab.
Read more… -
My deep dive into robotics: Part 1
This post is the first in a series documenting my journey into robotics. I’m writing these to reflect on my progress and strategy, but also to help or inspire anyone considering a similar leap.
If you’re curious about AI, building physical systems, or carving out your own path into deep tech—this one’s for you.
Why robotics & my background
I grew up on a farm, so I’m no stranger to tedious manual labor. I also happen to be very lazy when it comes to physical work - as a kid I would never want to help out in the farm or doing chores. I’m not proud of it, but that’s true! I’d always rather be learning or building something than repeating the same task over and over.
Read more… -
Generating Hundreds of Consistent Illustrations with Gemini Image Generation
A deep dive into building an automated illustration pipeline for storytelling applications
Introduction
AI image generation has revolutionized creative workflows, but there’s a significant difference between generating a single stunning image and producing hundreds of consistent illustrations for a complete project. When building storylearner.app, we faced the challenge of generating book illustrations that maintained visual consistency while telling compelling stories through imagery.
We’ve used powerful Gemini multimodal models, mostly because they are fast and because the experimental ones are available for free.
Read more… -
Escaping LLM piping mess with nifty engineering
In this post I’ll walk through how I upgraded a set of tangled Python notebooks—responsible for thousands of LLM calls—into a robust content-adaptation studio powered by:
- an async FastAPI pipeline,
- a disk-first Next.js frontend, and
- a small suite of custom CLI tools.
Re-engineering the stack was essential for my own sanity: the notebooks were fragile, slow to iterate on, and far too labor-intensive to babysit.
I was also facing content quality challenges that were pretty much impossible to address in the old code base, that re-engineering unlocked.
Read more… -
Why I Pivoted StoryLearner Instead of Giving Up
I have a secret for you: the first version of storylearner.app looked pretty different!
It had a pretty compelling story generation feature, where you could influence the story, pick the characters, and so on…
It looked good — the illustrations were very compelling, and the stories were pretty fun. But I ripped it away. In this post, I’ll dive into how I realized I needed to make the change, what to change, and how I executed it.
Read more… -
How I ended up building storylearner.app
I’ve always been drawn to self-directed learning. My interests have been pretty diverse - I would spend countless hours on math, science, soft-skills, movement skills (juggling, handstands) as well as languages.
A long standing language learning obsession
Over the years (starting as a teenager), I’ve seriously studied eight languages — not because I had to, but because I found it fun, challenging, and fascinating. Through trial and error, I’ve learned a lot about what actually works for adult learners learning on their own. And I also learned about all possible pitfalls, the main of them being, abandoning the project and losing all the progress due to forgetting.
Read more… -
3 Reflections from a sabbatical after Google
I quit Google at the end of July 2024 and I took a work break until mid-January 2025 (when I joined a startup accelerator full time). It would be a miss if I didn’t reflect on my sabbatical experience!
I will describe what I was up to in another post, but in short it was a mix of traveling and hanging out at my home base in Dublin. Here my 3 main reflections!
Read more… -
How to transcribe long audios fast with open source (colab included)
In this post I will give you code that you can run yourself in Colab (or on your own machine with a GPU), that will allow you to very quickly transcribe long audios in many languages.
The setup uses the whisper model from huggingface, Google Drive and Colab.
I used it to transcribe multi hour podcasts within a couple of minutes (about 1-5 minutes depending on the length).
Motivation
Some time ago I was getting frustrated that the podcasts that I was listening to didn’t have transcriptions available.
Read more…