Extreme branchless: primitives
Previously, we have tackled Maybe/Stream branchless. But we still have many Algebraic data-types under the hood, such as... Strings, which are defined… ...more
Previously, we have tackled Maybe/Stream branchless. But we still have many Algebraic data-types under the hood, such as... Strings, which are defined… ...more
Sometime ago, I have written about a branchless (i.e without explicit control-flow) solution to fizzbuzz. While control-flow is less damaging in funct… ...more
I was reflecting about my added value few weeks ago. A long time ago I've been involved in two projects: A stock management system: saving 100k€ the … ...more
Over the last few months, I have practiced coding challenges (here). I had two goals in mind: Improving my Rust mastery Go deep into the internals an… ...more
Few weeks ago, I was talking to one of my co-workers about Event Sourcing. At some point, he was inquiring about retrospectives on migrating old syste… ...more
We are the Thursday 2nd of October 2014, it's my first day as a professional software engineer. I like symbols, because for good or bad reasons they f… ...more
Recently in our codebase I have introduced ranges to disambiguate the values we passed around, such as: listGuideTours :: Members AppEffects r => G… ...more
A few days ago I have practiced the bowling kata with one of the members of the Software Crafters Lyon. It's a kata I've only tried two times before t… ...more
After a short break, let's go back to our Event-sourced API. Until now, we have only changed the internals of our API. Our goal is to eventually add a… ...more
As you might have noticed, I've switch position few weeks ago. After talking with my former CTO, it seems to be a great idea to do a retrospective on … ...more
Previously we have extracted our views, so we had an interpreter based on persistent-projections: data TrainViewEffect (m :: Type -> Type) (a :: Ty… ...more
In the last log we have refactored the code, so projections are built on top of previous effects: apiEventProjection :: (Members '[TrainProjecti… ...more
Previously, we have reversed writes, which means that we write events, then we write the legacy tables. As a reminder, we have some code looking like … ...more
Previously, we have introduced events, however they are the second write, meaning that they are not actually used, they are "passive", even … ...more
Currently, our API has effects, it changed the way we deal with the code, but fundamentally, it does not change the way we will meet business needs. C… ...more
One of the issue of our API is the direct implementation of the "business logic" (which is quite thin and coupled to the persistence) direct… ...more
In the previous log, we have seen a legacy API to create trains and book/withdraw tickets. Whenever I land in a new codebase I have to work on, I try … ...more
A long time ago, I was asked to write on polysemy and Yesod integration, on another hand, I was also asked on the best way to migrate from regular, st… ...more
Few weeks ago I was Software teamming/mob programming on the Poker Hands kata. I'm used to doing pair programming with entry/mid-level software develo… ...more
When I was younger, I was focused on competitive programming, not a lot, but way more than in the last decade, at some point, I have attended to Prolo… ...more
Ten days ago I have attended to Haskell Ecosystem Workshop followed by ZuriHac. It was my first participation to both events (last year, due to confli… ...more
A while ago I have decided to do a 666 days streak of contributions on GitHub. It was mostly for fun, but also to have a call-to-action for contribut… ...more
In my previous log, I have focused on an annoying aeson, I have mentioned that it was involving some GHC's Generics code which were too complex for th… ...more
In Haskell, we have aeson which is a library providing reading and writing JSON. It's mainly done through two type classes: ToJSON/FromJSON. We can ea… ...more
A well known code kata is the fizzbuzz, it can be described as follows: For any strictly positive number, if the number is a multiple of 3 display Fi… ...more
Few days ago, I was watching a talk in which the speaker was presenting the history of the software engineering field of the last fifty years. At some… ...more
Since I have introduced Type-Driven Development, I have applied it to business logic, to tests, to interfacing, now I want to distinguish types by usa… ...more
In a previous log, I have introduced librarian, as an example of Type-Driven Development. For a reminder, we had "complex" types: -- GADTs d… ...more
In the previous log, I have introduced librarian, as an example of Type-Driven Development. Last log ended up with time-related feature. For reference… ...more
In my previous log I have introduced Type-Driven Development, it was an overview of how I practice. I feel the need to show concretely how it works. A… ...more
There is a bit of hype around Test-driven development (TDD) these years (I am clearly biased since that's one of my meetup group focus). The idea behi… ...more
A while ago, I have continued with YNIA, which is a set of patterns I set up before really need them. I work a lot (and enjoy working with) Event Sour… ...more