Node.js Recipes
3.23K subscribers
174 photos
7 videos
1 file
622 links
По буднях нотатки по #Nodejs розробці, по вихідним огляди конференцій та доповідей (с) @galkin_nikita
Download Telegram
Сьогодні хочу поділитися, як за один вечір, безкоштовно можна посилити своє резюме для #AWS. Кроки:
1. Створіть профіль на AWS Skill Builder, якщо у вас його ще немає. Використовуйте ту пошту, на яку ви збираєте бейджі.
2. Пройдіть курс AWS Well-Architected Foundations.
3. За бажанням, завантажте сертифікат про завершення і обміняйте його на AWS ваучер на 20$ у коментарях до цього посту.
4. Додайте в розділ сертифікацій свого резюме рядок AWS Well-Architected Proficient.
5. Через кілька тижнів від AWS має надійти бейдж на Credly. Я його ще не отримав.

По суті, це повний аналог Skill Badge від Google Cloud, який також вимагає 2-3 години на отримання. Але цього не знають рекрутери, тому ми отримуємо легальний спосіб додати в своє резюме потрібні ключові слова.

Для тих, хто дочитав до кінця, поясню звідки ці 20$: я учасник програми AWS Community Builders, і мені там видали 30 ваучерів для мого ком’юніті.

Update 2025-03-13. Ваучери вже закінчилися.
👍57🔥7😁2
Розіслав електронні листи учасникам AI-Enabled Developer Experience. Перевірте свою пошту.
🔥25
Нещодавно команда Firebase випустила перший стабільний реліз Genkit. Це фреймворк для створення AI-застосунків, який можна використовувати не тільки на платформі Firebase, а й де завгодно та з будь-якими LLM. Genkit забезпечує зручний Developer Experience і має дружню спільноту. Рекомендую розглянути його для вивчення та додати до свого технологічного стеку.
🔥32👍8
Сьогодні один із моїх менті запитав мою думку про (вказано, як в оригіналі)
The "entry-level engineer" doesn't exist anymore.

Поділюсь своєю точкою зору публічно.

Позиція Intern/Trainee буде актуальною завжди, адже нові люди приходитимуть у професію. Інша справа, що вимоги будуть змінюватися. Вони вже зараз змінюються, і в них з'являється вміння ефективно використовувати ChatGPT.

Я був у кількох кампусах США з доповідями, як Google Developer Expert. Тому в моїй мережі LinkedIn є нинішні студенти США. Тож LinkedIn мені регулярно показує їхні лайки. Тому в мене складається враження, що кількість інтернатур у топовій компанії залишається такою ж.

Update: Мені в DM дали посилання на першоджерело.
8👍5
Сьогодні ділюся спостереженням, яке часто зустрічається в проектах, де я проводжу Architecture Board Review.

Багато команд використовують лише одну базу даних, зазвичай PostgreSQL. Хоча це зручно і забезпечує консистентність, ми все одно використовуємо інші сховища даних (наприклад, S3) та інтегруємося з 3rd parties, як-от Stripe чи Firebase Auth. Через це питання узгодженості між DB та 3rd parties все одно доводиться вирішувати.

Не бійтеся додавати ще одну базу даних до проєкту - це може спростити розробку та архітектуру застосунку. Ось кілька прикладів:
1) SQLite для даних, що рідко змінюються. У додатку його монтують як Docker Volume з доступом лише для читання, а зміни здійснюються через адмінку, яка використовує той же volume з правами на запис.
2) Окрема база для аналітики. Наприклад, додатковий PostgreSQL або спеціалізована база для аналітичних даних, щоб основна база не була перевантажувана і це не впливало на користувацький досвід.
3) Realtime база. Firestore або Supabase можуть бути використані для реалізації повідомлень у реальному часі. Підключення серверних подій або веб-сокетів часто вимагає великих змін в архітектурі, тому окрема база для realtime notifications може бути зручною альтернативою.
4) Redis для кешування. Використання Redis або його аналогів допомагає зменшити навантаження на бази даних, пришвидшити доступ до часто використовуваних даних та забезпечити кращу масштабованість проєкту.

