Skip to content
View gokhanertogan's full-sized avatar

Highlights

  • Pro

Block or report gokhanertogan

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

Gökhan Ertoğan

Typing intro

LinkedIn NuGet Istanbul Profile views


👨‍💻 About me

  • 🧭 Software Development Team Lead, leading a team that owns business-critical microservices
  • 🏗️ 10+ years of .NET across e-commerce, travel, ERP and a FIFA World Cup 2022 platform
  • 🔀 I like the parts that break quietly: concurrency, background work, messaging and their observability
  • 📡 Author of RunSignal, cross-language observability for background jobs, with SDKs in .NET, Go, Java, Node.js and Rust
  • 🎓 M.Sc. student in Artificial Intelligence, B.Sc. student in Business Administration
  • 🤝 Mentoring, code reviews and clean, boring, reliable systems

🚀 Open source

Cross-language workload observability and alert provisioning. Your APM alerts on HTTP 500s; RunSignal covers the work with no HTTP request: the nightly job that never started, the consumer that stopped processing, the import that "succeeded" with 0 rows. It records runs, items and heartbeats as OpenTelemetry metrics with the same names in every language, and provisions missed, failed, overrun, stalled and low-output alerts in New Relic or Prometheus from a declarative manifest.

NuGet Go Maven Central npm crates.io Integrations Backends

Structured concurrency for .NET. Child tasks run inside a scope that completes only when all of them have finished, and the first failure cancels the rest.

NuGet version NuGet downloads

dotnet new template that generates a production-ready .NET 10 microservice with zero third-party packages: mediator, validation, result pattern, outbox and permission-based auth built in.

NuGet version .NET 10

🔬 dotnet/runtime: performance work on System.Xml.XPath

#136245 Make following-sibling / preceding-sibling axes linear instead of quadratic
#136180 Remove allocations in translate() and normalize-space()

🧩 Architecture samples

Repo What it shows
🧱 ModulerMonolith .NET 10 modular monolith: Products, Baskets and Orders modules with their own schemas, outbox-based integration events and architecture tests
🎼 SagaOrchestration Orchestrated saga with a MassTransit state machine over RabbitMQ
💃 DistributedTransactionSagaChoreography Choreographed saga with the transactional outbox pattern
🤝 TwoPhaseCommitPattern Two-phase commit with a coordinator across Order, Payment and Stock services
📜 EventSourcingProject Event-sourced basket on Marten and PostgreSQL: optimistic concurrency, inline and async projections, time travel
🛡️ ResilientPatterns Polly v8 resilience pipelines against a flaky service: retry with jitter, circuit breaker, timeouts, hedging, fallback, rate limiting
🛒 ShoppingCartProject Clean Architecture cart service with an append-only event log, transactional outbox and RabbitMQ integration events
🗂️ DataPartitioningProject PostgreSQL range partitioning vs. jsonb + GIN index for campaign lookups, load-tested with NBomber

🛠️ Tech stack

Languages
Data and observability
Messaging and DevOps
Version control

🧠 Backend C# .NET ASP.NET Core ASP.NET MVC / Web API REST SOAP LINQ SignalR WCF
🗄️ Data SQL Server PostgreSQL MongoDB Redis Elasticsearch EF Core Dapper
🔀 Architecture & messaging Microservices Event-driven DDD CQRS Event Sourcing Kafka RabbitMQ MassTransit MediatR Hangfire
📡 Observability OpenTelemetry New Relic Prometheus Grafana Serilog
🌐 Polyglot (RunSignal SDKs) Go Java Spring Boot Node.js TypeScript Rust
🤖 AI / ML Python PyTorch Hugging Face Transformers SHAP
🧪 Testing & quality xUnit NUnit Moq Testcontainers BenchmarkDotNet TDD Integration testing SonarQube SOLID Clean Code
☁️ Cloud & DevOps Docker Kubernetes Azure CI/CD GitLab CI GitHub Actions
🌿 Version control Git GitHub GitLab Bitbucket TFS
🖥️ Desktop WinForms DevExpress
🏃 Process Scrum Kanban

🎓 Education

  • 🤖 M.Sc. Artificial Intelligence · Ahmet Yesevi University (in progress)
  • 💻 M.Sc. Software Engineering · Ahmet Yesevi University
  • 📈 B.Sc. Business Administration · Anadolu University (in progress)
  • 🗄️ B.Sc. Management Information Systems · Anadolu University
  • 🧑‍🏫 B.Ed. Computer Education and Instructional Technology · İbrahim Çeçen University

📊 GitHub activity

GitHub streak

Contribution snake

Pinned Loading

  1. LamilaDinner LamilaDinner Public archive

    Dinner-hosting REST API in .NET 7: Clean Architecture, DDD aggregates and CQRS with MediatR, ErrorOr, FluentValidation and EF Core

    C#

  2. ModulerMonolith ModulerMonolith Public

    Modular monolith in .NET 10: Products, Baskets and Orders modules with own schemas, contracts-only communication, outbox and architecture tests

    C#

  3. onion_template onion_template Public

    dotnet new template for a production-ready .NET 10 microservice with zero third-party packages

    C#

  4. StructuredConcurrency StructuredConcurrency Public

    Structured concurrency for C# and .NET: TaskGroup, Promise.all / Promise.any / allSettled, timeouts that cancel the work, Go's select and singleflight, supervisors and hedged requests. The first fa…

    C#

  5. dotnet/runtime dotnet/runtime Public

    .NET is a cross-platform runtime for cloud, mobile, desktop, and IoT apps.

    C# 18.4k 5.7k

  6. RunSignal RunSignal Public

    Cross-language workload observability and alert provisioning: alert on background jobs, consumers and batches that no HTTP status code describes. .NET, Go, Java, Node.js, Rust; New Relic and Promet…

    C#