kirjs_ru
1.71K subscribers
327 photos
1 video
1 file
423 links
Стримлю про front-end, Open Source, Angular приходите ко мне на стрим :)

@kirjs | https://www.twitch.tv/kirjs
Download Telegram
https://x.com/WebStormIDE/status/1849447048828842234
Пишут что WebStorm теперь бесплатен для некоммерческой разработки
🔥26😁5👍4🎉4
Я уже 8 лет в Firebase (как по мне, на 6 лет больше, чем надо было).

И призадумался, по каким принципам я выбираю где работать, и как мое отношение поменялось за последнее время.

Ниже расскажу, расскажу, каким мотивации были у меня за мою карьеру, и что для меня сейчас.

1. Платили бы деньги, остальное пофигу
По такому принципу я нашёл свою первую работу, точнее мне нашли родители, и я остался. Я только закончил универ, и не знал чем хочу заниматься. Родители помогли мне попасть в небольшое НКО, которое рассылало врачей в разные страны во время катастроф. Я насраивал компьютеры и чинил принтеры, было скучновато, но зато оставалось свободное время, на курсэру и фриланс.

Через два года я понимал себя немного лучше, и искал работу по следующему принципу:

2. Инструменты и умения
Всё своё детство я использовал язык JavaScript, который долгое время считался ненастоящим языком для всякой фигни. Не зная других языков не знал, я делал на нём сложные и интересные штуки. Со временем JS стал использоваться для разработки сложных приложений, а у меня к тому времени уже было 15 минут лет опыта.

Я подумал, что было бы интересно именно этим заниматься для работы, разослал свое резюме и меня позвали работать финансовым консультантом и перевезли в Нью Йорк. Там я проработал 2 года (и не выучил примерно ничего про финансы)

3. Культура
Через пару лет новизна пропала, а я прочел книгу Ласло Бока "Work Rules!", про культуру Google.

В моей компании в целом было норм, было много умных и талантливых людей, но в Гугле как будто люди верили, что работа может быть в кайф.

20%е проекты, культура доверия, Googlegeist, аналитика для всего, и возможность вздремнуть. Это еще до ништяков вроде бесплатной еды, игровых комнат и мемов.

Пройдя все раунды интервью, свою первую команду, я выбирал по принципу инструментов. Все кроме одной предложенное мне команды использовали технологии, который не были релевантны вне Гугла и не были мне интересны. И только в Doubleclick использовали Angular (да еще и второй), который тогда был на хайпе и был мне интересен, туда и пошёл.

Проработав там год, я понял, что реклама ещё скучнее чем финансы, и мне захотелось убежать. Я понял, что хочу работать над чем-то, что мне близко.

4. Продукт/домен
Во время длинной поездки в кафе на лифте, я увидел, что Firebase ищет программиста. Я очень любил и много использовал их базу данных и мне захотелось туда, а еще они использовали Angular.

Вот чего я не знал, что когда google купил Firebase, он добавил туда несколько продуктов для маркетинга, на которые мне было совершенно плевать, и разумееся именно этими продуктами занималась моя новое команда в Нью Йорке.

Это меня расстроило, но я начал искать возможности поработать над продуктами которые нравились мне. Через какое-то время мы с менеджером смогли выбить мне небольшую фичу в хостинге (интересном мне продукте) в качестве теста,
Я быстро и хорошо всё сделал, и через какое-то время стал владельцем всего хостинга. Дальше к нам перенесли все остальные продукты для разработчиков.

За те 8 лет, что я был на этой работе, я призадумывался о новых для меня мотивациях

5. Задачи и сам процесс
Бывает, что просто нравится заниматься чем-то конкретным, а за это и деньги платят, сидишь себе в потоке, получаешь удовольствие.

Я это особо не учитываю, потому что в целом мне обычно норм на всех работах.

6. Люди
Такую мотивацию я подслушал у Ильи, с которым мы несколько лет назад развели крутой движ по организации митапов. Это было супер весело, и я до сих пор вспоминаю этот период с теплотой (привет Рома).

В какой-то момент он поделился, что ему вообще плевать над чем работать, и с какими технологиями, главное - с кем.

Это заставило меня призадуматься. Я никогда не жаловался не людей вокруг меня, почти все были умны, адекватны, а многие поталантливее меня.

