Skip to content
View azorkai's full-sized avatar
🎯
Focusing
🎯
Focusing

Highlights

  • Pro

Organizations

@CRM-Solid

Block or report azorkai

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
azorkai/README.md

Emirhan Güven

Full Stack Developer · .NET 8 · React / Next.js · PostgreSQL

eguven.dev · LinkedIn · contact@eguven.dev


I build and run production SaaS on my own infrastructure: backend, frontend, database and deployment. Most of my work is a single operator carrying a system end to end: designing the schema, writing the API, shipping the UI, and keeping it alive on a server I administer myself.

Currently focused on multi-tenant SaaS, third-party API orchestration, and data pipelines that have to stay fast under real load.


Selected work

CRMSolid

crmsolid.com

Omnichannel CRM and outreach platform. Sole developer.

Five services behind Traefik on Docker: a .NET 8 API (EF Core + PostgreSQL, Redis, SignalR), a Next.js 15 / React 19 panel with its own design system, a landing site, a health monitor, and a .NET 9 / Photino desktop agent. Deployed from GitHub Actions with tests as a gate.

A few parts I'd point at in an interview:

  • A 1.79M-row business catalogue built with DuckDB over Overture Maps parquet on S3. Querying the remote parquet directly did not stream: 2.5 GB of RAM and zero rows after fifteen minutes. Splitting it into a country download joined province by province brought the same query from 277 seconds to 15 milliseconds. Along the way: Overture ships 109 province rows for Türkiye rather than 81, and real company names contain lone surrogates that abort an Npgsql binary COPY unless they are sanitised first.
  • An MCP server exposing the CRM's tools and prompts to LLM clients, with published .NET and Node SDKs.
  • 516 unit tests over the parts that actually break: rate limiting and flood-wait backoff, outreach safety, email bounce detection, and agent routing.
  • Payments and billing through LemonSqueezy and WeePay; integrations for ikas, WordPress and Zapier.

It is a modular monolith, not microservices. One deployable API with a few separate services around it. For a single maintainer that was the cheaper correct answer, and I can explain where I'd split it if the team grew.

NerioPanel

Multi-tenant white-label platform.

Resellers host branded panels on their own domains from a shared database with row-level security. Custom DNS orchestration over PowerDNS and Nginx handles automatic SSL and routing, and the React frontend injects tenant branding at runtime from the request host.

Kernel patches that bring up speaker output on the Huawei MateBook HVY-WXX9 (AMD Renoir with an ES8316 codec the mainline driver does not wire correctly). DKMS packaged, GPL-2.0.


Stack

Backend C#, .NET 8, ASP.NET Core, Entity Framework Core, LINQ, SignalR, Python
Frontend TypeScript, React 19, Next.js 15, Tailwind CSS, Vite
Data PostgreSQL, MySQL, Redis, DuckDB, SQLite
Infrastructure Docker, Traefik, Nginx, GitHub Actions, Let's Encrypt, Linux
Practice REST APIs, multi-tenancy, OOP, SOLID, NUnit, structured logging

Most of my day-to-day work lives in private product repositories.

Pinned Loading

  1. CRM-Solid/crmsolid-mcp CRM-Solid/crmsolid-mcp Public

    MCP server for social media. Manage Instagram, WhatsApp, X, LinkedIn and 8 more DM inboxes plus scheduled posts from Claude, Cursor or ChatGPT.

    TypeScript 3 1

  2. CRM-Solid/crmsolid-dotnet CRM-Solid/crmsolid-dotnet Public

    Official .NET SDK for the CRM Solid API. Strongly-typed client for contacts, messages, and Telegram automation. Targets netstandard2.0, net8.0, net9.0.

    C#

  3. CRM-Solid/crmsolid-clipper CRM-Solid/crmsolid-clipper Public

    Browser extension (MV3) that saves a LinkedIn, X, Instagram or GitHub profile into your CRM in one click. Notes, tags, pipeline stage and follow-up at capture time. Live on the Chrome Web Store.

    TypeScript

  4. huawei-matebook-m1080-linux-audio huawei-matebook-m1080-linux-audio Public

    Linux kernel patches enabling speaker output on Huawei MateBook (HVY-WXX9 / M1080). AMD Renoir + ES8316 codec.

    Shell 3 3

  5. cachy-doctor cachy-doctor Public

    CachyOS performance health checker: score how well your Arch/CachyOS install uses its optimizations (kernel, x86-64-v3/v4 repos, zram, btrfs, gaming) with one-line fixes. Zero-dependency Bash CLI +…

    Shell

  6. eguven-dev eguven-dev Public

    Personal site and portfolio. React 19 + Vite SPA served by Express from a single container, behind Traefik with automatic TLS.

    TypeScript