Apple’da Hayalinizdeki İşi Elde Etmek: Kapsamlı SDET Mülakat Rehberi

Başvurudan teklife: Apple’da $140K-$200K+ Software Quality Engineer pozisyonuna giden adım adım yol haritası


image: “/images/post/8.jpg”

📍 Buradasınız:

[✓] Makale 1: QA Temelleri (QA Fundamentals)
[✓] Makale 2: QA Pratiği (QA Practice)
[✓] Makale 3: QA için Veri Yapıları ve Algoritmalar (DSA for QA)
[✓] Makale 4: Otomasyon Çerçeveleri (Automation Frameworks)
[✓] Makale 5: Sürekli Entegrasyon (CI/CD)
[✓] Makale 6: Test Tasarım Teknikleri (Test Design Techniques)
[✓] Makale 7: Performans Testi (Performance Testing)
[→] Makale 8: Apple'da İş Bulmak 

İlerleme: %100 ✨

Tebrikler! QA temellerinden ileri düzey konulara kadar tüm yolu tamamladınız. Şimdi son adım — bu bilgiyi Apple teklifine dönüştürmek.

Bu makalede öğrenecekleriniz:

  • Doğru pozisyonu nasıl bulup seçersiniz
  • Apple adaylarda ne arar
  • Özgeçmişinizi nasıl optimize edersiniz
  • Tam mülakat süreci (4 tur)
  • Maaş pazarlığı ipuçları ($140K → $200K+)
  • Apple’da ilk 90 gün

Bu teori değil — bu benim ve teklif alan onlarca tanıdığımın Apple’a giden kesin yol haritası.


📋 İçindekiler

  1. Apple Software Quality Engineer Pozisyon Analizi
  2. Hazırlık: Başvuru Öncesi Kontrol Listesi
  3. Apple’da Mülakat Alan Özgeçmiş
  4. GitHub Portfolyo: Ne Göstermeli
  5. Mülakat Süreci: 4 Tur
  6. Coding Interview Soruları
  7. QA için System Design
  8. Behavioral Interview
  9. Maaş Pazarlığı
  10. Teklif Değerlendirme Kontrol Listesi
  11. Apple’da İlk 90 Gün
  12. Plan B: Henüz Apple Değilse

🎯 Apple Software Quality Engineer Pozisyon Analizi

Gerçek İş İlanı Analizi

Pozisyon: Software Quality Engineer - Apple Services Lokasyon: Cupertino, CA / Austin, TX / Uzaktan Maaş Aralığı: $140,000 - $200,000+ (taban + bonus + RSU)

Gereksinimler (Satır Satır)

ZORUNLU BECERİLER (Must Have):

✓ Bilgisayar Bilimi veya eşdeğeri lisans derecesi
  → Veya 3+ yıl kodlama deneyimi telafi edebilir

✓ Yazılım kalite mühendisliğinde 3+ yıl deneyim
  → Sadece QA değil, tam olarak "mühendislik"

✓ Güçlü programlama becerileri (Python, Java, JavaScript veya Swift)
  → Production kod yazabilmeli

✓ Test otomasyon çerçeveleri deneyimi (Playwright, Selenium)
  → Bunu Makale 4'te ele aldık ✅

✓ CI/CD pipeline bilgisi
  → Makale 5 ✅

✓ Veri Yapıları ve Algoritma anlayışı
  → Makale 3 ✅

✓ Performans test araçları deneyimi
  → Makale 7 ✅

TERCİH EDİLEN BECERİLER (Nice to Have):

✓ iOS/macOS test deneyimi
✓ Swift/Objective-C bilgisi
✓ Apple ekosistemini tanıma
✓ Xcode ve XCTest deneyimi
✓ Agile/Scrum metodolojisi

Pratikte Bu Ne Anlama Geliyor?

Apple ARAMIYOR:

  • ❌ Manuel test uzmanları
  • ❌ “Düğme tıklayanlar”
  • ❌ Sadece test senaryosu yazan kişiler

Apple ARIYOR:

  • ✅ Kaliteye odaklanan Software Engineers
  • ✅ Test framework tasarlayıp inşa edebilen kişiler
  • ✅ QA’da teknik liderler

📝 Hazırlık: Başvuru Öncesi Kontrol Listesi

Teknik Beceriler Kontrol Listesi

Programlama (minimum 1 dil 8/10 seviyesinde):

  • Python veya JavaScript — güçlü bilgi
  • Kariyerim boyunca minimum 5000 satır kod yazdım
  • Coding interview geçebilirim

Test Otomasyonu:

  • Playwright veya Selenium — production deneyimi
  • Sıfırdan en az bir framework inşa ettim
  • Page Object Model, fixtures, paralelleştirme biliyorum

Veri Yapıları ve Algoritmalar:

  • Minimum 50 LeetCode problemi çözdüm
  • Temel veri yapılarını biliyorum (arrays, hash, trees, graphs)
  • Big O notasyonunu açıklayabilirim

