Azərbaycan Fintech Startaplarında TypeScript: Niyə 2026-da Bu Bacarıq Sənə Lazımdır
Bakıda fintech sektoru böyüyür, TypeScript bilikli developer-lərə tələbat artır. Real kod nümunələri və maaş rəqəmləri ilə niyə indi keçid etməli olduğunu izah edirik.
Giriş: Bakıda Fintech Bumunun Ortasındayıq
Salam, developer dostlar! 👋
Éhtimal ki, son bir ildə LinkedIn-də Bakıda fintech vakansiyalarının artdığını görmüsən. ABB FinTech, Birbank, Emanat, m10 kimi şirkətlər komandalarını genişləndirir, yeni startaplar meydana çıxır. 2025-ci ildə Azərbaycan Mərkəzi Bankının açıq bank API-ləri (Open Banking) üzrə yol xəritəsi elan etməsi ilə bu sektor daha da qızışdı.
Bəs bu fintech komandaları hansı texnologiyanı seçir? Cavab getdikcə daha çox eynidir: TypeScript.
Bu məqalədə sənə konkret kod nümunələri, real rəqəmlər və praktiki səbəblərlə TypeScript-in Azərbaycan fintech mühitində niyə dominant olduğunu izah edəcəm.
1. Pul ilə İşləyəndə Type Safety Lüks Deyil, Zərurətdir
Fintech-də ən kiçik bug istifadəçinin puluna toxunur. JavaScript-in dynamic typing-i kiçik layihələrdə rahatlıq verir, amma ödəniş sistemi yazanda undefined gəlib keçən yerdə number gözləyirsənsə, bu artıq müştərinin 50 AZN-inin havaya uçması deməkdir.
Gəl real bir nümunəyə baxaq. Təsəvvür et ki, AZN transferi üçün API endpoint yazırsan:
typescript// types/transaction.ts interface TransactionRequest { senderId: string; receiverId: string; amount: number; // AZN, minimum 0.01 currency: 'AZN' | 'USD' | 'EUR'; description?: string; } interface TransactionResponse { transactionId: string; status: 'pending' | 'completed' | 'failed'; timestamp: Date; fee: number; } // services/transfer.service.ts async function processTransfer( req: TransactionRequest ): Promise<TransactionResponse> { if (req.amount <= 0) { throw new InvalidAmountError('Məbləğ müsbət olmalıdır'); } if (req.currency === 'AZN' && req.amount > 50000) { throw new LimitExceededError('Gündəlik AZN limiti keçilib'); } const fee = calculateFee(req.amount, req.currency); const result = await ledgerService.debit(req.senderId, req.amount + fee); return { transactionId: result.id, status: 'completed', timestamp: new Date(), fee, }; }
Burada currency field-inə diqqət et — 'AZN' | 'USD' | 'EUR' union type sayəsində heç kim səhvən 'azn' və ya 'manat' göndərə bilməz. Compiler səhvi runtime-dan əvvəl tutur. Saf JavaScript-də bu xətanı ancaq production-da istifadəçi şikayətindən tapardın.
2. Rəqəmlər Danışır: Maaşlar və Tələbat
Baku Stack olaraq biz hər rüb yerli vakansiyaları analiz edirik. 2026-cı ilin Q1 rəqəmləri belədir:
- Junior TypeScript/Node.js developer (Bakı, ofis): 1,200 – 1,800 AZN
- Middle Full-Stack (React + TypeScript + Node): 2,500 – 4,000 AZN
- Senior Fintech Backend (TypeScript + NestJS): 4,500 – 7,000 AZN
- Remote (Avropa fintech, Azərbaycandan): $3,000 – $6,000/ay
Müqayisə üçün: saf JavaScript ilə işləyən eyni səviyyəli developer-in maaşı orta hesabla 15-25% aşağıdır. Səbəb sadədir — fintech şirkətləri TypeScript biliyinə premium ödəyir, çünki bug-ların qiyməti çox yüksəkdir.
Birbank-ın texniki komandasının 2025-də NestJS + TypeScript stack-inə tam keçid etdiyi artıq sirr deyil. Kapital Bank-ın yeni digital banking platforması da TypeScript üzərində qurulub. Bu trend təsadüfi deyil.
3. NestJS + TypeScript: Azərbaycan Fintech-inin Sevimli Stack-i
Niyə məhz NestJS? Çünki fintech backend-i adətən bu xüsusiyyətləri tələb edir:
- Modular arxitektura — ödəniş, istifadəçi, KYC modulları ayrı-ayrı develop olunmalıdır
- Güclü validation — hər gələn request yoxlanmalıdır
- Dependency injection — test yazmaq asan olmalıdır
- Swagger/OpenAPI dəstəyi — bank API-ləri üçün sənədləşmə vacibdir
NestJS bütün bunları TypeScript-in gücü ilə birlikdə verir. Gəl KYC (Know Your Customer) validation nümunəsinə baxaq:
typescript// dto/kyc-verify.dto.ts import { IsString, IsDateString, Matches } from 'class-validator'; export class KycVerifyDto { @IsString() @Matches(/^[A-Z]{2}\d{7}$/, { message: 'Şəxsiyyət vəsiqəsi formatı yanlışdır (məs: AZE1234567)', }) documentNumber: string; @IsString() fullName: string; @IsDateString() dateOfBirth: string; @IsString() @Matches(/^\+994(50|51|55|70|77)\d{7}$/, { message: 'Azərbaycan mobil nömrəsi formatı yanlışdır', }) phoneNumber: string; }
Bu sadə DTO ilə sən həm type safety, həm runtime validation, həm də Azərbaycan-spesifik formatları (AZE pasport, +994 nömrə) bir yerdə həll edirsən. JavaScript-də eyni şeyi yazmaq üçün ən azı 3 dəfə çox kod lazım olardı.
4. Frontend-də Də TypeScript: Birbank Effekti
Fintech-də frontend xüsusilə kritikdir. İstifadəçi balansını görəndə NaN AZN yazılsa, etibar sıfıra düşür.
React + TypeScript ilə sadə balans komponenti:
typescriptinterface AccountBalance { available: number; pending: number; currency: 'AZN' | 'USD' | 'EUR'; } const BalanceCard: React.FC<{ balance: AccountBalance }> = ({ balance }) => { const formatted = new Intl.NumberFormat('az-AZ', { style: 'currency', currency: balance.currency, }).format(balance.available); return ( <div className="balance-card"> <span className="amount">{formatted}</span> {balance.pending > 0 && ( <span className="pending"> Gözləmədə: {balance.pending.toFixed(2)} {balance.currency} </span> )} </div> ); };
balance.available həmişə number olacağına zəmanət var. undefined.toFixed(2) kimi runtime crash-lər artıq tarixə qarışır.
5. Praktiki Tövsiyələr: Bu Gün Nə Etməlisən?
Əgər hələ TypeScript-ə keçməmisənsə, budur konkret plan:
- Bu həftə: Mövcud JS layihəndə
tsconfig.jsonyarat,strict: falseilə başla - İlk ay: Yeni faylları
.tsilə yaz, köhnələrə toxunma - İkinci ay:
strict: true-ya keç, type error-ları bir-bir həll et - Üçüncü ay: DTO-lar, interface-lər, generic-lər ilə tanış ol
- Portfolio: GitHub-da bir fintech demo layihəsi qoy (məsələn, sadə ödəniş API-si NestJS ilə)
Bakıdakı fintech müsahibələrində ən çox soruşulan TypeScript mövzuları:
- Generic types —
Promise<T>,Partial<T>,Pick<T, K> - Union və intersection types — ödəniş statusları üçün
- Type guards — runtime type checking
- Utility types —
Omit,Record,Required
Nəticə: TypeScript Artıq Seçim Deyil, Standartdır
Azərbaycan fintech bazarı 2026-da sürətlə böyüyür. Mərkəzi Bankın Open Banking təşəbbüsü, yeni neobank lisenziyaları və artan investisiyalar bu sektorun developer-lərə ehtiyacını artırır.
TypeScript bilmək sənə:
- ✅ 15-25% daha yüksək maaş imkanı verir
- ✅ Fintech şirkətlərinin müsahibə süzgəcindən keçməyə kömək edir
- ✅ Remote iş imkanlarını dramatik şəkildə artırır
- ✅ Production bug-larını azaldır, sənin və komandanın həyatını asanlaşdırır
Bu gün npm install typescript yaz və başla. Üç aydan mənə təşəkkür edəcəksən. 🚀
Sualın var? Baku Stack Discord serverində #fintech kanalında gözləyirik!
Oxşar məqalələr
Zod ilə TypeScript Runtime Validasiyası: Bugları Production-da Deyil, Əvvəlcədən Tut
TypeScript compile-time-da tip yoxlayır, amma runtime-da API-dən gələn datanı kim yoxlayacaq? Zod ilə validasiyanı necə həll edəcəyini real nümunələrlə göstərirəm.
TypeScript ilə Supabase inteqrasiyası — tam tip təhlükəsizliyi
Supabase + TypeScript birlikdə işlədəndə runtime xətaları minimuma enir. Database-dən gələn hər sətir tipli olur. Necə? Bu məqalədə.
TypeScript Generics — Nədir, Niyə Lazımdır, Necə İstifadə Olunur?
TypeScript generics-i başa düşmək Bakıda frontend və backend vakansiyaların 70%-ində tələb olunan skilldir. Bu bələdçi ilə generics-i bir dəfəlik öyrən.