I build infrastructure and self-hosted AI — and I make software accessible when you can't change its source.
Istanbul · cankirca.com · LinkedIn · X
I use a screen reader every day. That isn't why I care about accessibility, but it is why I keep finding bugs that automated audits don't: a control that passes every checker can still be impossible to operate.
Most accessibility work stops at public websites. Admin panels, billing systems and internal tools — the software people use for eight hours a day at work — get left out. That's where I spend my open-source time.
| Project | What it does |
|---|---|
| whmcs-a11y-hooks | Drop-in accessibility fixes for WHMCS, shipped as hooks. v1.0 makes every admin toggle keyboard- and screen-reader-operable — including in third-party addons, without touching a single module file. |
| whmcs-a11y-one | A WCAG 2.2 AA client theme for WHMCS. Screen-reader and keyboard friendly, EN/TR. |
Both follow the same rule: fix it from outside the product, so the fix survives vendor updates and needs no cooperation from anyone.
Tech lead at Hepsiburada. My earlier career took shape at companies including Apple, which is where I learned how much of the work is judgement rather than code.
I've spoken at CloudFest and Big Tent on accessibility and infrastructure.
A rack at home is the cheapest way to keep your hands dirty. Mine runs a Raspberry Pi fleet, NAS, UPS-backed everything and a Tailscale mesh — plus an NVIDIA DGX Spark for local AI workloads, because inference you own is inference you can reason about.
| Project | What it does |
|---|---|
| UPSentry | Power-outage watchdog for Raspberry Pi and any NUT-enabled UPS. SMS / Telegram / webhook alerts, outage statistics, and clean shutdowns before the battery dies. Pure bash, zero daemons. Tested by pulling the plug. |
| whm-acme-autopilot | DNS-01 AutoSSL autopilot for WHM/cPanel: server-wide wildcard SSL via acme.sh, with auto-discovery, safe deployment and renewal. |
I'm also deep in home automation — Home Assistant, local-first wherever possible. A smart home that stops working when someone else's cloud goes down isn't smart, and voice control done properly is an accessibility feature before it's a convenience.
Most of my contributions go to other people's projects, usually as the person who actually uses them with a keyboard and a screen reader.
| Project | What I did |
|---|---|
| mailflare — email for teams, 5k+ stars | 24 merged pull requests: keyboard and screen-reader support (focus handling, landmarks, announced errors, WCAG AA contrast), correct Turkish translations, the password-reset email in the user's own language, and a series of bug fixes in the composer, folders and unread state. |
| whmcs-dna — Domainnameapi registrar module for WHMCS | Fixed English typos and grammar in the registrar configuration labels. |
| Home Assistant frontend | Reported a menu that could not be operated with a screen reader or keyboard. |
- Accessibility — WCAG 2.2, ARIA, screen-reader testing, remediating software you can't fork
- Linux & automation — bash, systemd, cron; small sharp tools
- Web — PHP / Laravel, MariaDB, WHMCS module and theme development
- Local AI — self-hosted models and the infrastructure under them
- Home automation — Home Assistant, local-first integrations
Accessibility isn't a feature you add at the end. It decides whether the thing works at all.

