Tüm Mülakatlar

.NET Mülakat Soruları 2024: Kapsamlı Hazırlık Rehberi

2024 yılında en sık sorulan .NET mülakat soruları ve hazırlık stratejileri. C#, ASP.NET Core, Entity Framework konularında uzmanlaşarak hayal ettiğiniz yazılım pozisyonuna hazırlanın.

.NET Mülakat Soruları 2024: Kapsamlı Hazırlık Rehberi

.NET Mülakat Sürecine Genel Bakış

Yazılım geliştirici iş görüşmesi süreçleri günümüzde çok aşamalı yapılar haline gelmiştir. Başvurulan pozisyonun seviyesine göre değişen bu süreçlerde adayların teknik yetkinliklerinin yanı sıra problem çözme becerileri ve kültürel uyumları da değerlendirilir. Özellikle kurumsal firmalar ve teknoloji şirketleri, .NET mülakat sürecini üç ana fazda yapılandırır: İlk olarak İK görüşmesi (HR screening) ile temel motivasyon ve beklenti uyumu kontrol edilir, ardından teknik mülakat seviyesi ölçülür, son olarak da case study veya sistem tasarımı aşamaları uygulanır.

Junior, Mid-Level ve Senior pozisyonları için beklentiler dramatik olarak farklılık gösterir. Junior seviyede temel C# mülakat soruları ve algoritma bilgisi yeterli görülürken, Mid-Level için tasarım desenleri ve framework bilgisi derinlemesine sorgulanır. Senior .NET mülakat aşamalarında ise adaylardan mikroservis mimarileri, dağıtık sistem tasarımı ve teknik liderlik deneyimleri hakkında detaylı senaryolar sunmaları beklenir.

Mülakat Aşamalarında Kullanılan Teknikler

Online kodlama platformları (HackerRank, Codility, Codewars) sıklıkla ilk eleme aşamasında kullanılır ve adayların zamana karşı kod yazma becerilerini test eder. Beyaz tahta kodlama (whiteboard coding) ise yüz yüze mülakatlarda karşılaşılan en zorlayıcı tekniklerden biridir; burada syntax hatası yapmadan düşünce sürecini sesli ifade etme yeteneğiniz değerlendirilir. Canlı kodlama ortamlarında (VS Code Live Share, CodeSandbox) ise gerçek bir proje içinde hata ayıklama ve refactoring yapmanız istenebilir.

Mini Vaka Senaryosu: Ayşe, bir finans teknoloji şirketinin Mid-Level .NET Developer pozisyonuna başvurdu. İlk aşamada Codility üzerinden LINQ sorguları ve string manipulation soruları çözdü. İkinci aşamada teknik mülakat sırasında kendisine "Bir e-ticaret sepetinde indirim kuralı motoru nasıl tasarlarsınız?" sorusu yöneltildi. Ayşe, Strategy Pattern kullanarak farklı indirim algoritmalarını nasıl soyutlayacağını beyaz tahta üzerinde çizerek anlattı ve SOLID prensiplerine uygun bir yapı önerdi.

Değerlendirme Rubrikleri

Teknik mülakatlarda adaylar genellikle beş ana kritere göre puanlanır: Teknik Bilgi Derinliği (40%), Problem Çözme Yaklaşımı (25%), Kod Kalitesi ve Temizlik (15%), İletişim Becerisi (10%) ve Stres Yönetimi (10%). Junior pozisyonlarda teknik bilgi oranı %60'lara çıkarken, Senior pozisyonlarda mimari düşünme ve liderlik becerileri daha ağırlıklı hale gelir. Her soru için 1-5 arası puanlama yapılır ve toplam 70 üzeri puan genellikle bir sonraki aşamaya geçiş için yeterli görülür.

Temel C# Ve Nesne Yönelimli Programlama Soruları

C# mülakat soruları her seviyede karşınıza çıkacak temel yapı taşlarını oluşturur. Value Type ve Reference Type arasındaki farklar, bellek yönetimi (stack vs heap) konularında net bir anlayış sergilemelisiniz. Class ile Struct arasındaki farkları açıklarken, struct'ın value type olduğunu ve genellikle küçük, immutable veri yapıları için kullanıldığını, class'ın ise reference type olarak daha karmaşık davranışlar ve inheritance için tercih edildiğini belirtmelisiniz.