На завершення нагадаю про PostgreSQL Extensions. У певних ситуаціях це правильний інструмент для вирішення чергового інженерного завдання.
👍57👏32
Media is too big
VIEW IN TELEGRAM
У середу готовув контент по курсу AI-Enabled Developer Experience та спіймав комплекс самозванця. Усвідомив, що багато функцій WebStorm та Visual Studio я не тільки не використовую, а й навіть не знаю про них.
Тому сьогодні хочу поділитися з вами фічею для WebStorm, що називається Endpoints та чудова працує з NestJS. Згідно з документацією вона повинна працювати з Express, можливо, з Fastify, але, здається, зараз вона зламана. Демонстрація фічі на відео.
Можливо зробити ще простіше, ніж на відео shift+shift /url feed
Catch that DevEx vibe!


Учора вперше використав її під час парного програмування з колегою. Відкрив мікросервіс, над яким він працює. Знайшов у Endpoint потрібний роут, поставив Breakpoint, та почав дебаг. Зворотний зв'язок від колеги, він автор цього мікросервісу, так швидко це не зміг би зробити.
24👍6🔥4👌2
Forwarded from Daria Selezen
🤩🙌 Зустрічайте останнє відео з конференції React+ fwdays'24!

👨‍💻 Доповідь: "Effortless API Integration: SDK Generation as Best Practise" від Nikita Galkin

🎙️ Опис: «Many developers create a separate layer for working with APIs, but Nikita believes that this approach is inefficient — it is better to generate code from your API contract. The talk will cover the following topics: how does SDK differ from API, and why is SDK preferable for development? How can you automatically generate an SDK for Swagger and GraphQL? What should you do if you don’t have an API contract? And finally, why is it important for backend developers to understand React? The talk will help optimize development processes and simplify team interactions, making working with APIs more predictable and convenient».

🗣️ Мова – англійська

Дивіться відео на нашому новому каналі Fwdays Global та не забудьте підписатись! ➡️ https://youtu.be/bjp5Poutb7w?si=nCGJUcF2260EI07f
🔥191💯1
Що повинен знати Node.js розробник у 2025-Q1?

У вересні минулого року я висловлював свою думку Що має знати Senior Node.js Developer. Зараз я спробував зробити аналіз на основі зрізу усіх українських вакансій. Для цього я звернувся до знайомих з DOU. Мене познайомили з Оксаною Лобко. Саме вона той надзвичайно продуктивний інженер, що створював Джинні у 2017-2021. Зараз вона працює над своїм проєктом JobNote.ai та part-time допомагає у DOU.
Оксана надала агреговані дані про вакансіям з українського ринку. JobNote парсить вакансії на сайтах Dou, Джинні та recruitika. Ось так виглядає зріз даних для Node.js: https://jobnote.ai/skills/Node.js/

Прокоментую, що там таке:
– Cеред даних є як чисті Node.js розробники, так і FullStack.
– Title визначається за потрібними роками досвіду. Junior (0,1), middle (2,3,4), senior (>=5).
– Популярність технології визначається кількістю вакансій, де вона вказується як вимога.
– У рамках цього аналізу дані salary/application per job я відкинув
Для зручності аналізу я перейшов від абсолютних показників до відносних. Отже, що нам показують дані?

Що стабільно потрібно? TypeScript, NestJS, React та бази даних стабільно затребувані незалежно від рівня:
- TypeScript – є у 70% вакансій незалежно від рівня.
- NestJS – у 40% вакансій. Express.js/Fastify/etc майже не зустрічаються.
- PostgreSQL – у 50% вакансій.
- MongoDB – у 30% вакансій.
- MySQL – 20%, SQL – 20%, NoSQL – 15%.
- Redis – 25% (але для Junior трапляється рідше).
- React – у 40% вакансій, Next.js/HTML/CSS – у 10%.

Що менше вимагають з розвитком? Очевидно, що певні знання стають само собою зрозумілими:
- JavaScript – важливий для 70% Junior, але для Middle/Senior це знижується до 40%.
- API – 50% для Junior, 40% для Middle та 30% для Senior.
- Git – 30% для Junior, 20% для Middle і Senior.

Що стає актуальніше з розвитком? Явно зростає попит на Cloud Native
- AWS – Junior (35%), Middle (40%), Senior (50%).
- CI/CD – Junior (10%), Middle (20%), Senior (27%).
- Docker – Junior (23%), Middle (28%), Senior (33%).
- Kubernetes – Junior (10%), Middle (12%), Senior (24%).
Топ-3 хмарних провайдерів:
- AWS – Junior (35%), Middle (40%), Senior (50%)
- Google Cloud – Junior (5%), Middle (8%), Senior (15%).
- Azure – Junior (?), Middle (7%), Senior (12%).
Окремо виділю зростання попиту на GraphQL
- GraphQL – Junior (6%), Middle (15%), Senior (18%)

