Otabek’s I/O
1.65K subscribers
54 photos
3 videos
66 links
Sr. Software Engineer (IC4) @Dropbox | Mentor @qirikki

I write about Backend, Infrastructure, Math, ML/AI, and Computer Science.
Download Telegram
Linux World (part I)

Ushbu postda:
- Linux operatsion tizimi haqida
- Qanday qilib tekinga linux container olish haqida
- File System mavzusi
- Access Control mavzusi
- Process Control mavzusi
haqida yoritib o'tdim.

Bu postni bog'cha bolasi o'qib, tushunganiga qoyil qolib yubordi. Siz ham o'qisangiz ko'p amaliyot qilib ko'rsangiz bo'ladi.

Postni o'qish

@otabekswe
Linux World (part-II)

Ushbu postda:
- System Control
- Fork bomb xujumi
- Disk Space filler xujumi
- Hackerlik tuzog'imga tushgan do'stim
- Hackerlarni xujumiga qarshi amaliy choralar
...haqida yoritib o'tdim.

Bu narsalarni sizga hech kim o'rgatmaydi. Men esa ko'p xujumlar qilib ko'rgan va ularga qarshi turgan inson sifatida o'z tajribalarimni ushbu postda yoritib o'tdim. (Kernel haqida alohida post bo'ladi)

Postni o'qish

@otabekswe
Bloom Filter

Telegram, Google, Instagram kabi tizimlar qanday qilib milliardlab foydalanuvchilar ichidan XYZ username bo'sh yoki olinganligini sizga tez ayta olishiga qiziqganmisiz?

System Design intervyularingizni buzib tashlashni istaysizmi?

Ushbu post aynan siz uchun. Hech qayerda bu mavzu haqida yozilmadi, birinchilardan bo'lganimdan xursandman.

Postni o'qish

@otabekswe
#scienceIn60Seconds

Firewall

Networking sohasida tajribalarim juda kam. Shunga qaramay Senior darajaga 6ta kompaniya bilan intervyu o'tkazganman. Xulosa natijasida eng ko'p berilgan savol bu Firewall haqida bo'ldi.

Firewall - bu xavfsizlik devori. Qadimgi xitoy urushlarida devorlarga olovli sharlar otilgan bo'lsa, hozirgi urushda jpriqlar sizni veb-sahifangizga xujum qilishadi. O'sha xujumlarni oldini olish uchun firewall ishlatishingiz mumkin.

Firewall ayrim siz bergan yoki oldindan berilgan qoidalar asosida ishlaydi. Backdoors, Spam, SQL Injection, DDoS va shu kabi ko'plab xujumlarni oldini olishda ham ishlatishingiz mumkin.

Networking haqida ham keyinroq post yozishni reja qilib turibman. Hozircha sizdan "Manejeriz bilan komfliktga tushib qolsangiz nima qilasiz?" deyishsa Hashmap "Firewall" ishlataman deb javob bersangiz bo'ladi.

@otabekswe
Python: Memory Management

Ushbu postda siz:
・ Garbage collector
・ Reference count
・ Finalizer
・ Cyclic reference
・ Weak reference
・ Stack Tracer
... haqida o'rganasiz.

Postni yaxshilab o'qisangiz, keyingi interview`laringizni qiyqiriq feedback bilan o'tasiz.

Postni o'qish

@otabekswe
Python Interview Questions

