Skip to content

Hamza Hamidi

Software engineer building backend systems, developer tools and open-source software.

I'm originally from Beni Mellal, Morocco but these days I live in Paris, France.

Bio

A little more about me.

I've always loved spending way too much time on the computer. I spent my teens tinkering with Photoshop, writing C/C++ code and building websites.

My curiosity led me to dig deep into the world of computer science, and I eventually decided to pursue a degree in the field.

These days I work on backend and distributed systems, across TypeScript, Go and Python. On my own time I maintain AJSF and prettier-eslint, and I build developer tooling: most recently yoke, a Chrome extension and MCP server that lets an agent drive the browser you are already signed in to.

Now

TheFork.
Software engineer, in Paris.
yoke.
Started on 21 August 2026. A Chrome extension and a local MCP server that drive the Chrome profile I am already signed in to, every tab in every window.
claude-in-chrome-cli.
Started on 11 August 2026. A shell script that drives the Claude in Chrome extension, from Claude Code or from a plain shell.
AJSF.
Back in maintenance since August 2026. Angular 18 is the current stable release. Angular 19 is at release candidate 3.

Code

The duct tape that keeps the world together!

Open source is the part of this work I've always enjoyed most, and the language changes with the project. Here are some of the ones I've contributed to:

yoke

2026

A Chrome extension and a local MCP server that let any MCP client drive the Chrome profile you are already signed in to. It addresses every tab in every window by id, reads pages, clicks and types, takes screenshots, and reads console and network activity.

It began as the tab-group helper split out of claude-in-chrome-cli. Your signed in sessions, cookies and extensions stay available, which is the reason to reach for it instead of starting a second browser. It addresses tabs by id rather than through a tab group, redacts URLs unless a call asks for them, and ships zero runtime dependencies.

TypeScript, MITCode

claude-in-chrome-cli

2026

The Claude in Chrome extension tools, from a shell script.

One MCP bridge with two front doors: a plugin inside Claude Code, and cic for anything that can run a shell. It also lists every open tab by reading Chrome's session files, which the extension bridge cannot see.

JavaScript, MITCode

cookies-utils

2020

A typed cookie API over the Cookie Store API.

One async interface over both backends, with nothing to configure. Version 2 rejects the attribute combinations that are unsafe rather than merely wrong, covering SameSite, Secure, Partitioned (CHIPS) and the __Secure- and __Host- prefixes. Importing it never reads document, so it is safe in a server-rendered build.

TypeScript, MITCode

Older work

Todo List

2018

An Ionic todo app with shared notes, images and speech input.

An Ionic application I started in 2018. I used Firebase as a Back End. Todo List is available as a mobile application (Android, IOS, Windows phone), but also as a Progressive Web Application. Todo List has many features like sharing notes, upload images, Speech Recognition...

Contributions to the public repository are always welcome. I use Zenhub for project planning.

TypeScriptCodeLive Demo

Vulcan

A full-stack app framework on React, GraphQL and Meteor.

An open-source full-stack app framework based on React, GraphQL, Meteor, and MongoDB, with now more than 5000 stars and 150 contributors.

Code

RealWorld

One example application, implemented in every framework.

"The mother of all demo apps" an Exemplary fullstack Medium.com clone powered by React, Angular, Node, Django, and many more.

While most "todo" demos provide an excellent cursory glance at a framework's capabilities, they typically don't convey the knowledge & perspective required to actually build real applications with it.

RealWorld solves this by allowing you to choose any frontend (React, Angular 2, & more) and any backend (Node, Django, & more) and see how they power a real world, beautifully designed fullstack app called "Conduit"..

Code

etherpad-lite

Open source real-time collaborative document editing.

For those of you tired of using Google tools like Google docs ... then you're not the only ones! And if you want to do something about this! Here's the solution!

etherpad-lite is an open source real-time collaborative document editing.

Code

Merged pull requests

42

Merged into 16 projects I do not own. Six of the changes:

  1. microsoft/vscode1 merged

    Fixed the keybinding hash so scan codes and simple keys stopped colliding. #173456

    The editor many developers keep open while writing and debugging software.

  2. facebook/docusaurus3 merged

    Added the noIndex config option, so a site can ask crawlers to skip it. #3573

    The documentation builder teams use when Markdown needs versions, search and a website.

  3. prettier/prettier-eslint9 merged

    Maintainer. Carried it through the ESLint 6 and Prettier 2 upgrades, and keyed the ESLint cache on the effective working directory. #337 #334 #1221

    Runs prettier over your code, then eslint --fix.

  4. cloudfoundry/stratos7 merged

    Added French localisation, and the org and space columns to the application list. #1419 #2247

    A web console for managing Cloud Foundry and Kubernetes.

  5. realworld-apps/angular-realworld-example-app4 merged

    Moved the project structure to Angular 6, and added the production build and CI. #114 #50 #98

    An Angular blogging application used to compare framework implementations on a shared example.

  6. zkat/make-fetch-happen1 merged

    Fixed the crash on a proxy URL with no protocol. #61

    The caching fetch that npm makes its requests with.

Also iamkun/dayjs, kulshekhar/ts-jest, webpack/webpack.js.org, bgub/eta, AxaFrance/oidc-client, semantic-release/npm, json-schema-org/json-schema-org.github.io, AxaFrance/react-toolkit, AxaFrance/Skizzle, felixzapata/gulp-stubby-server.

Bug reports

Not every fix starts as a pull request.

Bugs I reported in projects I do not own. The maintainers confirmed each one as a bug and closed it as done.

Every issue I have opened elsewhere

Writing

Like coding, but without all the errors.

More on Medium

Say hello

Get in touch through GitHub, LinkedIn or X. Medium is where I write.