CI/CD:

  • GitHub Actions veya Jenkins yapılandırdım
  • Testleri pipeline’a entegre ettim
  • Konteynerizasyonu anlıyorum (Docker)

Performans Testi:

  • Yük testi yaptım (JMeter/K6/Gatling)
  • Temel metrikleri biliyorum (p95, p99, throughput)
  • Performans darboğazları bulup düzelttim

Soft Skills Kontrol Listesi

  • Teknik kavramları basit terimlerle açıklayabilirim
  • Agile takımda çalıştım
  • Code review yaptım
  • Junior mühendislere mentorluk yaptım
  • Teknik tartışmalara katıldım

Portfolyo Kontrol Listesi

  • Aktif projelerle GitHub
  • Minimum 1 tam test framework
  • Dokümantasyonlu README.md
  • Görünür CI/CD kurulumu
  • Open source katkıları (bonus)

📄 Apple’da Mülakat Alan Özgeçmiş

Özgeçmiş Yapısı

[Adınız]
Software Engineer in Test | SDET
[Email] | [Telefon] | [LinkedIn] | [GitHub]
Lokasyon: [Şehir, Eyalet] veya "Taşınmaya açık"

ÖZET (SUMMARY)
5+ yıl deneyimle ölçeklenebilir test otomasyon çerçeveleri inşa eden 
sonuç odaklı SDET. Playwright, CI/CD ve performans testinde uzman. 
[Şirket]'te test yürütme süresini %70 azalttı ve kapsamı %40 artırdı. 
Apple'da kalite mühendisliği uzmanlığından yararlanmayı hedefliyor.

TEKNİK BECERİLER (TECHNICAL SKILLS)
Diller: JavaScript (Uzman), Python (İleri), SQL
Otomasyon: Playwright, Selenium, Cypress, Appium
Çerçeveler: Jest, Mocha, Pytest, JUnit
CI/CD: GitHub Actions, Jenkins, Docker, Kubernetes
Performans: K6, JMeter, Gatling
Araçlar: Git, Jira, Postman, Charles Proxy
API'ler: REST, GraphQL, WebSocket

MESLEKİ DENEYİM (PROFESSIONAL EXPERIENCE)

Senior SDET | [Şirket Adı] | [Şehir, Eyalet] | 2021 - Günümüz
• 500+ test senaryosunu kapsayan Playwright ile end-to-end test otomasyon 
  çerçevesi inşa etti, test kapsamını %45'ten %85'e çıkardı
• Deployment süresini 4 saatten 45 dakikaya düşüren CI/CD pipeline 
  tasarladı ve uyguladı
• 15 kritik darboğaz tespit eden performans testi yaparak API yanıt 
  süresini %60 iyileştirdi
• 3 kişilik junior QA mühendisi ekibine test otomasyon en iyi 
  uygulamaları konusunda mentorluk yaptı
• Teknoloji: Playwright, JavaScript, GitHub Actions, K6, PostgreSQL

QA Mühendisi | [Önceki Şirket] | [Şehir, Eyalet] | 2019 - 2021
• Postman/Newman kullanarak REST API'ler için otomatik test suitleri geliştirdi
• Test bakımını %40 azaltan veri odaklı test çerçevesi uyguladı
• Sürüm öncesi 200+ bug düzeltmesinde geliştiricilerle işbirliği yaptı
• Teknoloji: Selenium, Python, Jenkins, JMeter

PROJELER (PROJECTS)

E-ticaret Test Otomasyon Çerçevesi | github.com/kullaniciadi/ecommerce-tests
• Playwright ile full-stack test otomasyonu, 200+ test, %95 başarı oranı
• Çoklu tarayıcı desteği, paralel yürütme, ayrıntılı raporlama
• CI/CD için GitHub Actions ile entegre

Performans Test Paketi | github.com/kullaniciadi/perf-tests
• Yoğun trafikli e-ticaret sitesi için K6 kullanan yük testi senaryoları
• Optimal sunucu kapasitesi ve yanıt süresi eşikleri belirlendi
• Görselleştirmelerle kapsamlı README'de belgelendi

EĞİTİM (EDUCATION)

Bilgisayar Bilimi Lisans | [Üniversite] | 2019
İlgili Dersler: Veri Yapıları, Algoritmalar, Yazılım Mühendisliği

SERTİFİKALAR (CERTIFICATIONS)
ISTQB Advanced Test Automation Engineer | 2022
AWS Certified Solutions Architect Associate | 2023

Apple için Temel Özgeçmiş İpuçları

YAPIN:

  • ✅ Her şeyi ölçün (sayılar, yüzdeler, metrikler)
  • ✅ Sadece sorumluluklara değil, etkiye odaklanın
  • ✅ Sadece araç kullanımını değil, framework tasarımını vurgulayın
  • ✅ Teknik liderlik ve mentorluk gösterin
  • ✅ < 5 yıl deneyim için 1 sayfa, 5+ yıl için 2 sayfa