При этом очень редко случалась синергия, как с тем же Ильей, когда ты вроде собирался обсудить одну идею, а к концу разговора придумал еще 5, и загорелся всеми.

Вообще хочу, но найти таких людей очень сложно.


7. Сложные задачи / Жесть
Как-то @chicoxyzzy (вроде
11👍2
где-то на стриме https://www.youtube.com/watch?v=BqwTOc8roR4, но не уверен) рассказывал как он искал свою первую работу, и история была такая, что он искал только самую сложную и интересную жесть, и в результате попал в какое-то низкоуровневое программирование.

Это со мной очень сильно срезанировало, у меня вызывает огромное уважение такой подход: именно супер сложные и редкие задачи могут дать уникальный опыт и помочь стать ценным специалистом в узкой области. К тому же это сильно веселее, чем делать то же, что и все.

Не знаю, хватит ли мне смелости искать работу по такому принципу, было бы круто, если бы я задумался о таком в начале карьеры. Но не буду говорить "никогда".

Серёжа продолжает работать над сложными низкоуровневыми вещами, и даж был приглашенным экспертом в TC39.

8. Идеальное совпадение
Это когда твоим стремлением предпочтением и умениям находится какой-то идеальное место, где именно ты можешь сделать лучше всех.

Мне кажется, что это часто вытекает из предыдущего пункта.

Например Алексей Козятинский (https://www.linkedin.com/in/alexey-kozy), который работал в Chrome Dev Tools в Google, а после ушел в Netflix интегрировать те же самые Dev Tools, мне кажется было бы очень сложно найти более релевантного кандидата.

Или Anthony Levandowski, который начал свою карьеру с того, что пытался научить мотоцикл ездить сам в 2003, потом создал отдел самоуправляемых машин в Гугле, и в 2016 году был куплен Убером, и стал там делать то же самое. Закончилось правда не оч хорошо, но

9. Работа на себя
В случае, когда есть умения, или идеи, которые можно продать напрямую, можно работать на себя, мне пока не оч ясен путь туда, но я регулярно задумываюсь об этом.

10+, всякие другие причины
Есть еще много других причин, типа влияния на мир, стабильность, репутация и престиж, автономия и пр. которые лично мне либо менее важны, либо отсутствие которых мне не удалось пока прочувствовать на себе.
🔥175
После 8 лет в Firebase, сегодня мой первый день в Angular Core 🔥

Я использую Angular больше 10 лет, начиная с angularJS, организовывал митапы, делал кодлабы, и Пулл Реквесты, звал ребят из команды на стримы, и поработать в команде мне кажется логичным продолжением.

Отдельно мы обговорили стримы про Angular, которые теперь часть моей работы, их я постараюсь сделать более регулярными

Пока прохожу онбординг, и предвкушаю свою первую фичу.
🔥122👍149🎉2
Я сегодня выдумал несложные тест для LLM моделей на умение писать код, и игрался с ним все утро.

Мне всегда было сложно оценить, насколько мощна та или иная LLM модель, т.к. большинство задач были либо слишком простые и решались всеми, либо слишком сложными, и не решались никем.

В результате я прошу модель написать код, который разбивает слова (и предложения) по слогам, так чтобы пройти 15 тестов из таблицы внизу. И вот все утро я пробую разные варианты, и смотрю, у кого сколько из 15 получается.

Тесты закинул в комменты, потом добавлю еще кейсов.

Результаты получились такие:

upd: по совету @vitalypavlenko попробовал Claude sonnet (claude-3-5-sonnet-20241022) в курсоре с агентами - мгновенно выдал результат 14/15, потом сразу 15/15


Claude sonnet (claude-3-5-sonnet) в курсоре с агентами - Мгновенно выдал результат 13/15, потом 14/15, потом 15/15

Вчера я потратил с ним час, и он еле добрался до 14/15

Gemini 2.0 flash - Мгновенно выдал результат 13/15
Самый короткий и простой код


ChatGTP O1 - Думал 4:32, результат 13/15


Claude sonnet - Мгновенно выдал результат 4/15

Но пожаловался, что нагрузка велика, поэтому он выдает плохие ответы

ChatGPT 4O в курсоре выдал 4/15, запустил тесты, переделал, запустил тесты, завис, переделал, и попал в странный цикл, где он ничего не менял, но постоянно запускал тесты

Но пожаловался, что нагрузка велика, поэтому он выдает плохие ответы


| Word | Hyphenation
|-------------------------|-----------
| мама | ма-ма
| страна | стра-на
| мама, папа | ма-ма, па-па
| ёлка | ёл-ка
| стрст | стрст
| рукавом? | ру-ка-вом?
| тропинку | тро-пин-ку
| завесила. | за-ве-си-ла.
| грустно | груст-но
| собеседование | со-бе-се-до-ва-ни-е
| инфраструктура | ин-фра-струк-ту-ра
| восстановление | вос-ста-нов-ле-ни-е |
👍9🔥42
Сегодня на внезапном стриме напишем свой deep signal.

https://www.youtube.com/watch?v=PFUCdYWI9aY
https://www.twitch.tv/kirjs
🔥7👍3
https://github.com/dlight-js/dlight

Скинули либу с интересным подходом к рендерингу.

Было бы интересно поковырять на стриме, как работает реактивность, и как они перехватывают создание строк
🔥16
На внезапном стриме в 20:10 по мск (это прямо сейчас) Попробуем написать свои сигналы, и разберемся, как они устроены внутри

👀 Посмотреть: twitch.tv/kirjs | youtu.be/IvPOWJuVpZ0
👍5🌚1
На внезапном стриме прямо сейчас попробуем написать свои сигналы, и разберемся, как они устроены внутри, сегодня добавим эффекты и untracked

👀 Посмотреть: twitch.tv/kirjs | youtu.be/Qpqn8eSWBQQ

🗣 Пообщаться голосом: twitch.tv/kirjs
👍7
Forwarded from Denis Chernov
осваиваю работу с генерацией изображений. Пока сделал вот такие обои. Как вам?
👍21🔥9👎5🏆1🍓1🦄1
На внезапном стриме (через 5 минут) в 20:35 по мск Продолжим писать свои сигналы, и разберемся, как они устроены внутри, сегодня допилим эффекты и добавим untracked и может быть batch

👀 Посмотреть: twitch.tv/kirjs | youtu.be/NgzzAYg3XGM
🔥3👍2
Команда Angular выкатила 2 RFC для Ресурсов:

Архетиктурный
- https://github.com/angular/angular/discussions/60120
API - https://github.com/angular/angular/discussions/60121

Есть много интересных идей, о будущем получения данных в Ангуларе, посмотрим на стриме завтра.

Также шлите там свои мысли в комментах :)
🔥10👍3
На внезапном раннем стриме в 18:30 по мск Посмотрим Resource/HttpResource, и планы у Angular на получение данных в целом.
Почитаем оба RFC
Запустим и попробуем использовать
Ответим на ваши вопросы
Может напишем короткую статью

👀 Посмотреть: twitch.tv/kirjs | youtu.be/ZUMtlRl5HlI
👍1
Посмотрел на стриме ресурсы, в частности httpResource

Создал StackBlitz в котором можно с ним поиграться.

Если вкратце, то он берет сигнал с HTTP ссылкой:

readonly catId = signal()
readonly cats = httpResource<Array<Cat>>(
() => `https://cataas.com/cat/${this.catId()}`
);


Згружает данные и предоставляет статус, значение (сначала undefined) и всякие другие полезные штуки

cat.isLoading() 
cat.hasData() // Сужает тип
cat.value() // Значение, изначально undefined, потом кот


При изменении зависимостей, catId.set('3'), ресурс автоматически перезапустится, и обновит данные, также можно сделать это и вручную (cats.reload()).

Под капотом используется HttpClient, так что все интерсепторы должны работать.

Пока может быть использован только для чтения.

Из приятного, по умолчанию автоматически использует JSON и возвращает распаршеный результат. Но можно использовать httpResource.text(/**/), httpResource.blob или httpResource.arrayBuffer
🔥10👍61
Через 20 минут, должна быть сессия "What's new in Angular" на Google I/O. Я буду там отвечать на вопросы и модерировать чат, приходите поздороваться:
https://www.youtube.com/live/XASRYAR7S5w
🔥18👍10
Screenshot (Jun 12, 2025 10:01:45 PM)
😁6👍2