Тихон | Помогаю разработчикам устроиться в BigTech
4.18K subscribers
111 photos
12 videos
1 file
89 links
Senior-разработчик, ментор
Отзывы https://t.iss.one/bestitteam
🫂Записаться на консультацию или задать вопрос @codepunks_bro
Download Telegram
2⃣4⃣
Дамир
Хочу перейти на новую работу.
Будет прекрасно, если поможете.
Моя история:
Мне 48.
Опыт в качестве frontend-разработчика по резюме 3 года.
Выпускник великого вуза: МИФИ. 💪
Зарплата на текущем месте работы: 150-180.
Хочу выйти на работу уровня 250-300.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5.5K👍529498🎉469❤‍🔥2🌭2
24 заявки!

Надеюсь, вы смогли посмотреть истории всех ребят и готовы оставить свой голос)

Все достойные, все супер
Опрос не сможем устроить так как там ограничение)
Поэтому голосуем реакциями, а завтра подведем итоги и начнем работу😘
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥115
Мы поняли, что голосование вышло из-под контроля 😅

Сразу скажу, что мы против накруток и стремимся к честному результату. Также для нас важно, чтобы внутри сообщества сохранялась дружественная атмосфера. Давайте уважать друг друга 🙂

Есть мысль сделать внутренне голосование, провести опрос внутри команды наших менторов, где точно не будет подобного.

Также мы упустили одну заявку, где тоже интересная история. Ее тоже включим в голосование

Думаю, так будет честнее по отношению ко всем.
Please open Telegram to view this post
VIEW IN TELEGRAM
28👍21❤‍🔥6🎃3
Мы придумали реалити, чтобы помогать людям, что в целом и есть главная цель канала)

Такой формат помогает людям с похожими историями заряжаться друг от друга и получать мотивацию. Это никак не предполагает ссор и негатива в комментариях)

Для меня эта ситуация тоже сложная, но я не хочу никого обвинять и вешать ярлыки.

Мы подведем результаты ближе к вечеру, постараемся рассудить справедливо и выбрать самую искреннюю историю, за которой интересно будет наблюдать)
29❤‍🔥6👍3🦄2
Мы готовы подвести итоги 🏃

Просмотрели вместе с командой заявки и приняли финальное решение! Это было непросто, потому что все кейсы интересные для работы и во всех историях можно найти себя)

Так как заявок было много и конкуренция очень высокая, решили взять двоих человек 🫡

Наши победители - номера
7 и 17

Искренне поздравляем победителей и готовимся к работе) Скоро свяжемся с ребятами и начнем транслировать наш путь)

Ещё раз всем спасибо за участие!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥21👏105👌3❤‍🔥1
Первые впечатления Маши от работы 😇

Завтра возвращаемся к обычному контенту, но будем держать в курсе как идет работа, от подготовки до финального оффера 🤝

На первом звонке поставили цель - устроиться до нового года
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2610❤‍🔥6👍1🦄1
Чем дольше я веду менторство, тем реже на консультациях рассказываю про этапы, базы знаний и прочее.

И всё чаще — про людей.

Когда-то программа была системой из пунктов — резюме, собесы, техничка, созвоны, задачи.

Сейчас это сообщество разработчиков, которые тянут друг друга вверх.

Сейчас в CodePunks уже почти 90 человек.🥹🥹🥹

И рост сообщества напрямую влияет на скорость результатов учеников.

Резюме и скрининги, тех собесы, 2 раза в неделю совместное решение задач, поддержка на испытательном, рефералки.

Все это мы делаем вместе.

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

Если бы не сообщество, мы бы физически не прошли 743 собеседования за 9 месяцев)

Если бы не сообщество, кто то бы точно сдался после очередного отказа.

Будь менторство просто созвонами по расписанию - не было таких результатов по размерам офферов (смотри скрин).