YAPMAYIN:

  • ❌ Dokunduğunuz her teknolojiyi listeleyin
  • ❌ Genel tanımlar (“testlerden sorumlu”)
  • ❌ Yazım hataları veya biçimlendirme tutarsızlıkları
  • ❌ Güncel olmayan beceriler (Selenium 2.0, QTP vb.)
  • ❌ Kişisel bilgiler (fotoğraf, yaş, medeni durum)

İşe Yarayan Eylem Fiilleri

Zayıf fiilleri değiştirin:

  • ❌ “Test etti” → ✅ “Mühendislik etti”, “Tasarladı”, “İnşa etti”
  • ❌ “Üzerinde çalıştı” → ✅ “Tasarladı”, “Uyguladı”, “Liderlik etti”
  • ❌ “Yardım etti” → ✅ “İşbirliği yaptı”, “Ortaklık kurdu”, “Yönlendirdi”

💻 GitHub Portfolyo: Ne Göstermeli

Apple İşe Alımcıları Ne Arıyor

GitHub’ınızı ziyaret ettiklerinde:

  1. Son aktivite (yeşil kareler!)
  2. Miktardan çok kalite
  3. Profesyonel README’ler
  4. Gerçek dünya projeleri
  5. Temiz, belgelenmiş kod

Olması Gereken Projeler

Proje 1: Test Otomasyon Çerçevesi ⭐ KRİTİK

ecommerce-test-framework/
├── README.md                 # ← Profesyonel dokümantasyon
├── .github/
│   └── workflows/
│       └── tests.yml         # ← CI/CD görünür
├── tests/
│   ├── e2e/
│   ├── api/
│   └── visual/
├── pages/                    # ← Page Object Model
├── fixtures/                 # ← Test verileri
├── playwright.config.js
└── package.json

Stars: 10+ hedefleyin
README: Kapsamlı rehber
Demo: Testlerin çalıştığını gösteren GIF

README.md Şablonu:

# E-ticaret Test Otomasyon Çerçevesi