Ushbu postda:
・Qiziq savollar
・Javoblar
・Best practice`lar
・Python internals
... va h.k.z advanced mavzularni qo'shdim. Bilimingizni sinab ko'rish vaqti keldi.

O'qing, o'qish foydali!

Postni o'qish

@otabekswe
Welcome to Functional World

Ushbu postda:
・Functional Programming nimaligi
・Procedural vs Functionl farqi
・Rekursiya Loopdan qimmatroq
・First-class va High-order funksiyalar
...va nima uchun FP zo'rligini yozib o'tdim.

Bu postdan keyin ko'plab dasturlashdagi tushunchalarni oson tushunasiz degan umiddaman.

Postni o'qish

@otabekswe
IBM'dan offer oldim 🎉

Postni o'qish

@otabekswe
Dropbox'dan offer oldim 🎉

Postni o'qish

@otabekswe
FAANG'ga sayohat

2021: Facebookdagi amaliyot (internship) haqida eshitib qiziqishim juda oshgandi

2022: Amazon, Intel va Cloudflare dan rad javobi oldim

2023: Intel, BNY Mellon, Deloitte dan rad javobi

2024: Google (universitetdan keyin qaytaman), IBM, Dropbox va Meta offer.

2025: Loading…

Mana Linkedin, menga ergashib (follow qilib) qo'ying.

Yaxshi maqolalar: otabek.io

@otabekswe
Inson bilgan bor bilimini gapirib bera olmaydi. Gapirib tushuntira olgan narsasini esa, yozib tushuntirishi qiyin.

Anchadan beri blog yozib kelaman, oldin ingliz tilida yozardim, hozir faqat O’zbek tilida yozaman. Bunga asosiy sabab O’zbek tilida ham bunday foydali kontentlarni ko’paytirish.

Blog yozish qiyin. Unga yetarlicha bilim, tajriba va sabr kerak. Chunki uni o’qigan insonlar sizni tushunishi uchun maksimal soddaroq tilda boshlab, keyin ilmiyroq tushunchani yetkazib berib yakunlashingiz kerak.

Yaqin kunlarda yaxshi bloglarni sizlar bilan bo’lishib o’taman. Undan oldin esa bloglar haqida fikr va takliflaringizni so’ramoqchiman.

Men yozgan maqolalar sizga yoqsa, avtorni qo’llab turishingiz, bizga ko’proq blog yozishda va uni ostidagi xizmatkor serverlar xarajatiga katta yordam bo’ladi.

O'z xissangizni qo'shing: tirikchilik.uz/otabek
Testing in Action

Yaxshi dasturchi doim dasturini test qiladi. Test qilish uchun test yozishni o'rganing. Qanday test yozishingizni esa ushbu post orqali kashf qiling.

Maqolani o'qish

@otabekswe
Trustober

Bu oy Dropbox uchun Trustober ya'ni HackMonth hisoblanadi. Barcha jamoalar turli xil yo'nalishlarda tayyorlangan muammolarni yechib chiqishadi va tizimdagi xatoliklarni qidirishadi. Tizimdagi xatolik darajasiga qarab score berishadi. Qancha ko'p tizimni buza olsangiz shuncha yaxshi.

Bu an’ananing yoqqan tomoni, juda ko'p o'rganasiz. Ko'plab zaifliklarni topish, tez fikrlash, qarorlar qabul qilish va ularni yechishni o'rganasiz.

"Tajribang ko'p ekan" deb captain qilib saylashdi, aslida unday emas. Lekin men imkoniyatdan foydalanib qoldim, o'z lavozimimni suv iste'mol qilgan holda jamoa nomini o'zim berdim. Ular baribir tushunishmaydi, bo'laveradi.

JPRQlar, biz yutamiz!
2024 Recap

Ushbu maqola texnik emas ammo men uchun eng yaxshi bloglardan.

Odatda bunday blog yozmasdim, ammo bu yil olgan yaxshi tajriba va xuloslarni bo'lishishga qaror qildim.

Maqolani o'qish

@otabekswe
otabek.io endi bizniki 🥲
Keling tanishamiz!

Anchadan beri auditoryia bilan jonli suxbat qilish uchun vaziyat izlab kelaman. Ushbu onlar keldi deb o'ylayman.

Sizlar uchun sessiya yaratdim, va ushbu sessiya davomida dasturlashga tegishli bo'lgan ba'zi mavzular haqida gaplashamiz. Joyingizni hoziroq band qiling!

Joylar soni: 30 ta
Mavzu: Habits & Algorithms

🔗 Sessiyaga yozilish
Tayyormisiz?

FAANGda
intervyu olish jarayoniga doim qiziqardim. Senior Software Engineer bo’lganim uchun bu yildan intervyu olishim kerakligni aytishdi (Technical va System Design). Yaxshi intervyu uchun nimalar kerak:

• STAR metodi bo’yicha javob berishni mashq qiling
• Muloyim bo’ling
• Texnik bilimlaringizni sayqallang
• Muammoni yechishdan oldin aniqlashtiruvchi savollar so’rang
• Muammoni va yechimni shoshilmay, yaxshi tushuntirib bering
• Eng asosiysi shashilmang!

Intervyudan o’tish sirini sizga fosh qilib qo’ydim. Agar bu ma’lumotlar sizga foydali bo’lib offer olsangiz, menga ham yozib qo’ying.

Haqiqiy askar intervyuga tayyorlanmaydi, doim intervyuga tayyor turadi.

Intervyuda ko’rishguncha.
Strawberry Test

Dropbox'da Core Teamda ishlayman. Bizni jamoa butun kompaniyani infrastrukturasini ko'tarish uchun dastur ishlab chiqadi va maintain qiladi. Undan tashqari jamoa AI ustida ham ishlashadi.

Suniy intelektda tokenization jarayoni mavjud. Siz AI'ga matn yozganingizda, matnni kichik bo'laklarga bo'lib oladi va har bir bo'lakni token deb xisoblaydi. Misol uchun "Salom mening ismim Otabek" -> ["Salom", "mening", "ismim", "Otabek"]. Bu jarayon faqat matn uchun emas balki so'z uchun ham, harflar uchun ham ishlaydi. "AI" -> ["A", "I"]. Machine learning modelingiz bu matnni tezroq tahlil qila olishi uchun shunday qilinadi. (Bu qisqacha ma'lumot)

Ayanan shu tokenization jarayonni qanchalik yaxshi qilinayotganini Strawberry test orqali aniqlashar ekan. Ha, AI tokenization jarayoni uchun ham test yoziladi. Siz AI'ga "How many r's in strawberry" deysiz. U esa sizga to'g'ri javob berishi kerak. Ammo nimaga aynan "strawberry"?

"strawberry" so'zi o'zi juda qiziq so'z ekan. Tahminan shunday ["straw", "berry"] token bo'lar ekan. Bu degani ikki so'z ham nimanidir anglatadi va AI aynan shu yerda aldanadi. Yaxshi tokenizatsiya qiluvchi AI model esa buni bitta so'z sifatida ham qaray olishi kerak. Agar siz yaratgan AI model "r" lar soni 1ta desa demak yaxshi tokenizatsiya qilmayabdi ekan.
#experience

Kecha qiziq ishlar bo'ldi. Jamoada ansible bilan file transferda muammo bo'layotgani, bandwith oshib ketgani haqida aytishdi. Ya'ni muammo juda ko'p fayllar tarmoqda transfer bo'lsa bandwith oshib ketayotgan ekan. Bu muammoni o'z zimmamga oldim. Ozgina research qilib, bergan yechimim jamoani qiziqtirdi. Muammoga yechimni juda oddiy tilda yozdim: compress (archive all files) before sending

Yechimni discuss qildik va ba'zi pointlarga to'xtalib o'tdim. Bir nechta fayllarni yuborish o'rniga barchasini (compress) archive qilib yuborish yaxshi idea bo'ldi. Jarayonni to'liq test qilib ko'rdik, natija 1 minutdan -> 20 sekundga tushdi. Boshida HTTPS beradigan TLS xavfsizligi yaxshi deb turgandim. Ammo bu faqat file transfer vaqtidagina xavfsiz, fayl manzilga tushgandan keyin u ochiq bo'lishini aytishdi. Ba'zi fayllarni hech kim ocholmasligi kerakligi uchun uni Private (va Public) keydan tashqari encrypt/decrypt qilish uchun imkoniyat qo'shdim.

Kattaroq va ko'proq fayllar bilan sinab ko'rdik (log, va juda ko'p config fayllar bilan), natija juda zo'r. Eski holatdagi o'tkazish uslubi 3 minut oldi. Yangi xolatdagi o'tkazish esa 43.12 sekund. Compression algoritmlari haqida yana ham ko'proq narsa o'rganib chiqdim, qiziq tajriba bo'ldi.

Qiziq narsa eshitdim: Lucerne shahridan Zurich shahrigacha har kuni poyezd orqali 1TB ma'lumot berib yuborilar ekan. (Esimda qolmadi nomi) Qanaqadir labaratoriya va uni tahlil qiladigan korpuslar boshqa-boshqa joyda joylashgani uchun, tarmoq orqali ma'lumotni yuborgandan, uni poyezda yuborish tezroq bo'lar ekan. Chunki uni hali process ham qilish kerak, unga ham vaqt oladida.

Updated:
Katta Data Center levelda ham test qilib ko'rdik, natija 1000x bo'ldi. Ya'ni bu yerda time complexity O(days) -> O(minutes) o'zgardi.
Xabarchi botga keladigan, eng ko'p so'ralgan savol bu:
Nimaga aynan Dropbox'ni tanladingiz?

Mening javobim:
Ko'p kompaniyalar ichidan aynan Dropbox'ni taklifi qiziqroq bo'ldi. Doim katta bosim (high load)ni ko'taruvchi tizimlar qurishda qatnashishga, high-level dan low-level ga o'tishga qiziqib kelganman. Biz bilgan o'sha mashxur data structure va algorithm bilimlarni amaliyotda qo'llashga qiziqqanman. Dropbox bu imkoniyatni qaysidir ma'noda berayabdi. Keyinchalik olayotgan tajribalarimdan ba'zilarini bo'lishib borishga harakat qilaman.

Bilaman ko'p joylardan ishga taklif oldim. Google'ga ishga taklifim hali ham o'z kuchida, Sentyabrgacha bir qarorga kelishimni kutishayabdi. Meta ishga taklifimni internshipga o'zgartirishga harakat qilib ko'rdim, o'xshamadi, rad javob oldim, taklif kuyib ketdi. Undan tashqari yaqinda Atlassian'dan ham ishga taklif oldim Polshadagi jamoaga (Compass mahsuloti & jamoasi uchun), shunchaki qiziqishga topshirib ko'rgandim, o'xshab ketdi.

Olgan xulosalarimdan biri bu:
zo'r kopaniyada ishlashni emas, zo'r mahsulot ustida ishlashni tanlang, yutqazmaysiz. Yo'q degandan zerikmaysiz.