Горжусь.
@codepunks_bro
🔥1810❤‍🔥4👍2🥰2👏2💯2
Недавно на стриме задали вопрос, а какое значение у таймера в мс:
setTimeout(() => {}, 0.004)

После которого все значения приравниваются к минимальному?

Стрим прошел две недели назад, и в поисках разгадки я пошел в исходный код хрома, где есть вот такие комментарии:
// Chromium uses a minimum timer interval of 4ms. We'd like to go
// lower; however, there are poorly coded websites out there which do
// create CPU-spinning loops. Using 4ms prevents the CPU from
// spinning too busily and provides a balance between CPU spinning and
// the smallest possible interval timer.
static const double minimumInterval = 0.004;


А если более точно:
- В Blink таймеры держат «зажим» 4 мс только после 5-го уровня вложенности (цепочка/рекурсивные вызовы). Это видно прямо в исходниках: maxTimerNestingLevel = 5, minimumInterval = 0.004, и если вложенность ≥ 5 и запрошено меньше — поднимают до 4 мс. Для остальных случаев сначала берут максимум с 1 мс.

- В фоновых вкладках Chromium дополнительно душит таймеры (выравнивание/интенсивное throttling), так что задержки могут стать ≫ 4 мс.

- Спецификация HTML тоже говорит: «после пяти вложенных таймеров» — минимум 4 мс.

Итого:
— setTimeout(() => {}, 4) в активной вкладке, без вложенных вызовов — ок, но первый таймер может сработать и около 1–4 мс.

— setTimeout(() => {}, 0) в активной вкладке: первые несколько срабатываний могут быть ~1 мс, после 5-й вложенности — будут зажаты до 4 мс.

Теперь можно спать спокойно)
🔥25👍8👀64
This media is not supported in your browser
VIEW IN TELEGRAM
🔥117❤‍🔥3
Вижу, что часто спрашивают про тему прохождения ИС, так как я сам учавствую в найме и собеседованиях и попадал в не самые простые ситуации с разработчиками = записал небольшой подкаст на эту тему.
9❤‍🔥3
Стрим с викториной по задачам с собеседований🔥

Постепенно возвращаемся в рабочий темп со стримами

22.10 в 20:00 - стрим по задачам на контекст, замыкания и другие нюансы, что спрашивают на собеседованиях

К сожалению прошлый бот для стримов немного крякнулся, поэтому пришлось оперативно сделать новый - @codepunksstream_bot

Все приглашения на стримы отправлю в бота за час и за 15 минут до начала)
🔥1310❤‍🔥3😍1
🎰 Стрим по решению задач с собеседований уже сегодня в 20:00

Готовимся провести вечер в мозговом штурме)

Ссылки на стрим будут в @codepunksstream_bot
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1110🔥6🤝1
Через 1.40 начинаем)

Тут будет чат 🤝
👍2🔥2🤝2
Что интересного можно рассказать на собеседовании?

Кажется, что методы и browser API настолько многогранны, и нередко можно найти применение или интересные возможности просто раз в неделю заходя в MDN.

Конечно напрямую про них рассказывать без вопроса интервьюера будет как минимум странно, но 👇

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

Надеюсь, что пост поможет освежить память или узнать что-то новое, поехали 🫡

1) MutationObserver
Один из самых часто используемых из списка.

Что делает: Следит за изменениями DOM (узлы/атрибуты/текст).

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

const mo = new MutationObserver(records => {
for (const r of records) if ([...r.addedNodes].some(n => n.id === 'widget')) mount();
});
mo.observe(document.documentElement, { childList: true, subtree: true });


2) requestIdleCallback

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

Зачем нужен: Отложенная аналитика и малозначимые расчёты (warm-up кэшей, prefetch конфигов).

requestIdleCallback(() => warmUpSearchIndex(), { timeout: 2000 });


3) requestAnimationFrame

- Ставит колбэк перед отрисовкой кадра.