Чого ми не бачимо у вакансіях?
LLM/AI/Agents/etc. Я очікував побачити це у вакансіях у 2025-Q1
Воно ще занадто нове, щоб бізнес розумів, як це інтегрувати в існуючі технічні та бізнесові процеси.

Висновки
Можливо, я упереджений, тому дані лише підтвердили мої припущення:

1. У 2025 Node.js — Boring Technology
2. На ринку найбільше затребувані Node.js розробники, які знають TypeScript, NestJS, React та CloudNative (AWS/K8s/etc).
3. Використовувати ринок, як джерело правди, що варто вивчати, можна тільки до middle рівня. На senior/senior+ потрібно самостійно складати план подальшого розвитку.
👍354
Через 5 хвилин проведу стрім, щодо новини дня TypeScript -> Go:
- https://devblogs.microsoft.com/typescript/typescript-native-port/

Ця новина чудово підходить для розповіді про те, що таке LSP і чому це важливо для нас як розробників.

Навколо цієї теми вже починають з'являтися міфи, які викликані неточності, що виникають під час пересказу.
- https://www.totaltypescript.com/typescript-announces-go-rewrite

Отож давайте розберемо цю новину і додамо технічної глибини та розуміння цієї теми.
Приєднуйтесь до стріму або перегляньте його в записі
https://youtube.com/live/13dWqnuuNlk?feature=share
👍226😁1
Сьогодні хочу поділитися з вами метафорою, яку я використовую для пояснення “технічного боргу” бізнесу.

У вас вдома є горище для зберігання речей (attic for storage)? В ідеалі ми акуратно складаємо туди предмети, але зазвичай буває інакше. Особисто я, коли поспішаю, навіть не піднімаюсь повністю сходами: просто привідкриваю люк і закидаю чергову коробку кудись усередину.

Так само відбувається й у розробці: інженери в поспіху не «піднімаються нагору», щоб грамотно структурувати код, написати тести й оновити документацію. Вони просто «закидають» фічі, аби швидше рухатися далі. Такий підхід накопичує технічний борг.

Настає момент, коли речі перемішані, коробки не підписані або банально закінчується місце. У мене так теж було. Повернувшись із поїздки, я не зміг покласти на горище валізу, яку брав звідти тиждень тому. Довелось влаштовувати генеральне прибирання, на яке пішли всі вихідні. Так само й із технічним боргом: що довше відкладаєш, то дорожче обходиться «прибирання».

Цю метафору можна чудово розвинути й на «технічну смерть» (горище просто обвалилося), і на зміну архітектури/framework (горище вже замале, потрібен повноцінний склад), і на регулярний технічний аудит (періодична інвентаризація горища).
👍674👏2
Хочу нагадати вам, що Alpine, найпопулярніша ОС для докеризації Node.js, також має релізний цикл. У версії 3.18 він завершиться менше, ніж через 2 місяці.

Чому я про це згадав і вирішив поділитися з вами? Бо GitHub Copilot, який в мене налаштуваний вказувати точні версії, згенерував мені ось такий перший рядок у Dockerfile:
FROM node:20.10.0-alpine3.18

Класно, що він встановив версію Alpine. Це потрібно робити. На жаль, у Copilot немає доступу до актуальних версій. У цьому міг би допомогти, якийсь MCP сервер, але це вже зовсім інша історія.
👍293
Anders Hejlsberg (автор TypeScript) та Matt Pocock (автор TypeScript) зараз у прямому ефірі обговорюють TypeScript’s Go Rewrite Port
Рекомендую послухати, а також спробувати задати своє питання. А раптом його обговорять?

https://www.youtube.com/watch?v=NrEW7F2WCNA
👍22🤮52
Шановні читачі, потрібен ваш зворотний зв'язок. Чотири роки тому, коли я створював цей канал, моя основна експертиза була пов'язана з Node.js та Cloud Native технологіями. За останній рік більшість консалтингу, а отже, і рецептів, якими я можу поділитися з вами, стали пов'язані з AI для розробки або AI у створення продукту. У зв'язку з цим маю таке питання.
👍10
Для контенту, пов’язаного з використанням AI
Final Results
20%
створити ще один канал
80%
використовувати цей самий канал.
👍2
Мене в особистих повідомленнях запитали:
…Останні 7-8 років я працював в одній фірмі, невелика інтернет студія…
Хотів би запитати вашу думку:
На які компанії зараз варто звернути увагу?
Що ви думаєте про фріланс-платформи типу Fiverr, Toptal, Upwork? Чи варто пробувати та які є плюси/мінуси?

