Realtime chat backend with WebSocket, 1-to-1 and group conversations, JWT auth, message delivery + read receipts, and a multi-tab connection model. Production-style deployment behind Nginx with TLS.
chat.alialin.me ↗
Hi, I'm Ali Alın.
I build backends.
Backend Developer · Istanbul, Turkey
I build APIs, real-time systems, and small developer tools — mostly in Python and Go. I learn by shipping: every project below is something I built end-to-end to understand how a piece of infrastructure actually works.
About & Stack
I'm a backend-focused developer working primarily on web services and CLI tools. I enjoy thinking about auth, data modeling, real-time flows, and packaging — the stuff that makes a system feel solid.
Most of my projects start as a "how does this actually work?" question. I try to build the answer end-to-end: from the database schema, through the API, to the deployment behind Nginx with TLS.
Languages
- Python
- Go
- SQL
- Bash
Frameworks
- FastAPI
- Celery
- WebSocket
- Telethon
Data
- PostgreSQL
- MongoDB
- Redis
Infra
- Docker
- Nginx
- Linux / Debian
- APT packaging
Featured Projects
A Go CLI that scans a path and ranks the largest directories or files, with JSON output for scripting. Distributed through my own APT repository so it installs with apt install diskrank.
repo.alialin.me ↗Queries a DNS record against many resolvers in parallel and streams each response back over WebSocket as it lands — so you can compare latency, TTL, and propagation state across the world live.
dns-checker.alialin.me ↗Generates a temporary inbox address and scores any email sent to it: SPF / DKIM / DMARC, rDNS, blacklist status, header quality. A Celery worker polls the mailbox via IMAP and runs the analysis in the background.
mail-tester.alialin.me ↗Multi-tenant REST API for sending Telegram messages via Telethon. Each user wires up their own Telegram account through an /init + /verify flow. JWT auth with refresh token rotation (SHA-256 hashed at rest), admin / user roles.
HTTP / HTTPS / ICMP health-checks for a set of servers, with email alerts on failure and a separate alert after 1 hour if the issue persists. Per-server intervals, timeouts, and expected status codes.
Get in touch
Always open to interesting backend work, collaborations, or just a chat about Python, Go, or infrastructure.