Для чего:
- Плавные анимации чисел/скролла без «дёрганий».
- Синхронизация измерений/изменений DOM «в такт» с пайплайном рендеринга.
function tick(t) { updatePositions(t); raf = requestAnimationFrame(tick); }
let raf = requestAnimationFrame(tick);


4) queueMicrotask

Что это. Кладёт колбэк в микротаски (выполняются до следующего рендера и перед таймерами).

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

setState(next);
queueMicrotask(() => bus.emit('state:committed'));


5) IntersectionObserver

Сообщает, когда элемент попадает/выходит из вьюпорта.
const io = new IntersectionObserver(([e]) => {
if (e.isIntersecting) { img.src = img.dataset.src; io.unobserve(img); }
}, { rootMargin: '200px' });
io.observe(img);


6) ResizeObserver

Что делает? Слушает изменение размеров элемента.

Где использовать:
- Автолэйаут «контейнер-зависимых» компонентов (чарты, таблицы).
- Пересчёт обрезки/кроссфейда текста при ресайзе контейнера, а не окна.

const ro = new ResizeObserver(([entry]) => redrawChart(entry.contentRect));
ro.observe(chartEl);


7) AbortController

Что это? Универсальная отмена для fetch и не только.

- Отмена устаревших запросов.
- Предотвращение race-condition.
- Прерывание долгих операций при смене маршрута в SPA.
const c = new AbortController();
fetch('/api/search?q=' + q, { signal: c.signal });
input.addEventListener('input', () => c.abort());


8) PerformanceObserver


Подписка на метрики производительности.

new PerformanceObserver(list => {
for (const e of list.getEntries()) report(e);
}).observe({ type: 'largest-contentful-paint', buffered: true });

performance.mark('data:start');
// ... загрузили данные
performance.mark('data:end');
performance.measure('data:load', 'data:start', 'data:end');
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥319❤‍🔥4👏2👀2🙊1
🧑‍🎓Полезная подборка на выходные

Для трудоустройства:
- 60 вопросов, которые точно помогут тебе на собеседовании
- Как мы пишем резюме, чтобы собрать приглашения
- Как пройти фильтр HR
- Задачи, на которых валятся кандидаты

Кому не хватает мотивации:
- Средний оффер наших учеников 271к, и ты так сможешь!
- Убеждения, которые мешают развиваться

Техническое:
- База. Часть 2. Микрофронты
- 10 задротских вопросов про JavaScript, после которых ты усомнишься, что вообще знаешь JS. Часть 1
- 10 задротских вопросов про React, которые поставят в тупик многих. Часть 2

- Как мы помогаем с трудоустройством

В следующую среду планируем стрим по TypeScript, где будем решать задачи с собеседований вместе с подписчиками, анонс будет в - @codepunksstream_bot💪

А также все выходные провожу консультации, если давно думаешь сменить работу или выйти на грейд выше - @codepunks_bro 🤝
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥216👨‍💻6👍2🥰1
🧐
Please open Telegram to view this post
VIEW IN TELEGRAM
🌚20🐳6🥰2👾1
Всем привет!

Для тех, кто хочет провести выходной с пользой — уже готов разбор тех самых каверзных JS-задач.

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

➡️ Смотреть стрим: https://www.youtube.com/watch?v=T5Wc0QXCvAY
22❤‍🔥6👍2
Next 16-й версии (от 21 октября)

- React 19.2 по умолчанию.

- Cache Components + директива "use cache": явное кэширование компонентов, страниц и функций

Turbopack по умолчанию: быстрее сборки и Fast Refresh

React Compiler: автоматическая мемоизация компонентов из React 19

proxy.ts вместо middleware.ts: middleware.ts помечен как deprecated

Next.js DevTools MCP: интеграция Model Context Protocol для AI-отладки (единые логи, стек-трейсы, контекст маршрута).

Новые API кэша: updateTag(), обновлённый revalidateTag(), refresh() из Server Actions
🔥178👍5