Ця тема цікавить багатьох, тому відповідаю публічно.

Про фріланс-платформи:
Щоб досягти успіху на платформах на кшталт Fiverr, Toptal чи Upwork, потрібно мати дві речі:
👉 Чітка спеціалізація: підтверджений досвід у конкретній сфері, наприклад, розробка сайтів у певній ніші, створення 3D-анімації, налаштування веб-аналітики тощо. Важливо чітко представляти цю спеціалізацію як на платформі, так і на власному сайті чи в соцмережах.
👉Репутація/рейтинг: історія успішно виконаних замовлень, відгуки та рекомендації від клієнтів.

Розвивати спеціалізацію та репутацію одночасно важко. Якщо спеціалізації немає, краще спочатку здобути її на власних проектах чи через замовлення знайомих. Інакше ви ризикуєте витратити час на безрезультатні пошуки клієнтів.

Фріланс має свою особливость. Це не довстроково, тому що:
👉 Або ви залишаєте цю справу через брак замовлень чи складнощі;
👉 Або знаходите постійних клієнтів і перестаєте активно шукати нових. Просто працюю з постійними клієнтами на прямих контрактах без фрілансу
👉 Або той 0.1% намагається масштабуватись, наймаючи працівників і, по суті, створюючи бізнес.

Про як обирати компанію для роботи:
Зараз ринок праці належить роботодавцям, тобто в працівників не так багато вибору. Проте, нагадаю
⚠️Працюйте в тих компаніях, де ваша цінність на ринку зростатиме завдяки або технічному стеку, або перспективному бізнес-домену.

Для оцінки перспективності домену можна скористатися ChatGPT у режимі DeepResearch і визначити, чи збільшуються витрати кінцевих клієнтів у конкретній ніші. Наприклад, український стартап OnlyMonster.ai автоматизує процеси для OnlyFans-індустрії, яка зараз швидко зростає.

Щодо технічного стеку, звертайте увагу на компанії, що використовують сучасні технології: Cloud Native, AI, Data-driven рішення тощо.
👍21🔥8🥴2
Використання AI інструментів (ChatGPT, GitHub Copilot, Cursor, etc) створює проблему необхідності ручного копіювання деталей контексту з одного інструмента в інший. Конкретний приклад: копіювання деталей дизайну з Figma у вашу IDE для реалізації. Model Context Protocol (MCP) чудово вирішує цю проблему.

Тому, якщо у процесі вашої розробки не використовується жодного MCP сервера, то настійно рекомендую почати це виправляти.

Ось три посилання, щоб дізнатися, що таке MCP:
- https://modelcontextprotocol.io/
- https://addyo.substack.com/p/mcp-what-it-is-and-why-it-matters
- https://www.aihero.dev/model-context-protocol-tutorial

Ось дві ключові MCP новини, які потрібно знати сьогодні:
- OpenAI буде підтримувати MCP у своїх продуктах. https://x.com/sama/status/1904957253456941061
- Вийшла нова версія MCP specification з підтримкою OAuth 2.1. https://spec.modelcontextprotocol.io/specification/2025-03-26/changelog/

Та ось ще один протокол, який, можливо, стане стандартом:
- Agent Communication Protocol ACP – https://docs.beeai.dev/acp/alpha/introduction
👍33🔥5🤔31
1 квітня Amazon анонсував MCP Servers, і це була не жартівлива новина. По суті, це зручна заміна AWS CLI, яка значно прискорює процес розробки. Проєкт поки що перебуває у глибокій альфа-версії, але я вже протестував його разом із Claude Desktop та Cursor і хочу поділитися власними враженнями.

При використанні Cursor ефективність виявилась нижчою через те, що змішувалися код, архітектура та інфраструктура. Була ідея налаштувати кастомний режим, але я вирішив цього не робити і переключився на Claude Desktop. Там мені вдалося зосередитись виключно на одному рівні й успішно вирішити кілька робочих завдань, не покидаючи інтерфейсу Claude. Вони були пов’язані з Visual Prompt Engineering, але це зовсім інша історія.

Короткий огляд AWS MCP серверів:

