~/alhiane $ whoami

Systems
thathold.

PHP, Laravel, Go and the infrastructure beneath them. I build the backends that cannot afford to fail, and I open-source the small tools that come out of that work.

Alhiane Lahcen — Senior Full Stack Developer
stack
PHP · Laravel · Go
infra
Docker · gRPC · DevOps
reply
under 24h
[01]
7+
Years shipping
[02]
MIT
Everything I publish
[03]
4
Languages localized
[04]
NL
Claims platform, daily

Registry · 3 packages

Open
source

Libraries and plugins I maintain, each with a full documentation site rather than a README and a shrug.

  1. 01ValidatorKitSchema-based form validation for Apple platformsSwiftv1.3.1MIT
  2. 02Culprit FinderFinds the WordPress plugin that broke your sitePHPv0.3.0GPL-2.0
  3. 03UnfoldRead a code change the way the code actually runsTSv0.1.0Apache-2.0
pkg/validatorkitSheet 01 / 03

ValidatorKit

v1.3.1MIT

Schema-based form validation for Apple platforms. Describe the constraints once, hand it any dictionary, get back every failing message per field. No reflection, no property-wrapper ceremony.

Rules
24 built in
Platforms
iOS · macOS · tvOS · watchOS
Messages
EN · AR · ES · FR
CI
Xcode 16 · SwiftLint
pkg/culprit-finderSheet 02 / 03
Culprit Finder result screen naming Acme Invoices as the plugin causing the problem, with the environment and a report to copy for the support forum.

Culprit Finder

v0.3.0GPL-2.0

A WordPress plugin that finds the plugin, or the two plugins, that broke your site. Visitors keep the real site the whole time, and nothing is ever deactivated.

  1. Step 1Plugins switch off for your browser only
  2. Step 2One yes-or-no question per step
  3. ResultThe culprit, or the 2-plugin clash, named
Search
~7 answers for 30 plugins
Finds
One plugin or a 2-plugin clash
Privacy
No tracking · no requests
Requires
WordPress 6.5+ · PHP 7.4+
pkg/unfoldSheet 03 / 03

Unfold

v0.1.0 · Apache-2.0

Read a code change the way the code actually runs. Unfold splits every changed file into its functions and lays them out by who calls whom, with arrows across files and the changed lines highlighted. Built for reviewing what Claude Code, Cursor or Copilot wrote, block by block instead of file by file.

An Unfold map: the changed summariseLog function as an entry point, with arrows to the parseLog and countByLevel functions it calls, changed lines highlighted in green.
Runs as
CLI · GitHub Action
Languages
TS · JS · Vue · PHP · Python · Bash
Parser
tree-sitter
Output
HTML map · AI brief · JSON

In production

Client
work

Backends measured by what they carry, not by how they look.

Production · NL01
−40%
Median response time

Legal Claims Platform

Thousands of claims a day. Monolith to services.

Go · gRPC02
10K
Requests per minute

Task Management API

Low latency, high concurrency.

ClickHouse03
100M
Events, queried live

Analytics Dashboard

Live queries without lag.

~/alhiane $ ./contact --start

Let's build
something that
scales.