Aycan Gulez

@aycangulez
28 Followers
18 Following
122 Posts
Efsora Izmir Lab Director
BLOGhttps://lackofimagination.org

You’re testing a new feature in a development environment. You click “Submit,” and a few seconds later, your phone buzzes with a real-world SMS notification. Or worse, a real customer receives a “Test” email meant for a sandbox user. While these aren’t usually “delete-the-database” disasters, they represent a fundamental failure in application guardrails…

#programming #javascript

https://lackofimagination.org/2026/03/beyond-the-readme-enforcing-application-guardrails-at-runtime/

Beyond the README: Enforcing Application Guardrails at Runtime

You’re testing a new feature in a development environment. You click “Submit,” and a few seconds later, your phone buzzes with a real-world SMS notification. Or worse, a real customer receives a “Test” email meant for a sandbox user. While these aren’t usually “delete-the-database” disasters, they represent a fundamental failure in application guardrails…

Lack of Imagination
"Rules are often an excuse to ignore compassion." - Frank Herbert, Chapterhouse: Dune

We’ve all had that sinking feeling. There are multiple crash reports from production. We have the exact input parameters that caused the failures. We have the stack traces. Yet, when we run the code locally, it works perfectly. If we could simply rewind time and watch the code execute exactly as it did for those failed requests, life would be a lot easier…

#programming #javascript

https://lackofimagination.org/2026/02/time-travel-debugging-replaying-production-bugs-locally/

Time-Travel Debugging: Replaying Production Bugs Locally

We’ve all had that sinking feeling. There are multiple crash reports from production. We have the exact input parameters that caused the failures. We have the stack traces. Yet, when we run the code locally, it works perfectly. If we could simply rewind time and watch the code execute exactly as it did for those failed requests, life would be a lot easier…

Lack of Imagination
"Curiosity unsatisfied tended to create its own answers. Guesses were often more dangerous than facts." -- Frank Herbert, Heretics of Dune

In a typical imperative application, business logic and side effects are inextricably linked. For example, when you write await db.checkInventory(…), the runtime immediately reaches out to the database. Our Effect System works differently. When our code needs to check inventory, it doesn’t call the database; it returns a plain object instead, which will be executed later by an interpreter.

#programming #javascript

https://lackofimagination.org/2025/12/testing-side-effects-without-the-side-effects/

Testing Side Effects Without the Side Effects

In a typical imperative application, business logic and side effects are inextricably linked. For example, when you write await db.checkInventory(…), the runtime immediately reaches out to the database. Our Effect System works differently. Instead of performing the action, our functions return a description of the action. When our code needs to check inventory, it doesn’t call the database; it returns a plain object instead, which will be executed later by an interpreter.

Lack of Imagination

If you look at the source code of a typical application, you will likely find business logic tangled with database calls, HTTP requests firing off in the middle of validation rules, and try/catch blocks sprinkled here and there. The biggest casualty of this coupling is testability…

#programming #javascript

https://lackofimagination.org/2025/11/managing-side-effects-a-javascript-effect-system-in-30-lines-or-less/

Managing Side Effects: A JavaScript Effect System in 30 Lines or Less

If you look at the source code of a typical application, you will likely find business logic tangled with database calls, HTTP requests firing off in the middle of validation rules, and try/catch blocks sprinkled here and there. The biggest casualty of this coupling is testability…

Lack of Imagination

My latest blog post discusses how divergent thinking can open up better solutions and save you from wasted effort.

https://henko.net/blog/why-divergent-thinking-leads-to-better-software/

#programming #softwaredevelopment

Why divergent thinking leads to better software 💎

Discover how divergent thinking can open up better solutions and save you from wasted effort.

Henrik Jernevad

Studies have shown that expecting to teach a subject improves how well you learn and remember it. By writing your work as if you're teaching it, you're tricking your brain into going deeper and organizing your knowledge better.

https://www.svendewaerhert.com/blog/higher-education/

Advice for self-taught learners entering formal education

On how autodidacts can navigate the transition to formal higher education without losing their motivation and curiosity

Companies break promises all the time. A self-guaranteeing promise does not require you to trust anyone. You can verify a self-guaranteeing promise yourself.

File over app is a self-guaranteeing promise. If files are in your control, in an open format, you can use those files in another app at any time. Not an export. The exact same files.

https://stephango.com/self-guarantee

Self-guaranteeing promises

A self-guaranteeing promise does not require you to trust anyone. You can verify it yourself.

Steph Ango

Anytime you rely on an LLM to enforce something important, you will fail. Whenever you find yourself dealing with an LLM-based system, you can always find a way to shift the complexity to a tool to avoid that issue. As an example, if you want to do algebra with an LLM, the solution is not asking the LLM to directly perform algebra, but instead providing a tool capable of algebra to the LLM, and then relying on the LLM to call that tool with the proper parameters.

https://lethain.com/what-can-agents-do/

What can agents actually do?

There’s a lot of excitement about what AI (specifically the latest wave of LLM-anchored AI) can do, and how AI-first companies are different from the prior generations of companies. There are a lot of important and real opportunities at hand, but I find that many of these conversations occur at such an abstract altitude that they’re a bit too abstract. Sort of like saying that your company could be much better if you merely adopted software. That’s certainly true, but it’s not a particularly helpful claim.