🔸Core MCP Server – відповідає за підключення та конфігурацію інших MCP серверів, а також забезпечує логування. Ідея окремого сервера для керування всією екосистемою мені сподобалася.
🔸AWS CDK MCP Server – генерує інфраструктуру як код (IaC), дотримуючись рекомендацій AWS Well-Architected. Особисто не тестував, бо використовую Terraform, лише переглянув source code. CDK підтримує багато ресурсів, включно з Lambda Powertools. Планую повернутись до нього під час запуску наступного проєкту на serverless AWS, щоб додатково протестувати AWS Lambda Powertools (TypeScript).
🔸Nova Canvas MCP Server – дозволяє створювати зображення. Саме цей сервер я використовував найактивніше, щоб протестувати кілька гіпотез на моделі від AWS Nova Canvas.
🔸Cost Analysis MCP Server – створений для аналізу та оптимізації витрат на AWS. Конкретних завдань із ним ще не вирішував, перше враження не дуже. Проте сама ідея дуже корисна, і як тільки вийде стабільна версія, планую активно застосовувати його під час архітектурних рев'ю.
🔸Bedrock Knowledge Base Retrieval – сервер для роботи з Amazon Bedrock Knowledge Bases. Поки не маю проєктів із Bedrock KB, тому навіть не переглядав source code.

Корисні посилання:
🔗 Офіційний анонс на AWS Blog
🔗 AWS MCP Servers на GitHub
🔗 Для встановлення більшості Python-based MCP серверів потрібен uv (сучасний Python package manager)

Резюме:
MCP Servers — перспективні інструменти, які вже зараз варто вивчати та пробувати застосовувати у своїх проєктах, а цей AWS проєкт хороший вибір для цього.
🔥23👍5
Сьогодні стартує Google Cloud Next. Я приїхав раніше, щоб взяти участь в GDE Mini-Summit. Нас (Google Developer Experts) і product manager-ов з Google зібрали, щоб поділитися анонсами та планами розвитку продуктів, а також зібрати відгуки. Поділюсь частиною своїх інсайтів за вчорашній день.

AI Related:
- Більшість не використовують Fine Tuning, натомість користуються Few-Shot Prompting.
- У Google немає визначення AI-агента, хоча мають інструменти для їх створення, причому не один.
- AI is game-changer, but we are only learning new rules.
Development:
- Shift left is for suckers. Shift down instead
- Успішність вашої команди та технологічного стека визначається кількістю продуктових експериментів, які ви можете провести за одиницю часу.
👍25
Мене там знову запитують про
Загальний тренд це впровадження «АІ як помічника» для збільшення делівері і немає тенденції до зменшення кількості девелоперів?

Якщо ви фреймворк-розробник, а не інженер, то рано чи пізно вас можуть скоротити. Інженери ж вивчать нові інструменти і залишаться потрібними для бізнесу.

Як зрозуміти, ви інженер чи розробник?
Подивіться, скільки часу ви витрачаєте безпосередньо на написання коду.
Інженер витрачає час, щоб зрозуміти, що потрібно зробити, навіщо це робити, як це декомпозувати, як це алгоритмізувати і мало часу на написання коду.
⚙️Подивіться на ваш технічний стек, як часто він змінюється.
Інженери беруть інструменти, що підходять під задачу, а не обирають задачі під ті інструменти, з якими вони звикли працювати.
🆕Подивіться на те, що ви робите.
Якщо це тисячна форма авторизації чи чергове казино, то навряд чи там є якась інженерна новизна.

На завершення поділюся відео з Las Vegas Sphere. Там Учора Google показав, як вони створюють технологію для адаптації старих фільмів під сферичні екрани. Відео не передає і десятої частини вражень. Інженерні задачі, які їм довелося вирішувати, значно складніші, ніж просто розфарбувати чорно-біле кіно чи підвищити якість зображення.
🔥22👍5
На сьогодні Model Context Protocol (MCP) від Anthropic є де-факто стандартом для передачі структурованого контексту в LLM. Більшість сучасних інструментів та сервісів вже впроваджують або анонсують підтримку MCP.

На цьому тлі починає формуватись нова конкуренція — за протокол взаємодії між агентами. Цього тижня Google анонсував Agent2Agent (A2A) Protocol, який має забезпечити повноцінну взаємодію агентів у складних корпоративних середовищах з ізольованими системами та даними. На ринку вже є альтернативи, зокрема Agent Communication Protocol від IBM / LF Projects, і цілком можливо, що з’являться нові гравці.

Хто саме отримає статус індустріального стандарту — покаже час. Бо ключове тут не в тому, яка специфікація краща, а наскільки широко вона буде інтегрована у фреймворки, інструменти та робочі процеси розробників.

image by Matt Pocock
🔥32👍91🥴1