iToverDose/Yazılım· 17 MAYIS 2026 · 08:02

Google Interview Warmup sonrası hangi araç kullanılmalı? 10xInterview nasıl geliştirildi

Google Interview Warmup kapanınca kullanıcıların elinde ne kaldı? Tek kişilik bir ekip tarafından geliştirilen 10xInterview’in mimari sırları ve AI tabanlı mülakat hazırlığı için yeni nesil yaklaşımlar.

DEV Community4 dk okuma0 Yorumlar

Google'ın sessizce kapattığı Interview Warmup aracı, birçok kullanıcı için değerliydi. Sesli yanıt kaydedip AI geri bildirim almayı sağlayan bu araç, mülakat hazırlığına önemli katkı sunuyordu. Peki ya bu boşluğu ne dolduracak?

Bir yıl içerisinde, 10xInterview adıyla yeni bir platform hayata geçirildi. Sadece bir kişi tarafından geliştirilen bu araç, Go ve React tabanlı basit ama etkili bir mimariye sahip. Tek bir Go ikili dosyası, bir React uygulaması ve Postgres veritabanından oluşan bu sistem, AI destekli mülakat hazırlığı için yenilikçi çözümler sunuyor. İşte bu platformun arkasındaki dört temel mimari karar ve nasıl çalıştığına dair detaylar.

Tek kişilik bir ekip için ideal bir yığın

10xInterview’in arkasındaki geliştirici, sistemin "tek bir kişi tarafından gece 3’te bile yönetilebilir" olması gerektiğini vurguluyor. Bu nedenle kullanılan teknolojiler de mümkün olduğunca basit ve yönetilebilir seçeneklerden oluşuyor:

  • Backend: Go 1.23, Chi yönlendirici, tek bir ikili dosya
  • Veritabanı: Postgres 17 + pgvector eklentisi
  • Frontend: React 19, Vite, TanStack Query, shadcn/ui
  • AI Hizmetleri: Vertex AI (ücretsiz katman) + Gemini API (Pro)
  • Konuşma İşleme: Google STT + TTS
  • Altyapı: Cloud Run x2, Cloud SQL, HTTPS yük dengeleyici, Secret Manager
  • Fatura İşlemleri: Razorpay abonelikleri (webhook tabanlı)
  • Dağıtım: Tek bir idempotent kabuk betiği

Mikroservisler, olay veriyolları (Kafka, NATS), Redis ve global durum yönetimi gibi karmaşık yapılardan kaçınılan bu yaklaşım, sistemin basitliğini ve yönetilebilirliğini sağlıyor.

AI rotalama sistemi: Ücretsiz ve ücretli kullanıcılar için akıllı yönlendirme

AI hizmetlerinin maliyetli olabileceği düşünüldüğünde, farklı kullanıcı profillerine nasıl hizmet sunulacağı önemli bir sorun haline geliyor. 10xInterview, bu sorunu çift uçlu bir AI rotalama sistemi ile çözüyor.

Her AI yeteneği, Reviewer gibi bir arayüz ile tanımlanıyor. Bu arayüzün iki farklı uygulama bulunuyor:

  • Ücretsiz kullanıcılar için: Vertex AI ve Gemini 2.5 Flash gibi daha uygun maliyetli modeller
  • Ücretli kullanıcılar için: Daha güçlü ve pahalı modeller (Gemini API)
type Reviewer interface {
    Review(ctx context.Context, in ReviewInput) (ReviewOutput, error)
}

type ReviewerRouter struct {
    Free  Reviewer  // Ücretsiz model
    Paid  Reviewer  // Ücretli model
}

func (r *ReviewerRouter) Review(ctx context.Context, in ReviewInput) (ReviewOutput, error) {
    if auth.PlanFromContext(ctx) == auth.PlanPro {
        return r.Paid.Review(ctx, in)
    }
    return r.Free.Review(ctx, in)
}

Bu sistem sayesinde:

  • Ücretsiz kullanıcılar API kota sınırlarını zorlamadan hizmet alabiliyor.
  • Ücretli kullanıcılar ise daha gelişmiş modellere erişim sağlıyor.
  • API anahtarları değiştiğinde veya hizmetler geçici olarak devre dışı kaldığında sistem otomatik olarak yedekleniyor.
  • Geliştiriciler, yerel geliştirme ortamında herhangi bir Google Cloud kimlik bilgisi olmadan çalışabiliyor.

Akış tabanlı yanıt sistemi: Kullanıcı deneyimini yeniden tanımlamak

İlk sürümde kullanılan senkron REST API yaklaşımı, kullanıcılar için oldukça yavaş hissettiriyordu. 8 ila 14 saniye arasında değişen yanıt süreleri, mülakat hazırlığı gibi zaman hassasiyeti olan bir süreçte ideal değildi.

