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

I write about Backend, Infrastructure, Math, ML/AI, and Computer Science.
Download Telegram
Please open Telegram to view this post
VIEW IN TELEGRAM
Promotion oldim 🎉

Dropbox'da ish boshlaganimga ko'p bo'lmadi. Shu paytgacha Core Team a’zosi sifatida 2 ta katta loyiha ustida 2 jamoa bilan ishladim: Network Engineering Team va Infrastructure Team.

Ha Big Tech'da (hammasida ham emas) siz asosiy va qo'shimcha loyiha sifatida yana bir loyiha bilan ishlasangiz bo'ladi va biz uni ToD (Tour of Duty) deb ataymiz.

Polshada hiring juda ko'paydi va bu interviewer bo'lish uchun zo'r imkoniyat ochdi. Hozirgacha 5 ta interview o'tkazdim. 2 tasida shadow va 3 ta interviewer sifatida. Yaxshi tomoni ko'p narsa o'rgandim. Yomon tomoni men o'tkazgan intervyulardan kandidatlar yaxshi perform qila olishmadi (yaxshi kandidat uchramadi).

Sizni o'sishingiz doim ham siz ishlayotgan loyihaga bog'liq emas, balkim menejeringizga ham juda katta bog'liqligi bor. Meni omadim kelib, yaxshi menejerlar uchrab qoldi. Va bugun ularni menga bergan yordamlari bilan Staff Software Engineer (IC5) lavozimiga ko'tarilayabman (Avgust oyidan).

Yaxshi loyihada ishlash yaxshi, ammo loyihani o'sishini (company impact) va loyiha menejerini jamoaga bo'lgan e'tiborini ham inobatga olish juda muhim ekan. Shuning uchun intervyuda faqat kompaniya/menejer sizni emas, siz ham kompaniya/menejerni intervyu qilishingiz muhim.

To'g'risi, agar kimdir "24 yoshingda Staff Software Engineer bo'lib ishlaysan" deyishsa "qo'ysangizchi-ye" degan bo'lardim.

Yig'ilgan tajribalarni esa tez kunlarda 42.uz va otabek.io da bo'lishib o'tamiz.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
#experience

Ikki hafta oldin kompaniyada TechTalk’da "Memory leak" mavzusida ma’ruza berdim. 51 ta turli xil jamoalardan muhandislar kirib eshitishdi, to‘g‘risi ancha qo‘rquv bosdi. Memory leak juda nozik mavzu, agar siz ishlatayotgan tilni mohiyatini yaxshi bilmasangiz xotira bilan ishlashda juda chiroyli muammolarga duch kelishingiz mumkin. Biz asosan Python va Go tillaridan misollar ko‘rib ketdik.

Online meeting orqali qatnasha olganlar juda ajoyib feedback yozishdi. Ularni har hafta o‘qib maza qilyapman. Ma’ruzamning videosi chiqqanidan so‘ng tomosha qilganlar ham yaxshi xabarlar yozishdi, ammo bir yigitni xabari e’tiborimni tortdi. U bu ma’ruzadan keyin tizimdagi memory leak’ni topishga muvaffaq bo‘lgan. 

Ular ishlaydigan tizim kodi Java’da yozilgan ekan. Bilamizki Java ham Garbage collected til hisoblanadi. GC xotirani tozalash uchun reference counting dan foydalanadi. Agar obyekt ishlatiladigan bo‘lsa uni reference count odatda +1 ga teng bo‘ladi. GC juda aqlli bo‘lgani bilan, benuqson emas. 

U yozgan xabarda inner class yozish va uni xotiraga ta’siri haqida gap ketgan. Men uning ma’ruzamda memory leak’ga sabab bo‘lishi mumkinligi haqida misollar bilan yoritib o‘tgan edim. 

Muamo outer class obyekti o‘chib ketganiga qaramay inner class obyekti ishlatilishda davom etishida. Qanday qilib inner class obyekti o‘chib ketmadi deyishingiz mumkin. Sabab, unga reference saqlanib qolgan (ref count +1). Dastur to‘laoqnli to‘g‘ri ishlashini ta’minlash uchun uni o‘chib ketishini ham o‘zingiz dasturlashingizga to‘g‘ri keladi. 

Yana bir bola o‘zining frontend loyhasidan memory leak topganini yozibdi. Closures - outer scope’dagi o‘zgaruvchilarni eslab qola oladi. Agar obyektni saqlab qolsangiz, u reference qilgan qiymatlar ham o‘chmay saqlanib turaveradi degani. Agar ehtiyot bo‘lmasangiz Javascript kodingiz, browser’da leak’ga sababchi ishlar qilishi juda osonligini ko‘rdim. U yuborgan koddan parcha:


