Why is my LLM stream empty? A field guide to broken SSE responses
Reasoning-only replies, missing finish_reason, malformed SSE frames — the four most common reasons a streaming LLM call returns nothing, and how to diagnose each one.
Read Article →Hi, I'm 👋
I build end-to-end software — from TCP-level encrypted messengers to production Django platforms and AI-powered developer tools.
Full-Stack Developer (Remote)
📍 Based in Germany (Remote)
I'm a freelance full-stack developer focused on AI applications, developer tooling and secure systems. I build end-to-end software in Python and C# — from TCP-level encrypted messengers to production Django platforms serving real users, to diagnostics for LLM streaming APIs. I care about shipping reliable, well-engineered products that solve real problems.
I build end-to-end software — from TCP-level encrypted messengers to production Django platforms and AI-powered developer tools.
class FullStackDeveloper:
"""Python · C# · AI · Secure Systems"""
def __init__(self):
self.name = "Mohammad Hasan Kaman"
self.stack = ["Django", "PyQt6", "LLMs"]
self.passion = "shipping real products"
def hire(self):
return True # always 🚀
A battle-tested stack across backend, desktop, AI and infrastructure.
Real products — live in production and on GitHub.
A zero-dependency diagnostic toolkit that explains why an LLM stream returned nothing — reasoning-only responses, missing finish_reason, malformed SSE, truncated tool calls. Born from real-world debugging of LLM …
AI-powered desktop application that translates PDF and EPUB books from English to academic Persian using Google Gemini. Built with PyQt6 with a polished modern interface.
A real-time encrypted messenger built completely from scratch: raw TCP sockets, AES (Fernet) encryption, bcrypt authentication, rate limiting and SQLite storage — with a CustomTkinter GUI.
A multimedia archive website — audio, video, books and articles — running in production at drkaman.ir with Django, nginx and gunicorn on a Linux VPS.
A comprehensive educational platform with an exam-analytics dashboard, blog and student resources — built with Django.
A C# desktop chat assistant running DeepSeek models via OpenModel API, with Google Cloud …
A lightweight multi-tab Windows web browser built on Microsoft Edge WebView2 (Chromium) with C#.
Serverless bot for weekly Quran juz reading groups on Bale Messenger — Cloudflare Workers …
Professional YouTube downloader with a modern Persian RTL interface, live progress and quality selection. …
Technical notes, lessons learned and ideas from my projects.
Reasoning-only replies, missing finish_reason, malformed SSE frames — the four most common reasons a streaming LLM call returns nothing, and how to diagnose each one.
Read Article →From idea to production — I ship complete, secure and scalable software.
Production-grade Django platforms with REST APIs, analytics dashboards and clean architecture.
LLM-powered apps: chat assistants, streaming diagnostics, tool calling and AI integrations.
Cross-platform desktop tools with PyQt6, CustomTkinter and C# WinForms.
Encrypted communication, hard authentication and rate-limited networking from scratch.
Feedback from people I have worked with.
❝Hasan delivered our production website end-to-end — Django, nginx and gunicorn on our own VPS. Fast, reliable and always reachable.
❝agent-stream-doctor solved a streaming bug that had cost me hours. Clean code, zero dependencies, spot-on documentation.
Have a project in mind? Send me a message and I will get back to you within 24 hours.