Lewati ke konten
Roadmap Kategori Dokumentasi Masuk Daftar gratis

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.

Memuat diagram…

Daftar materi

Versi teks dari diagram di atas.

  1. 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.

  2. Section

    Bagian 1: C# Lanjutan dan Runtime .NET

    Pendalaman bahasa C# modern, pemrograman asinkron, manajemen memori, dan dependency injection sebagai fondasi kode berkualitas senior.

  3. Topic

    C# Modern dan Fitur Bahasa Lanjutan

    Menguasai fitur C# terbaru dan cara memakainya untuk menulis kode yang ekspresif, aman, dan mudah dirawat.

  4. Subtopic

    Generics, Variance, dan Pattern Matching

    Generics tingkat lanjut termasuk constraint, kovarians dan kontravarians, serta pattern matching untuk logika percabangan yang bersih.

  5. Subtopic

    Records, Immutability, dan Nullable Reference Types

    Memodelkan data yang tidak dapat diubah dan menghilangkan kelas bug NullReferenceException melalui analisis nullability.

  6. Topic

    Pemrograman Asinkron dan Konkurensi

    Memahami cara kerja async/await, Task Parallel Library, dan sinkronisasi agar aplikasi skalabel dan bebas deadlock maupun race condition.

  7. Subtopic

    Internal async/await, ValueTask, dan Cancellation

    Mekanisme SynchronizationContext, ConfigureAwait, ValueTask, dan propagasi pembatalan secara benar di seluruh lapisan aplikasi.

  8. Subtopic

    Channels, TPL, dan Koleksi Thread-Safe

    Pola konkurensi tingkat tinggi menggunakan Channels, koleksi konkuren, dan primitif sinkronisasi.

  9. Topic

    CLR, Manajemen Memori, dan Garbage Collector

    Memahami cara runtime .NET mengelola memori, generasi GC, Large Object Heap, serta dampaknya pada performa aplikasi server.

  10. Subtopic

    Span<T>, Memory<T>, dan ArrayPool

    Teknik pemrograman rendah alokasi untuk jalur kode yang kritis terhadap performa.

  11. Optional · opsional

    Source Generators dan Roslyn Analyzers

    Membuat generator kode saat kompilasi dan analyzer kustom untuk menegakkan aturan tim secara otomatis.

  12. 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.

  13. Assessment

    Assessment: C# Lanjutan dan Runtime

    Evaluasi pemahaman fitur bahasa, konkurensi, memori, dan DI melalui soal konseptual serta tugas code review.

  14. 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.

  15. 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.

  16. Topic

    Desain REST API Tingkat Lanjut

    Merancang kontrak API yang konsisten dan tahan perubahan: versioning, dokumentasi OpenAPI, Problem Details, paginasi, idempotensi, dan validasi.

  17. Subtopic

    Minimal API vs Controller

    Membandingkan Minimal API dan controller, termasuk endpoint filters dan route groups, serta kriteria memilih di proyek enterprise.

  18. Subtopic

    Rate Limiting dan Output Caching

    Melindungi API dari beban berlebih dengan middleware rate limiting dan meningkatkan throughput dengan output caching.

  19. Topic

    gRPC dan Komunikasi Real-Time dengan SignalR

    Protokol komunikasi selain REST: gRPC untuk komunikasi antarlayanan berperforma tinggi dan SignalR untuk fitur real-time.

  20. Optional · opsional

    GraphQL dengan Hot Chocolate

    Membangun API GraphQL di .NET untuk kebutuhan klien yang membutuhkan fleksibilitas query.

  21. Topic

    Background Processing dan Worker Services

    Menjalankan pekerjaan latar belakang secara andal dengan IHostedService, BackgroundService, dan worker service, termasuk graceful shutdown.

  22. 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.

  23. Section

    Bagian 3: Data dan Persistensi

    Merancang lapisan data yang benar, berperforma, dan sesuai kebutuhan: SQL, EF Core lanjutan, NoSQL, dan caching.

  24. 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.

  25. Subtopic

    Optimasi Performa EF Core

    Teknik meningkatkan performa akses data: no-tracking, projection, split queries, compiled queries, bulk update dan delete.

  26. Subtopic

    Migrasi dan Optimistic Concurrency

    Strategi migrasi database yang aman untuk produksi dan penanganan konflik penulisan dengan concurrency token.

  27. 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.

  28. Subtopic

    Micro-ORM dengan Dapper

    Menggunakan Dapper untuk query baca yang sangat kritis performa dan mengombinasikannya dengan EF Core pada pola CQRS.

  29. 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).

  30. Topic

    Caching Terdistribusi

    Strategi caching untuk sistem skala besar: cache-aside, invalidasi, stampede protection, IDistributedCache, HybridCache, dan Redis.

  31. Optional · opsional

    Event Sourcing

    Menyimpan perubahan state sebagai rangkaian event, membangun projection, serta memahami kapan pola ini layak dan kapan berlebihan.

  32. 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.

  33. Section

    Bagian 4: Pengujian dan Kualitas Kode

    Membangun strategi pengujian yang memberi kepercayaan untuk melakukan perubahan, serta praktik menjaga kualitas kode tim.

  34. Topic

    Unit Testing dan Desain Test

    Menulis unit test yang bernilai: test pyramid, test doubles, TDD, dan menghindari test yang rapuh terhadap detail implementasi.

  35. Topic

    Integration Testing dengan WebApplicationFactory dan Testcontainers

    Menguji aplikasi bersama dependensi nyata (database, broker) di dalam container untuk mendapatkan kepercayaan tinggi dengan biaya terkendali.

  36. Subtopic

    Architecture Tests dan Contract Testing

    Menegakkan aturan dependensi arsitektur secara otomatis dan memastikan kompatibilitas kontrak antar layanan.

  37. Optional · opsional

    Mutation Testing dengan Stryker.NET

    Mengukur kualitas test suite dengan mutation testing, bukan sekadar code coverage.

  38. Topic

    Clean Code, Refactoring, dan Code Review

    Mengenali code smell, melakukan refactoring aman, dan memberikan code review yang konstruktif serta konsisten.

  39. 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.

  40. 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.

  41. Section

    Bagian 5: Arsitektur Perangkat Lunak

    Inti perjalanan menuju arsitek: prinsip desain, gaya arsitektur, Domain-Driven Design, modular monolith, dan cara mendokumentasikan keputusan arsitektur.

  42. 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.

  43. Topic

    Gaya Arsitektur Aplikasi

    Membandingkan layered, Clean/Onion, Hexagonal (Ports and Adapters), dan Vertical Slice Architecture beserta trade-off masing-masing.

  44. Subtopic

    Clean Architecture dalam Praktik .NET

    Struktur solusi, pemisahan proyek, dan penempatan abstraksi infrastruktur pada Clean Architecture di .NET.

  45. Subtopic

    Vertical Slice dan CQRS

    Mengorganisasi kode per fitur dan memisahkan model baca dan tulis (CQRS) untuk kesederhanaan dan skalabilitas.

  46. Topic

    Domain-Driven Design Strategis

    Memahami domain bisnis secara mendalam: ubiquitous language, subdomain, bounded context, context mapping, dan teknik event storming.

  47. 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.

  48. Topic

    Modular Monolith

    Membangun monolith yang termodulasi berdasarkan bounded context, dengan batas modul yang ditegakkan, sebagai jalur evolusi yang aman sebelum microservices.

  49. Topic

    Atribut Kualitas, Trade-off, dan Dokumentasi Arsitektur

    Menerjemahkan kebutuhan non-fungsional menjadi keputusan arsitektur, mendokumentasikannya dengan Architecture Decision Records (ADR) dan model C4.

  50. 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.

  51. Assessment

    Assessment: Architecture Kata dan Design Review

    Kerjakan architecture kata dengan kebutuhan bisnis yang diberikan, lalu presentasikan dan pertahankan rancangan di depan reviewer.

  52. Section

    Bagian 6: Sistem Terdistribusi dan Microservices

    Merancang sistem yang tersebar di banyak layanan: konsistensi, messaging, pola transaksi terdistribusi, dan resiliensi.

  53. Topic

    Fundamental Sistem Terdistribusi

    Konsep dasar yang menentukan desain sistem terdistribusi: fallacies of distributed computing, teorema CAP dan PACELC, model konsistensi, dan idempotensi.

  54. 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.

  55. Subtopic

    Transactional Outbox dan Inbox Pattern

    Menjamin konsistensi antara perubahan database dan publikasi pesan, serta deduplikasi pesan di sisi konsumen.

  56. Subtopic

    Saga dan Transaksi Terdistribusi

    Mengoordinasikan proses bisnis lintas layanan dengan saga berbasis orkestrasi maupun koreografi, termasuk compensating action.

  57. 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.

  58. Topic

    Resiliensi dan Penanganan Kegagalan

    Membuat layanan tahan gangguan dengan retry, timeout, circuit breaker, bulkhead, dan fallback menggunakan Polly dan Microsoft.Extensions.Resilience.

  59. Optional · opsional

    .NET Aspire

    Mengorkestrasi aplikasi terdistribusi untuk pengembangan lokal, service defaults, dan dashboard telemetri dengan .NET Aspire.

  60. Optional · opsional

    Dapr untuk Aplikasi Terdistribusi

    Menggunakan building block Dapr (state, pub/sub, service invocation) untuk mengabstraksi infrastruktur terdistribusi.

  61. 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.

  62. Section

    Bagian 7: Performa, Observabilitas, dan Keamanan

    Memastikan sistem cepat, dapat diamati di produksi, dan aman dari ancaman umum.

  63. Topic

    Profiling dan Benchmarking

    Mengukur sebelum mengoptimalkan: BenchmarkDotNet untuk micro-benchmark, dotnet-counters, dotnet-trace, dan dotnet-dump untuk diagnosis, serta load testing.

  64. 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.

  65. 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.

  66. Subtopic

    Authorization Berbasis Policy dan Multi-Tenancy

    Merancang otorisasi granular dengan policy dan resource-based authorization, serta isolasi data pada aplikasi multi-tenant.

  67. Optional · opsional

    Native AOT dan Trimming

    Mengompilasi aplikasi .NET menjadi native untuk startup cepat dan footprint kecil, beserta batasan kompatibilitasnya.

  68. Assessment

    Assessment: Audit Performa dan Keamanan

    Lakukan audit terhadap aplikasi contoh: temukan masalah performa, celah keamanan, dan kekurangan observabilitas, lalu susun laporan prioritas perbaikan.

  69. Section

    Bagian 8: Cloud, Container, dan DevOps

    Mengantarkan sistem ke produksi secara andal: container, orkestrasi, CI/CD, arsitektur cloud, dan infrastructure as code.

  70. 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.

  71. 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.

  72. 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.

  73. Optional · opsional

    Infrastructure as Code dengan Bicep atau Terraform

    Mendefinisikan infrastruktur sebagai kode agar lingkungan dapat direproduksi, direview, dan diotomasi.

  74. 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.

  75. Section

    Bagian 9: Kepemimpinan Teknis dan Capstone

    Melengkapi kemampuan teknis dengan kepemimpinan, modernisasi sistem legacy, dan pembuktian akhir melalui proyek capstone arsitektur enterprise.

  76. 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.

  77. 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.

  78. 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.

  79. Assessment

    Assessment Akhir: Pertahanan Desain Arsitektur

    Presentasikan proyek capstone di hadapan panel reviewer, pertahankan keputusan arsitektur, dan jawab skenario perubahan kebutuhan secara langsung.

  80. Milestone

    Milestone: Siap Merancang Arsitektur .NET Enterprise

    Peserta mampu merancang, mendokumentasikan, dan memimpin implementasi arsitektur aplikasi .NET skala enterprise.