View onurdilmen's full-sized avatar
🎯
Focusing
🎯
Focusing

Highlights

  • Pro

Organizations

@teknowebteknoloji

Block or report onurdilmen

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
onurdilmen/README.md

Onur Dilmen — Senior Full-Stack Developer & Tech Lead

Building B2B marketplaces & real-time systems at production scale
Next.js · NestJS · Laravel · PostgreSQL · Tech Lead @ E-Ship Supply

"I don't ship templates. I ship businesses."

WebsiteLinkedInX / TwitterEmailProfile Views

X FollowersGitHub FollowersStarsSponsor

Tip

🇹🇷 Bu profil iki dilli okunabilir. Türkçe bölümler önce, English follows. · 🇬🇧 This profile is bilingual. Turkish sections first, English follows.


🇹🇷 Hakkımda

10 yıllık deneyime sahip Senior Full-Stack Developer ve Tech Lead. Modern web mimarileri, B2B pazaryerleri ve gerçek zamanlı sistemler üzerine uzmanlaştım. Son bir yılda 3.600+ commit ile aktif olarak ürün geliştiriyorum.

Şu an çalıştığım işler:

  • 🚢 E-Ship Supply — Türkiye'nin ilk denizcilik B2B pazaryerinin teknik liderliği (108+ tedarikçi · 720+ ilan · 4 dil)
  • 🌐 TeknoWeb Platform — WHMCS alternatifi modern hosting otomasyonu (Next.js + NestJS)
  • 🛒 Brahma Market — Plugin mimarili premium e-ticaret altyapısı

🇬🇧 About

Senior Full-Stack Developer & Tech Lead with 10+ years of experience. I specialize in modern web architectures, B2B marketplaces, and real-time systems. Currently shipping production code with 3,600+ commits in the past year.

What I'm building now:

  • 🚢 Technical leadership of E-Ship Supply — Turkey's first maritime B2B marketplace
  • 🌐 TeknoWeb Platform — modern hosting automation
  • 🛒 Brahma Market — plugin-based commerce platform

🎯 Career Highlights


200+

Özel Proje
custom projects shipped
2016 → 2026

100+

Aktif Müşteri
active clients
TeknoWeb dönemi

10K+

Eşzamanlı Bağlantı
concurrent connections
Socket.io + Redis

4 + RTL

Dil & i18n
TR · EN · AR · RU
right-to-left ready

86

Prisma Modeli
data models
E-Ship Supply core

90+

REST Endpoint
API endpoints
NestJS + Swagger

%80 ↓

Deploy Hatası
fewer deploy failures
after CI/CD redesign

%200 ↑

Sipariş Artışı
order growth
PROUD, 6 months

💡 How I Work

Hazır template kullanmıyorum. Müşterilerimi sıfırdan, tam ihtiyaçlarına özel sistemlerle dijitalleştiriyorum — tasarımdan sunucuya, ödeme entegrasyonundan reklama kadar zincirin tamamına hâkimim. Bir mühendis değil; bir teknoloji ortağıyım.

I don't ship boilerplates. I build bespoke systems end-to-end — from design to server, from payment integration to growth ops. Not just an engineer; a technology partner.

  • 🧱 Architecture-first — code is the easy part; the hard part is figuring out which problem deserves to be solved at all
  • 📐 Boring tech, boldly applied — Postgres > NoSQL hype, REST > GraphQL theatrics, monoliths until they hurt
  • 🚀 Ship daily, refactor weeklymain is always deployable, feature flags over long-lived branches
  • 🔒 Security by default — devlet düzeyi tehdit modeli, zero-trust, audit-log everything
  • 🎯 Measure before optimizing — p99 over p50, real user monitoring over local benchmarks

Important

🟢 Currently open for hire — senior full-stack roles, technical leadership, B2B platform consulting, SaaS launch advisory. Get in touch →


💼 Open To / Müsait Olduğum İşler

+ Senior Full-Stack roles (remote · İstanbul hybrid · global timezones)+ Technical Lead / Staff Engineer pozisyonları+ B2B marketplace mimari danışmanlığı+ SaaS launch teknik liderliği+ Maritime / logistics / fintech ürün geliştirme+ Open source maintainer rolleri (Next.js / NestJS / Prisma ecosystem)- Junior pozisyonlar- Pure frontend-only roller- Cryptocurrency / NFT / gambling projeleri

📩 Get in touch:onurdilmen@teknoweb.net · Schedule a call · Sponsor my work


🛠 Tech Stack

FrontendNext.jsReactVue.jsNuxtTypeScriptTailwindshadcn/ui
BackendNestJSLaravelNode.jsHonoPHPFastAPI
DataPostgreSQLMySQLRedisPrismaMongoDB
InfraDockerGitHub ActionsCloudflareHetznerAWSLinuxNginx
RealtimeSocket.ioWebSocketBullMQ
Test & QAPlaywrightJestVitest

🚧 Now — Currently Shipping

