Sign in

Ismael Celis

@ismaelcelis.com
890 followers 405 following 1.6K posts
PostsRepliesMedia
Ismael Celis @ismaelcelis.com · 22h
Googling “do I need a visa waiver to travel to Finland” while on my way to the airport #livingontheedge
040
Ismael Celis @ismaelcelis.com · 23h
I remember watching a Mexican show on Spanish TV once, and it was dubbed into peninsular Spanish 😀
010
Reposted by Ismael Celis
Rosa @rosa.codes · 23h
Next month I'm going to San Francisco for @sfruby.com ❤️ I think it's going to be a really fun, really uplifting conference, and I'm looking forward to it, even though I'm speaking, and that is always terrifying! Today is the last day to get regular-price tickets: luma.com/sfrubyconf2026
luma.com
San Francisco Ruby Conference · Luma
The San Francisco Ruby Conference brings the community together for three days of talks, conversation groups, and fun. Our goal is to carry programmer's…
2163
Ismael Celis @ismaelcelis.com · 29/09/2026
I’ll read it! 🙋🏻‍♂️DID read it.
050
Ismael Celis @ismaelcelis.com · 29/09/2026
How do you keep and maintain that path? I think the code itself should encode workflow causality, statically.
000
Ismael Celis @ismaelcelis.com · 29/09/2026
😂
001
Ismael Celis @ismaelcelis.com · 29/09/2026
It’s not about Ruby or Rust or whatever. It’s about having building blocks that describe the flow of information without drowning in ad-hoc glue code nor low level mechanics. Have that, and both your brain and your robot will be happy!
000
Ismael Celis @ismaelcelis.com · 29/09/2026
Use LLMs, but at the end of the day your boss or client will ask you (or their LLM!) how the app works, and expect a clear answer. Comprehensibility-has always been the bottleneck, and MVC/CRUD has never led to comprehensive systems at scale, LLMs or not.
210
Ismael Celis @ismaelcelis.com · 28/09/2026
Building on the ideas of giants! Ok that’s not the expression but you get the point.
010
Ismael Celis @ismaelcelis.com · 28/09/2026
Built-in telemetry. You can provide your own notifier. The work continues!
100
Ismael Celis @ismaelcelis.com · 28/09/2026
Live inspection of the running system
100
Ismael Celis @ismaelcelis.com · 28/09/2026
DI injector built in. I want to minimise the number of concepts and names, if possible.
100
Ismael Celis @ismaelcelis.com · 28/09/2026
You can use it for simple config values, but also components that have a lifecycle, such as workers that run in threads or fibers (you can do this with Dry::Types too, I think)
100
Ismael Celis @ismaelcelis.com · 28/09/2026
This is heavily inspired by Dry::System, but with some features that I wanted for my apps: * An app declares the components it needs, separate from their implementation. * Component implementations can declare their dependencies statically (you can inspect the dependency tree without running)
100
Ismael Celis @ismaelcelis.com · 28/09/2026
Heart breaking 💔
000
Ismael Celis @ismaelcelis.com · 28/09/2026
I may or may not be building yet another DI system for Ruby.
150
Ismael Celis @ismaelcelis.com · 27/09/2026
OH: "Claudeflare"
010
Ismael Celis @ismaelcelis.com · 26/09/2026
Definitely still exploring. Ultimately I think different apps need different structures, so I might add configuration and/or app templates for that.
010
Ismael Celis @ismaelcelis.com · 26/09/2026
The generator
100
Ismael Celis @ismaelcelis.com · 26/09/2026
I made good progress with an app generator for Sidereal, my framework for reactive, command-driven apps in Ruby. It generates an app with a default directory layout, a CLI, and an initial app that shows how you can send commands from anywhere. Reactive and multiplayer by default!
110
Ismael Celis @ismaelcelis.com · 25/09/2026
Kids playing the Spice Girls in the house, and I’m immediately transported to ABSOLUTELY EVERYWHERE in the late 90s
010
Ismael Celis @ismaelcelis.com · 25/09/2026
Causal reactivity: if a UI sends a command to the backend, it probably wants to update itself whenever the backend produces an event correlated to the initial command. Make this the default behaviour.
000
Ismael Celis @ismaelcelis.com · 24/09/2026
Give the robots abstractions to test your logic in Given, When, Then terms. Then both you and the robot have a common, high-level understanding of what the behaviour should be without noisy mechanics.
021
Ismael Celis @ismaelcelis.com · 24/09/2026
bsky.app/profile/isma...
010
Ismael Celis @ismaelcelis.com · 24/09/2026
And behaviour was always the important thing! You build an app because you want it to DO specific things. It's almost absurd that we've spent decades discussing database schemas instead of workflows and operations.
010
Ismael Celis @ismaelcelis.com · 24/09/2026
LLMs produce more code, lots of it, at a rate that overwhelms our capacity to digest it. We've needed better mental models for describing information flows for a long time, and LLMs are just making it obvious. For starters, CRUD describes structure but is completely silent about behaviour.
100
Ismael Celis @ismaelcelis.com · 24/09/2026
This comprehensibility problem predates LLMs by a wide margin. I've always struggled understanding big, unstructured CRUD codebases (past a certain size, the typical CRUD conventions are insufficient and the architecture becomes functionally unstructured IMO).
110
Ismael Celis @ismaelcelis.com · 24/09/2026
yes. Why would you ask a robot "write an Accounts Rails controller that manages an Account record with an index on the status column" if you can just describe the flow of high-level information you want and let the agent figure out the best implementation.
110
Ismael Celis @ismaelcelis.com · 24/09/2026
If you both know the informational LEGO pieces, you can discuss unambiguously how to put them together.
100
Ismael Celis @ismaelcelis.com · 24/09/2026
This is the part that's missed. Yes, the robot can build your app in any stack, but you still want an unambiguous language for the robot to explain the app back to you. And it helps a lot if the robot is building atop a reduced set of conventions and abstractions.
130
Ismael Celis @ismaelcelis.com · 24/09/2026
But this is kinda the logical conclusion of making a framework "agent-friendly". You quickly find that the abstractions designed for humans are not the optimal ones for agents. Agents don't grow emotionally attached to specific tools, either. Ergo, let the agent build it in whatever tool is useful
120
Ismael Celis @ismaelcelis.com · 24/09/2026
Other communities have been looking into this even before LLMs. So much happening with visual Eventmodeling and code-generators, for example. Specify the flow, let the robot build it. But it comes as a shock to Rubyists because Rails convinced us that programming was about tools and syntax.
100
Ismael Celis @ismaelcelis.com · 24/09/2026
True, we don't need frameworks designed for humans writing code if humans aren't writing code anymore. But we still need abstractions and building blocks to communicate with the robots (and other humans!). Domain-specific pattern languages are even more important now.
100
Ismael Celis @ismaelcelis.com · 24/09/2026
bsky.app/profile/isma...
000
Ismael Celis @ismaelcelis.com · 24/09/2026
Software design has always been about mapping the flow of information through a system. Programming languages and frameworks are only useful because they provide building blocks for describing that flow. We've been focusing too much on the tools and too little on the flow. This can be a good thing.
100
Ismael Celis @ismaelcelis.com · 23/09/2026
Ruby is one of the most expressive programming languages out there… Condemned to express the same single idea over and over for the last 20+ years. The dominant framework losing relevance might end up being a good thing for the language overall.
081
Ismael Celis @ismaelcelis.com · 23/09/2026
Event-sourced #Ruby app with Jev classifying comments in bulk. I had to lower concurrency to the minimum, and add an artificial sleep(), otherwise it's too fast to see 😆
000
Ismael Celis @ismaelcelis.com · 23/09/2026
You either feel like / are made to feel like you belong, or not. That’s it that’s all there is to it.
010
Ismael Celis @ismaelcelis.com · 23/09/2026
What does it actually mean to “have ancestral links to this land”? If they mean “race”, that’s some bunk Lamarckian nonsense. If they mean “culture”, news flash a 2nd century Saxon would think you’re culturally an alien from outer space. It’s just magical thinking BS through and through.
130
Ismael Celis @ismaelcelis.com · 23/09/2026
I'm doing the first talk at TinyRuby next week, which means I can relax and enjoy the full conference afterwards! helsinkiruby.fi/tinyruby/
helsinkiruby.fi
tiny ruby #{conf}
A tiny Ruby conference in Helsinki, Finland. Now in its second year.
031
Ismael Celis @ismaelcelis.com · 23/09/2026
I described some of the latest changes in Sidereal, my WiP command-driven Ruby toolkit for reactive apps www.rubyforum.org/t/new-in-sid...
rubyforum.org
New in Sidereal: codecs, schedules, single-writer backends
Sidereal, a Ruby toolkit for command-driven, reactive and multi-player apps I’m building, has some features to show. While it’s still work in progress, I wanted to share a few interesting (to me) impl...
013
Ismael Celis @ismaelcelis.com · 22/09/2026
I build new event-sourced apps and then remember that I get deterministic projection replays for free and it blows my mind every time. This will never get old.
000
Ismael Celis @ismaelcelis.com · 22/09/2026
I’ve done a few conference talks about event sourcing and related topics in recent years. This is probably the one I’d find the most informative. What durable messaging is, and what the consequences of the pattern are. ismaelcelis.com/posts/2025-1...
ismaelcelis.com
November 2025 talk on durable messaging and Ruby
November 2025 talk on durable messaging, event sourcing and Ruby
000
Reposted by Ismael Celis
Kasper Timm Hansen @kaspth.com · 21/09/2026
I can't make it to helsinkiruby.fi/tinyruby/ next week, anybody want the ticket?
helsinkiruby.fi
tiny ruby #{conf}
A tiny Ruby conference in Helsinki, Finland. Now in its second year.
099
Ismael Celis @ismaelcelis.com · 21/09/2026
In the Everything is a Command Architecture™️, automations just dispatch the commands that a human operator would have used. Build the app for humans, then automate where it makes sense.
110
Ismael Celis @ismaelcelis.com · 21/09/2026
This is Jev automating comment moderation.
120
Ismael Celis @ismaelcelis.com · 21/09/2026
It's truly incredible that I can, given the right building blocks, just model the flow of information in a system, attach a few reference wireframes, and have a robot one-shot the implementation. This is a toy (event-sourced) moderation app with a Jev automation.
110
Ismael Celis @ismaelcelis.com · 17/09/2026
static.klipy.com
Why Not Both? The Iconic Meme
ALT: Why Not Both? The Iconic Meme
100
Ismael Celis @ismaelcelis.com · 17/09/2026
😭
100
Ismael Celis @ismaelcelis.com · 17/09/2026
It's so refreshing to listen to a world leader who can actually string words together into coherent sentences. How we allowed the bar to get this low will be a case study for future historians.
120