Abstract Class ve Interface ayrımı ise OOP mülakat soruları içinde en kritik konulardan biridir. Abstract class'lar arasında "is-a" (bir) ilişkisi kurarken, interface'ler "can-do" (yapabilir) yeteneklerini tanımlar. Örneğin bir hayvan hiyerarşisinde köpek bir memelidir (abstract class inheritance), ancak aynı zamanda yüzebilir veya uçabilir (interface implementation). Hangi senaryoda hangi yapıyı kullanacağınızı gerçek hayat örnekleriyle açıklayabilmeniz beklenir.

Kritik Konseptler Ve Örnek Sorular

Garbage Collection mekanizması ve IDisposable pattern kullanımı kaynak yönetimi açısından hayati öneme sahiptir. Unmanaged kaynaklar (dosya tutamaçları, veritabanı bağlantıları) kullanıldığında using statement veya try-finally bloklarıyla IDisposable.Dispose() metodunun çağrılması gerektiğini açıklamalısınız. Inheritance, Polymorphism ve Encapsulation prensiplerini her biri için en az bir üretim ortamı örneği vererek desteklemelisiniz.

Sık Sorulan Teknik Soru: "Bir API yanıtında JSON verisini deserialize ederken NullReferenceException alıyorsunuz. C# 8.0 nullable reference types özelliğini nasıl kullanırsınız?" Bu soruda adaydan nullable context enable ederek derleme zamanında null kontrollerini aktifleştirmesi ve ? ve ! operatörlerini doğru kullanması beklenir.

Mini Vaka Senaryosu: Mehmet, bir sağlık yazılımı şirketindeki mülakatta kendisine hasta kayıt sistemi tasarlama görevi verildi. OOP prensiplerini uygularken, Patient (Hasta) class'ının Name ve TCIdentity gibi alanları için property encapsulation kullanarak validasyon kuralları eklediğini, Insurance (Sigorta) için ise farklı sigorta türlerini temsil eden bir IInsurance interface'i ve bunu implement eden PrivateInsurance, GovernmentInsurance gibi concrete class'lar tasarladığını açıkladı. Bu yaklaşım Open/Closed prensibine uygun olarak yeni sigorta türlerinin eklenmesini kolaylaştırıyordu.

ASP.NET Core Mülakat Ve Web API Tasarımı

ASP.NET Core mülakat süreçlerinde adayların HTTP protokolü, REST prensipleri ve framework'ün sunduğu genişletilebilirlik mekanizmaları hakkında derin bilgi sahibi olması beklenir. Middleware pipeline yapısı, gelen isteklerin nasıl işlendiğini anlamak için temel bir kavramdır. Custom middleware geliştirme yeteneği, cross-cutting concerns (logging, authentication, exception handling) için kritik öneme sahiptir ve adayların RequestDelegate kullanımını bilmesini gerektirir.

Dependency Injection container'larının yaşam döngüleri (Singleton, Scoped, Transient) en sık sorulan konulardan biridir. Singleton uygulama boyunca tek instance, Scoped her HTTP request için ayrı instance, Transient ise her injection'da yeni instance oluşturur. Bu yaşam döngülerini karıştırmanın (captive dependency) ne gibi bellek sızıntılarına veya concurrency hatalarına yol açabileceğini açıklayabilmelisiniz.

Routing Ve Filter Mekanizmaları

Attribute Routing ile Conventional Routing arasındaki seçimi proje ihtiyaçlarına göre yapabilmelisiniz. RESTful API tasarlarken [Route], [HttpGet], [HttpPost] gibi attribute'ların kullanımı ve route constraint'ler ([Route("api/products/{id:int}")]) hakkında bilgi sahibi olmalısınız. Model Binding ve Validation süreçlerinde Data Annotations ([Required], [StringLength], [Range]) kullanımının yanı sıra FluentValidation gibi kütüphanelerle custom validasyon yazma deneyiminiz varsa mutlaka belirtin.

