Skip to content
View erdemkeskin54's full-sized avatar
🏠
Working from home
🏠
Working from home

Block or report erdemkeskin54

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.

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

Hi, I'm Erdem 👋

.NET Full Stack Developer · Sakarya, Turkey · Open to Relocate

LinkedIn Email Status Profile views


4+ years shipping enterprise web applications across Ford Otosan, B2B SaaS, and freelance. I treat architectural decisions as tradeoffs — not religion — and document the why so the next engineer doesn't have to guess. Lately I've been bottling up everything I wish I'd had on day one into reusable production templates.


🚀 Currently Building

Two end-to-end templates that pair into a complete starter for any new product:

🏛️ CleanCore

.NET 10 Clean Architecture Web API Template

Production-ready foundation — JWT + Refresh Token Rotation, EF Core 10 (PostgreSQL / SQL Server toggle), CQRS via MediatR, FluentValidation pipeline, Result pattern, ProblemDetails (RFC 7807), Serilog, Docker (Alpine + non-root), GitHub Actions CI.

Includes a complete Todo vertical slice (Domain → Application → Infrastructure → API + tests) so adding new features follows a clear, repeatable pattern.

.NET 10 · C# · EF Core · MediatR · PostgreSQL · Docker

React + TypeScript SPA Template

Frontend counterpart — Clean Architecture layered (domain → application → infrastructure → presentation), TanStack Query + Zustand, refresh-token single-flight queue interceptor (race-condition free), Tailwind CSS, RHF + Zod validation, Vitest, Docker (nginx-alpine multi-stage).

Plugs straight into the .NET backend via VITE_API_BASE_URL.

React 18 · TypeScript · Vite · TanStack Query · Zustand · Tailwind

Why these matter: every architectural decision in the docs follows a Decision → Why → Alternatives → Tradeoff block. They aren't tutorial dumps — they're the templates I personally use to ship.


💼 Background

Freelance · Full Stack Developer07/2025 – 03/2026 Client demo environments, technical prototypes, and Python automation pipelines (~800 SKU normalization + bulk import workflows with metadata enrichment).

Ford Otosan · Full Stack Developer (.NET 8)11/2023 – 06/2025 Enterprise applications in Clean Architecture + Repository Pattern.

  • Cut average API response time ~25% (1.2s → 0.9s) via stored procedures + execution plan analysis
  • Reduced technical debt ~20% by integrating SonarQube into Azure DevOps YAML CI/CD pipelines
  • JWT authentication, RESTful APIs documented with Swagger / OpenAPI, async/await throughout
  • Structured Pull Request workflows with code review and Git-based version control

Onerov IT · Full Stack Developer07/2021 – 10/2023 Multi-tenant SaaS modules — .NET Core MVC / WebAPI + Angular.

  • Improved database performance ~15% through indexing and query optimization
  • Entity Framework Core + LINQ + Repository Pattern for clean data abstraction
  • RESTful APIs documented with Swagger

Gendarmerie General Command · Reserve Officer (First Lieutenant)02/2019 – 02/2020 Mandatory military service. Delivered structured technical training sessions on networking fundamentals.

B.Sc. Computer Engineering · Sakarya University2013 – 2018


🛠️ Tech Stack

Backend

C# .NET ASP.NET Core EF Core MediatR FluentValidation Swagger

Frontend

TypeScript JavaScript React Angular TanStack Query Zustand Tailwind CSS

Database

SQL Server PostgreSQL Oracle MongoDB T-SQL

DevOps & Tooling

Docker Azure DevOps GitHub Actions Git Linux

Testing & Quality

xUnit NUnit Vitest SonarQube Graylog

Clean Architecture · N-Layer Architecture · Repository Pattern · SOLID · Dependency Injection · CQRS · Result Pattern · JWT + Refresh Rotation · RESTful API design · Async / Await · Structured Code Review · Agile / Scrum


💬 How I Approach Software

public sealed record Erdem
{
    public string Title           => ".NET Full Stack Developer";
    public int    YearsOfPractice => 4;

    public List<string> Beliefs { get; } =
    [
        "Architectural decisions are tradeoffs, not religions — document the why.",
        "Senior isn't about exotic problems. It's about CRUD that survives 6 months later.",
        "Comments don't explain WHAT — names do that. Comments explain WHY.",
        "Production-ready means: works on Friday, still works on Monday."
    ];

    public string CurrentlyAvailableFor =>
        "Freelance · Contract · Remote full-time · Worldwide";
}

📊 GitHub at a Glance

Erdem's GitHub stats Top languages


📫 Get in Touch

If you're hiring, contracting, or just want to compare notes on .NET architecture choices — pick any:

📧 Email mail.erdemkeskin@gmail.com
💼 LinkedIn linkedin.com/in/ErdemKeskin54
📱 Phone (WhatsApp / Telegram) +90 542 730 9817
🌍 Location Sakarya, Turkey · Open to Relocate
🕒 Availability Available now for Freelance, Contract, or Remote full-time

📌 Looking for the proof? Start with CleanCore (backend) + CleanCoreReact (frontend).

"Code is read more often than it's written. Architecture decisions outlive the engineers who made them."

Pinned Loading

  1. CleanCore CleanCore Public

    .NET 10 Clean Architecture Web API template — JWT + Refresh Rotation + EF Core + CQRS + dotnet new template

    C#

  2. CleanCoreReact CleanCoreReact Public

    CleanCore React frontend — Clean Architecture katmanlı, üretime hazır SPA template'i (TanStack Query + Zustand + Tailwind + Refresh Token Rotation)

    TypeScript