function setup() {
  const bigData = new Array(1e6).fill(’leak’);

document.getElementById(’btn’).addEventListener(’click’, function () {
    console.log(bigData[0]);
  });
}


Bunday muammolar ko‘p. Ma’ruza berish orqali faqat o‘rgatmadim, balkim ko‘p o‘rgandim ham. Videoni ommaviy ulashish imkoni bo‘lsa, ulashishni reja qilib turibman. Sizga ham bir parcha tajriba ilindim : )
Claude 4 sinab ko'rdim, u qilgan ishlar miyyamni portlatvoray dedi 🤯

Butun boshli codebase'ni bitta prompt orqali yangilab chiqdi. Kodlarni modular qilib ajratdi, test yozdi va katta chalkash funksiyalarni, kichik va chiroyli funksiyalarga bo'lib chiqdi.


git add -A
git commit -m "enhance code quality and modularity"


Kodni ishga tushurib ko'rganimda hech nima ishlamadi 😬, lekin malades, shuncha yaxshi ish qilib chiqdi. Ha do'stlar, biz shunday ajoyib AI davrida yashayabmiz.


git reset --hard HEAD~1
Please open Telegram to view this post
VIEW IN TELEGRAM
VeriFy AI

Ochiq kodli, hech qanday kutubxonalarsiz, va o'rganish maqsadida qurilgan scam detector.

Loyiha har qanday AI va ML o'rganmoqchi bo'lganlar uchun. Loyihani tushunish uchun kodni va uyerdagi izohlarni o'qish kifoya qiladi.

1. Loyihani kompyuteringizga clone qiling
2. Uni ishga tushuring va train bo'lishini kuting
3. Xabar yozing, u sizga scam yoki scam emasligini aytadi
4. Va albatta ⭐️ bosishni unutmang.
5. Ko'proq open source loyihalar uchun, [follow me]

Batafsil: https://github.com/otabekswe/verify
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
#randomThoughts

Hamma havotir olayotgan, katta kompaniyalar tinimsiz bozorda raqobatlashayotgan narsa bu hozir AI. Sizu-biz ishlatayotgan LLM'lar ham aslini olganda bir til. Ularni linguistic, coding, communication, translation, explanation va e.t.c language yo'llarida ishlatishingiz mumkin. Dasturlash sohasini o'sish tarixi doim ajablantirib keladi.

Tarixda ilk yaratilgan dasturlash tillaridan biri bo'lmish FORTRAN (FORmula TRANslation) ham asosan matematik xisoblash va shu kabi yo'nalishlarda ishlatilgan. Assemblyda kod yozish juda katta intelektual kuch talab qilinishi xisobiga bunday tillar ishlab chiqilgan. Ha compiler dasturlash tillaridan oldin odamlar 0 va 1 larda kod yozishgan (adashmasam).

Tillar sekin-asta yaxshilanib inson tiliga yaqin tarzda kod yozish imkonini berishi o'sib boraverishini tillarni syntax'idan ko'rsangiz bo'ladi. C'da yozilgan kodni tushunish qiyin ammo Python kabi tillardagi kodlarni shunchaki o'qib tushunish osonroq. Hozir esa AI davridamiz. Siz to'laqonli inson tilida kod yozasiz (deyarli).

"Python bo'lmaydi, C++ o'rganish kerak", "Hech kim C da kod yozmay qo'yadi" kabi so'zlarni deyarli 20-30 yildan beri aytib kelishayabdi ammo ular akutalligini yo'qotishmadi. Xuddi shunday AI ham sizni ishingizni olish uchun emas, balkim siz uchun qulayroq ish muhiti yaratish uchun ishlab chiqarilayabdi deb o'ylayman.

AI ishni olib qo'yish xavfi bormi? Albatta, ammo yangi ish o'rinlari yaratish ehtimoli ham bor (balkim yo'qdir, aniq aytish qiyin). Aniqroq nimani ayta olish mumkin? AI shunchaki yordamchi bo'lib qoladi, to AGI yoki ASI yaratilmaguncha. Chunki AI o'zi, erkin harakat qila olmaydi, fikrlay olmaydi (hozircha).

AI qurish uchun eng zo'r til bu Python deyishadi. Menimcha unchalik ham emas. Shaxsan hozircha ko'rgan katta loyihalarim source kodi asosan Rust yoki C++ da (Dropbox'da ham). Adashmayotgan bo'lsam Anthropic (Claude) va Github (Copilot) ham asosan shu tillardan foydalanadi. Buni sabablari ko'p (qoidalar qattiqligi, xotira boshqaruv, xavfsizlik, resurslar, e.t.c.).

Bu post nimadir o'rgatish uchun emas, shunchaki fikrlarimni yozib qo'yish uchun yozildi. "Nimadir" yozgim kelmadi, o'rniga "random thought of mine" yoza qoldim 🙃