📌 Genel Mesleki Tecrübe ve Yetkinlik
• Soru: Yazılım geliştirme sürecinde en çok hangi zorluklarla karşılaştınız ve nasıl
çözdünüz? Cevap: “Büyük ölçekli projelerde en büyük zorluk, ekip içi iletişim ve
gereksinimlerin doğru anlaşılmasıdır. Çevik yöntemler (Scrum/Kanban)
kullanarak düzenli toplantılarla bu sorunu çözdük.”
• Soru: Yoğun ve stresli iş temposuna nasıl uyum sağlıyorsunuz? Cevap:
“Önceliklendirme ve zaman yönetimi tekniklerini kullanıyorum. Stres altında bile
dokümantasyon ve kod standartlarına bağlı kalmaya özen gösteriyorum.”
🎯 Java ve Frameworkler
• Soru: Spring Boot ile Spring MVC arasındaki fark nedir? Cevap: “Spring MVC web
uygulamaları için temel framework’tür. Spring Boot ise konfigürasyonu
kolaylaştırır, bağımlılıkları otomatik yönetir ve mikro servis geliştirmeyi
hızlandırır.”
• Soru: JavaEE/JakartaEE projelerinde hangi modüllerle çalıştınız? Cevap: “EJB,
JPA ve JMS modülleriyle çalıştım. Özellikle JPA ile veri erişim katmanını yönetip
Hibernate kullanarak ORM sağladım.”
🧩 Programlama Paradigmaları
• Soru: Nesneye Dayalı Programlama’nın (OOP) temel prensipleri nelerdir?
Cevap: “Encapsulation, Inheritance, Polymorphism ve Abstraction. Bu
prensipler kodun yeniden kullanılabilirliğini ve sürdürülebilirliğini sağlar.”
• Soru: Aspect Oriented Programming (AOP) hangi durumlarda kullanılır? Cevap:
“Logging, security, transaction management gibi çapraz kesen (cross-cutting)
konular için kullanılır.”
• Soru: Fonksiyonel programlamanın Java’daki örnekleri nelerdir? Cevap:
“Lambda ifadeleri, Stream API ve Optional sınıfı fonksiyonel programlamanın
örnekleridir.”
🛠️ Yazılım Tasarımı ve Prensipler
• Soru: SOLID prensiplerinden birini açıklayın. Cevap: “Single Responsibility
Principle: Her sınıf yalnızca tek bir sorumluluğa sahip olmalı. Bu, bakım ve test
kolaylığı sağlar.”
• Soru: Hangi tasarım kalıplarını kullandınız? Cevap: “Singleton, Factory ve
Observer kalıplarını sıkça kullandım.”
🌐 Web Servisleri ve Veri Alışverişi
• Soru: REST ve SOAP arasındaki fark nedir? Cevap: “REST hafif, JSON/XML
destekler, HTTP protokolüne dayanır. SOAP ise daha ağırdır, XML tabanlıdır ve
güvenlik/transaction gibi ek özellikler sunar.”
🏗️ Mimari ve Sistemler
• Soru: Mikro servis mimarisinin avantajları nelerdir? Cevap: “Bağımsız
ölçeklenebilirlik, bağımsız deployment, hata izolasyonu ve farklı teknolojilerin
kullanılabilmesi.”
• Soru: DevOps ve CI/CD süreçlerinde hangi araçları kullandınız? Cevap:
“Jenkins, GitLab CI/CD ve Docker/Kubernetes ile pipeline süreçlerini yönettim.”
💾 Veri Tabanları
• Soru: Oracle ve PostgreSQL arasındaki farklardan bahsedin. Cevap: “Oracle
ticari, güçlü transaction yönetimi sunar. PostgreSQL açık kaynaklıdır, JSON
desteği ve geniş eklenti ekosistemi vardır.”
• Soru: SQL performansını artırmak için hangi yöntemleri kullanırsınız? Cevap:
“Index kullanımı, query optimizasyonu, normalize/denormalize yapılar ve
caching.”
• Soru: NoSQL veri tabanlarını nerede tercih edersiniz? Cevap: “Büyük veri, esnek
şema gerektiren uygulamalar, yüksek hız ve ölçeklenebilirlik gereken
senaryolarda.”
🎨 UI/UX ve Frontend
• Soru: Kullanıcı deneyimini artırmak için nelere dikkat edersiniz? Cevap: “Basit
ve anlaşılır arayüz, tutarlı tasarım, hızlı tepki süresi ve erişilebilirlik standartları.”
• Soru: React ile [Link] arasındaki fark nedir? Cevap: “React daha esnek ve
component tabanlıdır, [Link] ise daha kolay öğrenilebilir ve daha az boilerplate
kod içerir.”
🔒 Güvenlik
• Soru: Yazılım güvenliği için hangi önlemleri alırsınız? Cevap: “Input validation,
SQL injection önleme, XSS koruması, güvenli oturum yönetimi ve OWASP
standartlarına uyum.”
⚡ Performans ve Asenkron Programlama
• Soru: Asenkron programlama neden önemlidir? Cevap: “Uygulamanın
bloklanmadan çalışmasını sağlar. Özellikle IO işlemlerinde performansı artırır.”
• Soru: Cache sistemlerini nasıl kullanırsınız? Cevap: “Redis veya Ehcache
kullanarak sık erişilen verileri bellekte tutar, performansı artırırım.”
📑 Kod Kalitesi ve Çevik Süreçler
• Soru: Refactoring yaparken nelere dikkat edersiniz? Cevap: “Kodun işlevini
değiştirmeden okunabilirliğini ve bakım kolaylığını artırırım. Testleri mutlaka
çalıştırırım.”
• Soru: Çevik yazılım geliştirme sürecinde hangi rolü üstlendiniz? Cevap:
“Scrum’da developer olarak görev aldım, sprint planlama ve daily stand-up
toplantılarına aktif katıldım.”
1. Genel mesleki deneyim ve proje yönetimi
• Temel soru: 5 yıllık mesleki tecrübenizde en kritik proje neydi, rolünüz neydi ve
hangi teknik kararları aldınız?
o Kısa model cevap: Projenin amacı, ölçeği, benim rolüm (ör. teknik lider /
kıdemli geliştirici), alınan mimari kararlar (mikroservis/monolit tercih
nedeni), kullanılan ana teknolojiler, performans/güvenlik
gereksinimlerine yönelik çözümler ve sonuçlar.
• İleri soru: Proje risklerini nasıl tespit edip yönettiniz? Kritik bir kriz örneği verin.
o Kısa model cevap: Risk analizi (istek/bağımlılıklar), önceliklendirme,
rollback/feature flag, incident response adımları, post-mortem çıktıları ve
süreç iyileştirmeleri.
• Temel soru: Yazılım geliştirme sürecinde hangi metodolojileri kullandınız?
o Kısa model cevap: Çevik (Scrum/Kanban) uygulamaları; sprint planlama,
backlog yönetimi, daily stand-up, retrospektif; test-driven development
ve CI entegrasyonu.
2. Büyük ölçekli ağ sistemleri ve altyapı yönetimi
• Temel soru: Büyük ölçekli bir ağ sisteminin tasarımında hangi konuları
önceliklendirirsiniz?
o Kısa model cevap: Yük dağılımı, ölçeklenebilirlik (horiz/vert), yüksek
erişilebilirlik, yedeklilik, güvenlik duvarları ve segmentasyon,
izleme/telemetri, yedekleme/DR.
• İleri soru: 1.000 iç kullanıcı ve 10.000 dış kullanıcı için kapasite planlaması nasıl
yapılır?
o Kısa model cevap: Trafik profili analizi, kaynak başına kullanıcı başına
ortalama yük, yatay ölçekleme stratejileri, önbellekleme, DB sorgu
optimizasyonu ve stres testi sonuçlarına göre kaynak tahsisi.
• Temel soru: Ağ güvenliği için hangi temel önlemleri uygularsınız?
o Kısa model cevap: Segmentation, least privilege, IDS/IPS, VPN, TLS,
düzenli güvenlik yamaları, erişim kontrolleri, logging ve SIEM
entegrasyonu.
3. Programlama dilleri ve nesne yönelimli temeller
• Temel soru: En az iki güncel programlama dilini söyleyin ve Java’yı diğerlerinden
ayıran özellikleri belirtin.
o Kısa model cevap: Java, Java'nın JVM taşınabilirliği, tip sistemi, zengin
ekosistem; ör. Java + JavaScript (React) veya Java + Python.
• İleri soru: OOP, AOP ve Fonksiyonel Programlama kavramlarını kısa karşılaştırın.
o Kısa model cevap: OOP: nesne ve sınıf temelli; AOP: çapraz kesen (cross-
cutting) endişelerin ayrılması (logging, transaction); Fonksiyonel: yan
etkisiz fonksiyonlar, immutability, yüksek mertebeden fonksiyonlar;
birlikte kullanılma örnekleri (Java’da lambdas + AOP ile transaction
yönetimi).
• Temel soru: SOLID prensiplerinden birini açıklayın ve örnek verin.
o Kısa model cevap: Örneğin, Single Responsibility Principle: bir sınıfın tek
bir sorumluluğu olmalı; örnek: UserService yerine UserRepository +
UserValidator ayrı sınıflar.
4. JavaEE / JakartaEE ve Spring Framework deneyimi
• Temel soru: Spring Boot ile JavaEE arasındaki temel farklar nelerdir?
o Kısa model cevap: Spring Boot minimal konfigürasyon, opinionated yapı,
embedded container; JavaEE/JakartaEE standart API seti ve uygulayıcı
bağımsızlığı; tercih sebepleri proje gereksinimine göre.
• İleri soru: Spring Boot uygulamasında bağımlılık yönetimi, konfigürasyon ve profil
kullanımını anlatın.
o Kısa model cevap: Maven/Gradle ile dependency management,
[Link]/yml, @ConfigurationProperties, Spring Profiles
(dev/prod), externalized config, secret management.
• Temel soru: Spring Transaction Management nasıl çalışır?
o Kısa model cevap: @Transactional annotation, propagation türleri,
rollback davranışı, PlatformTransactionManager kullanımı.
• İleri soru: Spring Cloud kullanarak servis keşfi ve konfigürasyon yönetimi nasıl
yapılır?
o Kısa model cevap: Service registry (Eureka/Consul), config server, config
client, load balancing (Ribbon veya Spring Cloud LoadBalancer), circuit
breaker (Resilience4j veya Hystrix pattern).
5. Web servisler: REST ve SOAP, JSON/XML
• Temel soru: REST ve SOAP arasındaki farklar nelerdir ve ne zaman SOAP tercih
edilir?
o Kısa model cevap: REST daha hafif, HTTP/JSON; SOAP daha katı
sözleşme (WSDL), güvenlik ve transactional gereksinimler olduğunda
tercih edilebilir.
• İleri soru: REST API tasarımında idempotency ve stateless prensipleri neden
önemlidir?
o Kısa model cevap: Idempotency: tekrar eden isteklerin yan etkisiz olması;
stateless: sunucu ölçeklenebilirliğini kolaylaştırır; uygulama örnekleri
(PUT idempotent, POST non-idempotent).
• Temel soru: JSON Web Token (JWT) nedir, nerede kullanılır?
o Kısa model cevap: İmzalanmış JSON yapısı; stateless authentication;
kullanılacağı yerler: microservices auth, kısa ömürlü access token.
6. Mikro servis mimarisi
• Temel soru: Mikroservis mimarisinin avantajları ve dezavantajları nelerdir?
o Kısa model cevap: Avantaj: bağımsız dağıtım, ölçeklenebilirlik, teknoloji
heterojenliği; Dezavantaj: dağıtık sistem karmaşıklığı, veri tutarlılığı,
operasyonel maliyet.
• İleri soru: Veri tutarlılığını mikroservislerde nasıl sağlarsınız?
o Kısa model cevap: Eventual consistency, saga pattern, distributed
transactions yerine compensating transactions, idempotent consumer,
event sourcing/CQRS uygun senaryolarda.
• Temel soru: Servisler arası iletişimde senkron ve asenkron yöntemleri
karşılaştırın.
o Kısa model cevap: Senkron (HTTP/REST): basit, düşük gecikme ama tight
coupling; Asenkron (message queue, Kafka): gevşek coupling,
dayanıklılık, event-driven, ancak karmaşıklık artar.
7. Versiyon kontrolü: Git
• Temel soru: Git akış modellerinden hangilerini kullanırsınız? (GitFlow, trunk-
based vb.)
o Kısa model cevap: Proje gereksinimine göre; uzun dönemli sürüm
kontrolü için GitFlow; hızlı CI/CD ve küçük deploylar için trunk-based
tercih edilebilir.
• İleri soru: Rebase ile merge arasındaki fark nedir ve hangi durumlarda rebase
kullanırsınız?
o Kısa model cevap: Merge: commit geçmişini korur; rebase: temiz lineer
geçmiş oluşturur; public branch’lerde rebase riskli, feature branch’lerde
local temizleme için uygun.
8. Veritabanları: Oracle, PostgreSQL, MSSQL, SQL
• Temel soru: İlişkisel veritabanlarında indeksleme nasıl çalışır? Hangi durumlarda
index eklemek veya kaldırmak gerekir?
o Kısa model cevap: İndeksler arama performansını artırır; yazma maliyeti
vardır; seçiciliği yüksek sütunlarda, JOIN ve WHERE’de kullanılan
sütunlarda kullan; küçük tablolar veya sık güncellenen sütunlarda dikkat.
• İleri soru: Karmaşık sorgu performansını iyileştirmek için yaptığınız optimizasyon
örnekleri?
o Kısa model cevap: Sorgu profilleme (EXPLAIN), indeks ekleme/uyarlama,
sorgu yeniden yazımı, partitioning, materialized view, cache kullanımı.
• Temel soru: Transaction isolation seviyeleri ve etkileri nelerdir?
o Kısa model cevap: Read uncommitted, Read committed, Repeatable
read, Serializable; phantom/non-repeatable read farkları; performans-
tutarlılık dengesi.
9. ORM: JPA, Hibernate
• Temel soru: JPA/Hibernate kullanırken karşılaşılan yaygın performans sorunları
nelerdir?
o Kısa model cevap: N+1 select problemi, lazy vs eager loading yanlış
kullanımı, gereksiz flush/clear, büyük transaction’lar.
• İleri soru: N+1 problemine nasıl çözüm getirirsiniz?
o Kısa model cevap: fetch join kullanımı, entity graph, batch fetching, DTO
projeksiyonları (JPQL veya Criteria).
• Temel soru: Cache stratejileri (1st level, 2nd level) nasıl çalışır?
o Kısa model cevap: 1st level: EntityManager scope; 2nd level:
SessionFactory scope (paylaşılabilir), uygun yapılandırma ile okunma
performansı artar.
10. NoSQL veritabanları
• Temel soru: NoSQL türleri ve kullanım senaryoları nelerdir?
o Kısa model cevap: Key-value (Redis) — cache/session; Document
(MongoDB) — esnek schema; Column-family (Cassandra) — büyük
yazma yoğunluğu; Graph (Neo4j) — ilişki sorguları.
• İleri soru: Bir uygulamada SQL mi yoksa NoSQL mi tercih edersiniz? Karar
kriterleri?
o Kısa model cevap: Tutarlılık gereksinimleri, sorgu karmaşıklığı, veri
modeli, ölçeklenebilirlik, transaction ihtiyacı ve erişim paternleri göz
önünde bulundurularak karar verilir.
11. UI/UX standartları ve kullanıcı deneyimi
• Temel soru: Backend geliştiricisi olarak UI/UX bilgisi neden önemlidir?
o Kısa model cevap: API tasarımı, latency/performans etkisi, hata mesajları
ve HTTP durum kodları, frontend ile iş birlikçi geliştirme, kullanılabilirlik ve
erişilebilirlik (accessibility) konularında doğru kararlar almak için.
• İleri soru: API tasarımında kullanılabilirlik için neler dikkate alınmalıdır?
o Kısa model cevap: Tutarlı endpoint naming, versioning, anlamlı HTTP
status kodları, pagination, hata formatları, dokümantasyon
(OpenAPI/Swagger).
12. Yazılım geliştirme yaşam döngüsü ve dokümantasyon
• Temel soru: Yazılım geliştirme yaşam döngüsünde hangi artefaktler ve
dokümantasyon önemlidir?
o Kısa model cevap: Requirements, architecture diagram, API contract
(OpenAPI), deployment runbook, README, data model, test plan ve post-
mortem raporları.
• İleri soru: Kod ve sistem dokümantasyonunu güncel tutmak için hangi pratikleri
uygularsınız?
o Kısa model cevap: Docs as code (OpenAPI + markdown), CI ile doküman
doğrulama, kodun yanında kısa comment’ler, otomatik API
dokümantasyonu, düzenli doc review.
13. Yazılım güvenliği ve Güvenli Yazılım Yaşam Döngüsü (SSDLC)
• Temel soru: Güvenli yazılım geliştirme sürecinde hangi adımlar olmalı?
o Kısa model cevap: Tehdit modelleme, güvenlik gereksinimleri, güvenli
kodlama pratikleri, SAST/DAST/IAST, dependency vulnerability scanning,
güvenlik testleri ve düzenli pentest.
• İleri soru: OWASP Top 10 maddelerinden birkaçını açıklayın ve nasıl önlersiniz?
o Kısa model cevap: SQL Injection — parametrized queries/ORM; XSS —
output encoding; Broken Auth — strong auth, session management;
Security misconfiguration — hardened defaults.
• Temel soru: Secret management nasıl yapılmalı?
o Kısa model cevap: Env var yerine secret manager (Vault, cloud provider
secrets), access control, rotate secrets, never commit secrets to VCS.
14. Frontend kütüphaneleri: React, [Link]
• Temel soru: React veya Vue ile backend entegrasyonu yaparken nelere dikkat
edersiniz?
o Kısa model cevap: API versioning, CORS konfigürasyonu, authentication
(token flow), efficient data fetching (cache, pagination), tutarlı error
handling.
• İleri soru: SSR ve CSR farkları ve SEO/performans açılarından etkileri?
o Kısa model cevap: SSR (server-side rendering) SEO avantajı ve ilk render
performansı; CSR (client-side) daha zengin interaktivite; uygun senaryoda
hybrid/SSR tercih edilir.
15. DevOps, CI/CD süreçleri
• Temel soru: CI/CD hattı nasıl kurulur; temel bileşenler nelerdir?
o Kısa model cevap: Build (unit test), static code analysis, artifact repo,
deployment pipeline (staging -> prod), rollback stratejisi, monitoring;
Jenkins/GitHub Actions/GitLab CI örnekleri.
• İleri soru: Canary release veya blue-green deployment nasıl çalışır?
o Kısa model cevap: Canary: küçük % trafiğe yeni sürümü verip izlemek;
blue-green: paralel ortamlar ve trafik switch; rollback kolaylığı.
16. Asenkron programlama
• Temel soru: Java'da asenkron programlama için hangi araçları kullanırsınız?
o Kısa model cevap: CompletableFuture, reactive frameworks (Project
Reactor, RxJava), ExecutorService, message brokers (Kafka/RabbitMQ).
• İleri soru: Reactive programlama ile blocking I/O arasındaki farklar nelerdir?
o Kısa model cevap: Reactive: non-blocking, backpressure, yüksek
concurrency az thread; Blocking: her istek için thread; I/O-bound yüksek
yükte reactive daha verimli ancak karmaşıklık artar.
17. Önbellekleme ve uygulama performansı
• Temel soru: Uygulama performansını artırmak için hangi önbellek stratejilerini
kullanırsınız?
o Kısa model cevap: In-memory (Local) cache (Caffeine), distributed cache
(Redis), HTTP cache headers, CDN, cache invalidation stratejileri (TTL,
write-through vs write-back).
• İleri soru: Cache tutarlılığı ve invalidation nasıl yönetilir?
o Kısa model cevap: Event-driven invalidation, cache-aside pattern, short
TTL, versioning/etag kullanımı.
18. Kod düzenleme (refactoring) ve kodlama standartları
• Temel soru: Refactoring yaparken hangi prensiplere dikkat edersiniz?
o Kısa model cevap: Küçük adımlar, birim test koruması, tek sorumluluk,
kod okunabilirliği, performans regresyonuna dikkat.
• İleri soru: Kod inceleme (code review) süreçlerinizi nasıl yapılandırırsınız?
o Kısa model cevap: Kısa PR’ler, check-list (security, tests, readability),
otomatik lint/format, peer review kuralı.
19. Çevik yazılım geliştirme süreçleri
• Temel soru: Çevik projelerde ürün sahibi (PO) ile geliştirici ekibi arasındaki
iletişimi nasıl yönlendirirsiniz?
o Kısa model cevap: Düzenli backlog refinement, acceptance criteria
netliği, demo/sprint review ile feedback loop, kullanıcı hikayelerine
odaklanma.
• İleri soru: Çevik proje yönetiminde ölçülebilir başarı kriterleri (KPI) nelerdir?
o Kısa model cevap: Velocity, lead time, cycle time, defect rate, customer
satisfaction/acceptance rate.
20. Davranışsal / temsil / takım çalışması soruları
• Temel soru: Yoğun ve stresli iş temposunda nasıl çalışırsınız?
o Kısa model cevap: Önceliklendirme, kısa molalar, görevlerin
parçalanması, ekip içi iletişim, gerektiğinde yönetime bildirim.
• Temel soru: Takım içinde anlaşmazlık yaşandığında nasıl çözersiniz?
o Kısa model cevap: Dinleme, veri odaklı karar, ortak hedefe vurgu,
gerekiyorsa teknik tartışmayı küçük PoC ile çözme.
21. Örnek teknik uygulama soruları (kısa cevaplar)
• Soru: REST endpoint’inde pagination nasıl uygularsınız?
o Cevap: limit/offset veya cursor-based pagination; büyük veri setleri için
cursor tercih edilir.
• Soru: Bir API rate limiting nasıl uygulanır?
o Cevap: Token bucket veya leaky bucket algoritmaları; gateway veya API
gateway (Kong, AWS API Gateway) ile enforcement.
• Soru: SQL’de yavaş çalışan sorgunun tanısını nasıl koyarsınız?
o Cevap: EXPLAIN plan, indeks kullanım kontrolü, IO bekleme metrikleri,
sorgu yeniden yazımı.
• Soru: Deadlock nedir ve nasıl çözülürsünüz?
o Cevap: Karşılıklı kaynak beklemesi; lock ordering, timeout, daha küçük
transaction’lar ile önleme ve monitoring.
• Soru: Memory leak nasıl tespit edilir?
o Cevap: Heap dump analizi, GC logları, profiller (VisualVM, YourKit), uzun
süre artan bellek trendleri.
• Soru: CI pipeline’da bir test flaky (aralıklı başarısız) ise ne yaparsınız?
o Cevap: Test'in deterministik olup olmadığını inceleriz, ortam
bağımlılıklarını izole ederiz, flaky test’i geçici olarak quarantinelayıp root
cause araştırması yaparız.
22. Kısa pratik örnek cevaplar (kod/davranış)
• Soru: Java’da null-safe bir örnek nasıl yazarsınız?
o Cevap: Optional kullanımı: [Link](x).map(...).orElse(...).
• Soru: Bir servisi ölçeklendirmek istiyorsunuz; atacağınız adımlar?
o Cevap: Load test ile darboğaz belirle, stateless hale getir, containerize et,
autoscaling policy, DB read-replica veya partitioning, cache ekle.
• Soru: Bir bağımlılık güvenlik açığı (vulnerability) tespit edildi; süreciniz nedir?
o Cevap: Impact assessment, upgrade veya patch, test, staged rollout,
iletişim ve kayıt.
Genel deneyim ve proje yönetimi
• Soru 1: Büyük bir projede mimari karar verirken hangi ölçütleri
önceliklendirirsiniz? Cevap: Fonksiyonel gereksinimler, ölçeklenebilirlik,
performans SLA, güvenlik gereksinimleri, ekip yetkinlikleri ve operasyonel
maliyet üzerinden trade-off analizi yaparım.
• Soru 2: Kritik bir üretim arızasında ilk 3 adımınız ne olur? Cevap: 1) Etki alanını
belirle (scope, kullanıcı/servis), 2) hızlı rollback veya trafik yönlendirme ile etkiyi
azalt, 3) log/metric toplayıp root cause için izolasyon yap.
• Soru 3: Proje risklerini nasıl takip ve raporlarsınız? Cevap: Risk register, olasılık-
etki matrisi, mitigasyon planları, periyodik risk review ve takip için
JIRA/Confluence entegrasyonu.
Büyük ölçekli ağ sistemleri ve altyapı yönetimi
• Soru 1: Yüksek erişilebilirlik için hangi katmanlarda yedeklilik kurarsınız? Cevap:
Network (multi-AZ), Load balancer, uygulama katmanı (multiple instances), veri
katmanı (replication), DNS ve depolama replikasyonu.
• Soru 2: Kapasite planlaması için hangi metrikleri kullanırsınız? Cevap: CPU/RAM,
I/O, latency, RPS/throughput, error rate, ortalama oturum süresi ve büyüme
öngörüleri; stres testleriyle doğrulama.
• Soru 3: Ağ segmentasyonu güvenliği nasıl iyileştirir? Cevap: Saldırı genişlemesini
sınırlar; minimum erişim prensibi uygular; kritik varlıkları izole edip daha sıkı
politikalar uygularsınız.
Programlama dilleri, OOP / AOP / Fonksiyonel
• Soru 1: AOP'yi hangi senaryolarda kullanırsınız? Cevap: Logging, transaction
yönetimi, security cross-cutting concern, metrik toplama gibi tekrar eden kodu
ayırmak için.
• Soru 2: Fonksiyonel programlamanın Java’daki faydası nedir? Cevap: Daha kısa,
yan etkisiz kod; stream API ile paralel işlem kolaylığı; immutability ile
concurrency hatalarının azalması.
• Soru 3: OOP tasarımında encapsulation neden önemlidir? Cevap: İç detayları
gizleyerek değişiklik etkisini sınırlar, test edilebilirlik ve bakım kolaylığı sağlar.
JavaEE / JakartaEE ve Spring Framework
• Soru 1: Spring Boot’un auto-configuration nasıl çalışır? Cevap: Classpath, bean
tanımları ve [Link] bazlı koşullu @Configuration'larla uygun
beanleri otomatik yükler.
• Soru 2: @Transactional propagation çeşitlerinden birini açıklayın. Cevap:
REQUIRES_NEW: mevcut transaction varsa onu askıya alır, yeni bir transaction
açar; bağımsız commit/rollback sağlar.
• Soru 3: Spring Boot uygulamasını production için nasıl konfigüre edersiniz?
Cevap: Profil bazlı konfigürasyon, externalized secrets, health checks, actuator,
JVM tuning ve uygun logging/monitoring ayarları.
Web servisler: REST / SOAP, JSON / XML
• Soru 1: RESTful API tasarımında resource URI prensibi nedir? Cevap: URI’ler
isimlendirme (isim) yapmalı, işlem yerine kaynakları temsil etmeli; veriler için
query parametreleri ve HTTP metodları kullanılmalı.
• Soru 2: Idempotency nedir, nasıl sağlarsınız? Cevap: Aynı isteğin tekrarından
kaynaklanabilecek yan etkilerin tek seferde gerçekleşmesi; idempotent HTTP
metodları (PUT), idempotency-key uygulaması.
• Soru 3: SOAP yerine REST tercih sebepleri nelerdir? Cevap: Daha hafif protokol,
JSON desteği, kolay tüketim; ancak güçlü sözleşme/gelişmiş güvenlik
gerekiyorsa SOAP tercih edilebilir.
Mikroservis mimarisi
• Soru 1: Veri bütünlüğünü mikroservislerde nasıl korursunuz? Cevap: Saga
pattern, event-driven compensating transactions, olay tabanlı tutarlılık ve
idempotent işlemler.
• Soru 2: Servisler arası iletişimde circuit breaker ne işe yarar? Cevap: Arızalı
downstream servise fazla yük binmesini engeller, fallback mekanizmaları sağlar
ve sistem stabilitesini artırır.
• Soru 3: Mikroserviste dağıtık izleme için hangi araçlar/tekniği kullanırsınız?
Cevap: Tracing (Jaeger, Zipkin), merkezi logging (ELK/EFK), metrik (Prometheus +
Grafana) ve correlation-id.
Versiyon kontrolü: Git
• Soru 1: Rebase yapmanın riskleri nelerdir? Cevap: Public branch'lerde rebase
yapıldığında commit history değişir, merge çakışmaları ve kayıp commit riski
doğar.
• Soru 2: Pull request incelemesinde nelere bakarsınız? Cevap: Fonksiyonellik,
test coverage, security, readability, performans, revert/rollback kolaylığı ve CI
sonuçları.
• Soru 3: Büyük binary dosyaları repoda nasıl yönetirsiniz? Cevap: Git LFS veya
artifact repository (Nexus/Artifactory) kullanarak repository'yi temiz tutarsınız.
İlişkisel veritabanları ve SQL
• Soru 1: EXPLAIN ile neyi kontrol edersiniz? Cevap: Sorgu planı, tablo tarama mı
indeks kullanımı mı, join sırası ve maliyet tahmini; darboğaz tespiti için.
• Soru 2: Index eklemenin dezavantajları nelerdir? Cevap: Yazma performansını
düşürür, depolama maliyeti doğurur ve yanlış index yanlış çalışma planına yol
açabilir.
• Soru 3: Transaction isolation seviyelerinden hangisini yüksek tutarlılık için
seçersiniz? Cevap: Serializable en katı düzeydir; tutarlılık sağlar ama performans
maliyeti yüksektir.
ORM: JPA / Hibernate
• Soru 1: N+1 problemine pratik çözümünüz nedir? Cevap: Fetch join ile ilişkileri
tek sorguda çekmek, batch fetching veya DTO projeksiyon kullanmak.
• Soru 2: First-level ve second-level cache farkı nedir? Cevap: First-level
EntityManager scope ile sınırlı; second-level process/cluster scope için
konfigüre edilebilir ve paylaştırılabilir.
• Soru 3: Lazy loading neden tehlikeli olabilir? Cevap: Lazy init hatası (detached
entity) veya beklenmeyen ekstra sorgulara (N+1) yol açabilir; transaction scope
ve fetch stratejisi dikkatli seçilmeli.
NoSQL veritabanları
• Soru 1: Key-value store (Redis) hangi senaryolarda idealdir? Cevap: Cache,
session store, hızlı TTL bazlı veriler ve basit lookup gereksinimleri.
• Soru 2: Document DB (MongoDB) tercih kriterleri nelerdir? Cevap: Esnek şema,
hızlı geliştirme, JSON-benzeri belgeler ve heterojen veri modelleri.
• Soru 3: Cassandra gibi column-family DB’de sorgu tasarımında nelere dikkat
edilir? Cevap: Sorgu-odaklı modelleme; partition key seçimi ve read/write
pattern'larına göre modelleme yapılmalı.
UI / UX bilgisi (backend perspektifi)
• Soru 1: API hata mesajları nasıl tasarlanmalı? Cevap: Anlamlı, hata kodu +
kullanıcı/detal bilgi ve geliştirici için trace-id içermeli; dokümante edilmiş format
(RFC 7807).
• Soru 2: API versioning hangi yöntemlerle yapılır? Cevap: URI versioning (/v1/),
header versioning veya content negotiation; geriye dönük uyumluluğa dikkat.
• Soru 3: Backend olarak erişilebilirlik (accessibility) konusunda neler
sağlayabilirsiniz? Cevap: Semantic API responses, doğru HTTP status kodları,
performans (düşük latency) ve hata geri bildirimleri ile frontend'in erişilebilir
komponentler oluşturmasına yardımcı olmak.
Yazılım geliştirme yaşam döngüsü ve dokümantasyon
• Soru 1: API dokümantasyonu otomatik nasıl tutulur? Cevap: OpenAPI/Swagger
anotasyonları ve CI ile doküman üretimi; contract-first yaklaşımla sürdürme.
• Soru 2: Deployment runbook’unda hangi kritik bilgiler olmalı? Cevap: Adımlar,
rollback talimatları, beklenen süreler, kritik kontroller ve kontak bilgileri.
• Soru 3: Kod tabanında mimari değişiklikleri nasıl belgelersiniz? Cevap:
Architecture decision records (ADR), versiyonlu diyagramlar ve ilgili PR’larda kısa
açıklama.
Yazılım güvenliği ve SSDLC
• Soru 1: OWASP Top 3’ten SQL Injection’u nasıl önlersiniz? Cevap: Parametrized
queries/PreparedStatement, ORM kullanımı ve input validation/whitelisting.
• Soru 2: Bağımlılık yönetiminde vulnerability scanning nasıl entegre edilir? Cevap:
CI aşamasında SCA araçları (Sonar, Snyk, OWASP Dependency-Check) ve pull
request politikası ile blocking.
• Soru 3: Secrets yönetimi için en iyi uygulama nedir? Cevap: Secret manager
(Vault/Cloud Secrets), access control, audit log ve rotasyon.
Frontend kütüphaneleri: React / [Link] (backend entegrasyon odaklı)
• Soru 1: CORS sorunlarını nasıl çözersiniz? Cevap: Sunucu tarafında doğru
Access-Control-Allow-* header’ları, preflight ayarları ve güvenli origin listesi.
• Soru 2: API’dan gelen veriyi frontend için nasıl optimize edersiniz? Cevap:
Pagination, projection/fields selection, caching, compress (gzip/brotli) ve
minimal payload.
• Soru 3: SSR ihtiyaçlı bir uygulamada backend ne sağlamalı? Cevap: Renderable
endpoint’ler, SEO meta verileri, hızlı response ve cacheable HTML/fragment.
DevOps, CI/CD süreçleri
• Soru 1: CI pipeline güvenilirliği için hangi kontrolleri zorunlu kılarsınız? Cevap:
Unit/integration test, static analysis, dependency scan, build artifact signing ve
deployment approval gating.
• Soru 2: Blue-green deployment avantajı nedir? Cevap: Kesintisiz switch ve hızlı
rollback imkanı; production değişikliğini riskleri azaltarak yönetir.
• Soru 3: Canary release nasıl izlenir? Cevap: Canary için metrik (errors, latency,
business metrics) takip, log/trace correlation ve gradual traffic increase.
Asenkron programlama ve reaktif yaklaşımlar
• Soru 1: CompletableFuture ile temel kullanım örneği nedir? Cevap: async task
başlat, thenApply/thenAccept ile zincirleme, exceptionally ile hata yönetimi.
• Soru 2: Backpressure nedir, neden önemlidir? Cevap: Üretici-tüketici hız
farkında tüketiciyi korur; bellek taşmasını ve gecikmeyi önler.
• Soru 3: Reactive (Project Reactor) ile blocking kodu nasıl izole edersiniz? Cevap:
Blocking I/O için publishOn/subscribeOn ile scheduler ayırma veya blocking
kodu ayrı thread pool’unda çalıştırma.
Önbellekleme ve uygulama performansı
• Soru 1: Cache-aside pattern nasıl çalışır? Cevap: Uygulama önce cache’i kontrol
eder; yoksa DB’den çekip cache’e yazar; invalidation uygulamaya bırakılır.
• Soru 2: Distributed cache tutarlılığını sağlamak için ne kullanırsınız? Cevap:
Short TTL, event-driven invalidation veya cache versioning; kritik veride write-
through/through-through stratejileri.
• Soru 3: Bir endpoint’in latençyini azaltmak için ilk yapılacak kontrol nedir?
Cevap: Profilleme (tracing), hotspot olan DB sorguları veya dış servis çağrılarını
kontrol et ve cache/optimize uygula.
Kod düzenleme (refactoring) ve kodlama standartları
• Soru 1: Refactoring öncesi hangi güvenlik ölçütlerini alırsınız? Cevap: Kapsamlı
birim/integrasyon testleri, küçük adımlarla commit, CI pipeline ile anında
doğrulama.
• Soru 2: Kod standardı ihlallerini otomatik nasıl yakalarsınız? Cevap:
Linter/formatter (Checkstyle/PMD/SpotBugs, Prettier/ESLint) CI entegrasyonu
ile.
• Soru 3: Büyük PR’larda nasıl yönetim yaparsınız? Cevap: PR’ı mantıksal küçük
parçalara böl, review checklist ve otomatik test gate kullan.
Çevik yazılım geliştirme süreçleri
• Soru 1: Backlog refinement sırasında nelere odaklanırsınız? Cevap: Acceptance
criteria netliği, story boyutu, bağımlılıkların belirlenmesi ve test koşullarının
tanımlanması.
• Soru 2: Sprint failure nedenleri ve çözüm yaklaşımınız? Cevap: Overcommit,
belirsiz gereksinimler, teknik engeller; retrospektifte root cause analiz ve işlem
planı.
• Soru 3: Agile ekip performansını nasıl ölçersiniz? Cevap: Lead time, cycle time,
sprint predictability, defect rate ve customer acceptance oranı.
Davranışsal / temsil / takım çalışması (kısa teknik odaklı)
• Soru 1: Farklı görüşteki iki geliştirici arasındaki teknik anlaşmazlığı nasıl
çözersiniz? Cevap: Veri odaklı PoC, küçük deney ve sonuçlara göre karar;
gerekirse teknik lider veya mimar kararı.
• Soru 2: Hızlı öğrenme yeteneğinizi sınayan bir örnek verin. Cevap: Yeni bir
teknolojiyle kısa sürede üretime geçmek için hızlı PoC, knowledge sharing ve
dokümantasyon oluşturduğumu anlatın.
• Soru 3: Dokümantasyon önemini nasıl uygulamaya geçirirsiniz? Cevap: PR’lara
doc checklist ekleme, otomatik OpenAPI üretilmesi ve ADR tutma pratikleri.
Genel deneyim ve proje yönetimi
1. Büyük bir projede mimari karar verirken hangi kriterleri değerlendirirsiniz? Cevap:
Fonksiyonel gereksinimler, performans SLA, ölçeklenebilirlik, güvenlik, maliyet,
ekip yetkinliği, operasyonel karmaşıklık ve bağımlılıklar.
2. Teknik lider olarak mimari kararı nasıl belgelersiniz? Cevap: Architecture
Decision Record (ADR), bileşen diyagramları, veri akış şemaları, non-functional
requirement listesi ve risk/alternatif değerlendirmesi.
3. Release planı hazırlarken hangi adımları atarsınız? Cevap: Versiyon belirleme,
rollback stratejisi, migration planları, test/qa takvimi, iletişim ve onay akışları.
4. Kritik üretim arızasında ilk 3 aktiviteniz nedir? Cevap: Etki analizi (scope),
hafifletme (trafik yönlendirme/rollback), telemetri/log toplama ve izole ederek
root cause analizi.
5. Teknik borcu nasıl yönetirsiniz? Cevap: Teknik borç envanteri, önceliklendirme
(risk/etki), refactor planı, sprint ayırma ve ölçüm (borç metriği).
6. Bir projenin başarısını hangi KPI’larla ölçersiniz? Cevap: Deployment frequency,
lead time for changes, mean time to recovery (MTTR), defect rate, customer
acceptance rate.
7. Stakeholderlarla anlaşmazlık olduğunda nasıl ilerlersiniz? Cevap: Gereksinimleri
netleştirip veriyle desteklenen alternatifler sunarım, trade-off’ları gösterir ve
karar noktalarını yazılıya dökerim.
8. Proje risklerini nasıl takip edersiniz? Cevap: Risk register, olasılık-etki matrisi,
mitigasyon planları ve periyodik risk review toplantıları.
9. Outsourcing veya üçüncü parti kullanım kararını neye göre alırsınız? Cevap:
Maliyet, çekirdek olmayan iş olup olmadığı, güvenlik/uyumluluk, entegrasyon
maliyeti ve uzun vadedeki bağımlılık riski.
10. Başarısız bir teslimattan sonra hangi adımları uygularsınız? Cevap: Post-
mortem, root-cause tespiti, düzeltici önlemler, süreç güncellemeleri ve
öğrenilen derslerin paylaşılması.
Büyük ölçekli ağ sistemleri ve altyapı yönetimi
1. Multi-AZ tasarımının faydası nedir? Cevap: Bölgesel arızalara karşı dayanıklılık,
düşük kesinti riski ve yük dağılımı.
2. Load balancing için hangi stratejiler kullanılabilir? Cevap: Round-robin, least-
connections, IP-hash, weighted balancing ve health-check tabanlı yönlendirme.
3. Kapasite planlamasında hangi metrikler kritiktir? Cevap: RPS/throughput,
latency, CPU, RAM, disk I/O, connection counts ve trafik büyüme öngörüleri.
4. Network segmentasyonu neden önemlidir? Cevap: Saldırının yayılmasını
engeller, least privilege uygular ve kritik varlıkları izole eder.
5. High throughput gerektiren uygulama için hangi ağ ayarlarını yaparsınız? Cevap:
Jumbo frames, TCP tuning (window size), connection pooling, load balancer
optimizasyonu ve segmentasyon.
6. Disaster recovery planında olmazsa olmazlar nelerdir? Cevap: RPO/RTO
tanımları, yedekleme frekansı, offsite replikasyon, test edilmiş recovery runbook
ve iletişim planı.
7. Ağ güvenliği için hangi temel kontroller uygulanır? Cevap: Firewall/ACL, IDS/IPS,
VPN, şifreleme (TLS), MFA ve düzenli yamalama.
8. Monitoring/observability için hangi katmanlara bakarsınız? Cevap: Infrastructure
metrics, application metrics, logs, traces ve user-experience (synthetic checks).
9. Ağ performans sorunu tespitinde ilk adım nedir? Cevap: Telemetri kontrolü
(latency, packet loss), traceroute/latency heatmap ve bottleneck lokasyonunu
izole etme.
10. Büyük kullanıcı sayısına sahip bir servisi ölçeklendirirken önceliğiniz ne olur?
Cevap: Stateles hale getirme, horizontal scaling, cache layer, DB ölçeklendirme
ve asenkron işlem kullanımı.
Programlama dilleri, OOP / AOP / Fonksiyonel
1. AOP nerede tercih edilmelidir? Cevap: Logging, security, transaction yönetimi
gibi cross-cutting concern’larda kod tekrarını azaltmak için.
2. Java’da fonksiyonel programlamanın temel avantajı nedir? Cevap: İmmutability
ve yan etkisiz fonksiyonlarla daha güvenli concurrency ve kısa, ifade odaklı kod.
3. OOP’de polymorphism ne işe yarar? Cevap: Farklı sınıfların ortak arayüzü
sayesinde esnek ve genişletilebilir tasarım sağlar.
4. Encapsulation neden önemlidir? Cevap: İç detayları saklayarak değişiklik
maliyetini düşürür ve API kararlılığı sağlar.
5. AOP ile transaction yönetimi örneği verin. Cevap: @Transactional anotasyonu ile
metot çevresinde transaction başlatma/commit/rollback işlemlerini aspect
olarak yönetme.
6. Fonksiyonel akışta immutability nasıl sağlanır? Cevap: Final/immutable sınıflar,
Stream API ile yan etkisiz dönüşümler ve kopya-modify pattern kullanımı.
7. OOP anti-patternlerinden birine örnek nedir? Cevap: God Object — tek sınıfın
çok fazla sorumluluk alması, test ve bakım problemleri yaratır.
8. Lambda ifadelerinin dezavantajı nedir? Cevap: Karmaşık lambda’lar
okunabilirliği düşürebilir ve debug zorluğu yaratabilir.
9. Aspect’lerin performans etkisini nasıl azaltırsınız? Cevap: Aspect kapsamını
daraltma, conditional pointcut kullanma ve kritik path’lerde aspect kullanımını
sınırlama.
10. Fonksiyonel programlama ile exception handling nasıl ele alınır? Cevap:
Try/Result/Optional tipi yaklaşımları, checked exception’leri wrapper’lar ile
taşıma ve stream içinde istisna dönüşümleri.
JavaEE / JakartaEE ve Spring Framework
1. Spring Boot auto-configuration nasıl tetiklenir? Cevap: Classpath üzerinde
bulunan starter’lar, Conditional anotasyonları ve [Link] kriterleri
ile.
2. @Transactional propagation REQUIRES_NEW ne yapar? Cevap: Var olan
transaction’ı askıya alır ve yeni, bağımsız bir transaction başlatır.
3. Spring Bean scope’larından birkaçını söyleyin. Cevap: Singleton, Prototype,
Request, Session, Application.
4. Spring Boot’ta profil nasıl kullanılır? Cevap: application-{profile}.properties/yml
ile environment-specific konfigürasyon, @Profile anotasyonu ile conditional
bean yükleme.
5. Dependency Injection’ın faydaları nelerdir? Cevap: Gevşek bağlılık, test
edilebilirlik ve yeniden kullanılabilir konfigürasyon.
6. Spring Security ile temel authentication nasıl sağlanır? Cevap:
WebSecurityConfigurerAdapter veya SecurityFilterChain ile konfigürasyon,
UserDetailsService ve PasswordEncoder kullanımı.
7. Actuator ne işe yarar? Cevap: Health, metrics, info, env, thread dump gibi
operational endpoint’ler sağlayarak uygulama durumunu izleme.
8. Spring Boot uygulamasını prod ortamında performans için nasıl tune edersiniz?
Cevap: JVM tuning (heap, GC), connection pool ayarları, thread pool ve uygun
logging seviyeleri.
9. JavaEE/JakartaEE ile Spring arasındaki temel fark nedir? Cevap: JakartaEE
standart bir API seti sunar; Spring daha opinionated, geniş ekosistem ve kolay
konfigürasyon sağlar.
10. Spring Cloud kullanarak servis keşfi nasıl yapılır? Cevap: Eureka/Consul gibi
service registry ile servislerin dinamik kayıt ve discovery mekanizması sağlanır.
Web servisler: REST / SOAP, JSON / XML
1. RESTful URI tasarımında nelere dikkat edilir? Cevap: Kaynak odaklı
isimlendirme, tutarlı pluralization, versioning ve query parametreleri ile
filtreleme.
2. Idempotency nedir; POST için nasıl uygulanır? Cevap: Aynı isteğin tekrarının tek
bir etki üretmesi; idempotency-key header ve server-side deduplication ile.
3. JSON vs XML tercih kriterleri nelerdir? Cevap: JSON daha hafif ve JavaScript
uyumlu; XML güçlü tip/sözleşme ve namespace/WS-* ihtiyaçlarında tercih edilir.
4. HATEOAS ne demektir ve ne zaman kullanılır? Cevap: Resource’lar içinde
navigasyon linkleri sağlayarak client’ı yönlendirme; kompleks REST API’lerde
hipermedia desteklemek amaçlı.
5. REST API versiyonlama nasıl yapılır? Cevap: URI versioning (/v1/), header
versioning veya content negotiation yöntemleri.
6. SOAP avantajı hangi durumlarda öne çıkar? Cevap: Güçlü sözleşme (WSDL),
WS-Security, işlem garantileri ve enterprise integration gereksinimlerinde.
7. Rate limiting nasıl uygulanır? Cevap: Token bucket veya leaky bucket
algoritmaları, API gateway üzerinde enforcement.
8. Güvenli REST API için hangi temel önlemler alınır? Cevap: TLS,
authentication/authorization, input validation, rate limiting, proper error
handling ve logging.
9. Pagination için hangi yöntemleri önerirsiniz? Cevap: Offset/limit (basit) veya
cursor-based pagination (büyük datasetlerde daha performanslı).
10. API dokümantasyonu nasıl otomatik tutulur? Cevap: OpenAPI/Swagger
anotasyonları kullanılarak CI ile otomatik doküman üretimi.
Mikroservis mimarisi
1. Mikroservislerin temel avantajları nelerdir? Cevap: Bağımsız deploy,
ölçeklenebilirlik, teknoloji heterojenliği ve küçük ekiplerle yönetim.
2. Mikroservislerin yaygın dezavantajları neler? Cevap: Dağıtık sistem karmaşıklığı,
operasyonel maliyet, veri tutarlılığı zorlukları ve dağıtık izleme ihtiyacı.
3. Saga pattern nedir? Cevap: Dağıtık transaction’lar yerine adım adım local
transaction’lar ve gerektiğinde telafi (compensating) işlemleri kullanan model.
4. Servisler arası iletişimde Kafka neden tercih edilir? Cevap: Asenkron
mesajlaşma, yüksek throughput, dayanıklılık ve event-driven mimari için
uygunluk.
5. API Gateway’in rolü nedir? Cevap: Tek giriş noktası olarak routing, auth, rate-
limiting, load balancing ve protocol translation görevleri.
6. Circuit breaker ne zaman kullanılmalı? Cevap: Downstream servisin gecikmesi
veya hata eğilimi olduğunda sistem stabilitesini korumak için.
7. Konfigürasyon yönetimini mikroserviste nasıl yaparsınız? Cevap: Centralized
config server (Spring Cloud Config), secret manager ve profile tabanlı
yapılandırma.
8. Transactional consistency mikroserviste nasıl ele alınır? Cevap: Eventual
consistency, sagalar, idempotency ve event-sourcing/CQRS gerektiğinde.
9. Deployment stratejileri mikroservisler için hangileri uygundur? Cevap: Canary,
blue-green, rolling update ve trunk-based deploy ile küçük, sık sürümler.
10. Distributed tracing neden önemli? Cevap: Servisler arası çağrıların takibini
sağlar, latency kaynaklarını ve hataların konumunu bulmayı kolaylaştırır.
Versiyon kontrolü: Git
1. GitFlow ve trunk-based arasındaki temel fark nedir? Cevap: GitFlow uzun
yaşamlı branch ve release odaklı; trunk-based küçük frequent commit ve
feature-branch minimal yaşam ile CI/CD uyumlu.
2. Rebase ile merge farkı nedir? Cevap: Rebase commit geçmişini linearize eder;
merge geçmişi korur. Public branch’lerde rebase risklidir.
3. Büyük binary dosyalar için en iyi uygulama nedir? Cevap: Git LFS veya artifact
repository kullanımı.
4. Pull request incelemesinde temel kontrol listesi nedir? Cevap: Fonksiyonellik,
test coverage, security, readability, performans etkisi ve CI passing.
5. Tagging ve release yönetimi nasıl yapılır? Cevap: Semantic versioning
([Link]) ve release notes ile tag oluşturma.
6. Merge conflict çözümünde izlenecek adımlar nelerdir? Cevap: Konflikt
dosyalarını incele, doğru değişiklikleri seç, test çalıştır ve küçük commit’lerle
düzelt.
7. Branch stratejisi seçerken nelere bakarsınız? Cevap: Takım büyüklüğü, release
frekansı, CI/CD otomasyonu ve rollback gereksinimleri.
8. Commit mesaj yazım kuralları ne olmalı? Cevap: Kısa başlık, boş satır, açıklayıcı
gövde; ilgili ticket/id referansı ve tutarlı format.
9. CI ile entegrasyon için hangi Git pratikleri önemlidir? Cevap: Küçük PR’lar,
otomatik test gating, branch koruma kuralları ve mandatory code review.
10. Blame komutu hangi durumda faydalıdır? Cevap: Kod değişikliğinin kim ve neden
yapıldığını incelemek, geçmiş kararları anlamak için.
İlişkisel veritabanları ve SQL
1. EXPLAIN çıktısından hangi bilgileri alırsınız? Cevap: Sorgu planı, kullanılan
indeksler, join stratejileri ve tahmini maliyet.
2. Index ne zaman eklenmemeli? Cevap: Çok sık güncellenen sütunlar, küçük
tablolar veya düşük seçiciliğe sahip sütunlarda.
3. Transaction isolation seviyeleri nelerdir? Cevap: Read uncommitted, Read
committed, Repeatable read, Serializable.
4. Deadlock nasıl tespit edilir ve çözülür? Cevap: DB deadlock logları, timeout ve
lock ordering; çözüm olarak transaction sürelerini kısaltma ve tutarlı lock sırası.
5. Partitioning ne zaman kullanılır? Cevap: Çok büyük tablolar, arşivleme
gereksinimi ve sorgu performansı için.
6. Sorgu optimizasyonunda ilk adım nedir? Cevap: EXPLAIN/PROFILING ve en çok
zaman/IO alan sorgu adımlarını tespit etmek.
7. OLTP ile OLAP arasındaki fark nedir? Cevap: OLTP transactional, düşük latency;
OLAP analytical, büyük veri setleri ve raporlama odaklı.
8. Concurrency sorunlarını nasıl minimize edersiniz? Cevap: Kısa transaction’lar,
uygun isolation seviyesi, optimistic locking veya row versioning.
9. Index maintenance için hangi periyotlar düşünülür? Cevap: Veri değişim oranına
bağlı: reindex, stats update ve partition yönetimi düzenli aralıklarla.
10. Read replica kullanmanın dezavantajı nedir? Cevap: Veri gecikmesi (replication
lag), eventual consistency ve ekstra operasyonel maliyet.
ORM: JPA / Hibernate
1. N+1 problemine en hızlı çözüm nedir? Cevap: Fetch join ile ilişkileri sorguda
eager çekmek veya batch fetching kullanmak.
2. First-level cache nedir? Cevap: EntityManager/session ömrü boyunca var olan
bellek içi cache.
3. Second-level cache nasıl çalışır? Cevap: SessionFactory scope’unda paylaşılan
cache; uygun yapılandırma ile okunma performansı sağlar.
4. Lazy loading sorunlarını nasıl önlersiniz? Cevap: DTO projeksiyonları, fetch join
veya transaction scope’unu genişletme ile.
5. JPA’da optimistic locking nasıl uygulanır? Cevap: @Version alanı ile versiyon
kontrolü, concurrent update durumda OptimisticLockException fırlatılır.
6. Bulk update neden dikkat gerektirir? Cevap: Persistence context ile uyumsuzluk
(entity cache stale) ve flush/clear yönetimi gerekir.
7. Entity lifecycle event’leri nelerdir? Cevap: @PrePersist, @PostPersist,
@PreUpdate, @PostLoad vb.
8. Native query vs JPQL ne zaman tercih edilir? Cevap: JPQL portable ve entity
odaklı; performans/DB özellikleri için kompleks sorgular native query ile.
9. Hibernate batch fetching nasıl konfigüre edilir? Cevap:
hibernate.default_batch_fetch_size veya @BatchSize ile batch fetch boyutu
ayarlanır.
10. ORM kullanırken performans testleri nasıl yapılır? Cevap: Realistic load
senaryoları, SQL log analizi, heap and GC profiling ve N+1 kontrolü.
NoSQL veritabanları
1. Redis hangi senaryolarda idealdir? Cevap: Cache, session store, rate limiting,
leaderboards ve TTL gerektiren veriler.
2. MongoDB’nin avantajı nedir? Cevap: Esnek şema, kolay yatay ölçeklenebilirlik ve
JSON-benzeri doküman yapısı.
3. Cassandra’da modelleme nasıl olmalı? Cevap: Sorgu-odaklı modelleme;
partition key seçimi ve read/write pattern’larına göre dizayn.
4. Graph DB hangi problemlere uygundur? Cevap: İlişki yoğun sorgular,
recommendation, social graph ve shortest-path hesapları.
5. Eventual consistency ne demektir? Cevap: Sistem sonunda tutarlı hale gelir;
anlık tutarlılık garanti edilmez.
6. NoSQL’de transaction destekleri nasıldır? Cevap: Çoğu NoSQL sınırlı veya
eventual; bazıları (MongoDB, Cosmos) multi-document transaction desteği
sunar.
7. Sharding ne zaman gereklidir? Cevap: Tek node üzerinden ölçeklenemeyecek
kadar veri veya throughput olduğunda.
8. NoSQL seçerken hangi kriterler önemlidir? Cevap: Veri modeli uyumu, sorgu
paternleri, ölçeklenebilirlik, tutarlılık gereksinimi ve operational maturity.
9. TTL ve eviction politikaları nasıl kullanılır? Cevap: Kısa ömürlü cache verileri için
TTL; memory pressure için LRU/LFU eviction.
10. Backup/restore NoSQL’de dikkat edilmesi gereken nokta nedir? Cevap:
Snapshot tutarlılığı, incremental backup, restore testleri ve cluster topology göz
önünde bulundurulmalıdır.
UI / UX bilgisi (backend perspektifi)
1. API hata mesajlarında hangi alanlar olmalı? Cevap: Hata kodu, kısa mesaj, detay
(developer), trace-id ve kullanıcıya yönelik öneri.
2. API performansı UX’i nasıl etkiler? Cevap: Yüksek latency kötü kullanıcı
deneyimi; hızlı API’ler daha akıcı UI ve düşük abandonment sağlar.
3. Backend hangi formatlarla frontend’e yardımcı olmalı? Cevap: Minimal payload,
projection/fields seçimi, pagination ve tutarlı tarih/locale formatları.
4. Accessibility açısından backend ne sağlayabilir? Cevap: Semantic error
messages, doğru status kodları, metadata ve hızlı response ile frontend’in
erişilebilir komponentler oluşturmasını destekler.
5. API versioning kullanıcı deneyimini nasıl etkiler? Cevap: Geriye dönük uyumluluk
sağlar; sürüm geçişleri düzgün yapılmazsa frontend kırılmaları olur.
6. API latency bilgisi nasıl sunulmalı? Cevap: Health/metrics endpoint’leri ile
monitoring; frontend için cache directives ve CDN tavsiyeleri.
7. HATA kod standardı nasıl olmalı? Cevap: HTTP durum kodlarına uyumlu,
uygulama spesifik error kodları ve OpenAPI ile dokümante.
8. Backend, frontend performans testlerinde nasıl rol alır? Cevap: API load testleri
sağlama, mock veriler sunma ve contract/response time garantileri.
9. UX odaklı API tasarımında ortak hata nelerdir? Cevap: Overfetching, inconsistent
naming, gereksiz büyük payload ve zayıf error messages.
10. API için contract-first yaklaşımın faydası nedir? Cevap: Clear expectations,
paralel geliştirme, otomatik dokümantasyon ve geriye dönük uyumluluk
planlaması.
Yazılım geliştirme yaşam döngüsü ve dokümantasyon
1. ADR nedir ve ne için kullanılır? Cevap: Architecture Decision Record; önemli
mimari kararları, alternatifleri ve gerekçeleri belgelemek için.
2. API contract neden önemli? Cevap: Tüketici ve sağlayıcı arasında net beklenti,
sürüm kontrolü ve otomatik test/dokümantasyon sağlar.
3. Deployment runbookunda hangi bilgiler mutlaka olmalı? Cevap: Adımlar,
rollback talimatları, beklenen etkiler, sorumlular ve kontroller.
4. Dokümantasyonu güncel tutmak için ne yaparsınız? Cevap: Docs-as-code, CI ile
otomatik doküman üretimi, PR’larda doc checklist zorunluluğu.
5. Test planında hangi seviyeler olmalıdır? Cevap: Unit, integration, contract, E2E,
load/stress ve security tests.
6. Requirement traceability neden önemlidir? Cevap: Gereksinimlerden testlere ve
teslimata kadar izlenebilirlik sağlar, eksik veya değişen gereksinimlerin etkisini
gösterir.
7. Kod ve sistem dokümantasyonu için iyi bir lokasyon stratejisi nedir? Cevap: Repo
içinde README/CONTRIBUTING, merkezi wiki/Confluence ve OpenAPI spec.
8. Rollback prosedürü nasıl test edilir? Cevap: Partiql rollback dry-run, staging
testleri ve restore-proof çalıştırma.
9. Release notes nasıl hazırlanmalı? Cevap: Kullanıcı odaklı değişiklikler, migration
notları, known issues ve rollback adımları.
10. Continuous documentation uygulaması nasıl kurulur? Cevap: CI’de doküman
derleme, OpenAPI/Swagger otomatik üretim ve PR gate ile doc review.
Yazılım güvenliği ve SSDLC
1. Tehdit modelleme sürecinin ilk adımı nedir? Cevap: Varlık/attack surface
identification ve trust boundaries belirleme.
2. SAST ve DAST arasındaki fark nedir? Cevap: SAST statik kod analizi; DAST
runtime uygulamayı test eden dinamik tarama.
3. OWASP Top 10’den XSS nasıl önlenir? Cevap: Output encoding, input validation,
CSP ve templating engine’lerin doğru kullanımı.
4. SQL Injection’a karşı en etkili önlem nedir? Cevap: Parametrized
queries/PreparedStatements ve ORM kullanımı.
5. Dependency vulnerability scanning nasıl otomatikleştirilir? Cevap: CI pipeline’a
SCA araçları ekleyip PR’larda blocking policy uygulamak.
6. Secret management prensipleri nelerdir? Cevap: Merkezi secret store, least
privilege, audit ve düzenli rotasyon.
7. Güvenli kodlama standartları nasıl uygulanır? Cevap: Kılavuzlar, kod
incelemeleri, linters ve güvenlik eğitimleri.
8. Penetrasyon testleri ne sıklıkla yapılmalı? Cevap: Büyük release’lerde, kritik
değişiklik sonrası ve periyodik (en az yıllık) olarak.
9. Security incident response planında hangi roller olmalı? Cevap: Incident
commander, technical lead, communication owner ve legal/compliance
temsilcisi.
10. Secure SDLC’nin faydası nedir? Cevap: Erken güvenlik bulguları, maliyet düşüşü,
daha güvenli ürün ve düzenleyici uyumluluk.
Frontend kütüphaneleri: React / [Link] (backend entegrasyon)
1. CORS problemini nasıl çözersiniz? Cevap: Doğru Access-Control-Allow-*
header’ları, preflight izinleri ve güvenli origin listesi.
2. Pagination backend’de nasıl sunulmalı? Cevap: Limit/offset veya cursor-based
API ile; meta bilgisi (total, next) dâhil.
3. API’dan gelen veriyi küçültmek için ne yapılır? Cevap: Projection/fields selection,
compress (gzip/brotli) ve DTO kullanımı.
4. Authentication flow (JWT) nasıl uygulanır? Cevap: Short-lived access token +
refresh token, secure storage, rotate ve revoke mekanizmaları.
5. SSR gerektiğinde backend ne sağlamalı? Cevap: Server-renderable endpoint’ler,
SEO meta verileri ve hızlı initial HTML.
6. Realtime ihtiyaçlarında hangi teknolojiler kullanılır? Cevap: WebSocket, Server-
Sent Events veya WebRTC gereksinime göre.
7. API hata handling best practice nedir? Cevap: Standard error schema, status
code uyumu ve trace-id ile correlation.
8. Frontend ile ortak model değişikliklerini nasıl yönetirsiniz? Cevap: Contract-first
(OpenAPI), versioning ve backward-compatible dönüşümler.
9. Large payload ile çalışırken hangi optimizasyonlar yapılır? Cevap: Pagination,
streaming responses ve partial loading.
10. Frontend performansını etkileyen backend hataları nelerdir? Cevap: Yavaş API,
blocking synchronous calls, overfetching ve kötü cache politikaları.
DevOps, CI/CD süreçleri
1. CI pipeline’da hangi adımlar olmalı? Cevap: Build, unit test, static analysis,
dependency scan, integration test ve artifact publish.
2. CD için imza/uyumluluk nasıl sağlanır? Cevap: Artifact signing, immutable
artifacts ve deployment approval mekanizmaları.
3. Canary release nasıl kademelendirilir? Cevap: Küçük yüzdeyle başla, metrikleri
izle, kademeli trafik arttır ve rollback kriterleri tanımla.
4. Blue-green deployment avantajı nedir? Cevap: Hızlı rollback ve sıfır downtime
switch.
5. Infrastructure as Code araçlarından örnekler nelerdir? Cevap: Terraform,
CloudFormation, Ansible.
6. Secret’ları CI/CD’de nasıl güvenli tutarsınız? Cevap: Secret manager
entegrasyonu, env var injection ve erişim denetimi.
7. Pipeline başarısızlıklarında runbook nasıl olmalı? Cevap: Hata tespiti, rollback
adımları, iletişim listesi ve yeniden deneme kriterleri.
8. Monitoring ile otomatik rollback nasıl tetiklenir? Cevap: SLO/SLA threshold’ları
ve alert-driven automation (playbook veya orchestration) ile.
9. Immutable infrastructure ne demektir? Cevap: Bir instance yaşam döngüsü
boyunca değiştirilmeyip yeni sürüm için yeni instance oluşturma modeli.
10. CI/CD güvenliğini hangi pratiklerle artırırsınız? Cevap: Least privilege, audit logs,
signed commits/artifacts ve pipeline access kontrol.
Asenkron programlama ve reaktif yaklaşımlar
1. CompletableFuture ile zincirleme nasıl yapılır? Cevap:
supplyAsync(...).thenApply(...).thenAccept(...).exceptionally(...)
2. Reactive programlamada backpressure nedir? Cevap: Üretici hızını tüketici
kapasitesine göre kontrol etme mekanizması.
3. Blocking kodu reactive pipeline’dan nasıl izole edersiniz? Cevap:
publishOn/subscribeOn ile dedicated scheduler veya blocking thread pool
kullanma.
4. Event-driven mimari ne zaman avantajlıdır? Cevap: Loose coupling, yüksek
skalabilite ve asenkron iletişimin gerekli olduğu durumlarda.
5. Message broker seçiminde hangi kriterler önemlidir? Cevap: Throughput,
persistence, ordering, delivery semantics (at-least-once/at-most-once/exactly-
once) ve ops maturity.
6. Idempotency asenkron işlemlerde neden önemli? Cevap: Mesaj tekrar
teslimlerinde duplicate side-effect önlemek için.
7. Saga vs distributed transaction farkı nedir? Cevap: Saga local transaction +
compensating action yaklaşımı; distributed transaction iki fazlı commit gibi
merkezi koordinasyon gerektirir.
8. Reactive streams standardı hangi problemleri çözer? Cevap: Non-blocking
stream processing ve backpressure mekanizması sağlar.
9. Asenkron hata yönetiminde dikkat edilmesi gerekenler nelerdir? Cevap:
Guaranteed retry politikaları, dead-letter queue, idempotency ve visibility
timeout yönetimi.
10. Performance için asenkron mimaride hangi metrikler izlenir? Cevap: Queue
length, consumer lag, processing latency, throughput ve error rate.
Önbellekleme ve uygulama performansı
1. Cache-aside pattern nasıl çalışır? Cevap: Uygulama önce cache’e bakar; yoksa
DB’den çeker ve cache’e yazar.
2. Write-through ile write-back farkı nedir? Cevap: Write-through: cache
yazıldığında DB’ye de yazılır; write-back: önce cache’e yazılır, arka planda DB’ye
flush edilir.
3. Distributed cache tutarlılığı nasıl sağlanır? Cevap: Event-driven invalidation,
short TTL, versioning veya cache-aside pattern ile.
4. CDN hangi durumlarda faydalıdır? Cevap: Statik içerik, global kullanıcılar ve
düşük latency için.
5. Cache invalidation en zorlu problem midir? Cevap: Evet; doğru invalidation
stratejisi ve test gerektirir (TTL, events, versioning).
6. Cache warming nedir ve neden yapılır? Cevap: Önemli verileri önceden yüklerek
ilk isteklerde latency azaltma.
7. Memory leak tespiti için hangi araçlar kullanılır? Cevap: Heap dump, VisualVM,
YourKit, GC log analizi.
8. Endpoint latency azaltmada ilk kontrol edilecek nokta nedir? Cevap: External
calls ve DB sorguları; tracing ile hotspot belirleme.
9. Horizontal scaling vs cache kullanımı arasında nasıl karar verirsiniz? Cevap:
Ölçek ihtiyacı, statefulness, maliyet ve latency hedeflerine göre trade-off analizi.
10. Cache performansını ölçerken hangi metriğe bakarsınız? Cevap: Hit ratio, miss
rate, average latency, eviction rate.
Kod düzenleme (refactoring) ve kodlama standartları
1. Refactor yapmadan önce hangi hazırlıkları yaparsınız? Cevap: Kapsamlı test
suite, backup branch, küçük adımlarla plan ve CI gating.
2. Kod standardı otomasyonunda hangi araçlar kullanılır? Cevap: Checkstyle, PMD,
SpotBugs, SonarQube, Prettier, ESLint.
3. Büyük refactor’larda risk nasıl azaltılır? Cevap: Feature toggles, incremental
changes, exhaustive tests ve canary deploy.
4. Kod incelemede dikkat edilecek güvenlik noktaları nelerdir? Cevap: Input
validation, use of safe APIs, secrets/credentials sızıntısı ve injection riskleri.
5. Teknik borcu PR süreçlerine nasıl entegre edersiniz? Cevap: PR template’ine
tech-debt alanı, dedicated refactor ticket’ları ve sprint allocation.
6. Clean code prensiplerinden biri nedir? Cevap: Fonksiyonların küçük ve tek
sorumluluklu olması.
7. Automated formatting neden faydalıdır? Cevap: Tutarlılık sağlar, review yükünü
azaltır ve merge çatışmalarını düşürür.
8. Kod ownership nasıl belirlenir? Cevap: Modul bazlı sahiplik, rotasyon ve code
steward rolleri ile.
9. Refactor sonrası performans regresyonu nasıl test edilir? Cevap: Benchmarking,
load tests ve profilleme ile karşılaştırma.
10. Pair programming’in avantajı nedir? Cevap: Hızlı bilgi paylaşımı, daha yüksek
code quality ve daha az bug.
Çevik yazılım geliştirme süreçleri
1. Sprint planning’de nasıl bir yaklaşım izlersiniz? Cevap: Backlog refinement
sonrası gerçekçi hedef, team capacity ve acceptance criteria belirleme.
2. Daily standup’ı verimli tutmak için ne yaparsınız? Cevap: Kısa, blokaj odaklı,
sadece ihtiyaç duyulan bilgiler ve follow-up’leri ayrı toplantıya taşıma.
3. Retrospektiflerin amacı nedir? Cevap: Sürekli iyileştirme için açık bir ortamda
sorunları ve çözüm önerilerini toplamak.
4. Kanban ile Scrum arasındaki temel fark nedir? Cevap: Kanban sürekli akış ve
WIP limitleri; Scrum sprint tabanlı zaman kutuları.
5. Story point neyi ölçer? Cevap: Görevin karmaşıklığını ve çaba/riski, mutlak
zamandan ziyade relatif ölçü.
6. Acceptance criteria neden önemlidir? Cevap: Beklentileri netleştirir, test
edilebilirlik sağlar ve geri dönüşleri azaltır.
7. Sprint failure sonrası adımlar nelerdir? Cevap: Root cause analysis, scope-
reestimate ve süreç/plan düzeltilmesi.
8. Agile KPI’ları neler olabilir? Cevap: Velocity, lead time, cycle time, defect escape
rate, customer satisfaction.
9. PO ile geliştiriciler arasındaki çatışmayı nasıl çözersiniz? Cevap: Veri odaklı
priorizasyon, MVP odaklılık ve net kabul kriterleri ile uzlaşma.
10. Continuous improvement nasıl motive edilir? Cevap: Küçük deneyler,
measurable outcomes, retro action item’larını takibi ve ödüllendirme.
Davranışsal / temsil / takım çalışması
1. Takım içi çatışma olduğunda ilk adımınız nedir? Cevap: Tarafları dinleyip veri
odaklı meseleleri ayırmak ve ortak hedefe odaklanmak.
2. Yoğun tempoda stresle başa çıkma stratejiniz nedir? Cevap: Önceliklendirme,
görevleri parçalara ayırma, iletişim ve gerektiğinde destek isteme.
3. Ekip motivasyonunu nasıl sağlarsınız? Cevap: Başarı kutlaması, açık geri
bildirim, sorumluluk paylaşımı ve gelişim fırsatları.
4. Zaman yönetimi için hangi teknikleri kullanırsınız? Cevap: Timeboxing,
Pomodoro, task prioritization ve daily planning.
5. Zayıf performans gösteren takım üyesine nasıl yaklaşırsınız? Cevap: Özel geri
bildirim, hedef belirleme, mentoring ve takip.
6. Remote ekiplerde iletişim nasıl güçlendirilir? Cevap: Asenkron belgeleme,
düzenli check-in, clear expectations ve iyi tooling.
7. Yenilikçi bir fikri takıma nasıl kabul ettirirsiniz? Cevap: PoC, maliyet/yarar
sunumu ve küçük deney ile kanıt gösterme.
8. Başarı hikayesini kısa nasıl anlatırsınız? Cevap: Problem, benim rolüm, alınan
teknik karar, sonuç ve ölçülebilir kazanç.
9. Bir projede etik ikilem yaşarsanız ne yaparsınız? Cevap: Kurum politikaları, yasal
gereklilik ve açık raporlama ile üst yönetime danışma.
10. Takım içinde bilgi paylaşımını nasıl teşvik edersiniz? Cevap: Brown bag
oturumları, docs-as-code, pair programming ve mentoring programları.