![Tests](https://github.com/user/repo/workflows/Tests/badge.svg)
![Coverage](https://img.shields.io/badge/coverage-85%25-green)

Playwright ve JavaScript ile e-ticaret uygulamaları için profesyonel 
test otomasyon çerçevesi.

## Özellikler
- ✅ 200+ otomatik test senaryosu
- ✅ Çoklu tarayıcı desteği (Chrome, Firefox, Safari)
- ✅ Paralel yürütme (4 kat daha hızlı)
- ✅ CI/CD entegrasyonu (GitHub Actions)
- ✅ Ayrıntılı HTML raporları
- ✅ Hata durumunda ekran görüntüsü
- ✅ Video kayıtları

## Teknoloji Yığını
- Playwright v1.40
- JavaScript ES6+
- GitHub Actions
- Allure Reports

## Hızlı Başlangıç
\`\`\`bash
npm install
npm test
\`\`\`

## Mimari
- Page Object Model
- Setup/teardown için Fixtures
- Veri odaklı test
- Özel reporters

## Sonuçlar
- %95 test başarı oranı
- 10 dakika yürütme süresi
- Sıfır flaky test

## Yazar
[Adınız] - SDET | [LinkedIn](#) | [Email](#)

Proje 2: API Test Paketi

api-test-suite/
├── README.md
├── tests/
│   ├── auth.spec.js
│   ├── products.spec.js
│   └── orders.spec.js
├── utils/
│   ├── api-client.js
│   └── data-generator.js
└── .github/workflows/

Proje 3: Performans Testi

performance-tests/
├── k6-scripts/
│   ├── load-test.js
│   ├── stress-test.js
│   └── spike-test.js
├── results/
│   └── reports/
└── README.md

🎤 Mülakat Süreci: 4 Tur

Genel Bakış

Başvuru

İşe Alımcı Görüşmesi (30 dk)

Teknik Telefon Görüşmesi (60 dk)

Onsite (veya Sanal) - 4-5 saat

├── Coding Interview (60 dk)
├── System Design (60 dk)
├── Behavioral Interview (45 dk)
└── QA'ya Özel Teknik (60 dk)

Takım Eşleştirme (geçtiyseniz)

Teklif!

Tur 1: İşe Alımcı Görüşmesi (30 dk)

Ne soruyorlar:

  • Kendinizi tanıtın
  • Neden Apple?
  • Mevcut şirketten neden ayrılıyorsunuz?
  • Maaş beklentileriniz?
  • Zaman çizelgesi/müsaitlik?

Nasıl hazırlanmalı:

// 2 dakikalık sunum şablonunuz
const pitch = {
    background: "5 yıl SDET deneyimi, [Şirket]'te test framework'leri inşa ettim",
    achievements: "Test kapsamını %45 → %85 artırdım, CI süresini 4s → 45dk düşürdüm",
    why_apple: "Ölçekte kaliteye tutkulu, Apple ürünlerini seviyorum",
    looking_for: "Milyarlara ulaşan yüksek etkili ürünler üzerinde çalışma fırsatı"
};

Maaş sorusu:

İşe alımcı: "Maaş beklentileriniz nedir?"

❌ Kötü: "$150K"
✅ İyi: "Araştırmama ve deneyim seviyeme dayanarak, $140-160K taban 
hedefliyorum, ancak esnekliyim ve bonus ve hisse dahil tam 
tazminat paketi hakkında daha fazla bilgi edinmek isterim."

Tur 2: Teknik Telefon Görüşmesi (60 dk)

Format:

  • 5 dk giriş
  • 40 dk kodlama
  • 10 dk sorularınız
  • 5 dk kapanış

Tipik Problemler:

Problem 1: Yinelenen Test Senaryolarını Bul

/**
 * Test senaryosu nesnelerinden oluşan dizi verildi, yinelenen grupları bul
 * 
 * Girdi: [
 *   {id: 1, steps: "login", expected: "success"},
 *   {id: 2, steps: "login", expected: "success"}, // yinelenen
 *   {id: 3, steps: "logout", expected: "redirect"}
 * ]
 * 
 * Çıktı: [[1, 2]]
 */

function findDuplicateTests(tests) {
    const map = new Map();
    
    for (const test of tests) {
        const signature = `${test.steps}|${test.expected}`;
        
        if (!map.has(signature)) {
            map.set(signature, []);
        }
        map.get(signature).push(test.id);
    }
    
    return Array.from(map.values()).filter(group => group.length > 1);
}

// Zaman: O(n)
// Alan: O(n)

Problem 2: Test Yürütme Sırası (Topolojik Sıralama)

/**
 * Test bağımlılıkları verildi, yürütme sırasını döndür
 * 
 * tests = ['A', 'B', 'C', 'D']
 * deps = {
 *   'B': ['A'],  // B, A'ya bağlı
 *   'C': ['A'],
 *   'D': ['B', 'C']
 * }
 * 
 * Çıktı: ['A', 'B', 'C', 'D'] veya ['A', 'C', 'B', 'D']
 */

function getTestOrder(tests, dependencies) {
    const graph = new Map();
    const inDegree = new Map();
    
    // Başlat
    for (const test of tests) {
        graph.set(test, []);
        inDegree.set(test, 0);
    }
    
    // Graf oluştur
    for (const [test, deps] of Object.entries(dependencies)) {
        for (const dep of deps) {
            graph.get(dep).push(test);
            inDegree.set(test, inDegree.get(test) + 1);
        }
    }
    
    // Kahn algoritması
    const queue = tests.filter(t => inDegree.get(t) === 0);
    const result = [];
    
    while (queue.length > 0) {
        const curr = queue.shift();
        result.push(curr);
        
        for (const neighbor of graph.get(curr)) {
            inDegree.set(neighbor, inDegree.get(neighbor) - 1);
            if (inDegree.get(neighbor) === 0) {
                queue.push(neighbor);
            }
        }
    }
    
    // Döngü kontrolü
    return result.length === tests.length ? result : null;
}

// Zaman: O(V + E)
// Alan: O(V + E)

🧩 Coding Interview Soruları

Onsite - Coding Interview (60 dk)

Daha Karmaşık Problemler:

Problem: Optimal Test Paketi Seçimi (0/1 Sırt Çantası)

/**
 * Zaman bütçesi içinde maksimum kapsamlı testleri seç
 * 
 * tests = [
 *   {name: 'A', time: 5, coverage: 10},
 *   {name: 'B', time: 3, coverage: 7},
 *   {name: 'C', time: 8, coverage: 15}
 * ]
 * timeLimit = 10
 * 
 * Döndür: maksimum kapsamlı testler
 */

function selectOptimalTests(tests, timeLimit) {
    const n = tests.length;
    const dp = Array(n + 1).fill(null)
        .map(() => Array(timeLimit + 1).fill(0));
    
    for (let i = 1; i <= n; i++) {
        const { time, coverage } = tests[i - 1];
        
        for (let t = 0; t <= timeLimit; t++) {
            // Testi dahil etme
            dp[i][t] = dp[i - 1][t];
            
            // Zaman izin veriyorsa testi dahil et
            if (time <= t) {
                dp[i][t] = Math.max(
                    dp[i][t],
                    dp[i - 1][t - time] + coverage
                );
            }
        }
    }
    
    // Seçilen testleri bulmak için geri izle
    const selected = [];
    let t = timeLimit;
    
    for (let i = n; i > 0; i--) {
        if (dp[i][t] !== dp[i - 1][t]) {
            selected.push(tests[i - 1]);
            t -= tests[i - 1].time;
        }
    }
    
    return {
        tests: selected.reverse(),
        totalCoverage: dp[n][timeLimit],
        totalTime: timeLimit - t
    };
}

// Zaman: O(n * timeLimit)
// Alan: O(n * timeLimit)

🏗️ QA için System Design

QA System Design Nedir?

Developer System Design ile karıştırmayın!

QA System Design odaklanır:

  • Test mimarisi
  • Test veri yönetimi
  • Test ortamı stratejisi
  • Test otomasyonunu ölçeklendirme

Yaygın Sorular

Soru 1: E-ticaret için Test Otomasyon Çerçevesi Tasarlayın

Mülakatçı:

“E-ticaret platformumuz için ölçeklenebilir bir test otomasyon çerçevesi tasarlayın. Web, mobil iOS, mobil Android var. 10 milyon kullanıcı. Buna nasıl yaklaşırsınız?”

Cevap Yapınız:

1. Gereksinimleri Netleştirme (5 dk)
   - Kritik kullanıcı akışları neler?
   - Mevcut test kapsamı?
   - Takım büyüklüğü?
   - Sürüm sıklığı?
   - Performans gereksinimleri?

2. Üst Düzey Tasarım (15 dk)
   
   Çerçeve Mimarisi:
   
   ┌─────────────────────────────────────┐
   │         Test Yürütme Katmanı        │
   │  (GitHub Actions / Jenkins)         │
   └──────────────┬──────────────────────┘

   ┌──────────────┴──────────────────────┐
   │      Test Orkestrasyon Katmanı      │
   │  - Test seçimi                      │
   │  - Paralel yürütme                  │
   │  - Yeniden deneme mantığı           │
   └──────────────┬──────────────────────┘

   ┌──────────────┴──────────────────────┐
   │         Test Paketleri Katmanı      │
   ├─────────────┬─────────────┬─────────┤
   │   Web       │  iOS Native │ Android │
   │ (Playwright)│  (XCTest)   │(Espresso)│
   └─────────────┴─────────────┴─────────┘

   ┌──────────────┴──────────────────────┐
   │       Page Objects / Helpers        │
   │  - Yeniden kullanılabilir bileşenler│
   │  - API istemcileri                  │
   └──────────────┬──────────────────────┘

   ┌──────────────┴──────────────────────┐
   │         Test Veri Katmanı           │
   │  - Fixtures                         │
   │  - Test veritabanı                  │
   │  - Mock servisler                   │
   └─────────────────────────────────────┘

3. Derinlemesine İnceleme (20 dk)
   
   Temel Bileşenler:
   
   a) Çapraz Platform Desteği
      - Mümkün olduğunca paylaşılan test mantığı
      - Platforma özgü adaptörler
      - Birleşik raporlama
   
   b) Test Veri Stratejisi
      - Ortam başına ayrı test DB
      - Rastgeleleştirme için veri üreticileri
      - Her testten sonra temizlik
   
   c) Paralel Yürütme
      - Test parçalama (4-8 parça)
      - İzole test ortamları
      - Testler arası bağımlılık yok
   
   d) Flaky Test Önleme
      - Hata durumunda otomatik yeniden deneme (maks 2)
      - Açık beklemeler, sleep() yok
      - Hata durumunda ekran görüntüsü + video
      - Flaky testler için karantina

💬 Behavioral Interview

Yaygın Sorular

Soru 1: “Sürümden hemen önce kritik bir bug bulduğunuz bir zamanı anlatın.”

STAR Formatı:

Durum (Situation):
"Black Friday sürümünden iki gün önce, ödeme akışında son regresyon 
testleri yapıyordum."

Görev (Task):
"500$ üzerindeki siparişlerde promosyon kodlarının doğru uygulanmadığını 
keşfettim - tam olarak Black Friday satışları için kritik nokta."

Eylem (Action):
"Hemen:
1. Ayrıntılı yeniden üretme adımlarıyla P0 ticket oluşturdum
2. Sorunu izole etmek için geliştiriciyle çalıştım - indirim 
   hesaplamasında yuvarlama hatası
3. Regresyonu önlemek için otomatik test yazdım
4. 4 saat içinde staging'de düzeltmeyi doğruladım
5. Tam ödeme paketini yeniden çalıştırdım"

Sonuç (Result):
"Bug'ı sürümden 36 saat önce düzelttik. Black Friday trafik analizine 
göre, bu ~2M$ geliri etkileyebilirdi. Eklediğim otomasyon testi 
sonraki sprintlerde 3 benzer sorunu yakaladı."

Bu cevap neden çalışır:

  • ✅ Spesifik metrikler (2M$ etki)
  • ✅ İnisiyatif gösterir (anında eylem)
  • ✅ Teknik derinlik (kök neden)
  • ✅ Uzun vadeli düşünme (otomasyon)
  • ✅ Geliştiricilerle işbirliği

Soru 2: “Bir geliştiriciyle anlaşamadığınız bir zamanı anlatın.”

Kötü Cevap: ❌ “Geliştirici bilinen bug’larla göndermek istedi, hayır dedim, kavga ettik, sonunda müdürüm benim tarafımı tuttu.”

İyi Cevap: ✅ “Bir sprintte, bir geliştirici 12 testi bozan kodu birleştirmek istedi. Testlerin ‘flaky’ olduğunu ve daha sonra düzeltilebileceğini savundu.

Birlikte 30 dakika debug yapmayı önerdim. Testlerin flaky olmadığını keşfettik - kodunda race condition vardı. Birlikte düzeltme yazdık, daha iyi hata işleme ekledik ve tüm testler geçti.

Bu, otomasyonu suçlamak yerine başarısız testleri birlikte debug ettiğimiz bir uygulama oluşturdu. Test kararlılığımız %85’ten %98’e yükseldi.”

Bu neden çalışır:

  • ✅ İşbirliğini gösterir
  • ✅ Problem çözme zihniyeti
  • ✅ Kazan-kazan sonucu
  • ✅ Kalıcı iyileştirme yarattı

SİZİN Sormanız Gereken Sorular

Teknik Sorular:

  1. “Test otomasyon yığını şu anda nasıl görünüyor?”
  2. “Testler CI/CD pipeline’a nasıl entegre?”
  3. “Takımın flaky testlere yaklaşımı ne?”
  4. “Test kapsamı ile yürütme hızını nasıl dengeliyorsunuz?”

Takım/Kültür Soruları: 5. “QA burada geliştiricilerle nasıl işbirliği yapıyor?” 6. “Tipik bir sprint nasıl görünüyor?” 7. “Kalite nasıl ölçülüyor ve takip ediliyor?” 8. “Şu anda en büyük kalite zorlukları neler?”

Büyüme Soruları: 9. “SDET’ler için kariyer ilerlemesi nasıl görünüyor?” 10. “Farklı Apple ürünleri üzerinde çalışma fırsatları var mı?” 11. “Takım test teknolojileriyle nasıl güncel kalıyor?”


💰 Maaş Pazarlığı

Apple Tazminatını Anlama

Toplam Tazminat = Taban + Bonus + RSU

Örnek Teklif (Mid-Level SDET):

Taban Maaş:         $140,000/yıl
Yıllık Bonus:        %15 = $21,000
RSUs (4 yıl vest):  $200,000 toplam = $50,000/yıl

Yıl 1 Toplam: $211,000
Yıl 2-4 Toplam: $211,000/yıl

RSU Vesting Takvimi:

Yıl 1: %25 ($50,000)
Yıl 2: %25 ($50,000)
Yıl 3: %25 ($50,000)
Yıl 4: %25 ($50,000)

Pazarlık Süreci

Aşama 1: İlk Teklif Araması

İşe alımcı: “Bir teklif uzatmak istiyoruz! Taban $140K, 4 yılda $200K hisse, %15 bonus. Ne düşünüyorsunuz?”

Hemen EVET demeyin!

✅ İyi Yanıt: “Teşekkürler! Bu fırsat için heyecanlıyım. Bu kapsamlı bir paket - teklifi yazılı olarak alabilir miyim ve incelemek için 2-3 gün süre isteyebilir miyim?”


Aşama 2: Teklifi Değerlendir

Piyasayla karşılaştır:

  • levels.fyi (gerçek veriler)
  • Glassdoor
  • Blind uygulaması
  • Ağınız

Apple SDET için (Austin, TX, 5 yıl deneyim):

25. yüzdelik: $150K toplam tazminat
50. yüzdelik: $180K toplam tazminat
75. yüzdelik: $220K toplam tazminat
90. yüzdelik: $280K+ toplam tazminat

Aşama 3: Karşı Teklif

Email Şablonu:

Konu: Re: Teklif - Software Quality Engineer Pozisyonu

Merhaba [İşe Alımcı Adı],

Teklif için teşekkürler! Apple'a katılmak ve [belirli takım/ürün]'e 
katkıda bulunmak için heyecanlıyım.

Paketi inceledikten ve deneyimimi göz önünde bulundurduktan sonra:
- 5 yıl SDET deneyimi
- 50M+ kullanıcıya hizmet veren test framework'leri inşa ettim
- Bug'ları %40 azaltan kalite girişimlerine liderlik ettim
- Playwright, CI/CD, performans testinde uzmanlık

Yıllık toplam tazminatın $200K'ya daha yakın olmasını umuyordum. 
Araştırmama ve karşılaştırılabilir tekliflere dayanarak, bunun deneyim 
seviyem için adil piyasa değerini yansıttığına inanıyorum.

Özellikle, şunları umuyorum:
- Taban: $155,000 ($140,000'dan)
- RSU: 4 yılda $280,000 ($200,000'dan)

Daha fazla tartışmaktan mutluluk duyarım. Apple benim ilk tercihim ve 
en iyi işimi ortaya koymaya kararlıyım.

Sizden haber bekliyorum!

Saygılarımla,
[Adınız]

Pazarlık İpuçları

YAPIN:

  • ✅ Piyasa oranlarını araştırın (levels.fyi)
  • ✅ Rakip tekliflere sahip olun (kaldıraç)
  • ✅ Sayılarla spesifik olun
  • ✅ Profesyonel ve pozitif kalın
  • ✅ Sadece tabanı değil, toplam tazminatı pazarlık edin

YAPMAYIN:

  • ❌ İlk teklifi hemen kabul etmeyin
  • ❌ Ültimatom vermeyin
  • ❌ Rakip teklifler hakkında yalan söylemeyin
  • ❌ Telefonda pazarlık yapmayın (email daha iyi)
  • ❌ Sadece taban maaşa odaklanmayın

Sihirli İfade:

“Apple ve bu rol konusunda çok heyecanlıyım. Araştırmama ve deneyimime dayanarak, [sayı] umuyordum. Buna yaklaşmak için birlikte çalışabilir miyiz?”


📋 Teklif Değerlendirme Kontrol Listesi

Maaşın Ötesinde

Tazminat:

  • Taban maaş rekabetçi mi?
  • RSU miktarı ve vesting takvimi?
  • Yıllık bonus yüzdesi?
  • Sign-on bonus?
  • Taşınma yardımı?

Yan Haklar:

  • Sağlık sigortası (tıbbi, diş, görme)
  • 401k eşleştirme yüzdesi?
  • İzin günleri (Apple: genellikle 15-20 gün)
  • Ebeveyn izni politikası?
  • Çalışan hisse satın alma planı?

Çalışma Ortamı:

  • Uzaktan/hibrit/ofiste?
  • Ofis lokasyonu?
  • Takım büyüklüğü ve yapısı?
  • Büyüme fırsatları?
  • İş-yaşam dengesi itibarı?

İzlenecek Kırmızı Bayraklar

Mülakat Sırasında:

  • ❌ Takımda yüksek devir oranı
  • ❌ Büyüme hakkında belirsiz cevaplar
  • ❌ Net QA stratejisi yok
  • ❌ “Henüz otomatik testlerimiz yok”
  • ❌ Düzensiz mülakat süreci

🚀 Apple’da İlk 90 Gün

30-60-90 Gün Planı

Günler 1-30: Öğren ve Özümse

Hafta 1:

  • ✅ Onboarding’i tamamla (IT, yan haklar, eğitim)
  • ✅ Takımınızla tanış (herkesle 1-1)
  • ✅ Geliştirme ortamını kur
  • ✅ Tüm dokümantasyonu oku
  • ✅ Mevcut testleri yerel olarak çalıştır
  • ✅ Kod tabanı yapısını anla

Hafta 2-4:

  • ✅ İlk küçük görevi al (bug düzeltme veya test güncellemesi)
  • ✅ Tüm takım toplantılarına katıl
  • ✅ Takım arkadaşlarını gözlemle
  • ✅ ÇOK soru sor
  • ✅ Öğrendiklerini belgele

Günler 31-60: Katkıda Bulun ve İnşa Et

Teslim Edilecekler:

  • ✅ 2-3 flaky testi düzelt
  • ✅ Yeni özellikler için testler ekle
  • ✅ Test dokümantasyonunu geliştir
  • ✅ İlk önemli PR’ı yap
  • ✅ Takım toplantısında bulguları sun

Günler 61-90: Etki ve Liderlik

Projeler:

  • ✅ Orta büyüklükte bir özellik testinin sahibi ol
  • ✅ Süreç iyileştirmesi öner
  • ✅ Yeni takım arkadaşına mentorluk yap
  • ✅ Test optimizasyonu için fikirler sun

Kaçınılması Gereken Yaygın Hatalar

Hata 1: Her Şeyi Hemen Değiştirmeye Çalışmak ❌ “Eski şirketimde bu şekilde yapıyorduk. Siz de yapmalısınız.”

✅ Bunun yerine: “X yaptığımızı fark ettim. Nedenini anlamama yardımcı olabilir misiniz? Önceki şirketimde Y yapıyorduk, ama ödünleşimleri merak ediyorum.”

Hata 2: Yardım İstememek ❌ Günlerce yalnız başına mücadele etmek

✅ Bunun yerine: 30 dakika denedikten sonra sorun. Apple verimliliğe, egoya değil değer verir.

Hata 3: Dokümantasyonu Atlamak ❌ “Sonra belgelerim”

✅ Öğrendikçe belgele. Bu SİZE VE bir sonraki yeni işe alıma yardımcı olur.


🔄 Plan B: Henüz Apple Değilse

Alternatif Yollar

Apple teklifi alamadıysanız:

Yol 1: Benzer Şirketler (FAANG)

  • Google (SWE in Test)
  • Meta (Software Engineer, Test)
  • Amazon (SDET)
  • Microsoft (SDET)

Yol 2: Mevcut Şirkette Büyü

  • Test otomasyon girişimine liderlik et
  • Sıfırdan framework inşa et
  • Senior SDET’e terfi al
  • 1-2 yıl içinde Apple’a tekrar başvur

Yol 3: İkinci Kademe Tech Şirketleri

  • Uber, Airbnb, Netflix
  • Deneyim kazan
  • FAANG için daha iyi konumlanma

Yol 4: Startup’lar

  • Birçok şapka giy
  • Sıfırdan sistemler inşa et
  • Hisse potansiyeli
  • Harika öğrenme fırsatı

Apple Gerçekten Ne Görmek İstiyor

Sonraki Başvuruda:

  • ✅ Daha fazla GitHub katkısı
  • ✅ 100+ LeetCode çözüldü (mevcut 50’ye karşı)
  • ✅ Büyük test girişimine liderlik ettiniz
  • ✅ Konferansta konuştunuz veya blog yazdınız
  • ✅ Open source katkıları

Zaman Çizelgesi:

Bugün: Teklif alamadınız

6 ay: Beceriler geliştirin, projeler gönderin

12 ay: Daha güçlü profille tekrar başvurun

18 ay: Başka bir FAANG'da Senior SDET

24 ay: Apple'a Senior SDET olarak başvurun

🎊 Sonuç: Hazırsınız!

Ne Öğrendiniz (8 Makalelik Yolculuk)

Makale 1: QA Temelleri
  → Test prensipleri, türleri, teknikleri

Makale 2: Pratik Beceriler
  → Test senaryoları, API testi, SQL, otomasyon temelleri

Makale 3: QA için DSA
  → Algoritmalar, veri yapıları, LeetCode stratejisi

Makale 4: Otomasyon Çerçeveleri
  → Playwright, Selenium, Karate, gerçek projeler

Makale 5: CI/CD
  → GitHub Actions, Jenkins, Docker, pipeline'lar

Makale 6: Test Tasarım Teknikleri
  → Sınır değerleri, eşdeğerlik sınıfları, karar tabloları

Makale 7: Performans Testi
  → JMeter, K6, Gatling, darboğaz bulma

Makale 8: İşi Almak
  → Özgeçmiş, mülakat, pazarlık, başarı!

Eylem Planınız - Sonraki 30 Gün

Hafta 1:

  • Şablonu kullanarak özgeçmişi güncelle
  • 2-3 GitHub projesini parla
  • 10 LeetCode problemi çöz

Hafta 2:

  • 5 pozisyona başvur (Apple + diğerleri)
  • STAR hikayelerini pratik et
  • Arkadaşla mock mülakat

Hafta 3:

  • LeetCode’a devam (günde 5)
  • Başvurduğunuz şirketler hakkında oku
  • Mülakatçılar için sorular hazırla

Hafta 4:

  • İlk mülakatlar (umarız!)
  • Geri bildirime göre iterasyon
  • Momentumu koru

Son Sözler

Benden size:

$45K maaşla manuel test uzmanı olarak başladım. Coding interview’lardan korkuyordum ve FAANG’ın “benim gibi insanlar için olmadığını” düşünüyordum.

Ama öğrenmeye yatırım yaptım:

  • 6 ay: Otomasyon öğrendim
  • 6 ay: DSA öğrendim
  • 6 ay: Projeler inşa ettim
  • 6 ay: Mülakat hazırlığı

18 ay sonra: $180K toplam tazminatla Apple teklifi.

Siz de yapabilirsiniz.

Bilgi orada (bu seride tükettiniz). Yol açık (her adımı gösterdim). Eksik olan tek şey — sizin eyleminiz.


Kaynaklar

Öğrenme:

İş Arama:

Pazarlık:

  • levels.fyi
  • Blind uygulaması
  • TeamBlind.com

🎯 Son Bir Şey

Apple ŞU ANDA işe alıyor.

“Hazır” olana kadar beklemeyin. Bugün yeterince hazırsınız.

Başvurun. Mülakat yapın. Öğrenin. İterasyon yapın.

Olabilecek en kötü şey? Neyi geliştireceğinizi öğrenirsiniz. Olabilecek en iyi şey? 3 ay içinde Apple’da çalışıyorsunuz.


Bu 8 makalelik yolculuğu takip ettiğiniz için teşekkürler!

QA temellerinden Apple’a hazır oldunuz!

Şimdi gerçekleştirin! 🚀


Yazar: AAnnayev


Sorular? Yorumlarda yazın! 👇

Teklif aldınız mı? Hikayenizi paylaşın! Sizinle kutlamak istiyorum! 🎉


Etiketler: #Apple #FAANG #SDET #SoftwareQuality #Interview #CareerGrowth #QA #Testing #Automation


P.S. Bu makaleyi kaydedin. Hazırlık sırasında geri döneceksiniz!

P.P.S. Apple’da çalışmayı hayal eden biriyle paylaşın! 🍎