Senior .NET Developer Roadmap
Roadmap bercabang untuk developer .NET berpengalaman 2-3 tahun yang ingin naik ke level senior dan mampu merancang arsitektur aplikasi .NET skala enterprise. Jalur utama mencakup C# dan runtime tingkat lanjut, ASP.NET Core, persistensi data, pengujian, arsitektur perangkat lunak, sistem terdistribusi, performa, observabilitas, keamanan, cloud dan DevOps, hingga kepemimpinan teknis. Cabang opsional menyediakan pendalaman teknologi spesifik. Estimasi durasi topic tidak termasuk durasi subtopic-nya, sedangkan durasi section adalah akumulasi seluruh node di dalamnya.
Daftar materi
Versi teks dari diagram di atas.
-
Prerequisite
Validasi Dasar .NET dan C#
Pastikan dasar-dasar sudah kuat sebelum memulai: sintaks C#, OOP, LINQ, ASP.NET Core dasar, EF Core dasar, Git, dan SQL dasar. Node ini berfungsi sebagai pemeriksaan kesiapan.
-
Section
Bagian 1: C# Lanjutan dan Runtime .NET
Pendalaman bahasa C# modern, pemrograman asinkron, manajemen memori, dan dependency injection sebagai fondasi kode berkualitas senior.
-
Topic
C# Modern dan Fitur Bahasa Lanjutan
Menguasai fitur C# terbaru dan cara memakainya untuk menulis kode yang ekspresif, aman, dan mudah dirawat.
-
Subtopic
Generics, Variance, dan Pattern Matching
Generics tingkat lanjut termasuk constraint, kovarians dan kontravarians, serta pattern matching untuk logika percabangan yang bersih.
-
Subtopic
Records, Immutability, dan Nullable Reference Types
Memodelkan data yang tidak dapat diubah dan menghilangkan kelas bug NullReferenceException melalui analisis nullability.
-
Topic
Pemrograman Asinkron dan Konkurensi
Memahami cara kerja async/await, Task Parallel Library, dan sinkronisasi agar aplikasi skalabel dan bebas deadlock maupun race condition.
-
Subtopic
Internal async/await, ValueTask, dan Cancellation
Mekanisme SynchronizationContext, ConfigureAwait, ValueTask, dan propagasi pembatalan secara benar di seluruh lapisan aplikasi.
-
Subtopic
Channels, TPL, dan Koleksi Thread-Safe
Pola konkurensi tingkat tinggi menggunakan Channels, koleksi konkuren, dan primitif sinkronisasi.
-
Topic
CLR, Manajemen Memori, dan Garbage Collector
Memahami cara runtime .NET mengelola memori, generasi GC, Large Object Heap, serta dampaknya pada performa aplikasi server.
-
Subtopic
Span<T>, Memory<T>, dan ArrayPool
Teknik pemrograman rendah alokasi untuk jalur kode yang kritis terhadap performa.
-
Optional · opsional
Source Generators dan Roslyn Analyzers
Membuat generator kode saat kompilasi dan analyzer kustom untuk menegakkan aturan tim secara otomatis.
-
Topic
Dependency Injection, Configuration, dan Options Pattern
Pendalaman container DI bawaan .NET, lifetime layanan, serta sistem konfigurasi dan Options pattern untuk aplikasi yang mudah dikonfigurasi per lingkungan.
-
Assessment
Assessment: C# Lanjutan dan Runtime
Evaluasi pemahaman fitur bahasa, konkurensi, memori, dan DI melalui soal konseptual serta tugas code review.
-
Section
Bagian 2: ASP.NET Core Lanjutan dan Desain API
Membangun API yang matang untuk produksi: pipeline, desain kontrak, protokol komunikasi, dan pemrosesan latar belakang.
-
Topic
Pipeline ASP.NET Core: Hosting, Middleware, dan Filters
Memahami siklus hidup request, Generic Host, middleware kustom, endpoint routing, dan filter untuk menangani cross-cutting concerns.
-
Topic
Desain REST API Tingkat Lanjut
Merancang kontrak API yang konsisten dan tahan perubahan: versioning, dokumentasi OpenAPI, Problem Details, paginasi, idempotensi, dan validasi.
-
Subtopic
Minimal API vs Controller
Membandingkan Minimal API dan controller, termasuk endpoint filters dan route groups, serta kriteria memilih di proyek enterprise.
-
Subtopic
Rate Limiting dan Output Caching
Melindungi API dari beban berlebih dengan middleware rate limiting dan meningkatkan throughput dengan output caching.
-
Topic
gRPC dan Komunikasi Real-Time dengan SignalR
Protokol komunikasi selain REST: gRPC untuk komunikasi antarlayanan berperforma tinggi dan SignalR untuk fitur real-time.
-
Optional · opsional
GraphQL dengan Hot Chocolate
Membangun API GraphQL di .NET untuk kebutuhan klien yang membutuhkan fleksibilitas query.
-
Topic
Background Processing dan Worker Services
Menjalankan pekerjaan latar belakang secara andal dengan IHostedService, BackgroundService, dan worker service, termasuk graceful shutdown.
-
Project
Proyek: API Katalog Produk Siap Produksi
Bangun API katalog produk yang menerapkan versioning, Problem Details, rate limiting, output caching, validasi, endpoint gRPC internal, dan background job untuk sinkronisasi stok.
-
Section
Bagian 3: Data dan Persistensi
Merancang lapisan data yang benar, berperforma, dan sesuai kebutuhan: SQL, EF Core lanjutan, NoSQL, dan caching.
-
Topic
EF Core Tingkat Lanjut
Menguasai EF Core di luar CRUD: pemetaan kompleks, owned types, value conversions, interceptors, global query filters, dan pemahaman query yang dihasilkan.
-
Subtopic
Optimasi Performa EF Core
Teknik meningkatkan performa akses data: no-tracking, projection, split queries, compiled queries, bulk update dan delete.
-
Subtopic
Migrasi dan Optimistic Concurrency
Strategi migrasi database yang aman untuk produksi dan penanganan konflik penulisan dengan concurrency token.
-
Topic
Desain Database Relasional, Indexing, dan Transaksi
Fondasi database yang wajib dikuasai arsitek: normalisasi dan denormalisasi, strategi indexing, execution plan, level isolasi transaksi, dan locking.
-
Subtopic
Micro-ORM dengan Dapper
Menggunakan Dapper untuk query baca yang sangat kritis performa dan mengombinasikannya dengan EF Core pada pola CQRS.
-
Topic
NoSQL dan Pemilihan Teknologi Penyimpanan
Memahami document store, key-value, dan column-family, serta kriteria memilih penyimpanan berdasarkan pola akses dan kebutuhan konsistensi (polyglot persistence).
-
Topic
Caching Terdistribusi
Strategi caching untuk sistem skala besar: cache-aside, invalidasi, stampede protection, IDistributedCache, HybridCache, dan Redis.
-
Optional · opsional
Event Sourcing
Menyimpan perubahan state sebagai rangkaian event, membangun projection, serta memahami kapan pola ini layak dan kapan berlebihan.
-
Assessment
Assessment: API dan Lapisan Data
Evaluasi kemampuan merancang API dan lapisan data melalui studi kasus: rancang kontrak API, skema database, strategi caching, dan optimasi query untuk sebuah skenario.
-
Section
Bagian 4: Pengujian dan Kualitas Kode
Membangun strategi pengujian yang memberi kepercayaan untuk melakukan perubahan, serta praktik menjaga kualitas kode tim.
-
Topic
Unit Testing dan Desain Test
Menulis unit test yang bernilai: test pyramid, test doubles, TDD, dan menghindari test yang rapuh terhadap detail implementasi.
-
Topic
Integration Testing dengan WebApplicationFactory dan Testcontainers
Menguji aplikasi bersama dependensi nyata (database, broker) di dalam container untuk mendapatkan kepercayaan tinggi dengan biaya terkendali.
-
Subtopic
Architecture Tests dan Contract Testing
Menegakkan aturan dependensi arsitektur secara otomatis dan memastikan kompatibilitas kontrak antar layanan.
-
Optional · opsional
Mutation Testing dengan Stryker.NET
Mengukur kualitas test suite dengan mutation testing, bukan sekadar code coverage.
-
Topic
Clean Code, Refactoring, dan Code Review
Mengenali code smell, melakukan refactoring aman, dan memberikan code review yang konstruktif serta konsisten.
-
Project
Proyek: Strategi Pengujian untuk API Katalog
Lengkapi API katalog dengan unit test, integration test berbasis Testcontainers, dan architecture test, lalu integrasikan ke pipeline build lokal.
-
Milestone
Milestone: Senior Developer Solid
Peserta mampu membangun aplikasi .NET yang berkualitas produksi secara mandiri, dengan API, lapisan data, dan pengujian yang matang. Siap masuk ke materi arsitektur.
-
Section
Bagian 5: Arsitektur Perangkat Lunak
Inti perjalanan menuju arsitek: prinsip desain, gaya arsitektur, Domain-Driven Design, modular monolith, dan cara mendokumentasikan keputusan arsitektur.
-
Topic
Prinsip Desain dan Design Patterns
SOLID, coupling dan cohesion, serta design patterns GoF yang relevan di .NET modern, dengan penekanan pada kapan sebuah pola justru tidak diperlukan.
-
Topic
Gaya Arsitektur Aplikasi
Membandingkan layered, Clean/Onion, Hexagonal (Ports and Adapters), dan Vertical Slice Architecture beserta trade-off masing-masing.
-
Subtopic
Clean Architecture dalam Praktik .NET
Struktur solusi, pemisahan proyek, dan penempatan abstraksi infrastruktur pada Clean Architecture di .NET.
-
Subtopic
Vertical Slice dan CQRS
Mengorganisasi kode per fitur dan memisahkan model baca dan tulis (CQRS) untuk kesederhanaan dan skalabilitas.
-
Topic
Domain-Driven Design Strategis
Memahami domain bisnis secara mendalam: ubiquitous language, subdomain, bounded context, context mapping, dan teknik event storming.
-
Subtopic
DDD Taktis: Aggregate, Entity, Value Object, Domain Event
Membangun model domain yang kaya dengan invariant terjaga di dalam aggregate dan komunikasi melalui domain event.
-
Topic
Modular Monolith
Membangun monolith yang termodulasi berdasarkan bounded context, dengan batas modul yang ditegakkan, sebagai jalur evolusi yang aman sebelum microservices.
-
Topic
Atribut Kualitas, Trade-off, dan Dokumentasi Arsitektur
Menerjemahkan kebutuhan non-fungsional menjadi keputusan arsitektur, mendokumentasikannya dengan Architecture Decision Records (ADR) dan model C4.
-
Project
Proyek: E-Commerce Modular Monolith dengan DDD
Bangun sistem e-commerce modular monolith (katalog, pesanan, pembayaran, inventori) dengan DDD taktis, CQRS, architecture test, ADR, dan diagram C4.
-
Assessment
Assessment: Architecture Kata dan Design Review
Kerjakan architecture kata dengan kebutuhan bisnis yang diberikan, lalu presentasikan dan pertahankan rancangan di depan reviewer.
-
Section
Bagian 6: Sistem Terdistribusi dan Microservices
Merancang sistem yang tersebar di banyak layanan: konsistensi, messaging, pola transaksi terdistribusi, dan resiliensi.
-
Topic
Fundamental Sistem Terdistribusi
Konsep dasar yang menentukan desain sistem terdistribusi: fallacies of distributed computing, teorema CAP dan PACELC, model konsistensi, dan idempotensi.
-
Topic
Messaging dan Arsitektur Event-Driven
Komunikasi asinkron dengan message broker (RabbitMQ, Azure Service Bus) menggunakan MassTransit: command vs event, retry, dead-letter queue, dan urutan pesan.
-
Subtopic
Transactional Outbox dan Inbox Pattern
Menjamin konsistensi antara perubahan database dan publikasi pesan, serta deduplikasi pesan di sisi konsumen.
-
Subtopic
Saga dan Transaksi Terdistribusi
Mengoordinasikan proses bisnis lintas layanan dengan saga berbasis orkestrasi maupun koreografi, termasuk compensating action.
-
Topic
Microservices: Dekomposisi, API Gateway, dan Komunikasi
Memecah sistem berdasarkan bounded context, data per layanan, API gateway dengan YARP, serta menilai kapan microservices tidak tepat digunakan.
-
Topic
Resiliensi dan Penanganan Kegagalan
Membuat layanan tahan gangguan dengan retry, timeout, circuit breaker, bulkhead, dan fallback menggunakan Polly dan Microsoft.Extensions.Resilience.
-
Optional · opsional
.NET Aspire
Mengorkestrasi aplikasi terdistribusi untuk pengembangan lokal, service defaults, dan dashboard telemetri dengan .NET Aspire.
-
Optional · opsional
Dapr untuk Aplikasi Terdistribusi
Menggunakan building block Dapr (state, pub/sub, service invocation) untuk mengabstraksi infrastruktur terdistribusi.
-
Project
Proyek: Ekstraksi Layanan dan Integrasi Event-Driven
Ekstrak modul pembayaran dan inventori dari modular monolith menjadi layanan terpisah yang berkomunikasi melalui message broker, dengan outbox, saga checkout, API gateway, dan resiliensi.
-
Section
Bagian 7: Performa, Observabilitas, dan Keamanan
Memastikan sistem cepat, dapat diamati di produksi, dan aman dari ancaman umum.
-
Topic
Profiling dan Benchmarking
Mengukur sebelum mengoptimalkan: BenchmarkDotNet untuk micro-benchmark, dotnet-counters, dotnet-trace, dan dotnet-dump untuk diagnosis, serta load testing.
-
Topic
Observabilitas: Logging, Metrics, dan Distributed Tracing
Membuat sistem dapat diamati dengan structured logging, metrics, dan distributed tracing berbasis OpenTelemetry, serta merancang alert berbasis SLO.
-
Topic
Keamanan Aplikasi Enterprise
Mengamankan aplikasi dari ancaman umum (OWASP Top 10), menerapkan autentikasi OAuth 2.0 dan OpenID Connect, manajemen secret, serta threat modeling.
-
Subtopic
Authorization Berbasis Policy dan Multi-Tenancy
Merancang otorisasi granular dengan policy dan resource-based authorization, serta isolasi data pada aplikasi multi-tenant.
-
Optional · opsional
Native AOT dan Trimming
Mengompilasi aplikasi .NET menjadi native untuk startup cepat dan footprint kecil, beserta batasan kompatibilitasnya.
-
Assessment
Assessment: Audit Performa dan Keamanan
Lakukan audit terhadap aplikasi contoh: temukan masalah performa, celah keamanan, dan kekurangan observabilitas, lalu susun laporan prioritas perbaikan.
-
Section
Bagian 8: Cloud, Container, dan DevOps
Mengantarkan sistem ke produksi secara andal: container, orkestrasi, CI/CD, arsitektur cloud, dan infrastructure as code.
-
Topic
Container dan Orkestrasi Kubernetes
Mengemas aplikasi .NET ke container yang efisien dan aman, lalu menjalankannya di Kubernetes dengan konfigurasi, probe, dan scaling yang tepat.
-
Topic
CI/CD dan Strategi Deployment
Membangun pipeline otomatis untuk build, test, analisis kode, dan deployment, serta strategi rilis seperti blue-green, canary, dan feature flags.
-
Topic
Arsitektur Cloud dengan Azure
Merancang solusi cloud berdasarkan Well-Architected Framework: memilih layanan terkelola, desain untuk ketersediaan tinggi, optimasi biaya, dan pola cloud design.
-
Optional · opsional
Infrastructure as Code dengan Bicep atau Terraform
Mendefinisikan infrastruktur sebagai kode agar lingkungan dapat direproduksi, direview, dan diotomasi.
-
Project
Proyek: Deployment Produksi dengan CI/CD dan Observabilitas
Deploy sistem terdistribusi hasil proyek sebelumnya ke cloud atau Kubernetes dengan pipeline CI/CD penuh, observabilitas end-to-end, secret management, dan strategi rilis canary.
-
Section
Bagian 9: Kepemimpinan Teknis dan Capstone
Melengkapi kemampuan teknis dengan kepemimpinan, modernisasi sistem legacy, dan pembuktian akhir melalui proyek capstone arsitektur enterprise.
-
Topic
Kepemimpinan Teknis dan Komunikasi Arsitektur
Peran senior dan arsitek di luar kode: mentoring, menetapkan standar teknis, estimasi, mengelola technical debt, dan mengomunikasikan keputusan kepada pemangku kepentingan non-teknis.
-
Topic
Modernisasi Sistem Legacy
Strategi migrasi dari .NET Framework ke .NET modern dan dari monolith lama ke arsitektur baru secara bertahap menggunakan pola Strangler Fig.
-
Project
Capstone: Arsitektur Aplikasi .NET Skala Enterprise
Rancang dan bangun sistem enterprise end-to-end untuk domain pilihan (misalnya logistik, perbankan, atau kesehatan): analisis domain dengan event storming, keputusan arsitektur terdokumentasi, implementasi layanan inti, keamanan, observabilitas, dan deployment otomatis.
-
Assessment
Assessment Akhir: Pertahanan Desain Arsitektur
Presentasikan proyek capstone di hadapan panel reviewer, pertahankan keputusan arsitektur, dan jawab skenario perubahan kebutuhan secara langsung.
-
Milestone
Milestone: Siap Merancang Arsitektur .NET Enterprise
Peserta mampu merancang, mendokumentasikan, dan memimpin implementasi arsitektur aplikasi .NET skala enterprise.