REV 2026.06

Backend & Platform · Distributed Systems · EU Remote

Gal Tidhar — Staff Software Engineer

LOC Zagreb · STATUS OPEN_FROM 2026-06 · part-time only · EU remote · EMAIL gal@tidhar.org.il

General notes

10+ years on systems that must work in production — Shopify logistics (Staff), Novu (employed), Sedric platform/DX. Founder of ZaZet Solutions (SMB automation, HR / EN / HE). Open to part-time Staff/Senior backend & platform roles. Available for consulting on AI-assisted dev workflows and organizational DX.

Employment schedule

AT A GLANCE — Staff @ Shopify/Flexport · Senior @ Novu & Sedric · Founder @ ZaZet · 10+ yrs backend/platform
2026 — PRESENT

ZaZet Solutions · Independent

Founder · Staff-level engineering & consulting

SMB automation and custom operational systems (booking, payroll, internal tools). Same platform discipline as employed roles — teams of 5–50. Open to part-time Staff/Senior backend roles in parallel.

TypeScriptNode.jsPlatformSMB
JUN 2025 — APR 2026

Sedric.ai

Senior Software Engineer · Remote

Unified developer data platform (React, TypeScript) consolidating AWS + MongoDB Atlas for CSM and engineering. Org-wide AI-assisted delivery with Claude Code — CI overhauls, tooling, workshops.

TypeScriptReactNestJSAWSDX
APR 2024 — JUN 2025

Novu.co

Senior Software Engineer · Remote · Employed

Full-time on OSS notification platform (35k+ repo stars). Cut build time 78%; redesigned Novu V2 API; OpenAPI in CI/CD; channel CLI generators.

EmployedTypeScriptNestJSOpenAPI
JUN 2022 — FEB 2024

Shopify · Flexport

Staff Software Engineer · Remote

Commerce logistics post-acquisition. Cut operational delays 70%; shipment events + audit log → 97% on-time shipping; cross-team integration on Java/TypeScript microservices.

StaffJavaKubernetesDistributed Systems
JAN 2022 — JUN 2022

Deliverr

Senior Software Engineer

B2B product 0→1 before Shopify acquisition. OpenAPI adoption across 8 teams / 14 services — API overhead ↓90%. Warehouse back-office chatbot tooling.

TypeScriptOpenAPIAWS
APR 2020 — JAN 2022

Wochit

Senior Backend Developer

Vaadin back-office adopted day-one by CSM. Zero-downtime Elasticsearch migration — 46% cost ↓. Release turnaround ↓50% via E2E practice.

JavaElasticsearchKubernetes
2018 — 2020

Siemens PLM

Software Engineer

Enterprise PLM — Java backend, manufacturing lifecycle tools, modern JS in legacy systems.

JavaSpring BootPLM
2014 — 2018

Jebo GMBH

Full-Stack Developer

First engineering role — production web apps across Germany and Austria.

PHPJavaScriptMySQL

Performance specs

Verified outcomes — see employment schedule for context.

ValueMetricSource
78%Build time reductionNovu
97%On-time shippingShopify
90%API overhead reductionDeliverr
70%Operational delays reductionShopify
46%Infrastructure cost reductionWochit
10+Years backend/platform

Technical specification

LanguagesTypeScript · JavaScript · Java · Python · PHP
BackendNode.js · NestJS · Spring Boot · REST · GraphQL · gRPC
FrontendReact · Next.js
CloudAWS · Kubernetes · Docker · Terraform · CI/CD
DataPostgreSQL · MongoDB · Redis · Elasticsearch
PracticeDistributed Systems · Platform Engineering · DX · System Design · Mentorship
AI/ToolingClaude Code · OpenAPI · LLM APIs

Novu

Novu.co — Senior engineer (employed)

Apr 2024 – Jun 2025 on the notification infrastructure platform (35k+ repo stars). V2 API architecture, OpenAPI-driven CI/CD, channel CLI generators, build-system optimizations.

github.com/novuhq/novu

Writing · field notes

WhatsApp went silent for two weeks. The bug was mine.

Notifications died, calls kept ringing. Two weeks through every iOS setting led to my own self-hosted WhatsApp bridge, quietly announcing me online 24/7 - traced into a one-line assumption bug in Baileys itself: a bare presence node sent on every incoming message, even after the documented fix. Forked it, added a regression test, filed it upstream. The identical fix was proposed once before and closed by a stale bot.

Read → · The PR ↗

Run the Hebrew e-signature yourself

The manual for the fork. The licence question answered first - public fork under AGPL and you are fine, private modifications and you are the case the Enterprise licence exists for. Then every feature on the branch (RTL, form mode with repeating groups, recipient upload slots packaged into the sealed PDF), both API surfaces with the full v1 route list, the Playwright HTML-to-PDF path, and the two things you must change in the stock docker-compose.

