Petrushenko
Відкрити в Telegram
Founder CS Osvita, Engineering Lead. Все про програмування, освіту та науку. https://www.csosvita.com/ https://www.linkedin.com/in/ivanpetrushenko
Показати більше1 166
Підписники
Немає даних24 години
+397 днів
+4930 днів
Архів дописів
1 166
Цікава вакансія від Anthropic для тих, хто працює з RTL / Verification / Physical Design 👀
Anthropic шукає Research Engineer, Chip Design RL (Reinforcement Learning) — людину, яка допомагатиме прокачувати Claude для задач із chip design.
І мова тут не лише про генерацію Verilog. У вакансії прямо згадуються:
— formal verification
— physical design optimization
— PPA
— робота з EDA tools
Ідея цікава: взяти реальну експертизу з chip design і перетворити її на задачі, evals та reward signals, на яких моделі зможуть вчитися розв’язувати інженерні задачі.
Тобто AI поступово заходить уже не просто в написання коду, а й у значно глибші інженерні домени.
Якщо у вас є ASIC/FPGA background можна спробувати свої сили: https://job-boards.greenhouse.io/anthropic/jobs/5231612008
1 166
Проводжу благодійний вебінар для збору 400 000 грн для Третьої штурмової бригади 🇺🇦
Розповім про свій досвід технічних інтервʼю в топові компанії світу: які задачі дають, що перевіряють, як готуватися і де кандидати найчастіше помиляються.
Буде багато практики, реальних прикладів та інтерактиву.
Приєднуйтесь 🙌
👉 https://dou.ua/calendar/58204/
1 166
Одружився. Політ нормальний 😄
Хлопці, не зволікайте. Якщо вже знайшли свою людину - тягнути нема чого. Ну хіба що за руку 😏
1 166
Цікавий графік від levels.fyi: компенсація Senior SWE vs те, як компанії змінювали кількість інженерів за останні 24 місяці. Кілька спостережень, які добре перетинаються з тим, що ми бачимо в CS Osvita по оферам студентів:
- Anthropic, Ramp, Snowflake та NVIDIA, здається, зараз виглядають одним із найгарячіших місць для сильних інженерів
- Google і Uber залишаються дуже сильними варіантами, особливо якщо розглядати релокейт і подальший переїзд у США
- Швидкозростаючі стартапи — хороший вибір, якщо хочеться більше ownership
1 166
“To be is to do” — Socrates.
“To do is to be” — Jean-Paul Sartre.
“Do be do be do” — Frank Sinatra.
1 166
Всім кого цікавить біохакінг
https://www.amazon.com/Protocols-Operating-Manual-Human-Body/dp/1668032147/
1 166
Python dict lookup — O(1)? Не завжди.
Класичне питання на співбесіді: яка складність пошуку в
dict? Класична відповідь: O(1). Формально правильно. Але ця відповідь мовчки припускає, що обчислення хешу теж коштує O(1). Для int - так. Для короткого ідентифікатора - практично так. А якщо ключ це повний шлях у файловій системі, довгий URL, query signature чи serialized JSON payload - то d[key] перетворюється на O(k), де k це довжина ключа в байтах, а не розмір словника.
Чому тоді Python не помирає на довгих ключах
Через immutability. Рядок у CPython не можна змінити після створення, тому хеш рахується один раз і кешується прямо в об'єкті - поле hash у структурі рядка. Кожен наступний lookup по тому самому об'єкту це просто читання цього поля. Більше того: коли хеші збіглися і вказівники ідентичні, CPython взагалі пропускає посимвольне порівняння. Тому lookup по закешованому ключу справді ~O(1).
Java свого часу пішла іншим шляхом. У 1.0/1.1 String.hashCode() семплив лише кожен (len/8) символ для рядків, довших за 15, щоб зробити хешування константним. Результат - URL і шляхи зі спільним префіксом масово давали колізії, lookup деградував до O(N). У 1.2 семплінг прибрали і прийняли чесний O(k). Python семплінгу не робив ніколи: з 3.4 (PEP 456) це SipHash-2-4 по всьому рядку з рандомізованим seed — заодно захист від HashDoS.
Де пастка
Кеш працює тільки для того самого об'єкта. Щойно ключ створюється заново:
key = f"{tenant_id}:{user_id}:{path}"
value = d[key]
або приходить з json.loads(), зі slicing, з парсингу логів — це новий об'єкт. І ми платимо повне O(k) хешування, а потім ще O(k) memcmp на кожному lookup.
на Python 3.11, ключ 64 KB:
- закешований ключ — 18.4 ns
- свіжостворений — 16 497 ns
Майже 900× на тому самому словнику і тому самому значенні ключа. З них ~11.5 µs це саме хешування, ще ~1.5 µs — memcmp.
Саме такого роду, речі ми розбираємо на Python Advanced: memory model, internals, concurrency, performance та оптимізації. Не «як писати на Python», а як він реально працює під капотом. Потік стартує 4 вересня: https://www.csosvita.com/courses/python-advanced1 166
Ще ніколи на пам'яті живих не було легко - ростити в Україні українських дітей, - і не буде, доки існуватиме росія в її нинішньому вигляді. Щоразу, коли бачу на різних культурних подіях батьків із маленькими дітьми, хочу їм сказати: ви все правильно робите - дитина не запам'ятає, "про що", але назавжди запам'ятає, "як", - і цього їй не одбере ніхто й ніколи: це й є те, що зветься - культурна прошивка.
На фото - перший дзвоник в УФМЛ - ці діти точно її мають.
1 166
Читати. Читати. І ще раз читати.
Товариство, йбнрсн системно атакує українські книжки. Тому пропозиція проста:
Купуйте книжки українських видавництв, скидайте квитанцію з датою від сьогодні — і отримуйте знижку на найближчі курси Python Advanced або Performance Engineering.
Обидва стартують у вересні. Обидва хардкорні. Обидва цікаві.
1 книжка — 5%
2 книжки — 10%
донат на АЗОВ від 5 000 грн — 15%
І так, частину прибутку з цих курсів ми теж задонатимо — як робимо завжди. Тому купуйте українські книжки. Вчіться. Донатьте.
Ми 100% переможемо. А вони традиційно підуть за кораблем 💩🤡🪦
1 166
Круто, що українські школярі перемагають!
https://dou.ua/lenta/interviews/first-european-artificial-intelligence-olympiad/
1 166
Apple представила M5 Ultra. Новий Mac Studio отримав до 512 ГБ об’єднаної пам’яті з пропускною здатністю 1,2 ТБ/с. Для порівняння, у моєї RTX 3090 — 24 ГБ і 936 ГБ/с. Звісно, сама пропускна здатність ще не означає вищу швидкість у всіх задачах, особливо порівняно з CUDA. Але можливість запускати локально величезні моделі, які просто не помістяться у звичайну відеокарту, виглядає дуже цікаво. Ціна Mac Studio з M5 Ultra стартує від $5 499. Дорого, але для локального інференсу великих моделей це вже схоже не просто на комп’ютер, а на компактну AI-станцію.
1 166
З Днем Незалежності 🇺🇦
Колись Андрій Малишко написав старанно "зашифровані" рядки:
"Я люблю дороги, стигле жито
Із блакитним небом пополам.
Рідну, славну, у крові умиту -
Я тебе нікому не віддам!"
І два останні рядки сьогодні кожен (крім, хіба, ждунів) може промовити від себе - і про себе. Не віддам. Нікому. І доземний уклін, і довічна дяка всім, хто за Неї воював і воює, живим і мертвим, - за те, що ніколи більше ми не муситимемо таїтись і шифруватися зі своєю любов'ю.
1 166
Завтра стартує C++ in Depth. Так, це курс про C++. Але значно більше - про інженерію та системне мислення. Ще можна приєднатися до групи. Реєстрація на https://www.csosvita.com/courses/c-plus-plus-in-depth
1 166
дуже цікава стаття про те, як GitHub оптимізував case folding, приведення тексту до форми для case-insensitive порівняння, у своєму пошуковику Blackbird, який індексує сотні терабайтів коду, треба буде додати її розбір в курс про перформенс
https://github.blog/engineering/architecture-optimization/dont-stop-early-case-folding-source-code-at-memory-speed/
1 166
Колись ще в універі я думав, що більшість дивних речей у C++ - це просто особливості мови, які треба запамʼятати.
А потім, на своїй першій роботі, треба було починати дивитися глибше. Ми шукали, чому шматок коду так погано поводиться під навантаженням, і я був майже впевнений, що проблема десь в алгоритмі. Відкрили profiler - а значну частину часу зʼїдали звичайні allocations і непотрібні copies. Кілька змін у lifetime та ownership обʼєктів дали більше, ніж усі спроби «оптимізувати алгоритм».
Ось після таких речей C++ сприймається зовсім інакше. Не як набір складного синтаксису, а як спосіб дуже близько підійти до того, що реально робить компʼютер.
Мені давно хотілося, щоб у CS Osvita був саме такий курс і ось 19 серпня стартує C++ in Depth.
Викладає Костя Вергун — Principal Software Engineer @ Logitech, 12 років працює з C++ у desktop, SDK та embedded.
За 3 місяці й 25 live-занять будемо поступово спускатися «під капот»: розбирати memory, RAII, move semantics, дивитися, що робить compiler, ловити проблеми через sanitizers і profiler, доходити до assembly і multithreading. А потім застосовувати все це вже в реальній інженерії — CMake, SDK development, Qt, Raspberry Pi.
Група невелика, і коду руками буде багато.
https://www.csosvita.com/courses/c-plus-plus-in-depth