Bu sorunu çözmek için, Sunucu Göndermeli Olaylar (SSE) tabanlı bir akış sistemi geliştirildi. Bu sistem sayesinde kullanıcılar, AI yanıtlarını kelime kelime görüntüleyebiliyor ve anında geri bildirim alabiliyor.

Sistem, oldukça hafif bir yerel yayıncı-abone modeli üzerine kurulmuş durumda:

type Broker struct {
    mu     sync.RWMutex
    subs   map[string][]chan Event  // submissionID -> aboneler
}

func (b *Broker) Subscribe(id string) (<-chan Event, func()) {
    ch := make(chan Event, 32)
    b.mu.Lock()
    b.subs[id] = append(b.subs[id], ch)
    b.mu.Unlock()
    return ch, func() {
        // Aboneliği sonlandır ve kanalı kapat
    }
}

func (b *Broker) Publish(id string, e Event) {
    b.mu.RLock()
    for _, ch := range b.subs[id] {
        select {
        case ch <- e:
        default: // Abone yavaşsa mesajı atla
        }
    }
    b.mu.RUnlock()
}

Frontend tarafında ise basit bir EventSource kullanımıyla gerçek zamanlı akış sağlanıyor:

const es = new EventSource(`/api/v1/submissions/${id}/stream`);
es.onmessage = (e) => {
    const event = JSON.parse(e.data);
    setReview((prev) => mergeEvent(prev, event));
};

Bu yaklaşım sayesinde:

  • Gerçek yanıt süresi aynı kalırken, kullanıcıların algıladığı yanıt süresi yarı yarıya azalıyor.
  • Kullanıcılar, AI yanıtını beklerken anında geri bildirim almaya başlıyor.
  • Sistem, ekstra altyapı maliyetleri olmadan (Redis, Kafka gibi) çalışabiliyor.

Ancak bu sistemin bir sınırlaması bulunuyor: Tek bir Cloud Run örneği üzerinde çalıştığı sürece etkin. Gelecekte çoklu örneğe geçilmesi gerektiğinde, yayıncı-abone modeli Redis veya başka bir çözümle değiştirilecek.

Vektör benzerliği için Postgres ve pgvector: Basitlik ve performans

Platformda iki önemli özellik, vektör benzerliği gerektiriyor:

  1. Soru çoğullamasını engellemek — Farklı şekilde ifade edilmiş aynı soruların veritabanına eklenmesini önlemek
  2. Özgeçmiş odaklı öneriler — Kullanıcıların özgeçmişine göre uygun sorular önermek

Bu ihtiyaçları karşılamak için Postgres 17’nin pgvector eklentisi kullanıldı. Bu yaklaşımın avantajları şunlar:

  • Ek bir vektör veritabanına gerek yok — Veriler zaten Postgres’te bulunuyor.
  • Yönetim kolaylığı — Tek bir veritabanı, yedekleme ve ölçekleme stratejilerini basitleştiriyor.
  • Yeterli performans — pgvector, benzerlik aramaları için yeterli hız ve doğruluk sunuyor.

Gelecekte ölçek büyüdüğünde, sistem Redis veya OpenSearch gibi daha gelişmiş vektör veritabanlarına geçiş yapabilir. Ancak şimdilik, basitlik ve maliyet etkinliği ön planda.

Gelecek hedefleri: Ölçeklenebilirlik ve yeni özellikler

10xInterview, sadece bir başlangıç. Gelecekteki hedefler arasında:

  • Çoklu Cloud Run örneği desteği — Yayıncı-abone modelinin Redis’e geçirilmesi
  • AI modeli çeşitliliğinin artırılması — Farklı AI sağlayıcılarına entegrasyon
  • Kullanıcı geri bildirimlerine dayalı iyileştirmeler — Daha doğru puanlama ve değerlendirme sistemleri
  • Uluslararasılaşma — Çok dilli destek ve bölgesel AI hizmetleri

Bu platform, AI destekli mülakat hazırlığında yeni bir standart oluşturma yolunda ilerliyor. Google Interview Warmup’un yerini doldurmakla kalmayıp, kullanıcı deneyimini tamamen yeniden tanımlıyor.

Teknoloji dünyasında "basitlik" ve "etkinlik" arasındaki dengeyi kurmak hiç bu kadar önemli olmamıştı. 10xInterview, bu dengeyi mükemmel bir şekilde yansıtıyor.

Yapay zeka özeti

Google Interview Warmup kapanınca ne kullanmalı? Go, React ve Postgres ile geliştirilen 10xInterview’in mimari sırları ve AI tabanlı mülakat teknikleri hakkında her şey.

Yorumlar

00
YORUM BIRAK
ID #HPI3H6

0 / 1200 KARAKTER

İnsan doğrulaması

3 + 2 = ?

Editör onayı sonrası yayına girer

Moderasyon · Spam koruması aktif

Henüz onaylı yorum yok. İlk yorumu sen bırak.