Read → · The fork ↗

A free Hebrew e-signature, proven on Israel's worst form

DocuSign costs per envelope, DocuSeal puts the API behind the paid tier, and Documenso sealed my Hebrew as empty squares. So I forked it: real RTL, a Hebrew font inside the PDF sealing engine, and a form-style signing mode where the signer fills a labeled Hebrew form with the document updating live beside it. Proven on Tofes 101 - all 173 fields, none of them placed by hand: code reads the PDF text layer and measures, the agent looks at the render and corrects. 0.14% off. Live demo mints you your own private copy.

Read → · Try it ↗

The agent fills the cart, I press Pay

My agent got a real Chrome in the cloud - and a way to hand it back. When it hits a password, a 2FA code or a Pay button, it sends its browser live to my phone, waits (a verified 925 seconds), and carries on with the login intact. It never sees a credential. Also: the free-tier quota that impersonated a keep-alive bug, the panel that covered every login form, and the Done button nobody needed.

Read → · Part 1

Record any call on a Mac or PC and transcribe it locally, no subscription

Every meeting-bot tool wants to join your call as a participant and bill you monthly. Mine records whatever is making sound on the machine - WhatsApp, Meet, Zoom, a phone on speaker - with BlackHole and one ffmpeg command, transcribes locally with whisper.cpp, and drops a plain .txt transcript in ~/Calls you can pipe into Claude Code, an LLM, or grep. Now with a Windows build that needs no audio driver at all, and hasn't been tested yet.

Read → · callrec ↗

The audit, as software you run yourself

Four household finance audits done by hand, turned into a tool that runs on your own machine - built on Eshed Shaham's israeli-bank-scrapers and Brafdlog's Caspion, because Israel sits outside PSD2 and no aggregator API exists. Why the regulation chose the architecture instead of killing the idea, the four real bugs behind it (including a 448KB Chrome that exits 0), and the checklist that is the actual product: six ways to be confidently wrong, four of which pass an arithmetic review. Beta testers wanted.

Read → · The audit it came from

The debt with no end date

A credit card revolving at 17.69% since 2006. If nobody ever added a shekel, ILS 232 back then is ILS 6,028 today - doubling every 4.3 years, with no schedule and no date it ends. Five structural reasons nobody ever sees it, plus what else a year of real bank data held: idle cash a bank away from its own debt, PayPal billing agreements that renew with no email, and why cancelling a "duplicate" סיעודי policy loses you money.

Read → · money-audit skill ↗ · Part 1

My 83-year-old father was paying 16,000 shekels a year for nothing

I sat down to fix his Start button and found four antivirus products fighting each other, five weekly app subscriptions (the same wallet app twice, at two different prices), and a third of his phone bill that turned out to be kitchen appliances at three times retail. The mailbox sweep, the PDF parser, and the refund argument that got the first one approved two days after the window closed.

Read → · field note

My agent cannot browse as me

Every client opens me an internal email so the work stays in their scope - GitHub, Supabase, Base44. The browser was the last hole: a task space is born on whichever profile is active, and the option meant to control it was accepted and silently dropped. The fix is an email as the handle, a profile map that builds itself, and a hook that refuses any run that does not name its scope.

Read → · Part 1 · the open request ↗

The comments were right: cache ratio is a symptom, session shape is the cause

Five subagents dug through 8 months of my own logs: May cost me 9M tokens per session, August 1.7M - same workload, cache ratio unchanged. The habits that made the difference, and a skill (claude-setup-audit) that grades your setup against them from your local logs. I got a C.

Read → · setup-audit ↗ · Part one

Four people pushed back on my cache post. I graded myself and got a C.

The comments were better than the post. One question sent me back to 58,617 turns of raw logs, where I found the thing I had missed: a token added early in a long session is re-read once per remaining turn, 992 times on average. One session I forgot to close ran 24 days and was 17% of my month. The script that grades you is in the post.

Read → · The original · repo ↗

You recommended 8 agentic browsers. I audited all of them.

The comments on the ego-lite post turned into a shopping list, so I sent five research agents in parallel with one fixed six-question sheet. One tool dies in six days, one was steered into a 1Password vault, and only three even play the same game.

Read → · Part 1 · Part 2

The terminal I run 26 Claude Code sessions in, and my exact config

Twenty-six agent panes across seven workspaces, and macOS still just says "Claude is waiting for your input". cmux is a free Ghostty-based terminal that knows an agent is running inside it. Here is my full cmux.json - including the discovery that three quarters of my "tuned" config was the defaults, and why 26 agents only fit in 24 GB because I have not opened PyCharm since June.

Read → · cmux ↗

I cannot hit my Claude Code limit, and the logs explain why