Action Filters, Exception Filters ve Authorization Filters gibi filter yapıları, pipeline içinde belirli noktalarda kod çalıştırmak için kullanılır. Örneğin bir Action Filter ile tüm controller action'larına response caching ekleyebilir veya bir Exception Filter ile merkezi hata yönetimi sağlayabilirsiniz.

Mini Vaka Senaryosu: Can, bir eğitim platformu için Web API geliştirmek üzere mülakata girdi. Kendisine "Her API çağrısında kullanıcının abonelik tipini kontrol eden ve yetkisiz erişimleri engelleyen bir mekanizma nasıl kurarsınız?" sorusu yöneltildi. Can, custom bir IAuthorizationFilter implement ederek SubscriptionCheckAttribute oluşturduğunu, bu filter'ın OnAuthorization metodunda kullanıcının claim'lerini kontrol ederek gerekli durumlarda 403 Forbidden döndürdüğünü anlattı. Ayrıca bu mantığı middleware olarak da yazılabileceğini ancak filter'ların controller seviyesinde daha granular kontrol sunduğunu ekledi.

Entity Framework Core Ve Veritabanı Yönetimi

Entity Framework soruları, veri erişim katmanı tasarımında kurumsal tecrübenizi ortaya koyar. Code First ve Database First yaklaşımları arasındaki seçim, projenin mevcut durumuna ve ekip dinamiklerine bağlıdır. Greenfield projelerde Code First ile domain-driven design yaklaşımı benimsenirken, legacy sistemlerde Database First tercih edilebilir. Migration stratejileri hakkında bilgi sahibi olmak ve production ortamlarında zero-downtime deployment için migration yönetimini nasıl yapacağınızı bilmek kritiktir.

Lazy Loading, Eager Loading ve Explicit Loading farklarını ve performans etkilerini net bir şekilde ayırt edebilmelisiniz. Eager Loading (Include() metodu) gereksiz veri çekimini önlerken, Lazy Loading N+1 Query problemine yol açabilir. Büyük veri setlerinde IQueryable ve IEnumerable arasındaki fark hayati önem taşır; IQueryable veritabanına gönderilecek SQL'i değiştirirken (deferred execution), IEnumerable belleğe veri çektikten sonra filtreleme yapar.

Performans Ve İleri Seviye Konular

LINQ sorgularında Compiled Queries kullanımı, tekrar eden sorgularda performans artışı sağlar. Transaction yönetiminde ACID prensiplerini korurken, distributed transaction senaryolarında Unit of Work pattern ile birlikte TransactionScope kullanımını bilmeniz gerekir. Optimistic concurrency için RowVersion veya Timestamp kullanımı, özellikle e-ticaret stok yönetimi gibi senaryolarda hayati öneme sahiptir.

Mini Vaka Senaryosu: Zeynep, bir bankacılık uygulaması mülakatında para transferi senaryosu ile karşılaştı. Gönderici hesaptan para eksilirken alıcı hesaba para eklenmesi gerekiyordu ve bu işlem atomik olmalıydı. Zeynep, DbContext.Database.BeginTransaction() kullanarak manuel transaction yönetimi yapabileceğini, ancak Unit of Work pattern ile repository katmanında bu işlemleri soyutlayarak daha test edilebilir bir yapı kurabileceğini açıkladı. Ayrıca transfer işlemi sırasında concurrency conflict durumunda nasıl retry mekanizması kuracağını da ekledi.

SOLID Prensipleri Ve Tasarım Desenleri

.NET mimari soruları içinde SOLID prensiplerinin uygulanması temel taşıdır. Single Responsibility Principle ile bir class'ın sadece bir değişiklik nedeni olması gerektiğini, Open/Closed Principle ile mevcut kodu değiştirmeden yeni özellikler eklenebileceğini örneklerle açıklamalısınız. Dependency Inversion Principle sayesinde üst seviye modüllerin alt seviye detaylara bağımlı olmaması gerektiğini ve ASP.NET Core'un built-in DI container'ının bu prensibi nasıl desteklediğini belirtmelisiniz.