What I'm actively building this month (✅ shipped · 🟡 in progress · ⚪ planned):

  • 🚢 E-Ship Supply v3 — MySQL pooling + Prisma 6 migration (production)
  • 🚢 E-Ship Supply v3 — fleet ops module (in progress, May 2026 launch)
  • 🌐 TeknoWeb Platform — WHMCS migration, account provisioning state machine
  • 🛒 Brahma Market — plugin marketplace MVP (commerce plugins as first-class repos)
  • 📚 LocalTR — Sparkle auto-update channel for macOS app
  • 🏗️ This profile README — keep evolving (you're looking at iteration #8)

📋 Full roadmap as a public kanban board:github.com/users/onurdilmen/projects/2


📚 Currently Exploring

Curiosity-driven learning, side-project sandbox:

  • 🦀 Rust + Axum — performance experiments for hot API paths
  • Bun + Hono — Cloudflare Workers deployment patterns, edge-first APIs
  • 🤖 LLM orchestration — server-side AI agents, structured outputs, tool calling at scale
  • 🍎 Swift 6 + SwiftUI — native macOS / iOS utility apps (concurrency model)
  • 🔭 OpenTelemetry — unified tracing across Node + PHP + Postgres in the same trace tree

🏗 Architecture Spotlight — E-Ship Supply

Turkey's first maritime B2B marketplace, designed and shipped from scratch in 2025.

graph LR
U([Users · 4 languages]) -->|HTTPS| CF{{Cloudflare<br/>WAF + CDN}}
CF --> WEB[Next.js 15<br/>App Router · RSC · ISR]
WEB -->|tRPC + REST| API[NestJS 11<br/>90+ endpoints · Swagger]
API --> PG[(PostgreSQL 17<br/>86 Prisma models)]
API --> RD[(Redis 7<br/>cache · pub-sub)]
API --> S3[(R2 / S3<br/>media · invoices)]
WS[Socket.io<br/>10K concurrent] <--> API
WS <--> RD
API --> Q{{BullMQ<br/>jobs · emails · webhooks}}
Q --> WORKER[Worker pool<br/>NestJS microservices]
API --> AUTH{{NextAuth.js<br/>JWT · RBAC · 2FA}}
classDef edge fill:#06b6d4,stroke:#0891b2,color:#fff
classDef web fill:#2563eb,stroke:#1d4ed8,color:#fff
classDef api fill:#e0234e,stroke:#a8174e,color:#fff
classDef data fill:#1e3a8a,stroke:#1e40af,color:#fff
classDef worker fill:#16a34a,stroke:#15803d,color:#fff
class CF edge
class WEB web
class API,AUTH api
class PG,RD,S3 data
class WS,Q,WORKER worker
Loading

Key design decisions:

  • 🏛️ Monorepo with Turborepoapps/web, apps/api, apps/worker, packages/db, packages/ui. Single CI pipeline, type-safe across the wire via Prisma + zod.
  • 🌐 Edge cache aggressive, origin lean — Cloudflare serves 89% of traffic; origin Postgres queries average 12ms.
  • 🔌 WebSocket pool over polling — 10K concurrent connections on a single Hetzner CX22 (€4.59/month) thanks to Redis pub/sub fan-out.
  • 🌍 i18n that respects RTL natively — Arabic flows right-to-left throughout the entire UI, not just text alignment; date/number/currency formatters wired through Intl.
  • 🔁 Background jobs over inline work — every email, every webhook, every invoice generation goes through BullMQ. P95 user-facing latency stays under 200ms.
  • 🛡️ RBAC enforced server-side, not client-side — UI hides features; API rejects them. Two layers.
📐 Click for deployment topology & scaling notes

Deployment topology

  • Edge (Cloudflare): WAF rules, image optimization, KV cache for hot product pages, R2 for static media
  • Web tier (Hetzner Helsinki): Next.js 15 served via Node.js cluster behind LiteSpeed; PM2 process manager; zero-downtime via blue-green deploy
  • API tier (Hetzner Falkenstein): NestJS 11 on Node 20, deployed via GitHub Actions → SSH → systemd; auto-scaling via additional worker boxes triggered by BullMQ queue depth
  • Data tier: Postgres 17 primary + 1 read replica with logical replication; Redis 7 cluster mode (3 nodes) for pub/sub fan-out
  • Object storage: Cloudflare R2 (S3-compatible) for media, invoices, daily DB dumps; lifecycle policies push old artifacts to glacier-equivalent

Scaling story so far

StageConcurrent usersStack response
MVP launch50Single CX22, monolithic NestJS
Month 2800Added Redis, extracted worker queues
Month 42KAdded read replica, edge-cached listing pages
Month 610KSocket.io pub/sub fan-out, Postgres connection pooling
Today15K daily / 10K concurrent peakStable on the same €4.59/mo CX22 + replica

What I'd do differently

  • Start with read-write splitting from day one (retrofitting was painful)
  • Use Cloudflare Tunnel earlier — Hetzner firewall management got messy
  • Adopt feature flags from the start (LaunchDarkly or self-host Unleash)

🚀 Featured Work

E-Ship Supply preview

Turkey's first maritime B2B marketplace. Designed and lead the technical development from scratch — 108+ verified suppliers, 720+ listings, 4 languages, real-time messaging with 10K+ concurrent connections.

Next.js 15 · NestJS · PostgreSQL · Prisma · Socket.io · Redis · Turborepo

Next.js NestJS Starter preview

Production-ready full-stack monorepo template combining Next.js 15 with NestJS 11. JWT, RBAC, Swagger, CI/CD, Docker out of the box.

Turborepo · TypeScript · Prisma · Docker · GitHub Actions

Pomodoro Menubar preview

Tiny native macOS menu bar Pomodoro timer (~176KB binary). Swift + WebKit hybrid, MIT-licensed.

Swift · WebKit · macOS · MIT


📊 GitHub Stats

metrics

activity graph

trophies

snake eating contributions


🏆 GitHub Achievements

YOLOPull SharkQuickdrawPair ExtraordinairePublic Sponsor


🌍 Open Source

Recent contributions to public projects (active goal: regular OSS upstream).

  • 🤝 Looking to upstream: Next.js, NestJS, Prisma, Tailwind ecosystem — feel free to nudge with good first issues
  • 🛡️ Maintaining:onurdilmen/pomodoro-menubar
  • 💖 Sponsoring:@sindresorhus and others — paying the OSS bill forward

🎓 Certifications

Meta Front-EndIBM Full StackIBM DockerfreeCodeCampHackerRank ReactHackerRank Node


🛠 Daily Toolkit

The actual tools I touch every day — not aspirational, the real workflow:


Layer

Tool
EditorCursor + Claude Code (yes, this README was paired with AI)
TerminaliTerm 2 · zsh · Starship prompt
Gitgh CLI · lazygit · Gitea (self-hosted) for private
DBTablePlus · psql · Prisma Studio
APIBruno (offline-first) · curl
DesignFigma · Affinity Designer for static assets
NotesApple Notes (capture) · Obsidian (long-form)
DeployVercel · Hetzner Cloud · Cloudflare · cPanel/WHM
MonitorGrafana + Loki · UptimeRobot · Sentry
Mac appsRaycast · Rectangle · Hyperkey · TablePlus · Pomodoro Menubar (own)

🌐 Languages

TurkishEnglish


✍️ Recent Writing

📝 Gist10 Lessons From 10 Years Of Full-Stack Engineering — the expensive lessons from 200+ shipped projects, in 10 short bullets
🐦 X threadBuild-in-public notes and production war stories (follow @yazilimuzm)
🌐 Long-formteknoweb.net — agency site with case studies (blog coming soon)

📡 Latest From X

X / Twitter — @yazilimuzm

I share build-in-public notes, Turkish dev tips, and the occasional production war story over at @yazilimuzm.


💬 Get in touch

Note

Hiring? Consulting? Open-source collab? Pick whichever channel suits you — I read everything within 24h.

If you're working on a B2B platform, a maritime / logistics product, a SaaS launch, a hosting automation project, or anything that benefits from a senior engineer who has shipped real Turkish products at scale — say hi.

EmailLinkedInX DMSponsor

📍 İstanbul, Turkey · 🕒 UTC+3 · Last updated automatically

footer wave

Pinned Loading

  1. e-shipsupply-showcasee-shipsupply-showcasePublic

    🚢 E-ShipSupply — Türkiye'nin İlk Denizcilik B2B Pazaryeri | 108+ tedarikçi, 720+ ilan, 4 dil | Next.js 15, NestJS, PostgreSQL, Socket.io, Turborepo

  2. nextjs-nestjs-starternextjs-nestjs-starterPublic

    🚀 Production-ready Full-Stack Starter | Next.js 15 + NestJS 11 + TypeScript + Prisma + PostgreSQL + Docker + Turborepo | JWT, RBAC, Swagger, CI/CD

  3. lisansjet-showcaselisansjet-showcasePublic

    🔑 LisansJet — SaaS Dijital Lisans Satış Platformu | Laravel 11, Stripe, PayTR, Iyzico, çoklu para birimi, PCI DSS uyumlu

  4. pomodoro-menubarpomodoro-menubarPublic

    Tiny native macOS menu bar Pomodoro timer (~176 KB binary). Swift + WebKit hybrid.

    Swift

  5. teknoweb-showcaseteknoweb-showcasePublic archive

    🌐 TeknoWeb Teknoloji - Full Stack Development Agency | 200+ Projects Since 2009 | Laravel, React, WordPress, Custom Solutions

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content
View onurdilmen's full-sized avatar
🎯
Focusing
🎯
Focusing

Highlights

  • Pro

Organizations

@teknowebteknoloji

Block or report onurdilmen

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
onurdilmen/README.md

Onur Dilmen — Senior Full-Stack Developer & Tech Lead

Building B2B marketplaces & real-time systems at production scale
Next.js · NestJS · Laravel · PostgreSQL · Tech Lead @ E-Ship Supply

"I don't ship templates. I ship businesses."

WebsiteLinkedInX / TwitterEmailProfile Views

X FollowersGitHub FollowersStarsSponsor

Tip

🇹🇷 Bu profil iki dilli okunabilir. Türkçe bölümler önce, English follows. · 🇬🇧 This profile is bilingual. Turkish sections first, English follows.


🇹🇷 Hakkımda

10 yıllık deneyime sahip Senior Full-Stack Developer ve Tech Lead. Modern web mimarileri, B2B pazaryerleri ve gerçek zamanlı sistemler üzerine uzmanlaştım. Son bir yılda 3.600+ commit ile aktif olarak ürün geliştiriyorum.

Şu an çalıştığım işler:

  • 🚢 E-Ship Supply — Türkiye'nin ilk denizcilik B2B pazaryerinin teknik liderliği (108+ tedarikçi · 720+ ilan · 4 dil)
  • 🌐 TeknoWeb Platform — WHMCS alternatifi modern hosting otomasyonu (Next.js + NestJS)
  • 🛒 Brahma Market — Plugin mimarili premium e-ticaret altyapısı

🇬🇧 About

Senior Full-Stack Developer & Tech Lead with 10+ years of experience. I specialize in modern web architectures, B2B marketplaces, and real-time systems. Currently shipping production code with 3,600+ commits in the past year.

What I'm building now:

  • 🚢 Technical leadership of E-Ship Supply — Turkey's first maritime B2B marketplace
  • 🌐 TeknoWeb Platform — modern hosting automation
  • 🛒 Brahma Market — plugin-based commerce platform

🎯 Career Highlights


200+

Özel Proje
custom projects shipped
2016 → 2026

100+

Aktif Müşteri
active clients
TeknoWeb dönemi

10K+

Eşzamanlı Bağlantı
concurrent connections
Socket.io + Redis

4 + RTL

Dil & i18n
TR · EN · AR · RU
right-to-left ready

86

Prisma Modeli
data models
E-Ship Supply core

90+

REST Endpoint
API endpoints
NestJS + Swagger

%80 ↓

Deploy Hatası
fewer deploy failures
after CI/CD redesign

%200 ↑

Sipariş Artışı
order growth
PROUD, 6 months

💡 How I Work

Hazır template kullanmıyorum. Müşterilerimi sıfırdan, tam ihtiyaçlarına özel sistemlerle dijitalleştiriyorum — tasarımdan sunucuya, ödeme entegrasyonundan reklama kadar zincirin tamamına hâkimim. Bir mühendis değil; bir teknoloji ortağıyım.

I don't ship boilerplates. I build bespoke systems end-to-end — from design to server, from payment integration to growth ops. Not just an engineer; a technology partner.

  • 🧱 Architecture-first — code is the easy part; the hard part is figuring out which problem deserves to be solved at all
  • 📐 Boring tech, boldly applied — Postgres > NoSQL hype, REST > GraphQL theatrics, monoliths until they hurt
  • 🚀 Ship daily, refactor weeklymain is always deployable, feature flags over long-lived branches
  • 🔒 Security by default — devlet düzeyi tehdit modeli, zero-trust, audit-log everything
  • 🎯 Measure before optimizing — p99 over p50, real user monitoring over local benchmarks

Important

🟢 Currently open for hire — senior full-stack roles, technical leadership, B2B platform consulting, SaaS launch advisory. Get in touch →


💼 Open To / Müsait Olduğum İşler

+ Senior Full-Stack roles (remote · İstanbul hybrid · global timezones)+ Technical Lead / Staff Engineer pozisyonları+ B2B marketplace mimari danışmanlığı+ SaaS launch teknik liderliği+ Maritime / logistics / fintech ürün geliştirme+ Open source maintainer rolleri (Next.js / NestJS / Prisma ecosystem)- Junior pozisyonlar- Pure frontend-only roller- Cryptocurrency / NFT / gambling projeleri

📩 Get in touch:onurdilmen@teknoweb.net · Schedule a call · Sponsor my work


🛠 Tech Stack

FrontendNext.jsReactVue.jsNuxtTypeScriptTailwindshadcn/ui
BackendNestJSLaravelNode.jsHonoPHPFastAPI
DataPostgreSQLMySQLRedisPrismaMongoDB
InfraDockerGitHub ActionsCloudflareHetznerAWSLinuxNginx
RealtimeSocket.ioWebSocketBullMQ
Test & QAPlaywrightJestVitest

🚧 Now — Currently Shipping

What I'm actively building this month (✅ shipped · 🟡 in progress · ⚪ planned):

  • 🚢 E-Ship Supply v3 — MySQL pooling + Prisma 6 migration (production)
  • 🚢 E-Ship Supply v3 — fleet ops module (in progress, May 2026 launch)
  • 🌐 TeknoWeb Platform — WHMCS migration, account provisioning state machine
  • 🛒 Brahma Market — plugin marketplace MVP (commerce plugins as first-class repos)
  • 📚 LocalTR — Sparkle auto-update channel for macOS app
  • 🏗️ This profile README — keep evolving (you're looking at iteration #8)

📋 Full roadmap as a public kanban board:github.com/users/onurdilmen/projects/2


📚 Currently Exploring

Curiosity-driven learning, side-project sandbox:

  • 🦀 Rust + Axum — performance experiments for hot API paths
  • Bun + Hono — Cloudflare Workers deployment patterns, edge-first APIs
  • 🤖 LLM orchestration — server-side AI agents, structured outputs, tool calling at scale
  • 🍎 Swift 6 + SwiftUI — native macOS / iOS utility apps (concurrency model)
  • 🔭 OpenTelemetry — unified tracing across Node + PHP + Postgres in the same trace tree

🏗 Architecture Spotlight — E-Ship Supply

Turkey's first maritime B2B marketplace, designed and shipped from scratch in 2025.

graph LR
U([Users · 4 languages]) -->|HTTPS| CF{{Cloudflare<br/>WAF + CDN}}
CF --> WEB[Next.js 15<br/>App Router · RSC · ISR]
WEB -->|tRPC + REST| API[NestJS 11<br/>90+ endpoints · Swagger]
API --> PG[(PostgreSQL 17<br/>86 Prisma models)]
API --> RD[(Redis 7<br/>cache · pub-sub)]
API --> S3[(R2 / S3<br/>media · invoices)]
WS[Socket.io<br/>10K concurrent] <--> API
WS <--> RD
API --> Q{{BullMQ<br/>jobs · emails · webhooks}}
Q --> WORKER[Worker pool<br/>NestJS microservices]
API --> AUTH{{NextAuth.js<br/>JWT · RBAC · 2FA}}
classDef edge fill:#06b6d4,stroke:#0891b2,color:#fff
classDef web fill:#2563eb,stroke:#1d4ed8,color:#fff
classDef api fill:#e0234e,stroke:#a8174e,color:#fff
classDef data fill:#1e3a8a,stroke:#1e40af,color:#fff
classDef worker fill:#16a34a,stroke:#15803d,color:#fff
class CF edge
class WEB web
class API,AUTH api
class PG,RD,S3 data
class WS,Q,WORKER worker
Loading

Key design decisions:

  • 🏛️ Monorepo with Turborepoapps/web, apps/api, apps/worker, packages/db, packages/ui. Single CI pipeline, type-safe across the wire via Prisma + zod.
  • 🌐 Edge cache aggressive, origin lean — Cloudflare serves 89% of traffic; origin Postgres queries average 12ms.
  • 🔌 WebSocket pool over polling — 10K concurrent connections on a single Hetzner CX22 (€4.59/month) thanks to Redis pub/sub fan-out.
  • 🌍 i18n that respects RTL natively — Arabic flows right-to-left throughout the entire UI, not just text alignment; date/number/currency formatters wired through Intl.
  • 🔁 Background jobs over inline work — every email, every webhook, every invoice generation goes through BullMQ. P95 user-facing latency stays under 200ms.
  • 🛡️ RBAC enforced server-side, not client-side — UI hides features; API rejects them. Two layers.
📐 Click for deployment topology & scaling notes

Deployment topology

  • Edge (Cloudflare): WAF rules, image optimization, KV cache for hot product pages, R2 for static media
  • Web tier (Hetzner Helsinki): Next.js 15 served via Node.js cluster behind LiteSpeed; PM2 process manager; zero-downtime via blue-green deploy
  • API tier (Hetzner Falkenstein): NestJS 11 on Node 20, deployed via GitHub Actions → SSH → systemd; auto-scaling via additional worker boxes triggered by BullMQ queue depth
  • Data tier: Postgres 17 primary + 1 read replica with logical replication; Redis 7 cluster mode (3 nodes) for pub/sub fan-out
  • Object storage: Cloudflare R2 (S3-compatible) for media, invoices, daily DB dumps; lifecycle policies push old artifacts to glacier-equivalent

Scaling story so far

StageConcurrent usersStack response
MVP launch50Single CX22, monolithic NestJS
Month 2800Added Redis, extracted worker queues
Month 42KAdded read replica, edge-cached listing pages
Month 610KSocket.io pub/sub fan-out, Postgres connection pooling
Today15K daily / 10K concurrent peakStable on the same €4.59/mo CX22 + replica

What I'd do differently

  • Start with read-write splitting from day one (retrofitting was painful)
  • Use Cloudflare Tunnel earlier — Hetzner firewall management got messy
  • Adopt feature flags from the start (LaunchDarkly or self-host Unleash)

🚀 Featured Work

E-Ship Supply preview

Turkey's first maritime B2B marketplace. Designed and lead the technical development from scratch — 108+ verified suppliers, 720+ listings, 4 languages, real-time messaging with 10K+ concurrent connections.

Next.js 15 · NestJS · PostgreSQL · Prisma · Socket.io · Redis · Turborepo

Next.js NestJS Starter preview

Production-ready full-stack monorepo template combining Next.js 15 with NestJS 11. JWT, RBAC, Swagger, CI/CD, Docker out of the box.

Turborepo · TypeScript · Prisma · Docker · GitHub Actions

Pomodoro Menubar preview

Tiny native macOS menu bar Pomodoro timer (~176KB binary). Swift + WebKit hybrid, MIT-licensed.

Swift · WebKit · macOS · MIT


📊 GitHub Stats

metrics

activity graph

trophies

snake eating contributions


🏆 GitHub Achievements

YOLOPull SharkQuickdrawPair ExtraordinairePublic Sponsor


🌍 Open Source

Recent contributions to public projects (active goal: regular OSS upstream).

  • 🤝 Looking to upstream: Next.js, NestJS, Prisma, Tailwind ecosystem — feel free to nudge with good first issues
  • 🛡️ Maintaining:onurdilmen/pomodoro-menubar
  • 💖 Sponsoring:@sindresorhus and others — paying the OSS bill forward

🎓 Certifications

Meta Front-EndIBM Full StackIBM DockerfreeCodeCampHackerRank ReactHackerRank Node


🛠 Daily Toolkit

The actual tools I touch every day — not aspirational, the real workflow:


Layer

Tool
EditorCursor + Claude Code (yes, this README was paired with AI)
TerminaliTerm 2 · zsh · Starship prompt
Gitgh CLI · lazygit · Gitea (self-hosted) for private
DBTablePlus · psql · Prisma Studio
APIBruno (offline-first) · curl
DesignFigma · Affinity Designer for static assets
NotesApple Notes (capture) · Obsidian (long-form)
DeployVercel · Hetzner Cloud · Cloudflare · cPanel/WHM
MonitorGrafana + Loki · UptimeRobot · Sentry
Mac appsRaycast · Rectangle · Hyperkey · TablePlus · Pomodoro Menubar (own)

🌐 Languages

TurkishEnglish


✍️ Recent Writing

📝 Gist10 Lessons From 10 Years Of Full-Stack Engineering — the expensive lessons from 200+ shipped projects, in 10 short bullets
🐦 X threadBuild-in-public notes and production war stories (follow @yazilimuzm)
🌐 Long-formteknoweb.net — agency site with case studies (blog coming soon)

📡 Latest From X

X / Twitter — @yazilimuzm

I share build-in-public notes, Turkish dev tips, and the occasional production war story over at @yazilimuzm.


💬 Get in touch

Note

Hiring? Consulting? Open-source collab? Pick whichever channel suits you — I read everything within 24h.

If you're working on a B2B platform, a maritime / logistics product, a SaaS launch, a hosting automation project, or anything that benefits from a senior engineer who has shipped real Turkish products at scale — say hi.

EmailLinkedInX DMSponsor

📍 İstanbul, Turkey · 🕒 UTC+3 · Last updated automatically

footer wave

Pinned Loading

  1. e-shipsupply-showcasee-shipsupply-showcasePublic

    🚢 E-ShipSupply — Türkiye'nin İlk Denizcilik B2B Pazaryeri | 108+ tedarikçi, 720+ ilan, 4 dil | Next.js 15, NestJS, PostgreSQL, Socket.io, Turborepo

  2. nextjs-nestjs-starternextjs-nestjs-starterPublic

    🚀 Production-ready Full-Stack Starter | Next.js 15 + NestJS 11 + TypeScript + Prisma + PostgreSQL + Docker + Turborepo | JWT, RBAC, Swagger, CI/CD

  3. lisansjet-showcaselisansjet-showcasePublic

    🔑 LisansJet — SaaS Dijital Lisans Satış Platformu | Laravel 11, Stripe, PayTR, Iyzico, çoklu para birimi, PCI DSS uyumlu

  4. pomodoro-menubarpomodoro-menubarPublic

    Tiny native macOS menu bar Pomodoro timer (~176 KB binary). Swift + WebKit hybrid.

    Swift

  5. teknoweb-showcaseteknoweb-showcasePublic archive

    🌐 TeknoWeb Teknoloji - Full Stack Development Agency | 200+ Projects Since 2009 | Laravel, React, WordPress, Custom Solutions

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
View onurdilmen's full-sized avatar
🎯
Focusing
🎯
Focusing

Highlights

  • Pro

Organizations

@teknowebteknoloji

Block or report onurdilmen

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
onurdilmen/README.md

Onur Dilmen — Senior Full-Stack Developer & Tech Lead

Building B2B marketplaces & real-time systems at production scale
Next.js · NestJS · Laravel · PostgreSQL · Tech Lead @ E-Ship Supply

"I don't ship templates. I ship businesses."

WebsiteLinkedInX / TwitterEmailProfile Views

X FollowersGitHub FollowersStarsSponsor

Tip

🇹🇷 Bu profil iki dilli okunabilir. Türkçe bölümler önce, English follows. · 🇬🇧 This profile is bilingual. Turkish sections first, English follows.


🇹🇷 Hakkımda

10 yıllık deneyime sahip Senior Full-Stack Developer ve Tech Lead. Modern web mimarileri, B2B pazaryerleri ve gerçek zamanlı sistemler üzerine uzmanlaştım. Son bir yılda 3.600+ commit ile aktif olarak ürün geliştiriyorum.

Şu an çalıştığım işler:

  • 🚢 E-Ship Supply — Türkiye'nin ilk denizcilik B2B pazaryerinin teknik liderliği (108+ tedarikçi · 720+ ilan · 4 dil)
  • 🌐 TeknoWeb Platform — WHMCS alternatifi modern hosting otomasyonu (Next.js + NestJS)
  • 🛒 Brahma Market — Plugin mimarili premium e-ticaret altyapısı

🇬🇧 About

Senior Full-Stack Developer & Tech Lead with 10+ years of experience. I specialize in modern web architectures, B2B marketplaces, and real-time systems. Currently shipping production code with 3,600+ commits in the past year.

What I'm building now:

  • 🚢 Technical leadership of E-Ship Supply — Turkey's first maritime B2B marketplace
  • 🌐 TeknoWeb Platform — modern hosting automation
  • 🛒 Brahma Market — plugin-based commerce platform

🎯 Career Highlights


200+

Özel Proje
custom projects shipped
2016 → 2026

100+

Aktif Müşteri
active clients
TeknoWeb dönemi

10K+

Eşzamanlı Bağlantı
concurrent connections
Socket.io + Redis

4 + RTL

Dil & i18n
TR · EN · AR · RU
right-to-left ready

86

Prisma Modeli
data models
E-Ship Supply core

90+

REST Endpoint
API endpoints
NestJS + Swagger

%80 ↓

Deploy Hatası
fewer deploy failures
after CI/CD redesign

%200 ↑

Sipariş Artışı
order growth
PROUD, 6 months

💡 How I Work

Hazır template kullanmıyorum. Müşterilerimi sıfırdan, tam ihtiyaçlarına özel sistemlerle dijitalleştiriyorum — tasarımdan sunucuya, ödeme entegrasyonundan reklama kadar zincirin tamamına hâkimim. Bir mühendis değil; bir teknoloji ortağıyım.

I don't ship boilerplates. I build bespoke systems end-to-end — from design to server, from payment integration to growth ops. Not just an engineer; a technology partner.

  • 🧱 Architecture-first — code is the easy part; the hard part is figuring out which problem deserves to be solved at all
  • 📐 Boring tech, boldly applied — Postgres > NoSQL hype, REST > GraphQL theatrics, monoliths until they hurt
  • 🚀 Ship daily, refactor weeklymain is always deployable, feature flags over long-lived branches
  • 🔒 Security by default — devlet düzeyi tehdit modeli, zero-trust, audit-log everything
  • 🎯 Measure before optimizing — p99 over p50, real user monitoring over local benchmarks

Important

🟢 Currently open for hire — senior full-stack roles, technical leadership, B2B platform consulting, SaaS launch advisory. Get in touch →


💼 Open To / Müsait Olduğum İşler

+ Senior Full-Stack roles (remote · İstanbul hybrid · global timezones)+ Technical Lead / Staff Engineer pozisyonları+ B2B marketplace mimari danışmanlığı+ SaaS launch teknik liderliği+ Maritime / logistics / fintech ürün geliştirme+ Open source maintainer rolleri (Next.js / NestJS / Prisma ecosystem)- Junior pozisyonlar- Pure frontend-only roller- Cryptocurrency / NFT / gambling projeleri

📩 Get in touch:onurdilmen@teknoweb.net · Schedule a call · Sponsor my work


🛠 Tech Stack

FrontendNext.jsReactVue.jsNuxtTypeScriptTailwindshadcn/ui
BackendNestJSLaravelNode.jsHonoPHPFastAPI
DataPostgreSQLMySQLRedisPrismaMongoDB
InfraDockerGitHub ActionsCloudflareHetznerAWSLinuxNginx
RealtimeSocket.ioWebSocketBullMQ
Test & QAPlaywrightJestVitest

🚧 Now — Currently Shipping

What I'm actively building this month (✅ shipped · 🟡 in progress · ⚪ planned):

  • 🚢 E-Ship Supply v3 — MySQL pooling + Prisma 6 migration (production)
  • 🚢 E-Ship Supply v3 — fleet ops module (in progress, May 2026 launch)
  • 🌐 TeknoWeb Platform — WHMCS migration, account provisioning state machine
  • 🛒 Brahma Market — plugin marketplace MVP (commerce plugins as first-class repos)
  • 📚 LocalTR — Sparkle auto-update channel for macOS app
  • 🏗️ This profile README — keep evolving (you're looking at iteration #8)

📋 Full roadmap as a public kanban board:github.com/users/onurdilmen/projects/2


📚 Currently Exploring

Curiosity-driven learning, side-project sandbox:

  • 🦀 Rust + Axum — performance experiments for hot API paths
  • Bun + Hono — Cloudflare Workers deployment patterns, edge-first APIs
  • 🤖 LLM orchestration — server-side AI agents, structured outputs, tool calling at scale
  • 🍎 Swift 6 + SwiftUI — native macOS / iOS utility apps (concurrency model)
  • 🔭 OpenTelemetry — unified tracing across Node + PHP + Postgres in the same trace tree

🏗 Architecture Spotlight — E-Ship Supply

Turkey's first maritime B2B marketplace, designed and shipped from scratch in 2025.

graph LR
U([Users · 4 languages]) -->|HTTPS| CF{{Cloudflare<br/>WAF + CDN}}
CF --> WEB[Next.js 15<br/>App Router · RSC · ISR]
WEB -->|tRPC + REST| API[NestJS 11<br/>90+ endpoints · Swagger]
API --> PG[(PostgreSQL 17<br/>86 Prisma models)]
API --> RD[(Redis 7<br/>cache · pub-sub)]
API --> S3[(R2 / S3<br/>media · invoices)]
WS[Socket.io<br/>10K concurrent] <--> API
WS <--> RD
API --> Q{{BullMQ<br/>jobs · emails · webhooks}}
Q --> WORKER[Worker pool<br/>NestJS microservices]
API --> AUTH{{NextAuth.js<br/>JWT · RBAC · 2FA}}
classDef edge fill:#06b6d4,stroke:#0891b2,color:#fff
classDef web fill:#2563eb,stroke:#1d4ed8,color:#fff
classDef api fill:#e0234e,stroke:#a8174e,color:#fff
classDef data fill:#1e3a8a,stroke:#1e40af,color:#fff
classDef worker fill:#16a34a,stroke:#15803d,color:#fff
class CF edge
class WEB web
class API,AUTH api
class PG,RD,S3 data
class WS,Q,WORKER worker
Loading

Key design decisions:

  • 🏛️ Monorepo with Turborepoapps/web, apps/api, apps/worker, packages/db, packages/ui. Single CI pipeline, type-safe across the wire via Prisma + zod.
  • 🌐 Edge cache aggressive, origin lean — Cloudflare serves 89% of traffic; origin Postgres queries average 12ms.
  • 🔌 WebSocket pool over polling — 10K concurrent connections on a single Hetzner CX22 (€4.59/month) thanks to Redis pub/sub fan-out.
  • 🌍 i18n that respects RTL natively — Arabic flows right-to-left throughout the entire UI, not just text alignment; date/number/currency formatters wired through Intl.
  • 🔁 Background jobs over inline work — every email, every webhook, every invoice generation goes through BullMQ. P95 user-facing latency stays under 200ms.
  • 🛡️ RBAC enforced server-side, not client-side — UI hides features; API rejects them. Two layers.
📐 Click for deployment topology & scaling notes

Deployment topology

  • Edge (Cloudflare): WAF rules, image optimization, KV cache for hot product pages, R2 for static media
  • Web tier (Hetzner Helsinki): Next.js 15 served via Node.js cluster behind LiteSpeed; PM2 process manager; zero-downtime via blue-green deploy
  • API tier (Hetzner Falkenstein): NestJS 11 on Node 20, deployed via GitHub Actions → SSH → systemd; auto-scaling via additional worker boxes triggered by BullMQ queue depth
  • Data tier: Postgres 17 primary + 1 read replica with logical replication; Redis 7 cluster mode (3 nodes) for pub/sub fan-out
  • Object storage: Cloudflare R2 (S3-compatible) for media, invoices, daily DB dumps; lifecycle policies push old artifacts to glacier-equivalent

Scaling story so far

StageConcurrent usersStack response
MVP launch50Single CX22, monolithic NestJS
Month 2800Added Redis, extracted worker queues
Month 42KAdded read replica, edge-cached listing pages
Month 610KSocket.io pub/sub fan-out, Postgres connection pooling
Today15K daily / 10K concurrent peakStable on the same €4.59/mo CX22 + replica

What I'd do differently

  • Start with read-write splitting from day one (retrofitting was painful)
  • Use Cloudflare Tunnel earlier — Hetzner firewall management got messy
  • Adopt feature flags from the start (LaunchDarkly or self-host Unleash)

🚀 Featured Work

E-Ship Supply preview

Turkey's first maritime B2B marketplace. Designed and lead the technical development from scratch — 108+ verified suppliers, 720+ listings, 4 languages, real-time messaging with 10K+ concurrent connections.

Next.js 15 · NestJS · PostgreSQL · Prisma · Socket.io · Redis · Turborepo

Next.js NestJS Starter preview

Production-ready full-stack monorepo template combining Next.js 15 with NestJS 11. JWT, RBAC, Swagger, CI/CD, Docker out of the box.

Turborepo · TypeScript · Prisma · Docker · GitHub Actions

Pomodoro Menubar preview

Tiny native macOS menu bar Pomodoro timer (~176KB binary). Swift + WebKit hybrid, MIT-licensed.

Swift · WebKit · macOS · MIT


📊 GitHub Stats

metrics

activity graph

trophies

snake eating contributions


🏆 GitHub Achievements

YOLOPull SharkQuickdrawPair ExtraordinairePublic Sponsor


🌍 Open Source

Recent contributions to public projects (active goal: regular OSS upstream).

  • 🤝 Looking to upstream: Next.js, NestJS, Prisma, Tailwind ecosystem — feel free to nudge with good first issues
  • 🛡️ Maintaining:onurdilmen/pomodoro-menubar
  • 💖 Sponsoring:@sindresorhus and others — paying the OSS bill forward

🎓 Certifications

Meta Front-EndIBM Full StackIBM DockerfreeCodeCampHackerRank ReactHackerRank Node


🛠 Daily Toolkit

The actual tools I touch every day — not aspirational, the real workflow:


Layer

Tool
EditorCursor + Claude Code (yes, this README was paired with AI)
TerminaliTerm 2 · zsh · Starship prompt
Gitgh CLI · lazygit · Gitea (self-hosted) for private
DBTablePlus · psql · Prisma Studio
APIBruno (offline-first) · curl
DesignFigma · Affinity Designer for static assets
NotesApple Notes (capture) · Obsidian (long-form)
DeployVercel · Hetzner Cloud · Cloudflare · cPanel/WHM
MonitorGrafana + Loki · UptimeRobot · Sentry
Mac appsRaycast · Rectangle · Hyperkey · TablePlus · Pomodoro Menubar (own)

🌐 Languages

TurkishEnglish


✍️ Recent Writing

📝 Gist10 Lessons From 10 Years Of Full-Stack Engineering — the expensive lessons from 200+ shipped projects, in 10 short bullets
🐦 X threadBuild-in-public notes and production war stories (follow @yazilimuzm)
🌐 Long-formteknoweb.net — agency site with case studies (blog coming soon)

📡 Latest From X

X / Twitter — @yazilimuzm

I share build-in-public notes, Turkish dev tips, and the occasional production war story over at @yazilimuzm.


💬 Get in touch

Note

Hiring? Consulting? Open-source collab? Pick whichever channel suits you — I read everything within 24h.

If you're working on a B2B platform, a maritime / logistics product, a SaaS launch, a hosting automation project, or anything that benefits from a senior engineer who has shipped real Turkish products at scale — say hi.

EmailLinkedInX DMSponsor

📍 İstanbul, Turkey · 🕒 UTC+3 · Last updated automatically

footer wave

Pinned Loading

  1. e-shipsupply-showcasee-shipsupply-showcasePublic

    🚢 E-ShipSupply — Türkiye'nin İlk Denizcilik B2B Pazaryeri | 108+ tedarikçi, 720+ ilan, 4 dil | Next.js 15, NestJS, PostgreSQL, Socket.io, Turborepo

  2. nextjs-nestjs-starternextjs-nestjs-starterPublic

    🚀 Production-ready Full-Stack Starter | Next.js 15 + NestJS 11 + TypeScript + Prisma + PostgreSQL + Docker + Turborepo | JWT, RBAC, Swagger, CI/CD

  3. lisansjet-showcaselisansjet-showcasePublic

    🔑 LisansJet — SaaS Dijital Lisans Satış Platformu | Laravel 11, Stripe, PayTR, Iyzico, çoklu para birimi, PCI DSS uyumlu

  4. pomodoro-menubarpomodoro-menubarPublic

    Tiny native macOS menu bar Pomodoro timer (~176 KB binary). Swift + WebKit hybrid.

    Swift

  5. teknoweb-showcaseteknoweb-showcasePublic archive

    🌐 TeknoWeb Teknoloji - Full Stack Development Agency | 200+ Projects Since 2009 | Laravel, React, WordPress, Custom Solutions

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
View onurdilmen's full-sized avatar
🎯
Focusing
🎯
Focusing

Highlights

  • Pro

Organizations

@teknowebteknoloji

Block or report onurdilmen

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
onurdilmen/README.md

Onur Dilmen — Senior Full-Stack Developer & Tech Lead

Building B2B marketplaces & real-time systems at production scale
Next.js · NestJS · Laravel · PostgreSQL · Tech Lead @ E-Ship Supply

"I don't ship templates. I ship businesses."

WebsiteLinkedInX / TwitterEmailProfile Views

X FollowersGitHub FollowersStarsSponsor

Tip

🇹🇷 Bu profil iki dilli okunabilir. Türkçe bölümler önce, English follows. · 🇬🇧 This profile is bilingual. Turkish sections first, English follows.


🇹🇷 Hakkımda

10 yıllık deneyime sahip Senior Full-Stack Developer ve Tech Lead. Modern web mimarileri, B2B pazaryerleri ve gerçek zamanlı sistemler üzerine uzmanlaştım. Son bir yılda 3.600+ commit ile aktif olarak ürün geliştiriyorum.

Şu an çalıştığım işler:

  • 🚢 E-Ship Supply — Türkiye'nin ilk denizcilik B2B pazaryerinin teknik liderliği (108+ tedarikçi · 720+ ilan · 4 dil)
  • 🌐 TeknoWeb Platform — WHMCS alternatifi modern hosting otomasyonu (Next.js + NestJS)
  • 🛒 Brahma Market — Plugin mimarili premium e-ticaret altyapısı

🇬🇧 About

Senior Full-Stack Developer & Tech Lead with 10+ years of experience. I specialize in modern web architectures, B2B marketplaces, and real-time systems. Currently shipping production code with 3,600+ commits in the past year.

What I'm building now:

  • 🚢 Technical leadership of E-Ship Supply — Turkey's first maritime B2B marketplace
  • 🌐 TeknoWeb Platform — modern hosting automation
  • 🛒 Brahma Market — plugin-based commerce platform

🎯 Career Highlights


200+

Özel Proje
custom projects shipped
2016 → 2026

100+

Aktif Müşteri
active clients
TeknoWeb dönemi

10K+

Eşzamanlı Bağlantı
concurrent connections
Socket.io + Redis

4 + RTL

Dil & i18n
TR · EN · AR · RU
right-to-left ready

86

Prisma Modeli
data models
E-Ship Supply core

90+

REST Endpoint
API endpoints
NestJS + Swagger

%80 ↓

Deploy Hatası
fewer deploy failures
after CI/CD redesign

%200 ↑

Sipariş Artışı
order growth
PROUD, 6 months

💡 How I Work

Hazır template kullanmıyorum. Müşterilerimi sıfırdan, tam ihtiyaçlarına özel sistemlerle dijitalleştiriyorum — tasarımdan sunucuya, ödeme entegrasyonundan reklama kadar zincirin tamamına hâkimim. Bir mühendis değil; bir teknoloji ortağıyım.

I don't ship boilerplates. I build bespoke systems end-to-end — from design to server, from payment integration to growth ops. Not just an engineer; a technology partner.

  • 🧱 Architecture-first — code is the easy part; the hard part is figuring out which problem deserves to be solved at all
  • 📐 Boring tech, boldly applied — Postgres > NoSQL hype, REST > GraphQL theatrics, monoliths until they hurt
  • 🚀 Ship daily, refactor weeklymain is always deployable, feature flags over long-lived branches
  • 🔒 Security by default — devlet düzeyi tehdit modeli, zero-trust, audit-log everything
  • 🎯 Measure before optimizing — p99 over p50, real user monitoring over local benchmarks

Important

🟢 Currently open for hire — senior full-stack roles, technical leadership, B2B platform consulting, SaaS launch advisory. Get in touch →


💼 Open To / Müsait Olduğum İşler

+ Senior Full-Stack roles (remote · İstanbul hybrid · global timezones)+ Technical Lead / Staff Engineer pozisyonları+ B2B marketplace mimari danışmanlığı+ SaaS launch teknik liderliği+ Maritime / logistics / fintech ürün geliştirme+ Open source maintainer rolleri (Next.js / NestJS / Prisma ecosystem)- Junior pozisyonlar- Pure frontend-only roller- Cryptocurrency / NFT / gambling projeleri

📩 Get in touch:onurdilmen@teknoweb.net · Schedule a call · Sponsor my work


🛠 Tech Stack

FrontendNext.jsReactVue.jsNuxtTypeScriptTailwindshadcn/ui
BackendNestJSLaravelNode.jsHonoPHPFastAPI
DataPostgreSQLMySQLRedisPrismaMongoDB
InfraDockerGitHub ActionsCloudflareHetznerAWSLinuxNginx
RealtimeSocket.ioWebSocketBullMQ
Test & QAPlaywrightJestVitest

🚧 Now — Currently Shipping

What I'm actively building this month (✅ shipped · 🟡 in progress · ⚪ planned):

  • 🚢 E-Ship Supply v3 — MySQL pooling + Prisma 6 migration (production)
  • 🚢 E-Ship Supply v3 — fleet ops module (in progress, May 2026 launch)
  • 🌐 TeknoWeb Platform — WHMCS migration, account provisioning state machine
  • 🛒 Brahma Market — plugin marketplace MVP (commerce plugins as first-class repos)
  • 📚 LocalTR — Sparkle auto-update channel for macOS app
  • 🏗️ This profile README — keep evolving (you're looking at iteration #8)

📋 Full roadmap as a public kanban board:github.com/users/onurdilmen/projects/2


📚 Currently Exploring

Curiosity-driven learning, side-project sandbox:

  • 🦀 Rust + Axum — performance experiments for hot API paths
  • Bun + Hono — Cloudflare Workers deployment patterns, edge-first APIs
  • 🤖 LLM orchestration — server-side AI agents, structured outputs, tool calling at scale
  • 🍎 Swift 6 + SwiftUI — native macOS / iOS utility apps (concurrency model)
  • 🔭 OpenTelemetry — unified tracing across Node + PHP + Postgres in the same trace tree

🏗 Architecture Spotlight — E-Ship Supply

Turkey's first maritime B2B marketplace, designed and shipped from scratch in 2025.

graph LR
U([Users · 4 languages]) -->|HTTPS| CF{{Cloudflare<br/>WAF + CDN}}
CF --> WEB[Next.js 15<br/>App Router · RSC · ISR]
WEB -->|tRPC + REST| API[NestJS 11<br/>90+ endpoints · Swagger]
API --> PG[(PostgreSQL 17<br/>86 Prisma models)]
API --> RD[(Redis 7<br/>cache · pub-sub)]
API --> S3[(R2 / S3<br/>media · invoices)]
WS[Socket.io<br/>10K concurrent] <--> API
WS <--> RD
API --> Q{{BullMQ<br/>jobs · emails · webhooks}}
Q --> WORKER[Worker pool<br/>NestJS microservices]
API --> AUTH{{NextAuth.js<br/>JWT · RBAC · 2FA}}
classDef edge fill:#06b6d4,stroke:#0891b2,color:#fff
classDef web fill:#2563eb,stroke:#1d4ed8,color:#fff
classDef api fill:#e0234e,stroke:#a8174e,color:#fff
classDef data fill:#1e3a8a,stroke:#1e40af,color:#fff
classDef worker fill:#16a34a,stroke:#15803d,color:#fff
class CF edge
class WEB web
class API,AUTH api
class PG,RD,S3 data
class WS,Q,WORKER worker
Loading

Key design decisions:

  • 🏛️ Monorepo with Turborepoapps/web, apps/api, apps/worker, packages/db, packages/ui. Single CI pipeline, type-safe across the wire via Prisma + zod.
  • 🌐 Edge cache aggressive, origin lean — Cloudflare serves 89% of traffic; origin Postgres queries average 12ms.
  • 🔌 WebSocket pool over polling — 10K concurrent connections on a single Hetzner CX22 (€4.59/month) thanks to Redis pub/sub fan-out.
  • 🌍 i18n that respects RTL natively — Arabic flows right-to-left throughout the entire UI, not just text alignment; date/number/currency formatters wired through Intl.
  • 🔁 Background jobs over inline work — every email, every webhook, every invoice generation goes through BullMQ. P95 user-facing latency stays under 200ms.
  • 🛡️ RBAC enforced server-side, not client-side — UI hides features; API rejects them. Two layers.
📐 Click for deployment topology & scaling notes

Deployment topology

  • Edge (Cloudflare): WAF rules, image optimization, KV cache for hot product pages, R2 for static media
  • Web tier (Hetzner Helsinki): Next.js 15 served via Node.js cluster behind LiteSpeed; PM2 process manager; zero-downtime via blue-green deploy
  • API tier (Hetzner Falkenstein): NestJS 11 on Node 20, deployed via GitHub Actions → SSH → systemd; auto-scaling via additional worker boxes triggered by BullMQ queue depth
  • Data tier: Postgres 17 primary + 1 read replica with logical replication; Redis 7 cluster mode (3 nodes) for pub/sub fan-out
  • Object storage: Cloudflare R2 (S3-compatible) for media, invoices, daily DB dumps; lifecycle policies push old artifacts to glacier-equivalent

Scaling story so far

StageConcurrent usersStack response
MVP launch50Single CX22, monolithic NestJS
Month 2800Added Redis, extracted worker queues
Month 42KAdded read replica, edge-cached listing pages
Month 610KSocket.io pub/sub fan-out, Postgres connection pooling
Today15K daily / 10K concurrent peakStable on the same €4.59/mo CX22 + replica

What I'd do differently

  • Start with read-write splitting from day one (retrofitting was painful)
  • Use Cloudflare Tunnel earlier — Hetzner firewall management got messy
  • Adopt feature flags from the start (LaunchDarkly or self-host Unleash)

🚀 Featured Work

E-Ship Supply preview

Turkey's first maritime B2B marketplace. Designed and lead the technical development from scratch — 108+ verified suppliers, 720+ listings, 4 languages, real-time messaging with 10K+ concurrent connections.

Next.js 15 · NestJS · PostgreSQL · Prisma · Socket.io · Redis · Turborepo

Next.js NestJS Starter preview

Production-ready full-stack monorepo template combining Next.js 15 with NestJS 11. JWT, RBAC, Swagger, CI/CD, Docker out of the box.

Turborepo · TypeScript · Prisma · Docker · GitHub Actions

Pomodoro Menubar preview

Tiny native macOS menu bar Pomodoro timer (~176KB binary). Swift + WebKit hybrid, MIT-licensed.

Swift · WebKit · macOS · MIT


📊 GitHub Stats

metrics

activity graph

trophies

snake eating contributions


🏆 GitHub Achievements

YOLOPull SharkQuickdrawPair ExtraordinairePublic Sponsor


🌍 Open Source

Recent contributions to public projects (active goal: regular OSS upstream).

  • 🤝 Looking to upstream: Next.js, NestJS, Prisma, Tailwind ecosystem — feel free to nudge with good first issues
  • 🛡️ Maintaining:onurdilmen/pomodoro-menubar
  • 💖 Sponsoring:@sindresorhus and others — paying the OSS bill forward

🎓 Certifications

Meta Front-EndIBM Full StackIBM DockerfreeCodeCampHackerRank ReactHackerRank Node


🛠 Daily Toolkit

The actual tools I touch every day — not aspirational, the real workflow:


Layer

Tool
EditorCursor + Claude Code (yes, this README was paired with AI)
TerminaliTerm 2 · zsh · Starship prompt
Gitgh CLI · lazygit · Gitea (self-hosted) for private
DBTablePlus · psql · Prisma Studio
APIBruno (offline-first) · curl
DesignFigma · Affinity Designer for static assets
NotesApple Notes (capture) · Obsidian (long-form)
DeployVercel · Hetzner Cloud · Cloudflare · cPanel/WHM
MonitorGrafana + Loki · UptimeRobot · Sentry
Mac appsRaycast · Rectangle · Hyperkey · TablePlus · Pomodoro Menubar (own)

🌐 Languages

TurkishEnglish


✍️ Recent Writing

📝 Gist10 Lessons From 10 Years Of Full-Stack Engineering — the expensive lessons from 200+ shipped projects, in 10 short bullets
🐦 X threadBuild-in-public notes and production war stories (follow @yazilimuzm)
🌐 Long-formteknoweb.net — agency site with case studies (blog coming soon)

📡 Latest From X

X / Twitter — @yazilimuzm

I share build-in-public notes, Turkish dev tips, and the occasional production war story over at @yazilimuzm.


💬 Get in touch

Note

Hiring? Consulting? Open-source collab? Pick whichever channel suits you — I read everything within 24h.

If you're working on a B2B platform, a maritime / logistics product, a SaaS launch, a hosting automation project, or anything that benefits from a senior engineer who has shipped real Turkish products at scale — say hi.

EmailLinkedInX DMSponsor

📍 İstanbul, Turkey · 🕒 UTC+3 · Last updated automatically

footer wave

Pinned Loading

  1. e-shipsupply-showcasee-shipsupply-showcasePublic

    🚢 E-ShipSupply — Türkiye'nin İlk Denizcilik B2B Pazaryeri | 108+ tedarikçi, 720+ ilan, 4 dil | Next.js 15, NestJS, PostgreSQL, Socket.io, Turborepo

  2. nextjs-nestjs-starternextjs-nestjs-starterPublic

    🚀 Production-ready Full-Stack Starter | Next.js 15 + NestJS 11 + TypeScript + Prisma + PostgreSQL + Docker + Turborepo | JWT, RBAC, Swagger, CI/CD

  3. lisansjet-showcaselisansjet-showcasePublic

    🔑 LisansJet — SaaS Dijital Lisans Satış Platformu | Laravel 11, Stripe, PayTR, Iyzico, çoklu para birimi, PCI DSS uyumlu

  4. pomodoro-menubarpomodoro-menubarPublic

    Tiny native macOS menu bar Pomodoro timer (~176 KB binary). Swift + WebKit hybrid.

    Swift

  5. teknoweb-showcaseteknoweb-showcasePublic archive

    🌐 TeknoWeb Teknoloji - Full Stack Development Agency | 200+ Projects Since 2009 | Laravel, React, WordPress, Custom Solutions

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content
View onurdilmen's full-sized avatar
🎯
Focusing
🎯
Focusing

Highlights

  • Pro

Organizations

@teknowebteknoloji

Block or report onurdilmen

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
onurdilmen/README.md

Onur Dilmen — Senior Full-Stack Developer & Tech Lead

Building B2B marketplaces & real-time systems at production scale
Next.js · NestJS · Laravel · PostgreSQL · Tech Lead @ E-Ship Supply

"I don't ship templates. I ship businesses."

WebsiteLinkedInX / TwitterEmailProfile Views

X FollowersGitHub FollowersStarsSponsor

Tip

🇹🇷 Bu profil iki dilli okunabilir. Türkçe bölümler önce, English follows. · 🇬🇧 This profile is bilingual. Turkish sections first, English follows.


🇹🇷 Hakkımda

10 yıllık deneyime sahip Senior Full-Stack Developer ve Tech Lead. Modern web mimarileri, B2B pazaryerleri ve gerçek zamanlı sistemler üzerine uzmanlaştım. Son bir yılda 3.600+ commit ile aktif olarak ürün geliştiriyorum.

Şu an çalıştığım işler:

  • 🚢 E-Ship Supply — Türkiye'nin ilk denizcilik B2B pazaryerinin teknik liderliği (108+ tedarikçi · 720+ ilan · 4 dil)
  • 🌐 TeknoWeb Platform — WHMCS alternatifi modern hosting otomasyonu (Next.js + NestJS)
  • 🛒 Brahma Market — Plugin mimarili premium e-ticaret altyapısı

🇬🇧 About

Senior Full-Stack Developer & Tech Lead with 10+ years of experience. I specialize in modern web architectures, B2B marketplaces, and real-time systems. Currently shipping production code with 3,600+ commits in the past year.

What I'm building now:

  • 🚢 Technical leadership of E-Ship Supply — Turkey's first maritime B2B marketplace
  • 🌐 TeknoWeb Platform — modern hosting automation
  • 🛒 Brahma Market — plugin-based commerce platform

🎯 Career Highlights


200+

Özel Proje
custom projects shipped
2016 → 2026

100+

Aktif Müşteri
active clients
TeknoWeb dönemi

10K+

Eşzamanlı Bağlantı
concurrent connections
Socket.io + Redis

4 + RTL

Dil & i18n
TR · EN · AR · RU
right-to-left ready

86

Prisma Modeli
data models
E-Ship Supply core

90+

REST Endpoint
API endpoints
NestJS + Swagger

%80 ↓

Deploy Hatası
fewer deploy failures
after CI/CD redesign

%200 ↑

Sipariş Artışı
order growth
PROUD, 6 months

💡 How I Work

Hazır template kullanmıyorum. Müşterilerimi sıfırdan, tam ihtiyaçlarına özel sistemlerle dijitalleştiriyorum — tasarımdan sunucuya, ödeme entegrasyonundan reklama kadar zincirin tamamına hâkimim. Bir mühendis değil; bir teknoloji ortağıyım.

I don't ship boilerplates. I build bespoke systems end-to-end — from design to server, from payment integration to growth ops. Not just an engineer; a technology partner.

  • 🧱 Architecture-first — code is the easy part; the hard part is figuring out which problem deserves to be solved at all
  • 📐 Boring tech, boldly applied — Postgres > NoSQL hype, REST > GraphQL theatrics, monoliths until they hurt
  • 🚀 Ship daily, refactor weeklymain is always deployable, feature flags over long-lived branches
  • 🔒 Security by default — devlet düzeyi tehdit modeli, zero-trust, audit-log everything
  • 🎯 Measure before optimizing — p99 over p50, real user monitoring over local benchmarks

Important

🟢 Currently open for hire — senior full-stack roles, technical leadership, B2B platform consulting, SaaS launch advisory. Get in touch →


💼 Open To / Müsait Olduğum İşler

+ Senior Full-Stack roles (remote · İstanbul hybrid · global timezones)+ Technical Lead / Staff Engineer pozisyonları+ B2B marketplace mimari danışmanlığı+ SaaS launch teknik liderliği+ Maritime / logistics / fintech ürün geliştirme+ Open source maintainer rolleri (Next.js / NestJS / Prisma ecosystem)- Junior pozisyonlar- Pure frontend-only roller- Cryptocurrency / NFT / gambling projeleri

📩 Get in touch:onurdilmen@teknoweb.net · Schedule a call · Sponsor my work


🛠 Tech Stack

FrontendNext.jsReactVue.jsNuxtTypeScriptTailwindshadcn/ui
BackendNestJSLaravelNode.jsHonoPHPFastAPI
DataPostgreSQLMySQLRedisPrismaMongoDB
InfraDockerGitHub ActionsCloudflareHetznerAWSLinuxNginx
RealtimeSocket.ioWebSocketBullMQ
Test & QAPlaywrightJestVitest

🚧 Now — Currently Shipping

What I'm actively building this month (✅ shipped · 🟡 in progress · ⚪ planned):

  • 🚢 E-Ship Supply v3 — MySQL pooling + Prisma 6 migration (production)
  • 🚢 E-Ship Supply v3 — fleet ops module (in progress, May 2026 launch)
  • 🌐 TeknoWeb Platform — WHMCS migration, account provisioning state machine
  • 🛒 Brahma Market — plugin marketplace MVP (commerce plugins as first-class repos)
  • 📚 LocalTR — Sparkle auto-update channel for macOS app
  • 🏗️ This profile README — keep evolving (you're looking at iteration #8)

📋 Full roadmap as a public kanban board:github.com/users/onurdilmen/projects/2


📚 Currently Exploring

Curiosity-driven learning, side-project sandbox:

  • 🦀 Rust + Axum — performance experiments for hot API paths
  • Bun + Hono — Cloudflare Workers deployment patterns, edge-first APIs
  • 🤖 LLM orchestration — server-side AI agents, structured outputs, tool calling at scale
  • 🍎 Swift 6 + SwiftUI — native macOS / iOS utility apps (concurrency model)
  • 🔭 OpenTelemetry — unified tracing across Node + PHP + Postgres in the same trace tree

🏗 Architecture Spotlight — E-Ship Supply

Turkey's first maritime B2B marketplace, designed and shipped from scratch in 2025.

graph LR
U([Users · 4 languages]) -->|HTTPS| CF{{Cloudflare<br/>WAF + CDN}}
CF --> WEB[Next.js 15<br/>App Router · RSC · ISR]
WEB -->|tRPC + REST| API[NestJS 11<br/>90+ endpoints · Swagger]
API --> PG[(PostgreSQL 17<br/>86 Prisma models)]
API --> RD[(Redis 7<br/>cache · pub-sub)]
API --> S3[(R2 / S3<br/>media · invoices)]
WS[Socket.io<br/>10K concurrent] <--> API
WS <--> RD
API --> Q{{BullMQ<br/>jobs · emails · webhooks}}
Q --> WORKER[Worker pool<br/>NestJS microservices]
API --> AUTH{{NextAuth.js<br/>JWT · RBAC · 2FA}}
classDef edge fill:#06b6d4,stroke:#0891b2,color:#fff
classDef web fill:#2563eb,stroke:#1d4ed8,color:#fff
classDef api fill:#e0234e,stroke:#a8174e,color:#fff
classDef data fill:#1e3a8a,stroke:#1e40af,color:#fff
classDef worker fill:#16a34a,stroke:#15803d,color:#fff
class CF edge
class WEB web
class API,AUTH api
class PG,RD,S3 data
class WS,Q,WORKER worker
Loading

Key design decisions:

  • 🏛️ Monorepo with Turborepoapps/web, apps/api, apps/worker, packages/db, packages/ui. Single CI pipeline, type-safe across the wire via Prisma + zod.
  • 🌐 Edge cache aggressive, origin lean — Cloudflare serves 89% of traffic; origin Postgres queries average 12ms.
  • 🔌 WebSocket pool over polling — 10K concurrent connections on a single Hetzner CX22 (€4.59/month) thanks to Redis pub/sub fan-out.
  • 🌍 i18n that respects RTL natively — Arabic flows right-to-left throughout the entire UI, not just text alignment; date/number/currency formatters wired through Intl.
  • 🔁 Background jobs over inline work — every email, every webhook, every invoice generation goes through BullMQ. P95 user-facing latency stays under 200ms.
  • 🛡️ RBAC enforced server-side, not client-side — UI hides features; API rejects them. Two layers.
📐 Click for deployment topology & scaling notes

Deployment topology

  • Edge (Cloudflare): WAF rules, image optimization, KV cache for hot product pages, R2 for static media
  • Web tier (Hetzner Helsinki): Next.js 15 served via Node.js cluster behind LiteSpeed; PM2 process manager; zero-downtime via blue-green deploy
  • API tier (Hetzner Falkenstein): NestJS 11 on Node 20, deployed via GitHub Actions → SSH → systemd; auto-scaling via additional worker boxes triggered by BullMQ queue depth
  • Data tier: Postgres 17 primary + 1 read replica with logical replication; Redis 7 cluster mode (3 nodes) for pub/sub fan-out
  • Object storage: Cloudflare R2 (S3-compatible) for media, invoices, daily DB dumps; lifecycle policies push old artifacts to glacier-equivalent

Scaling story so far

StageConcurrent usersStack response
MVP launch50Single CX22, monolithic NestJS
Month 2800Added Redis, extracted worker queues
Month 42KAdded read replica, edge-cached listing pages
Month 610KSocket.io pub/sub fan-out, Postgres connection pooling
Today15K daily / 10K concurrent peakStable on the same €4.59/mo CX22 + replica

What I'd do differently

  • Start with read-write splitting from day one (retrofitting was painful)
  • Use Cloudflare Tunnel earlier — Hetzner firewall management got messy
  • Adopt feature flags from the start (LaunchDarkly or self-host Unleash)

🚀 Featured Work

E-Ship Supply preview

Turkey's first maritime B2B marketplace. Designed and lead the technical development from scratch — 108+ verified suppliers, 720+ listings, 4 languages, real-time messaging with 10K+ concurrent connections.

Next.js 15 · NestJS · PostgreSQL · Prisma · Socket.io · Redis · Turborepo

Next.js NestJS Starter preview

Production-ready full-stack monorepo template combining Next.js 15 with NestJS 11. JWT, RBAC, Swagger, CI/CD, Docker out of the box.

Turborepo · TypeScript · Prisma · Docker · GitHub Actions

Pomodoro Menubar preview

Tiny native macOS menu bar Pomodoro timer (~176KB binary). Swift + WebKit hybrid, MIT-licensed.

Swift · WebKit · macOS · MIT


📊 GitHub Stats

metrics

activity graph

trophies

snake eating contributions


🏆 GitHub Achievements

YOLOPull SharkQuickdrawPair ExtraordinairePublic Sponsor


🌍 Open Source

Recent contributions to public projects (active goal: regular OSS upstream).

  • 🤝 Looking to upstream: Next.js, NestJS, Prisma, Tailwind ecosystem — feel free to nudge with good first issues
  • 🛡️ Maintaining:onurdilmen/pomodoro-menubar
  • 💖 Sponsoring:@sindresorhus and others — paying the OSS bill forward

🎓 Certifications

Meta Front-EndIBM Full StackIBM DockerfreeCodeCampHackerRank ReactHackerRank Node


🛠 Daily Toolkit

The actual tools I touch every day — not aspirational, the real workflow:


Layer

Tool
EditorCursor + Claude Code (yes, this README was paired with AI)
TerminaliTerm 2 · zsh · Starship prompt
Gitgh CLI · lazygit · Gitea (self-hosted) for private
DBTablePlus · psql · Prisma Studio
APIBruno (offline-first) · curl
DesignFigma · Affinity Designer for static assets
NotesApple Notes (capture) · Obsidian (long-form)
DeployVercel · Hetzner Cloud · Cloudflare · cPanel/WHM
MonitorGrafana + Loki · UptimeRobot · Sentry
Mac appsRaycast · Rectangle · Hyperkey · TablePlus · Pomodoro Menubar (own)

🌐 Languages

TurkishEnglish


✍️ Recent Writing

📝 Gist10 Lessons From 10 Years Of Full-Stack Engineering — the expensive lessons from 200+ shipped projects, in 10 short bullets
🐦 X threadBuild-in-public notes and production war stories (follow @yazilimuzm)
🌐 Long-formteknoweb.net — agency site with case studies (blog coming soon)

📡 Latest From X

X / Twitter — @yazilimuzm

I share build-in-public notes, Turkish dev tips, and the occasional production war story over at @yazilimuzm.


💬 Get in touch

Note

Hiring? Consulting? Open-source collab? Pick whichever channel suits you — I read everything within 24h.

If you're working on a B2B platform, a maritime / logistics product, a SaaS launch, a hosting automation project, or anything that benefits from a senior engineer who has shipped real Turkish products at scale — say hi.

EmailLinkedInX DMSponsor

📍 İstanbul, Turkey · 🕒 UTC+3 · Last updated automatically

footer wave

Pinned Loading

  1. e-shipsupply-showcasee-shipsupply-showcasePublic

    🚢 E-ShipSupply — Türkiye'nin İlk Denizcilik B2B Pazaryeri | 108+ tedarikçi, 720+ ilan, 4 dil | Next.js 15, NestJS, PostgreSQL, Socket.io, Turborepo

  2. nextjs-nestjs-starternextjs-nestjs-starterPublic

    🚀 Production-ready Full-Stack Starter | Next.js 15 + NestJS 11 + TypeScript + Prisma + PostgreSQL + Docker + Turborepo | JWT, RBAC, Swagger, CI/CD

  3. lisansjet-showcaselisansjet-showcasePublic

    🔑 LisansJet — SaaS Dijital Lisans Satış Platformu | Laravel 11, Stripe, PayTR, Iyzico, çoklu para birimi, PCI DSS uyumlu

  4. pomodoro-menubarpomodoro-menubarPublic

    Tiny native macOS menu bar Pomodoro timer (~176 KB binary). Swift + WebKit hybrid.

    Swift

  5. teknoweb-showcaseteknoweb-showcasePublic archive

    🌐 TeknoWeb Teknoloji - Full Stack Development Agency | 200+ Projects Since 2009 | Laravel, React, WordPress, Custom Solutions

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
View onurdilmen's full-sized avatar
🎯
Focusing
🎯
Focusing

Highlights

  • Pro

Organizations

@teknowebteknoloji

Block or report onurdilmen

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
onurdilmen/README.md

Onur Dilmen — Senior Full-Stack Developer & Tech Lead

Building B2B marketplaces & real-time systems at production scale
Next.js · NestJS · Laravel · PostgreSQL · Tech Lead @ E-Ship Supply

"I don't ship templates. I ship businesses."

WebsiteLinkedInX / TwitterEmailProfile Views

X FollowersGitHub FollowersStarsSponsor

Tip

🇹🇷 Bu profil iki dilli okunabilir. Türkçe bölümler önce, English follows. · 🇬🇧 This profile is bilingual. Turkish sections first, English follows.


🇹🇷 Hakkımda

10 yıllık deneyime sahip Senior Full-Stack Developer ve Tech Lead. Modern web mimarileri, B2B pazaryerleri ve gerçek zamanlı sistemler üzerine uzmanlaştım. Son bir yılda 3.600+ commit ile aktif olarak ürün geliştiriyorum.

Şu an çalıştığım işler:

  • 🚢 E-Ship Supply — Türkiye'nin ilk denizcilik B2B pazaryerinin teknik liderliği (108+ tedarikçi · 720+ ilan · 4 dil)
  • 🌐 TeknoWeb Platform — WHMCS alternatifi modern hosting otomasyonu (Next.js + NestJS)
  • 🛒 Brahma Market — Plugin mimarili premium e-ticaret altyapısı

🇬🇧 About

Senior Full-Stack Developer & Tech Lead with 10+ years of experience. I specialize in modern web architectures, B2B marketplaces, and real-time systems. Currently shipping production code with 3,600+ commits in the past year.

What I'm building now:

  • 🚢 Technical leadership of E-Ship Supply — Turkey's first maritime B2B marketplace
  • 🌐 TeknoWeb Platform — modern hosting automation
  • 🛒 Brahma Market — plugin-based commerce platform

🎯 Career Highlights


200+

Özel Proje
custom projects shipped
2016 → 2026

100+

Aktif Müşteri
active clients
TeknoWeb dönemi

10K+

Eşzamanlı Bağlantı
concurrent connections
Socket.io + Redis

4 + RTL

Dil & i18n
TR · EN · AR · RU
right-to-left ready

86

Prisma Modeli
data models
E-Ship Supply core

90+

REST Endpoint
API endpoints
NestJS + Swagger

%80 ↓

Deploy Hatası
fewer deploy failures
after CI/CD redesign

%200 ↑

Sipariş Artışı
order growth
PROUD, 6 months

💡 How I Work

Hazır template kullanmıyorum. Müşterilerimi sıfırdan, tam ihtiyaçlarına özel sistemlerle dijitalleştiriyorum — tasarımdan sunucuya, ödeme entegrasyonundan reklama kadar zincirin tamamına hâkimim. Bir mühendis değil; bir teknoloji ortağıyım.

I don't ship boilerplates. I build bespoke systems end-to-end — from design to server, from payment integration to growth ops. Not just an engineer; a technology partner.

  • 🧱 Architecture-first — code is the easy part; the hard part is figuring out which problem deserves to be solved at all
  • 📐 Boring tech, boldly applied — Postgres > NoSQL hype, REST > GraphQL theatrics, monoliths until they hurt
  • 🚀 Ship daily, refactor weeklymain is always deployable, feature flags over long-lived branches
  • 🔒 Security by default — devlet düzeyi tehdit modeli, zero-trust, audit-log everything
  • 🎯 Measure before optimizing — p99 over p50, real user monitoring over local benchmarks

Important

🟢 Currently open for hire — senior full-stack roles, technical leadership, B2B platform consulting, SaaS launch advisory. Get in touch →


💼 Open To / Müsait Olduğum İşler

+ Senior Full-Stack roles (remote · İstanbul hybrid · global timezones)+ Technical Lead / Staff Engineer pozisyonları+ B2B marketplace mimari danışmanlığı+ SaaS launch teknik liderliği+ Maritime / logistics / fintech ürün geliştirme+ Open source maintainer rolleri (Next.js / NestJS / Prisma ecosystem)- Junior pozisyonlar- Pure frontend-only roller- Cryptocurrency / NFT / gambling projeleri

📩 Get in touch:onurdilmen@teknoweb.net · Schedule a call · Sponsor my work


🛠 Tech Stack

FrontendNext.jsReactVue.jsNuxtTypeScriptTailwindshadcn/ui
BackendNestJSLaravelNode.jsHonoPHPFastAPI
DataPostgreSQLMySQLRedisPrismaMongoDB
InfraDockerGitHub ActionsCloudflareHetznerAWSLinuxNginx
RealtimeSocket.ioWebSocketBullMQ
Test & QAPlaywrightJestVitest

🚧 Now — Currently Shipping

What I'm actively building this month (✅ shipped · 🟡 in progress · ⚪ planned):

  • 🚢 E-Ship Supply v3 — MySQL pooling + Prisma 6 migration (production)
  • 🚢 E-Ship Supply v3 — fleet ops module (in progress, May 2026 launch)
  • 🌐 TeknoWeb Platform — WHMCS migration, account provisioning state machine
  • 🛒 Brahma Market — plugin marketplace MVP (commerce plugins as first-class repos)
  • 📚 LocalTR — Sparkle auto-update channel for macOS app
  • 🏗️ This profile README — keep evolving (you're looking at iteration #8)

📋 Full roadmap as a public kanban board:github.com/users/onurdilmen/projects/2


📚 Currently Exploring

Curiosity-driven learning, side-project sandbox:

  • 🦀 Rust + Axum — performance experiments for hot API paths
  • Bun + Hono — Cloudflare Workers deployment patterns, edge-first APIs
  • 🤖 LLM orchestration — server-side AI agents, structured outputs, tool calling at scale
  • 🍎 Swift 6 + SwiftUI — native macOS / iOS utility apps (concurrency model)
  • 🔭 OpenTelemetry — unified tracing across Node + PHP + Postgres in the same trace tree

🏗 Architecture Spotlight — E-Ship Supply

Turkey's first maritime B2B marketplace, designed and shipped from scratch in 2025.

graph LR
U([Users · 4 languages]) -->|HTTPS| CF{{Cloudflare<br/>WAF + CDN}}
CF --> WEB[Next.js 15<br/>App Router · RSC · ISR]
WEB -->|tRPC + REST| API[NestJS 11<br/>90+ endpoints · Swagger]
API --> PG[(PostgreSQL 17<br/>86 Prisma models)]
API --> RD[(Redis 7<br/>cache · pub-sub)]
API --> S3[(R2 / S3<br/>media · invoices)]
WS[Socket.io<br/>10K concurrent] <--> API
WS <--> RD
API --> Q{{BullMQ<br/>jobs · emails · webhooks}}
Q --> WORKER[Worker pool<br/>NestJS microservices]
API --> AUTH{{NextAuth.js<br/>JWT · RBAC · 2FA}}
classDef edge fill:#06b6d4,stroke:#0891b2,color:#fff
classDef web fill:#2563eb,stroke:#1d4ed8,color:#fff
classDef api fill:#e0234e,stroke:#a8174e,color:#fff
classDef data fill:#1e3a8a,stroke:#1e40af,color:#fff
classDef worker fill:#16a34a,stroke:#15803d,color:#fff
class CF edge
class WEB web
class API,AUTH api
class PG,RD,S3 data
class WS,Q,WORKER worker
Loading

Key design decisions:

  • 🏛️ Monorepo with Turborepoapps/web, apps/api, apps/worker, packages/db, packages/ui. Single CI pipeline, type-safe across the wire via Prisma + zod.
  • 🌐 Edge cache aggressive, origin lean — Cloudflare serves 89% of traffic; origin Postgres queries average 12ms.
  • 🔌 WebSocket pool over polling — 10K concurrent connections on a single Hetzner CX22 (€4.59/month) thanks to Redis pub/sub fan-out.
  • 🌍 i18n that respects RTL natively — Arabic flows right-to-left throughout the entire UI, not just text alignment; date/number/currency formatters wired through Intl.
  • 🔁 Background jobs over inline work — every email, every webhook, every invoice generation goes through BullMQ. P95 user-facing latency stays under 200ms.
  • 🛡️ RBAC enforced server-side, not client-side — UI hides features; API rejects them. Two layers.
📐 Click for deployment topology & scaling notes

Deployment topology

  • Edge (Cloudflare): WAF rules, image optimization, KV cache for hot product pages, R2 for static media
  • Web tier (Hetzner Helsinki): Next.js 15 served via Node.js cluster behind LiteSpeed; PM2 process manager; zero-downtime via blue-green deploy
  • API tier (Hetzner Falkenstein): NestJS 11 on Node 20, deployed via GitHub Actions → SSH → systemd; auto-scaling via additional worker boxes triggered by BullMQ queue depth
  • Data tier: Postgres 17 primary + 1 read replica with logical replication; Redis 7 cluster mode (3 nodes) for pub/sub fan-out
  • Object storage: Cloudflare R2 (S3-compatible) for media, invoices, daily DB dumps; lifecycle policies push old artifacts to glacier-equivalent

Scaling story so far

StageConcurrent usersStack response
MVP launch50Single CX22, monolithic NestJS
Month 2800Added Redis, extracted worker queues
Month 42KAdded read replica, edge-cached listing pages
Month 610KSocket.io pub/sub fan-out, Postgres connection pooling
Today15K daily / 10K concurrent peakStable on the same €4.59/mo CX22 + replica

What I'd do differently

  • Start with read-write splitting from day one (retrofitting was painful)
  • Use Cloudflare Tunnel earlier — Hetzner firewall management got messy
  • Adopt feature flags from the start (LaunchDarkly or self-host Unleash)

🚀 Featured Work

E-Ship Supply preview

Turkey's first maritime B2B marketplace. Designed and lead the technical development from scratch — 108+ verified suppliers, 720+ listings, 4 languages, real-time messaging with 10K+ concurrent connections.

Next.js 15 · NestJS · PostgreSQL · Prisma · Socket.io · Redis · Turborepo

Next.js NestJS Starter preview

Production-ready full-stack monorepo template combining Next.js 15 with NestJS 11. JWT, RBAC, Swagger, CI/CD, Docker out of the box.

Turborepo · TypeScript · Prisma · Docker · GitHub Actions

Pomodoro Menubar preview

Tiny native macOS menu bar Pomodoro timer (~176KB binary). Swift + WebKit hybrid, MIT-licensed.

Swift · WebKit · macOS · MIT


📊 GitHub Stats

metrics

activity graph

trophies

snake eating contributions


🏆 GitHub Achievements

YOLOPull SharkQuickdrawPair ExtraordinairePublic Sponsor


🌍 Open Source

Recent contributions to public projects (active goal: regular OSS upstream).

  • 🤝 Looking to upstream: Next.js, NestJS, Prisma, Tailwind ecosystem — feel free to nudge with good first issues
  • 🛡️ Maintaining:onurdilmen/pomodoro-menubar
  • 💖 Sponsoring:@sindresorhus and others — paying the OSS bill forward

🎓 Certifications

Meta Front-EndIBM Full StackIBM DockerfreeCodeCampHackerRank ReactHackerRank Node


🛠 Daily Toolkit

The actual tools I touch every day — not aspirational, the real workflow:


Layer

Tool
EditorCursor + Claude Code (yes, this README was paired with AI)
TerminaliTerm 2 · zsh · Starship prompt
Gitgh CLI · lazygit · Gitea (self-hosted) for private
DBTablePlus · psql · Prisma Studio
APIBruno (offline-first) · curl
DesignFigma · Affinity Designer for static assets
NotesApple Notes (capture) · Obsidian (long-form)
DeployVercel · Hetzner Cloud · Cloudflare · cPanel/WHM
MonitorGrafana + Loki · UptimeRobot · Sentry
Mac appsRaycast · Rectangle · Hyperkey · TablePlus · Pomodoro Menubar (own)

🌐 Languages

TurkishEnglish


✍️ Recent Writing

📝 Gist10 Lessons From 10 Years Of Full-Stack Engineering — the expensive lessons from 200+ shipped projects, in 10 short bullets
🐦 X threadBuild-in-public notes and production war stories (follow @yazilimuzm)
🌐 Long-formteknoweb.net — agency site with case studies (blog coming soon)

📡 Latest From X

X / Twitter — @yazilimuzm

I share build-in-public notes, Turkish dev tips, and the occasional production war story over at @yazilimuzm.


💬 Get in touch

Note

Hiring? Consulting? Open-source collab? Pick whichever channel suits you — I read everything within 24h.

If you're working on a B2B platform, a maritime / logistics product, a SaaS launch, a hosting automation project, or anything that benefits from a senior engineer who has shipped real Turkish products at scale — say hi.

EmailLinkedInX DMSponsor

📍 İstanbul, Turkey · 🕒 UTC+3 · Last updated automatically

footer wave

Pinned Loading

  1. e-shipsupply-showcasee-shipsupply-showcasePublic

    🚢 E-ShipSupply — Türkiye'nin İlk Denizcilik B2B Pazaryeri | 108+ tedarikçi, 720+ ilan, 4 dil | Next.js 15, NestJS, PostgreSQL, Socket.io, Turborepo

  2. nextjs-nestjs-starternextjs-nestjs-starterPublic

    🚀 Production-ready Full-Stack Starter | Next.js 15 + NestJS 11 + TypeScript + Prisma + PostgreSQL + Docker + Turborepo | JWT, RBAC, Swagger, CI/CD

  3. lisansjet-showcaselisansjet-showcasePublic

    🔑 LisansJet — SaaS Dijital Lisans Satış Platformu | Laravel 11, Stripe, PayTR, Iyzico, çoklu para birimi, PCI DSS uyumlu

  4. pomodoro-menubarpomodoro-menubarPublic

    Tiny native macOS menu bar Pomodoro timer (~176 KB binary). Swift + WebKit hybrid.

    Swift

  5. teknoweb-showcaseteknoweb-showcasePublic archive

    🌐 TeknoWeb Teknoloji - Full Stack Development Agency | 200+ Projects Since 2009 | Laravel, React, WordPress, Custom Solutions

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
View onurdilmen's full-sized avatar
🎯
Focusing
🎯
Focusing

Highlights

  • Pro

Organizations

@teknowebteknoloji

Block or report onurdilmen

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
onurdilmen/README.md

Onur Dilmen — Senior Full-Stack Developer & Tech Lead

Building B2B marketplaces & real-time systems at production scale
Next.js · NestJS · Laravel · PostgreSQL · Tech Lead @ E-Ship Supply

"I don't ship templates. I ship businesses."

WebsiteLinkedInX / TwitterEmailProfile Views

X FollowersGitHub FollowersStarsSponsor

Tip

🇹🇷 Bu profil iki dilli okunabilir. Türkçe bölümler önce, English follows. · 🇬🇧 This profile is bilingual. Turkish sections first, English follows.


🇹🇷 Hakkımda

10 yıllık deneyime sahip Senior Full-Stack Developer ve Tech Lead. Modern web mimarileri, B2B pazaryerleri ve gerçek zamanlı sistemler üzerine uzmanlaştım. Son bir yılda 3.600+ commit ile aktif olarak ürün geliştiriyorum.

Şu an çalıştığım işler:

  • 🚢 E-Ship Supply — Türkiye'nin ilk denizcilik B2B pazaryerinin teknik liderliği (108+ tedarikçi · 720+ ilan · 4 dil)
  • 🌐 TeknoWeb Platform — WHMCS alternatifi modern hosting otomasyonu (Next.js + NestJS)
  • 🛒 Brahma Market — Plugin mimarili premium e-ticaret altyapısı

🇬🇧 About

Senior Full-Stack Developer & Tech Lead with 10+ years of experience. I specialize in modern web architectures, B2B marketplaces, and real-time systems. Currently shipping production code with 3,600+ commits in the past year.

What I'm building now:

  • 🚢 Technical leadership of E-Ship Supply — Turkey's first maritime B2B marketplace
  • 🌐 TeknoWeb Platform — modern hosting automation
  • 🛒 Brahma Market — plugin-based commerce platform

🎯 Career Highlights


200+

Özel Proje
custom projects shipped
2016 → 2026

100+

Aktif Müşteri
active clients
TeknoWeb dönemi

10K+

Eşzamanlı Bağlantı
concurrent connections
Socket.io + Redis

4 + RTL

Dil & i18n
TR · EN · AR · RU
right-to-left ready

86

Prisma Modeli
data models
E-Ship Supply core

90+

REST Endpoint
API endpoints
NestJS + Swagger

%80 ↓

Deploy Hatası
fewer deploy failures
after CI/CD redesign

%200 ↑

Sipariş Artışı
order growth
PROUD, 6 months

💡 How I Work

Hazır template kullanmıyorum. Müşterilerimi sıfırdan, tam ihtiyaçlarına özel sistemlerle dijitalleştiriyorum — tasarımdan sunucuya, ödeme entegrasyonundan reklama kadar zincirin tamamına hâkimim. Bir mühendis değil; bir teknoloji ortağıyım.

I don't ship boilerplates. I build bespoke systems end-to-end — from design to server, from payment integration to growth ops. Not just an engineer; a technology partner.

  • 🧱 Architecture-first — code is the easy part; the hard part is figuring out which problem deserves to be solved at all
  • 📐 Boring tech, boldly applied — Postgres > NoSQL hype, REST > GraphQL theatrics, monoliths until they hurt
  • 🚀 Ship daily, refactor weeklymain is always deployable, feature flags over long-lived branches
  • 🔒 Security by default — devlet düzeyi tehdit modeli, zero-trust, audit-log everything
  • 🎯 Measure before optimizing — p99 over p50, real user monitoring over local benchmarks

Important

🟢 Currently open for hire — senior full-stack roles, technical leadership, B2B platform consulting, SaaS launch advisory. Get in touch →


💼 Open To / Müsait Olduğum İşler

+ Senior Full-Stack roles (remote · İstanbul hybrid · global timezones)+ Technical Lead / Staff Engineer pozisyonları+ B2B marketplace mimari danışmanlığı+ SaaS launch teknik liderliği+ Maritime / logistics / fintech ürün geliştirme+ Open source maintainer rolleri (Next.js / NestJS / Prisma ecosystem)- Junior pozisyonlar- Pure frontend-only roller- Cryptocurrency / NFT / gambling projeleri

📩 Get in touch:onurdilmen@teknoweb.net · Schedule a call · Sponsor my work


🛠 Tech Stack

FrontendNext.jsReactVue.jsNuxtTypeScriptTailwindshadcn/ui
BackendNestJSLaravelNode.jsHonoPHPFastAPI
DataPostgreSQLMySQLRedisPrismaMongoDB
InfraDockerGitHub ActionsCloudflareHetznerAWSLinuxNginx
RealtimeSocket.ioWebSocketBullMQ
Test & QAPlaywrightJestVitest

🚧 Now — Currently Shipping

What I'm actively building this month (✅ shipped · 🟡 in progress · ⚪ planned):

  • 🚢 E-Ship Supply v3 — MySQL pooling + Prisma 6 migration (production)
  • 🚢 E-Ship Supply v3 — fleet ops module (in progress, May 2026 launch)
  • 🌐 TeknoWeb Platform — WHMCS migration, account provisioning state machine
  • 🛒 Brahma Market — plugin marketplace MVP (commerce plugins as first-class repos)
  • 📚 LocalTR — Sparkle auto-update channel for macOS app
  • 🏗️ This profile README — keep evolving (you're looking at iteration #8)

📋 Full roadmap as a public kanban board:github.com/users/onurdilmen/projects/2


📚 Currently Exploring

Curiosity-driven learning, side-project sandbox:

  • 🦀 Rust + Axum — performance experiments for hot API paths
  • Bun + Hono — Cloudflare Workers deployment patterns, edge-first APIs
  • 🤖 LLM orchestration — server-side AI agents, structured outputs, tool calling at scale
  • 🍎 Swift 6 + SwiftUI — native macOS / iOS utility apps (concurrency model)
  • 🔭 OpenTelemetry — unified tracing across Node + PHP + Postgres in the same trace tree

🏗 Architecture Spotlight — E-Ship Supply

Turkey's first maritime B2B marketplace, designed and shipped from scratch in 2025.

graph LR
U([Users · 4 languages]) -->|HTTPS| CF{{Cloudflare<br/>WAF + CDN}}
CF --> WEB[Next.js 15<br/>App Router · RSC · ISR]
WEB -->|tRPC + REST| API[NestJS 11<br/>90+ endpoints · Swagger]
API --> PG[(PostgreSQL 17<br/>86 Prisma models)]
API --> RD[(Redis 7<br/>cache · pub-sub)]
API --> S3[(R2 / S3<br/>media · invoices)]
WS[Socket.io<br/>10K concurrent] <--> API
WS <--> RD
API --> Q{{BullMQ<br/>jobs · emails · webhooks}}
Q --> WORKER[Worker pool<br/>NestJS microservices]
API --> AUTH{{NextAuth.js<br/>JWT · RBAC · 2FA}}
classDef edge fill:#06b6d4,stroke:#0891b2,color:#fff
classDef web fill:#2563eb,stroke:#1d4ed8,color:#fff
classDef api fill:#e0234e,stroke:#a8174e,color:#fff
classDef data fill:#1e3a8a,stroke:#1e40af,color:#fff
classDef worker fill:#16a34a,stroke:#15803d,color:#fff
class CF edge
class WEB web
class API,AUTH api
class PG,RD,S3 data
class WS,Q,WORKER worker
Loading

Key design decisions:

  • 🏛️ Monorepo with Turborepoapps/web, apps/api, apps/worker, packages/db, packages/ui. Single CI pipeline, type-safe across the wire via Prisma + zod.
  • 🌐 Edge cache aggressive, origin lean — Cloudflare serves 89% of traffic; origin Postgres queries average 12ms.
  • 🔌 WebSocket pool over polling — 10K concurrent connections on a single Hetzner CX22 (€4.59/month) thanks to Redis pub/sub fan-out.
  • 🌍 i18n that respects RTL natively — Arabic flows right-to-left throughout the entire UI, not just text alignment; date/number/currency formatters wired through Intl.
  • 🔁 Background jobs over inline work — every email, every webhook, every invoice generation goes through BullMQ. P95 user-facing latency stays under 200ms.
  • 🛡️ RBAC enforced server-side, not client-side — UI hides features; API rejects them. Two layers.
📐 Click for deployment topology & scaling notes

Deployment topology

  • Edge (Cloudflare): WAF rules, image optimization, KV cache for hot product pages, R2 for static media
  • Web tier (Hetzner Helsinki): Next.js 15 served via Node.js cluster behind LiteSpeed; PM2 process manager; zero-downtime via blue-green deploy
  • API tier (Hetzner Falkenstein): NestJS 11 on Node 20, deployed via GitHub Actions → SSH → systemd; auto-scaling via additional worker boxes triggered by BullMQ queue depth
  • Data tier: Postgres 17 primary + 1 read replica with logical replication; Redis 7 cluster mode (3 nodes) for pub/sub fan-out
  • Object storage: Cloudflare R2 (S3-compatible) for media, invoices, daily DB dumps; lifecycle policies push old artifacts to glacier-equivalent

Scaling story so far

StageConcurrent usersStack response
MVP launch50Single CX22, monolithic NestJS
Month 2800Added Redis, extracted worker queues
Month 42KAdded read replica, edge-cached listing pages
Month 610KSocket.io pub/sub fan-out, Postgres connection pooling
Today15K daily / 10K concurrent peakStable on the same €4.59/mo CX22 + replica

What I'd do differently

  • Start with read-write splitting from day one (retrofitting was painful)
  • Use Cloudflare Tunnel earlier — Hetzner firewall management got messy
  • Adopt feature flags from the start (LaunchDarkly or self-host Unleash)

🚀 Featured Work

E-Ship Supply preview

Turkey's first maritime B2B marketplace. Designed and lead the technical development from scratch — 108+ verified suppliers, 720+ listings, 4 languages, real-time messaging with 10K+ concurrent connections.

Next.js 15 · NestJS · PostgreSQL · Prisma · Socket.io · Redis · Turborepo

Next.js NestJS Starter preview

Production-ready full-stack monorepo template combining Next.js 15 with NestJS 11. JWT, RBAC, Swagger, CI/CD, Docker out of the box.

Turborepo · TypeScript · Prisma · Docker · GitHub Actions

Pomodoro Menubar preview

Tiny native macOS menu bar Pomodoro timer (~176KB binary). Swift + WebKit hybrid, MIT-licensed.

Swift · WebKit · macOS · MIT


📊 GitHub Stats

metrics

activity graph

trophies

snake eating contributions


🏆 GitHub Achievements

YOLOPull SharkQuickdrawPair ExtraordinairePublic Sponsor


🌍 Open Source

Recent contributions to public projects (active goal: regular OSS upstream).

  • 🤝 Looking to upstream: Next.js, NestJS, Prisma, Tailwind ecosystem — feel free to nudge with good first issues
  • 🛡️ Maintaining:onurdilmen/pomodoro-menubar
  • 💖 Sponsoring:@sindresorhus and others — paying the OSS bill forward

🎓 Certifications

Meta Front-EndIBM Full StackIBM DockerfreeCodeCampHackerRank ReactHackerRank Node


🛠 Daily Toolkit

The actual tools I touch every day — not aspirational, the real workflow:


Layer

Tool
EditorCursor + Claude Code (yes, this README was paired with AI)
TerminaliTerm 2 · zsh · Starship prompt
Gitgh CLI · lazygit · Gitea (self-hosted) for private
DBTablePlus · psql · Prisma Studio
APIBruno (offline-first) · curl
DesignFigma · Affinity Designer for static assets
NotesApple Notes (capture) · Obsidian (long-form)
DeployVercel · Hetzner Cloud · Cloudflare · cPanel/WHM
MonitorGrafana + Loki · UptimeRobot · Sentry
Mac appsRaycast · Rectangle · Hyperkey · TablePlus · Pomodoro Menubar (own)

🌐 Languages

TurkishEnglish


✍️ Recent Writing

📝 Gist10 Lessons From 10 Years Of Full-Stack Engineering — the expensive lessons from 200+ shipped projects, in 10 short bullets
🐦 X threadBuild-in-public notes and production war stories (follow @yazilimuzm)
🌐 Long-formteknoweb.net — agency site with case studies (blog coming soon)

📡 Latest From X

X / Twitter — @yazilimuzm

I share build-in-public notes, Turkish dev tips, and the occasional production war story over at @yazilimuzm.


💬 Get in touch

Note

Hiring? Consulting? Open-source collab? Pick whichever channel suits you — I read everything within 24h.

If you're working on a B2B platform, a maritime / logistics product, a SaaS launch, a hosting automation project, or anything that benefits from a senior engineer who has shipped real Turkish products at scale — say hi.

EmailLinkedInX DMSponsor

📍 İstanbul, Turkey · 🕒 UTC+3 · Last updated automatically

footer wave

Pinned Loading

  1. e-shipsupply-showcasee-shipsupply-showcasePublic

    🚢 E-ShipSupply — Türkiye'nin İlk Denizcilik B2B Pazaryeri | 108+ tedarikçi, 720+ ilan, 4 dil | Next.js 15, NestJS, PostgreSQL, Socket.io, Turborepo

  2. nextjs-nestjs-starternextjs-nestjs-starterPublic

    🚀 Production-ready Full-Stack Starter | Next.js 15 + NestJS 11 + TypeScript + Prisma + PostgreSQL + Docker + Turborepo | JWT, RBAC, Swagger, CI/CD

  3. lisansjet-showcaselisansjet-showcasePublic

    🔑 LisansJet — SaaS Dijital Lisans Satış Platformu | Laravel 11, Stripe, PayTR, Iyzico, çoklu para birimi, PCI DSS uyumlu

  4. pomodoro-menubarpomodoro-menubarPublic

    Tiny native macOS menu bar Pomodoro timer (~176 KB binary). Swift + WebKit hybrid.

    Swift

  5. teknoweb-showcaseteknoweb-showcasePublic archive

    🌐 TeknoWeb Teknoloji - Full Stack Development Agency | 200+ Projects Since 2009 | Laravel, React, WordPress, Custom Solutions

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content
View onurdilmen's full-sized avatar
🎯
Focusing
🎯
Focusing

Highlights

  • Pro

Organizations

@teknowebteknoloji

Block or report onurdilmen

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
onurdilmen/README.md

Onur Dilmen — Senior Full-Stack Developer & Tech Lead

Building B2B marketplaces & real-time systems at production scale
Next.js · NestJS · Laravel · PostgreSQL · Tech Lead @ E-Ship Supply

"I don't ship templates. I ship businesses."

WebsiteLinkedInX / TwitterEmailProfile Views

X FollowersGitHub FollowersStarsSponsor

Tip

🇹🇷 Bu profil iki dilli okunabilir. Türkçe bölümler önce, English follows. · 🇬🇧 This profile is bilingual. Turkish sections first, English follows.


🇹🇷 Hakkımda

10 yıllık deneyime sahip Senior Full-Stack Developer ve Tech Lead. Modern web mimarileri, B2B pazaryerleri ve gerçek zamanlı sistemler üzerine uzmanlaştım. Son bir yılda 3.600+ commit ile aktif olarak ürün geliştiriyorum.

Şu an çalıştığım işler:

  • 🚢 E-Ship Supply — Türkiye'nin ilk denizcilik B2B pazaryerinin teknik liderliği (108+ tedarikçi · 720+ ilan · 4 dil)
  • 🌐 TeknoWeb Platform — WHMCS alternatifi modern hosting otomasyonu (Next.js + NestJS)
  • 🛒 Brahma Market — Plugin mimarili premium e-ticaret altyapısı

🇬🇧 About

Senior Full-Stack Developer & Tech Lead with 10+ years of experience. I specialize in modern web architectures, B2B marketplaces, and real-time systems. Currently shipping production code with 3,600+ commits in the past year.

What I'm building now:

  • 🚢 Technical leadership of E-Ship Supply — Turkey's first maritime B2B marketplace
  • 🌐 TeknoWeb Platform — modern hosting automation
  • 🛒 Brahma Market — plugin-based commerce platform

🎯 Career Highlights


200+

Özel Proje
custom projects shipped
2016 → 2026

100+

Aktif Müşteri
active clients
TeknoWeb dönemi

10K+

Eşzamanlı Bağlantı
concurrent connections
Socket.io + Redis

4 + RTL

Dil & i18n
TR · EN · AR · RU
right-to-left ready

86

Prisma Modeli
data models
E-Ship Supply core

90+

REST Endpoint
API endpoints
NestJS + Swagger

%80 ↓

Deploy Hatası
fewer deploy failures
after CI/CD redesign

%200 ↑

Sipariş Artışı
order growth
PROUD, 6 months

💡 How I Work

Hazır template kullanmıyorum. Müşterilerimi sıfırdan, tam ihtiyaçlarına özel sistemlerle dijitalleştiriyorum — tasarımdan sunucuya, ödeme entegrasyonundan reklama kadar zincirin tamamına hâkimim. Bir mühendis değil; bir teknoloji ortağıyım.

I don't ship boilerplates. I build bespoke systems end-to-end — from design to server, from payment integration to growth ops. Not just an engineer; a technology partner.

  • 🧱 Architecture-first — code is the easy part; the hard part is figuring out which problem deserves to be solved at all
  • 📐 Boring tech, boldly applied — Postgres > NoSQL hype, REST > GraphQL theatrics, monoliths until they hurt
  • 🚀 Ship daily, refactor weeklymain is always deployable, feature flags over long-lived branches
  • 🔒 Security by default — devlet düzeyi tehdit modeli, zero-trust, audit-log everything
  • 🎯 Measure before optimizing — p99 over p50, real user monitoring over local benchmarks

Important

🟢 Currently open for hire — senior full-stack roles, technical leadership, B2B platform consulting, SaaS launch advisory. Get in touch →


💼 Open To / Müsait Olduğum İşler

+ Senior Full-Stack roles (remote · İstanbul hybrid · global timezones)+ Technical Lead / Staff Engineer pozisyonları+ B2B marketplace mimari danışmanlığı+ SaaS launch teknik liderliği+ Maritime / logistics / fintech ürün geliştirme+ Open source maintainer rolleri (Next.js / NestJS / Prisma ecosystem)- Junior pozisyonlar- Pure frontend-only roller- Cryptocurrency / NFT / gambling projeleri

📩 Get in touch:onurdilmen@teknoweb.net · Schedule a call · Sponsor my work


🛠 Tech Stack

FrontendNext.jsReactVue.jsNuxtTypeScriptTailwindshadcn/ui
BackendNestJSLaravelNode.jsHonoPHPFastAPI
DataPostgreSQLMySQLRedisPrismaMongoDB
InfraDockerGitHub ActionsCloudflareHetznerAWSLinuxNginx
RealtimeSocket.ioWebSocketBullMQ
Test & QAPlaywrightJestVitest

🚧 Now — Currently Shipping

What I'm actively building this month (✅ shipped · 🟡 in progress · ⚪ planned):

  • 🚢 E-Ship Supply v3 — MySQL pooling + Prisma 6 migration (production)
  • 🚢 E-Ship Supply v3 — fleet ops module (in progress, May 2026 launch)
  • 🌐 TeknoWeb Platform — WHMCS migration, account provisioning state machine
  • 🛒 Brahma Market — plugin marketplace MVP (commerce plugins as first-class repos)
  • 📚 LocalTR — Sparkle auto-update channel for macOS app
  • 🏗️ This profile README — keep evolving (you're looking at iteration #8)

📋 Full roadmap as a public kanban board:github.com/users/onurdilmen/projects/2


📚 Currently Exploring

Curiosity-driven learning, side-project sandbox:

  • 🦀 Rust + Axum — performance experiments for hot API paths
  • Bun + Hono — Cloudflare Workers deployment patterns, edge-first APIs
  • 🤖 LLM orchestration — server-side AI agents, structured outputs, tool calling at scale
  • 🍎 Swift 6 + SwiftUI — native macOS / iOS utility apps (concurrency model)
  • 🔭 OpenTelemetry — unified tracing across Node + PHP + Postgres in the same trace tree

🏗 Architecture Spotlight — E-Ship Supply

Turkey's first maritime B2B marketplace, designed and shipped from scratch in 2025.

graph LR
U([Users · 4 languages]) -->|HTTPS| CF{{Cloudflare<br/>WAF + CDN}}
CF --> WEB[Next.js 15<br/>App Router · RSC · ISR]
WEB -->|tRPC + REST| API[NestJS 11<br/>90+ endpoints · Swagger]
API --> PG[(PostgreSQL 17<br/>86 Prisma models)]
API --> RD[(Redis 7<br/>cache · pub-sub)]
API --> S3[(R2 / S3<br/>media · invoices)]
WS[Socket.io<br/>10K concurrent] <--> API
WS <--> RD
API --> Q{{BullMQ<br/>jobs · emails · webhooks}}
Q --> WORKER[Worker pool<br/>NestJS microservices]
API --> AUTH{{NextAuth.js<br/>JWT · RBAC · 2FA}}
classDef edge fill:#06b6d4,stroke:#0891b2,color:#fff
classDef web fill:#2563eb,stroke:#1d4ed8,color:#fff
classDef api fill:#e0234e,stroke:#a8174e,color:#fff
classDef data fill:#1e3a8a,stroke:#1e40af,color:#fff
classDef worker fill:#16a34a,stroke:#15803d,color:#fff
class CF edge
class WEB web
class API,AUTH api
class PG,RD,S3 data
class WS,Q,WORKER worker
Loading

Key design decisions:

  • 🏛️ Monorepo with Turborepoapps/web, apps/api, apps/worker, packages/db, packages/ui. Single CI pipeline, type-safe across the wire via Prisma + zod.
  • 🌐 Edge cache aggressive, origin lean — Cloudflare serves 89% of traffic; origin Postgres queries average 12ms.
  • 🔌 WebSocket pool over polling — 10K concurrent connections on a single Hetzner CX22 (€4.59/month) thanks to Redis pub/sub fan-out.
  • 🌍 i18n that respects RTL natively — Arabic flows right-to-left throughout the entire UI, not just text alignment; date/number/currency formatters wired through Intl.
  • 🔁 Background jobs over inline work — every email, every webhook, every invoice generation goes through BullMQ. P95 user-facing latency stays under 200ms.
  • 🛡️ RBAC enforced server-side, not client-side — UI hides features; API rejects them. Two layers.
📐 Click for deployment topology & scaling notes

Deployment topology

  • Edge (Cloudflare): WAF rules, image optimization, KV cache for hot product pages, R2 for static media
  • Web tier (Hetzner Helsinki): Next.js 15 served via Node.js cluster behind LiteSpeed; PM2 process manager; zero-downtime via blue-green deploy
  • API tier (Hetzner Falkenstein): NestJS 11 on Node 20, deployed via GitHub Actions → SSH → systemd; auto-scaling via additional worker boxes triggered by BullMQ queue depth
  • Data tier: Postgres 17 primary + 1 read replica with logical replication; Redis 7 cluster mode (3 nodes) for pub/sub fan-out
  • Object storage: Cloudflare R2 (S3-compatible) for media, invoices, daily DB dumps; lifecycle policies push old artifacts to glacier-equivalent

Scaling story so far

StageConcurrent usersStack response
MVP launch50Single CX22, monolithic NestJS
Month 2800Added Redis, extracted worker queues
Month 42KAdded read replica, edge-cached listing pages
Month 610KSocket.io pub/sub fan-out, Postgres connection pooling
Today15K daily / 10K concurrent peakStable on the same €4.59/mo CX22 + replica

What I'd do differently

  • Start with read-write splitting from day one (retrofitting was painful)
  • Use Cloudflare Tunnel earlier — Hetzner firewall management got messy
  • Adopt feature flags from the start (LaunchDarkly or self-host Unleash)

🚀 Featured Work

E-Ship Supply preview

Turkey's first maritime B2B marketplace. Designed and lead the technical development from scratch — 108+ verified suppliers, 720+ listings, 4 languages, real-time messaging with 10K+ concurrent connections.

Next.js 15 · NestJS · PostgreSQL · Prisma · Socket.io · Redis · Turborepo

Next.js NestJS Starter preview

Production-ready full-stack monorepo template combining Next.js 15 with NestJS 11. JWT, RBAC, Swagger, CI/CD, Docker out of the box.

Turborepo · TypeScript · Prisma · Docker · GitHub Actions

Pomodoro Menubar preview

Tiny native macOS menu bar Pomodoro timer (~176KB binary). Swift + WebKit hybrid, MIT-licensed.

Swift · WebKit · macOS · MIT


📊 GitHub Stats

metrics

activity graph

trophies

snake eating contributions


🏆 GitHub Achievements

YOLOPull SharkQuickdrawPair ExtraordinairePublic Sponsor


🌍 Open Source

Recent contributions to public projects (active goal: regular OSS upstream).

  • 🤝 Looking to upstream: Next.js, NestJS, Prisma, Tailwind ecosystem — feel free to nudge with good first issues
  • 🛡️ Maintaining:onurdilmen/pomodoro-menubar
  • 💖 Sponsoring:@sindresorhus and others — paying the OSS bill forward

🎓 Certifications

Meta Front-EndIBM Full StackIBM DockerfreeCodeCampHackerRank ReactHackerRank Node


🛠 Daily Toolkit

The actual tools I touch every day — not aspirational, the real workflow:


Layer

Tool
EditorCursor + Claude Code (yes, this README was paired with AI)
TerminaliTerm 2 · zsh · Starship prompt
Gitgh CLI · lazygit · Gitea (self-hosted) for private
DBTablePlus · psql · Prisma Studio
APIBruno (offline-first) · curl
DesignFigma · Affinity Designer for static assets
NotesApple Notes (capture) · Obsidian (long-form)
DeployVercel · Hetzner Cloud · Cloudflare · cPanel/WHM
MonitorGrafana + Loki · UptimeRobot · Sentry
Mac appsRaycast · Rectangle · Hyperkey · TablePlus · Pomodoro Menubar (own)

🌐 Languages

TurkishEnglish


✍️ Recent Writing

📝 Gist10 Lessons From 10 Years Of Full-Stack Engineering — the expensive lessons from 200+ shipped projects, in 10 short bullets
🐦 X threadBuild-in-public notes and production war stories (follow @yazilimuzm)
🌐 Long-formteknoweb.net — agency site with case studies (blog coming soon)

📡 Latest From X

X / Twitter — @yazilimuzm

I share build-in-public notes, Turkish dev tips, and the occasional production war story over at @yazilimuzm.


💬 Get in touch

Note

Hiring? Consulting? Open-source collab? Pick whichever channel suits you — I read everything within 24h.

If you're working on a B2B platform, a maritime / logistics product, a SaaS launch, a hosting automation project, or anything that benefits from a senior engineer who has shipped real Turkish products at scale — say hi.

EmailLinkedInX DMSponsor

📍 İstanbul, Turkey · 🕒 UTC+3 · Last updated automatically

footer wave

Pinned Loading

  1. e-shipsupply-showcasee-shipsupply-showcasePublic

    🚢 E-ShipSupply — Türkiye'nin İlk Denizcilik B2B Pazaryeri | 108+ tedarikçi, 720+ ilan, 4 dil | Next.js 15, NestJS, PostgreSQL, Socket.io, Turborepo

  2. nextjs-nestjs-starternextjs-nestjs-starterPublic

    🚀 Production-ready Full-Stack Starter | Next.js 15 + NestJS 11 + TypeScript + Prisma + PostgreSQL + Docker + Turborepo | JWT, RBAC, Swagger, CI/CD

  3. lisansjet-showcaselisansjet-showcasePublic

    🔑 LisansJet — SaaS Dijital Lisans Satış Platformu | Laravel 11, Stripe, PayTR, Iyzico, çoklu para birimi, PCI DSS uyumlu

  4. pomodoro-menubarpomodoro-menubarPublic

    Tiny native macOS menu bar Pomodoro timer (~176 KB binary). Swift + WebKit hybrid.

    Swift

  5. teknoweb-showcaseteknoweb-showcasePublic archive

    🌐 TeknoWeb Teknoloji - Full Stack Development Agency | 200+ Projects Since 2009 | Laravel, React, WordPress, Custom Solutions