People burn through a Max plan in days; I put 13.9 billion tokens through mine in two months and still cannot hit the limit. I opened my own logs to find out why. 96.3% of my tokens are cache reads, cached tokens draw your limit at the cached rate, and the turn that actually burns your plan looks like a one-line question.

Read → · repo ↗

Never type /remote-control again - one line makes it always on

For weeks I typed /remote-control at the start of every session so I could approve prompts from my phone - until I forgot once and left the house. One line in settings.json makes every session boot already connected, and it quietly changed when I start work.

Read → · docs ↗

Claude clicked the button. The button was not clicked.

A reader asked the one question I could not answer, so I measured it: four of five impossible browser actions came back as success. The exact boundary between an error and a silent no-op, the phantom edit that is worse than both, and the one line that catches all of it.

Read → · source ↗ · Part 1

I stopped giving my agent my browser

Browser automation makes you choose between an extension that steals your Chrome and a headless browser logged into nothing. The third option: an isolated task space that inherits your logins - and a control model where the user always wins.

Read → · ego lite ↗

The off switch for the logo that burned your eyes

I exposed the HDR glow trick last week. Then someone said that brightness physically hurts their eyes. So I went the other way — into macOS's private CoreDisplay APIs — and found why killing the burn locks your brightness slider, and how to get both back. Shipped as GlareBar, a ~150-line menu-bar app that kills HDR glare and dims below the hardware floor.

Read → · source ↗

I gave my agent my inbox, then it checked my parents in for their flight

Browser automation for Gmail is flaky; there's an API. 260 lines of Python gives an agent search, read, attachments, threaded replies and labels, then the browser handles only what email can't. One real flight check-in, three catches a human would have missed.

Read → · source ↗

The logo that burned a hole in my feed

That glowing Wiz logo on LinkedIn wasn't a filter — it was an HDR colour profile (Rec.2020 + PQ) making its white pixels decode at ~4,000 nits. I reverse-engineered it, rebuilt it as a one-command tool + Claude skill, and wrote up the half of the story nobody tells: on non-HDR screens the same file looks broken.

Read → · source ↗

AwakeBar — a 90-line menu-bar app to keep my Mac awake

caffeinate keeps the screen on but ignores a closed lid. So I had Claude Code build a menu-bar toggle with three honest states — an in-process IOPMAssertion, a sudoers rule scoped to two commands, ~90 lines of Swift, no dependencies.

Read → · source ↗

My mother-in-law has a digital version of me. It answers in Croatian.

Four agents on a EUR 6 VPS, reachable by Telegram and email. What NanoClaw is, the three integration bugs that fail silently, why the personas are the product, and the trifecta I deliberately did not close.

Read → · NanoClaw ↗

I made my terminal speak Hebrew — and built a cmux-style Claude cockpit

Why terminals render Hebrew backwards (the Unicode BiDi algorithm), how to fix it on WezTerm, and rebuilding a cmux-style multi-agent Claude Code workflow on top — installed by the agent itself.

Read → · source ↗

Consulting engagements

AI-assisted engineering & organizational DX

I help engineering leaders move from “everyone experiments with AI in isolation” to a repeatable delivery system — the same work I drove at Sedric: platform tooling, CI modernization, hands-on enablement, and measurable velocity gains without sacrificing quality.

AI workflow migration

  • Assess current SDLC, CI, and review practices
  • Design AI-assisted workflows (Claude Code, agents, guardrails)
  • Pilot with one team, then scale adoption org-wide
  • Documentation, prompts, and internal standards that stick

Organizational DX

  • Developer platform & internal tooling strategy
  • Back-office / data surfaces for CSM and engineering
  • CI/CD and build-system optimization
  • Workshops and mentorship for Staff+ platform habits

Reference implementation: Sedric.ai — org-wide AI-assisted delivery, unified dev data platform (AWS + MongoDB Atlas), CI overhauls, workshop-led rollout. Engagements are remote-friendly, typically part-time or fixed-scope.

gal@tidhar.org.il — subject: Consulting — AI workflows & DX

Client deployments · ZaZet

Production systems for SMB operators.

Croatia · SMB
Island operator: booking + marina

4-language production system. Replaced phone/spreadsheet booking.

Germany · Tech
Payroll & HR backoffice

30-person company — payroll days → hours.

Israel · SMB
Business operating system

One custom ops system replacing department spreadsheets.

ZaZet Solutions

ZaZet Solutions

Platform thinking from Sedric and Shopify, applied to teams of 5–50 — booking, payroll, ops without generic SaaS bloat.

  • Custom web apps & internal tools (HR, EN, HE)
  • Replace spreadsheets with one system your team uses

zazet-solutions.hr — book intro call

Contact

Pick your path — recruiting, consulting, engineering, or business.