Design pattern mülakat sorularında Repository Pattern ve Generic Repository tartışmaları sıkça gündeme gelir. Generic Repository'nin (T entity için CRUD operasyonları) kod tekrarını azalttığını ancak complex query'lerde ve transaction yönetiminde yetersiz kalabileceğini, bu nedenle specific repository'lerin veya CQRS pattern'in tercih edilebileceğini anlatabilmelisiniz. CQRS (Command Query Responsibility Segregation) ve Mediator pattern kullanımı, özellikle MediatR kütüphanesi ile birlikte, kompleks iş akışlarını nasıl basitleştirdiğini örneklerle destekleyin.

Yaratımsal Ve Davranışsal Desenler

Singleton pattern'in thread-safe implementasyonu (Lazy veya double-checked locking), Factory pattern'in object creation logic'ini encapsulate etme yeteneği ve Strategy pattern'in runtime'da algoritma değiştirme esnekliği hakkında bilgi sahibi olmalısınız. .NET implementasyonlarında bu pattern'leri hangi senaryolarda kullandığınızı (örneğin farklı ödeme gateway'leri için Strategy Pattern) somut örneklerle anlatın.

Mini Vaka Senaryosu: Burak, bir lojistik şirketinde kargo ücreti hesaplama algoritması tasarlaması istendiğinde Strategy Pattern kullandığını anlattı. ICalculateShippingStrategy interface'i ve bunu implement eden RoadShippingStrategy, AirShippingStrategy, SeaShippingStrategy class'ları oluşturarak, müşteri tipine ve aciliyet durumuna göre runtime'da farklı hesaplama algoritmalarını seçebildiklerini belirtti. Bu sayede yeni bir kargo tipi (örneğin DroneShipping) eklendiğinde mevcut kodu değiştirmek yerine sadece yeni bir strategy class'ı eklemek yetiyordu, bu da Open/Closed prensibine mükemmel bir uyumdu.

Asenkron Programlama Ve Multithreading

C# async await mülakat soruları, modern .NET uygulamalarının vazgeçilmezidir. async/await mekanizmasının state machine oluşturarak thread pool'u verimli kullanma prensibini açıklamalısınız. Task ve ValueTask arasındaki farkı, ValueTask'ın synchronous completion senaryolarında allocation overhead'ini azalttığını belirterek açıklayın. ConfigureAwait(false) kullanımının library kodlarında neden önemli olduğunu (context capture'ı önleyerek deadlock riskini azaltma) ve UI uygulamalarında neden dikkatli kullanılması gerektiğini anlatın.

Multithreading soruları kapsamında Thread Pool'un sınırlı kaynaklarını etkin kullanma, Parallel.ForEach ve PLINQ kullanım senaryoları sorulur. Deadlock ve Race Condition önleme teknikleri olarak Lock, Monitor, Semaphore, Mutex ve ReaderWriterLockSlim yapıları hakkında bilgi sahibi olmalısınız. Interlocked class'ı ile atomic operations gerçekleştirme ve Concurrent Collections (ConcurrentDictionary, ConcurrentQueue) kullanımı hakkında deneyimlerinizi paylaşın.

Bellek Yönetimi Ve Yüksek Performans

Memory Management konularında Span ve Memory tipleri, stack allocation ve array pooling kullanımı hakkında bilgi sahibi olmak fark yaratır. Stack vs Heap allocasyonu farklarını, value type'ların stack'te, reference type'ların heap'te tutulduğunu ancak closure ve async state machine gibi durumlarda stack'teki verilerin heap'e taşınabileceğini (boxing) açıklayabilmelisiniz.

Mini Vaka Senaryosu: Deniz, büyük bir dosyayı (10GB) işlemesi gereken bir senaryoda karşılaştı. Dosyayı byte[] olarak memory'e yüklemek yerine Memory ve Span kullanarak belirli chunk'lar halinde işlediğini, bu sayede heap fragmentation'ı önlediğini ve garbage collection pressure'ı azalttığını açıkladı. Ayrıca async stream'ler (IAsyncEnumerable) kullanarak dosya satırlarını asenkron olarak işleyebildiğini ve bu sayede UI thread'in bloklanmadığını belirtti.

.NET 8/9 Yenilikleri Ve Modern Geliştirme

.NET 8 mülakat soruları günümüzde sıklıkla karşılaşılan konular arasındadır. Minimal APIs, geleneksel MVC yapısına kıyasla daha az boilerplate kod ile yüksek performanslı endpoint'ler oluşturmayı sağlar. Minimal API kullanımının ne zaman tercih edilmesi gerektiğini (mikroservisler, serverless functions) ve ne zaman Controller-based yapının daha uygun olduğunu (karmaşık validation, filter zincirleri) açıklayabilmelisiniz.

Blazor Server ve WebAssembly (WASM) arasındaki farkları, SignalR bağlantısı üzerinden çalışan Blazor Server'ın düşük latency gerektiren iç ağ uygulamaları için, WASM'ın ise offline çalışabilen client-side uygulamalar için uygun olduğunu belirtmelisiniz. gRPC ve SignalR kullanım senaryolarında, real-time borsa verileri için SignalR, servisler arası yüksek performanslı iletişim için ise gRPC tercih edilebileceğini örneklerle açıklayın.

Performans Ve Deployment İyileştirmeleri

AOT (Ahead of Time) Compilation ve Native AOT, .NET 8 ile birlikte önemli performans kazanımları sunar. JIT compilation'a kıyasla startup time'ın dramatik şekilde düştüğünü ve memory footprint'in azaldığını, ancak reflection kullanımının kısıtlandığını belirtmelisiniz. Rate Limiting middleware'ı, Output Caching stratejileri ve modern authentication mekanizmaları (JWT, OAuth2, IdentityServer entegrasyonları) hakkında güncel bilgi sahibi olmak .NET Core technical interview süreçlerinde büyük avantaj sağlar.

Mini Vaka Senaryosu: Ece, yüksek trafikli bir API gateway tasarımında .NET 8'in Rate Limiting özelliklerini kullandığını anlattı. FixedWindow, SlidingWindow ve TokenBucket algoritmaları arasından farklı endpoint'ler için farklı stratejiler seçtiğini (örneğin login için strict fixed window, public data için token bucket) belirtti. Ayrıca Output Caching kullanarak sık erişilen ürün katalog verilerini cache'leyerek veritabanı yükünü %70 azalttığını ve bu sayede response time'ları düşürdüğünü ekledi.

Senior Level Sistem Tasarım Ve Mimari Soruları

Senior .NET mülakat süreçlerinde adaylardan monolithic uygulamayı mikroservislere dönüştürme stratejileri, API Gateway tasarımı, Service Discovery ve Load Balancing mekanizmaları hakkında detaylı bilgi beklenir. Ocelot veya YARP (Yet Another Reverse Proxy) kullanımı, Consul veya Eureka ile service discovery, Round Robin/Least Connection algoritmaları ile load balancing konularında deneyimlerinizi anlatmalısınız.

Distributed Caching olarak Redis kullanımı, distributed lock mekanizmaları ve pub/sub pattern uygulamaları sıkça sorulan konulardır. Message Queuing sistemleri (RabbitMQ, Azure Service Bus, AWS SQS) ile asynchronous işlem tasarımı, eventual consistency yönetimi ve Saga pattern kullanımı (orchestration vs choreography) hakkında derinlemesine bilgi sahibi olmalısınız. Event Sourcing pattern ve CQRS ile birlikte kullanımı, audit log gereksinimleri olan sistemlerde (bankacılık, sağlık) kritik öneme sahiptir.

DevOps Ve Cloud Native Uygulamalar

CI/CD pipeline tasarımında Azure DevOps, GitHub Actions veya GitLab CI kullanımı, Blue-Green deployment ve Canary release stratejileri hakkında bilgi sahibi olmak gerekir. Docker containerization ve Kubernetes orchestration konularında deployment yaml'ları yazma, Horizontal Pod Autoscaling konfigürasyonu ve readiness/liveness probe ayarları hakkında tecrübe sahibi olmanız beklenir.

Mini Vaka Senaryosu: Kerem, bir e-ticaret platformunun Black Friday yükünü kaldırabilmesi için tasarladığı mimariyi anlatırken, sipariş alma sürecini asenkron hale getirmek için Saga pattern kullandığını belirtti. Order Service'in Payment Service'e ödeme isteği gönderdiğini, başarılı olursa Stock Service'den stok düşürüldüğünü, herhangi bir adımda hata olursa compensating transaction'larla (iptal işlemleri) tutarlılığın sağlandığını açıkladı. RabbitMQ üzerinden choreographed saga kullanarak servisler arası loose coupling sağladığını ve Kubernetes üzerinde her servisi ayrı pod'larda scale edebildiğini ekledi.

Mülakat Teknikleri Ve Beyaz Tahta Kodlama Stratejileri

Yazılım mülakat hazırlığı sürecinde teknik bilginin yanı sıra iletişim becerileri de belirleyicidir. Live coding sırasında "think out loud" (sesli düşünme) tekniğini kullanmak, mülakatçının sizin problem çözme sürecinizi görmesini sağlar. Algoritma sorularına yaklaşımda önce brute force çözümü önerip, ardından Big O notation kullanarak Time ve Space Complexity analizi yapmalısınız. Örneğin O(n²) çözümü önerdikten sonra hash map kullanarak O(n) optimizasyonunu nasıl yapacağınızı açıklayın.

Davranışsal sorulara cevap verirken STAR metodu (Situation, Task, Action, Result) kullanın. "Bana zor bir bug çözme deneyiminizi anlatın" sorusunda, karşılaştığınız durumu, üstlenmeniz gereken görevi, aldığınız aksiyonları ve elde ettiğiniz somut sonuçları sırasıyla aktarın. Mülakat sonrası takip mektubu (follow-up email) göndermek ve geri bildirim isteme stratejileri profesyonelliğinizi gösterir; mülakatı hatırlatan kısa bir teşekkür notu ve tartışılan teknik bir konuya dair ek kaynak paylaşımı etkili olabilir.

Beyaz Tahta Kodlama İpuçları

Beyaz tahta veya online editor üzerinde kod yazarken syntax highlight yoktur, bu yüzden değişken isimlendirmelerine ve indentation'a ekstra dikkat edin. Kodu yazmadan önce input/output örnekleri çizin ve edge case'leri (boş liste, null değerler, maksimum integer değeri vb.) belirleyin. Test driven development yaklaşımı ile önce test case'leri yazıp sonra implementasyon yapmayı teklif edebilirsiniz.

Mini Vaka Senaryosu: Selin, bir algoritma sorusunda (iki sıralı array'ı birleştirme) önce brute force O(n log n) çözümünü sözlü olarak açıkladı, ardından two-pointer tekniği ile O(n) çözüme nasıl geçileceğini beyaz tahta üzerinde adım adım çizdi. Kod yazarken her satırı neden yazdığını sesli olarak açıkladı ve array boundary condition'larını nasıl kontrol ettiğini belirtti. Mülakat sonrasında şirketin kullandığı microservices mimarisi hakkında araştırma yaparak takip mail'inde "Tartıştığımız Saga pattern implementasyonu için Outbox pattern'i de eklemeyi düşünebilirsiniz" şeklinde değerli bir içgörü paylaştı ve bu davranışıyla olumlu izlenim bıraktı.

Sıkça Sorulan Sorular

Junior .NET Developer Mülakatında Hangi Temel Sorular Mutlaka Sorulur?

Junior seviyede genellikle OOP prensipleri, Class vs Struct farkı, Abstract Class vs Interface ayrımı, Exception handling mekanizmaları ve basit LINQ sorguları sorulur. Ayrıca REST API prensipleri ve HTTP metodları (GET, POST, PUT, DELETE) hakkında da temel bilgi beklenir. En kritik konu, adayın problem çözme yeteneğini göstermesi ve temiz kod yazma bilincine sahip olmasıdır.

.NET Mülakatında Algoritma Ve Veri Yapıları Soruları Sorulur Mu?

Evet, özellikle büyük teknoloji şirketleri ve finans sektöründe algoritma soruları sıkça sorulur. Array, List, Dictionary kullanımı, Stack ve Queue mantığı, Binary Search Tree temelleri ve sıralama algoritmaları (Quick Sort, Merge Sort) hakkında bilgi sahibi olmalısınız. Ancak .NET özelinde daha çok gerçek hayat senaryoları (veritabanı optimizasyonu, API tasarımı) üzerinden teknik derinlik ölçülür.

Entity Framework Core Kullanırken Performans Optimizasyonu İçin Hangi Tekniklerden Bahsetmeliyim?

Select sorgularında AsNoTracking() kullanımı, gereksiz Include() kullanımından kaçınma, Compiled Queries kullanımı, Batch Operations (ExecuteUpdate, ExecuteDelete) ve proper Indexing stratejilerinden bahsetmelisiniz. Ayrıca N+1 Query problemine karşı Eager Loading (Include) veya Explicit Loading kullanımı, büyük veri setlerinde Pagination (Skip/Take) uygulamaları da önemli puanlar getirir.

.NET Mülakatında İngilizce Seviyesi Ne Kadar Önemlidir Ve Teknik Terimleri Türkçe Mi İngilizce Mi Söylemeliyim?

Multinational şirketlerde İngilizce orta seviye ve üzeri (B1-C1) genellikle zorunludur. Yerli şirketlerde daha esnek davranılsa da, teknik terimleri mutlaka İngilizce bilmelisiniz. Mülakatta 'Dependency Injection', 'Middleware', 'Repository Pattern' gibi terimleri Türkçe çevirmeye çalışmak yerine orijinal haliyle kullanmak profesyonellik göstergesidir. Ancak cümle kurarken Türkçe konuşabilir, teknik kavramları İngilizce söyleyebilirsiniz (Türkçe-İngilizce karışık).

Teknik Mülakat Sırasında Bilmediğim Bir Soruyla Karşılaşırsam Ne Yapmalıyım?

Bilmediğiniz bir konuda yalan söylemeyin veya tahmin etmeye çalışmayın. Dürüstçe 'Bu konuda deneyimim sınırlı, ancak şöyle çözerdim' diyerek problem çözme yaklaşımınızı anlatabilirsiniz. Veya 'Bunu bilmiyorum ama öğrenmek için şu kaynaklara bakardım' demek, öğrenme isteğinizi gösterir. Bazı mülakatçılar bilinç olarak çok zor sorular sorar; burada tavrınız ve stres yönetiminiz değerlendirilir, cevabınızın doğruluğu kadar önemli değildir.

.NET Framework Ve .NET Core (Sonrasında .NET 5+) Arasındaki Temel Farklar Nelerdir?

.NET Framework sadece Windows'ta çalışırken, .NET Core/.NET 5+ cross-platform (Windows, Linux, macOS) desteği sunar. .NET Core daha yüksek performanslıdır, modüler bir yapıya sahiptir (sadece ihtiyaç duyulan paketler yüklenir) ve container teknolojileri (Docker) ile daha iyi entegre olur. Ayrıca .NET Core'da Dependency Injection built-in olarak gelirken, .NET Framework'te external kütüphaneler (Unity, Autofac) kullanılması gerekirdi. Güncel projelerde .NET 6/7/8 kullanımı standarttır.

Mülakatta Hangi Projelerden Bahsetmeliyim Ve Portfolyomu Nasıl Sunmalıyım?

GitHub profilinizde en az 2-3 adet temiz kod örneği bulundurun. SOLID prensiplerine uymuş, Unit Test içeren, proper documentation (README) yazılmış projeler seçin. Mikroservis mimarisi, Clean Architecture veya CQRS pattern uyguladığınız projeler varsa öne çıkarın. Proje anlatırken karşılaştığınız teknik zorlukları (challenge), çözüm sürecinizi (action) ve sonuçları (result) STAR metoduyla anlatın. E-ticaret, finans veya sağlık sektöründen gerçek hayat problemleri çözen projeler daha etkileyicidir.

Senior .NET Developer Pozisyonunda Mimari Kararlar Hakkında Nasıl Sorular Sorulur?

Senior pozisyonlarda 'Monolith mi Microservices mi tercih edersiniz?' gibi karşılaştırmalı sorular, 'Yüksek trafikli bir e-ticaret sitesinde caching stratejiniz nedir?' gibi sistem tasarım soruları ve 'Distributed transaction yönetiminde Saga pattern nasıl uygularsınız?' gibi ileri seviye konular sorulur. Ayrıca CI/CD pipeline tasarımı, veritabanı sharding/replication stratejileri, güvenlik (JWT, OAuth2, IdentityServer) konularında derinlemesine bilgi beklenir. Teknik liderlik becerileriniz ve mentörlük deneyiminiz de sorulabilir.