Engineering Under Uncertainty
Позната ситуация: трябва да избереш архитектура, технология или посока сега, а половината от нещата, които биха ти помогнали да решиш, още не са известни.
Колко ще бъде реалното натоварване? Къде ще се появи тесният участък? Колко ще нараснат данните? Ще важат ли днешните изисквания след година? Кое от допусканията на екипа ще се окаже грешно?
Проблемът не е просто, че ти липсва информация. Истинският проблем е как да отсееш наистина значимите фактори, кое си струва да провериш, кои резултати могат да се предвидят до определена степен още сега дори без знание за бъдещето.
Това умение става още по-важно с AI. Имплементацията става все по-бърза и по-евтина, но добрата инженерна преценка не се автоматизира толкова лесно. Колкото по-бързо можем да строим, толкова по-бързо можем да построим и грешното нещо.
Науката се занимава със сходен проблем от векове: как да стигнем до надеждно заключение, когато наблюденията са оскъдни, измерванията са шумни и правилният отговор не е известен предварително.
В този практически 3-часов уъркшоп с насоката на д-р Константин Гиздов ще работим върху начини да ограничаваме неизвестното, да оценяваме мащаба, да проверяваме собствените си идеи и да вземаме защитими технически решения, без да чакаме „перфектните“ данни.
Подходите са вдъхновени от научния метод, експерименталната физика, статистиката и системното мислене, но няма да учим физика и няма да решаваме сложна математика. Ще ги използваме върху проблеми от софтуерната архитектура, cloud, distributed systems, data и AI.
Дори пълната неизвестност има реални граници
Какво можем да знаем, дори когато ни липсва информация?
Когато не знаем точния отговор, лесно е да приемем, че „всичко е възможно“. В реалните системи почти никога не е така.
Ще търсим ограниченията, които вече са известни: ресурси, време, цена, зависимости, бизнес правила и условия, които винаги трябва да останат верни - и най-вече как комбинирайки ги чрез граници, инварианти и еквиваленти можем да свием широк проблем до много по-малко поле от реалистични решения - дори преди първата линия код.
Естимирай преди да избереш
Трябва ли ти наистина Kafka? А Kubernetes? Distributed database?
С оценки от типа на задачите на Ферми ще работим с натоварване, брой потребители, обем данни, пропускателна способност, време за отговор и цена.
Не търсим точност до втория знак след запетаята. Търсим порядъка: При какъв мащаб сегашното решение действително спира да бъде добро?
При какъв дъжд ще падне къщата?
Вместо да доказваш, че идеята ти е добра, опитай да откриеш кога ще се счупи.
Много по-лесно е да се влюбим в архитектурата си, отколкото да търсим активно причините тя да е грешна.
Ще разглеждаме техническите решения като хипотеза:
Допускане → предвиждане → проверка → наблюдение → решение и ще видим как това помага при прототипи, spikes, ADRs и evaluation.
Бъди готов за проблеми, които дори не може да предвидиш
Как проектираме система така, че да можем да разберем какво се е случило дори при ситуация, която не сме предвидили предварително?
Дизайнът ни трябва да помогне да отговорим на трудния въпрос: „Какво, по дяволите, се случи?“
Всеки компонент трябва да си заслужи мястото
Кога сложността е необходима и кога просто overengineer-ваме?
Всяка queue, cache, service boundary, abstraction или нова технология има цена.
Ще използваме прост въпрос:
Кое конкретно изискване налага тази сложност?
И ще видим как да променяме техническите си решения, когато ново наблюдение покаже, че първоначалните ни разбирания вече не са валидни.
Уъркшопът се провежда онлайн, без запис.
Какво ще научиш
-
01
Разграничавaш факти, предположения и неизвестни
-
02
Намираш ограниченията преди да търсиш решенията
-
03
Оценяваш мащаба на проблема преди избора на технология
-
04
Структурираш архитектурни решения като тествани хипотези
-
05
Откриваш ситуации, които могат да счупят решението ти
-
06
Проектираш observability като част от системата
-
07
Разпознаваш кога комплексността е оправдана
-
08
Променяш техническото си решение, когато наблюденията се променят
За кого е подходящ този Workshop
-
Senior Software Engineers
-
Tech Leads и Staff / Principal Engineers
-
Software и Solution Architects
-
Engineering Leads и Engineering Managers
-
Platform / DevOps Engineers
-
Data / AI / ML Engineers
-
Инженери, които вече не отговарят само за иплементацията, а редовно трябва да вземат решения с последствия отвъд кода, който пишат днес.
-
Не са необходими знания по физика или advanced mathematics.
Структура на сесиите
-
Engineering Under Uncertainty
Ще научиш как да вземаш по-обосновани технически и архитектурни решения при несигурност, като оценяваш мащаба, проверяваш допусканията си и избягваш ненужната сложност.
За лектора
-
Константин Гиздов
AI Engineering Lead @ Schwarz Digits Bulgaria
Д-р Константин Гиздов е AI Engineering Lead с опит в software и systems architecture, distributed systems, cloud infrastructure, AI/ML, data-intensive systems и engineering leadership.
Преди кариерата си в IT работи като учен по Experimental Particle Physics към LHCb експеримента в CERN, където се занимава с machine learning, statistical inference, high-performance computing и анализ на сложни системи при непълна и шумна информация.
По-късният му професионален опит преминава през energy systems, AI platforms, robotics, retail pricing systems, cloud architecture, startups и large-scale production deployments.
За нас
Общността зад AI Workshops
DEV.BG е общността, която вече повече от 10 години свързва и развива технологичните специалисти в България — с над 1800 събития и десетки хиляди участници през годините. AI Workshops е нашата програма за практични AI обучения: кратки и интензивни формати, водени от доказани експерти, създадени за конкретни аудитории и различни нива на AI зрялост.