Тихон | Помогаю разработчикам устроиться в BigTech
4.12K subscribers
108 photos
12 videos
1 file
83 links
Senior-разработчик, ментор
Отзывы https://t.iss.one/bestitteam
🫂Записаться на консультацию или задать вопрос @codepunks_bro
Download Telegram
Первый отзыв, который получил до трудоустройства) Очень радует что не только результат, но и процесс идет интересно)
🔥98❤‍🔥3
🎰 Сегодня в 20:00: стрим с викториной по React-задачам с собеседований

Взяли самую горячую тему, так что готовьтесь вечер провести с пользой)
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1810❤‍🔥3
API браузера. Часть 1.

Многие из нас регулярно заходят в MDN что-бы подсмотреть что-то интересное, а на некоторых позициях часто в ежедневной верстке/типовых задачах забываешь, насколько много можно сделать с помощью браузера.

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

Пост вдохновлен официальной докой MDN

Сеть и данные

Fetch API + AbortController (таймауты/отмена) (очень распростаненное API)
const controller = new AbortController();
const timeout = setTimeout(() => controller.abort(), 8000); // 8s timeout

try {
const res = await fetch('/api/items', { signal: controller.signal });
if (!res.ok) throw new Error(`HTTP ${res.status}`);
const data = await res.json();
console.log(data);
} catch (e) {
console.error('Request failed:', e.name === 'AbortError' ? 'timeout' : e);
} finally {
clearTimeout(timeout);
}

Streams API (постепенная обработка ответа)
const res = await fetch('/api/logs/stream');
const reader = res.body.getReader();
const decoder = new TextDecoder();

while (true) {
const { value, done } = await reader.read();
if (done) break;
console.log(decoder.decode(value, { stream: true }));
}

WebSocket (RT-обновления) (встречается очень часто) (также можно почитать про SSE, Socket.io)
const ws = new WebSocket('wss://example.com/ws');
ws.addEventListener('message', e => {
const msg = JSON.parse(e.data);
console.log('event:', msg);
});
ws.addEventListener('close', () => console.log('socket closed'));

BroadcastChannel (синхронизация между вкладками)
const ch = new BroadcastChannel('cart');
ch.onmessage = e => console.log('Cart updated in another tab:', e.data);
// где-то в другой вкладке:
new BroadcastChannel('cart').postMessage({ type: 'ADD', id: 123 });

Кэш, офлайн и PWA (pwa)
Service Worker регистрация + Cache Storage
if ('serviceWorker' in navigator) {
navigator.serviceWorker.register('/sw.js').catch(console.error);
}

// sw.js (минимум кэша статики)
self.addEventListener('install', e => {
e.waitUntil(caches.open('app-v1').then(c =>
c.addAll(['/','/styles.css','/app.js','/logo.png'])
));
});
self.addEventListener('fetch', e => {
e.respondWith(
caches.match(e.request).then(r => r || fetch(e.request))
);
});

IndexedDB - пригодится если работаете с большими табличными, например, данными 🫡
function openDB(name, version = 1) {
return new Promise((resolve, reject) => {
const req = indexedDB.open(name, version);
req.onupgradeneeded = () => req.result.createObjectStore('items', { keyPath: 'id' });
req.onsuccess = () => resolve(req.result);
req.onerror = () => reject(req.error);
});
}

const db = await openDB('appdb');
const tx = db.transaction('items', 'readwrite');
tx.objectStore('items').put({ id: 1, title: 'Foo' });
await tx.complete?.(); // в некоторых браузерах не нужно
db.close();

Производительность и планирование (Web Workers часто спрашивают на собеседованиях)
Web Workers (не блокируем UI)
// worker.js
self.onmessage = ({ data }) => {
const result = heavyCompute(data);
self.postMessage(result);
};

// main
const worker = new Worker('/worker.js', { type: 'module' });
worker.postMessage({ n: 5e6 });
worker.onmessage = ({ data }) => console.log('Result:', data);

requestIdleCallback / Scheduler API (мягкая загрузка)
const schedule = cb =>
('scheduler' in window && scheduler.postTask)
? scheduler.postTask(cb, { priority: 'background' })
: (window.requestIdleCallback || setTimeout)(cb);

schedule(() => warmCachesOrPrecompute());
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥285❤‍🔥4🤩1
Какой сейчас рынок?

Сейчас и правда не самый приятный период, в котором не просто соориентироваться.

По статистике на менторстве, у тех кто в активном поиске около 8 собеседований в месяц. Когда-то было по 5 собеседований в день.

Это при условии, что сделано очень много откликов, на разных платформах, с реферальными приглашениями и очень-очень приятным резюме)

Поэтому этим постом хочу как-то поддержать тех, кто сейчас на рынке пробивается сквозь тучу отказов - это нормально. На 500 откликов - 450 отказов. это тоже нормально)

И с другой стороны, даже с 4-мя собеседованиями в месяц можно будет устроиться, если вакансий станет в 2 раза меньше, все-равно реально будет устроиться за месяц активного поиска, или за 2-3 пассивного)

А теперь представьте что вы отлично проходите лайвкодинг, готовы брать и делать интересные задачи, в целом хорошо вращаетесь в кругах разработчиков, вполне реально закрыть 3/4 собеседований в оффер и даже выбрать что-то подходящее

Так что не останавливаемся на достигнутом, все что нас не убивает - делает нас умнее)
34🔥9❤‍🔥4
React 19.2 вышел 1 октября и принес нам новый крутой компонент и новый хук.

<Activity> - новый компонент для обёртки частей приложения с режимами visible/hidden. Скрытые разделы можно предрендерить без влияния на видимый UI, ускоряя навигацию между экранами

useEffectEvent - новый хук для событий внутри эффектов. Позволяет выделить «эффект-событие» (напр. показывать уведомление при подключении) без лишнего перезапуска всего useEffect при изменении зависимостей; колбэки всегда видят актуальные пропсы/состояние

Полный список обновлений и базовые примеры использования - в официальном блоге Реакт документации https://react.dev/blog/2025/10/01/react-19-2

🫡 Тестирую новый формат, где хочу собирать для вас последние и интересные новости, об успешности и интересности рубрики буду смотреть по реакциям)
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4411❤‍🔥3👀3
#отзыв 🔥

Всем привет! Решил оставить отзыв о сообществе Тихона и немного рассказать о том как столкнувшись с проблемой сокращения искал работу.

Я разработчик с десятилетним опытом во фронте, успел поработать и с разными проектами и разными фреймворками. Последние 6 лет работал в одной крупной компании на нормальных условиях - по соотношению оплата труда/трудозатраты меня все устраивало и поиском работы не занимался вообще. Собеседования не люблю, они всегда вызывают неприятные эмоции - возможно это субъективное, но не люблю, когда тебя оценивают в реал-тайм. А задачи в лайве решать вообще не могу, хотя решить могу очень сложные задачи самостоятельно. Плюс мне лет уже дохренища для айти.
В общем в феврале столкнулся с сокращением и задача выриросывалась очень непростая с рядом проблем к которым относились уже все вышеперечисленные мои внутренние особености так и еще ограничение по времени на поиск работы, плюс изменился рынок, если раньше можно было найти работу, даже еще 3 года назад, за неделю, то сейчас стало все сложнее, плюс тем проектом которым я занимался сильно афишировать было нельзя по внутренним соображениям в компании. Так что ко всему прочему еще добавлялась проблема с непроработанным блоком самопрезентации. Ну техничку тоже надо было проработать и структурировать, я 6 лет не занимался некоторыми моментами которые любят спрашивать на собесах. Если техничка меня не сильно парила, то все остальное создавало сложности.

Участие в сообществе мне сильно помогло и значительно сократило срок поиска подходящего предложения. Помогли и секции с решением задач и подготовка по техничке и вообще дало возможность структурировать подход к собеседованию и проработать многие вопросы, которые я перечислил. Однозначно, если теперь вопрос с поиском возникнет, то я знаю как его решать и снова обращусь к Тихону. Спасибо!
🔥1811👍5
Реалити-шоу v2 🚀🥇

Давно у нас не проскакивало чего-то по-настоящему огненного, поэтому -> -> ->

Я хочу взять одного человека на доведение до оффера, полностью бесплатно. 😊😊😊

Если ты прямо сейчас:

- Зарабатываешь меньше 150 т.р.
- Хочешь сменить работу на 200-250-300 т.р.
- Готов(а) делиться победами в канале

Пиши мне: хочу перейти на новую работу, потому что <твоя история>, а ещё лучше присылай короткое видео или кружочек с твоей историей и мотивацией перейти на новое место.

Победителя выберут наши подписчики 💪

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

Что мы сделаем:

1. Составим резюме
2. Подготовим самопрезентацию
3. Выучим каждый вопрос на интервью
4. Подготовимся к live-coding
5. Будем поддерживать тебя до и после собеседований
6. Выберем лучшее предложение и перейдём на новое место🥇

Возможно именно это твой шанс, не упусти его!)
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥157🏆4
Немного истории)

Прошлое реалити началось 19-го июля, и закончилось 26-го августа, когда финалист голосования Оля вышла на новую работу🫶

А 11-го сентября второй участник реалити Кирилл также закрыл позицию одной из крупных компаний с повышением х4 :)
🔥15🍾64
Уже получили 7 заявок на реалити 🔥

На этот раз почти все заявки с видео или с кружочками 😍

В прошлое реалити были 6 текстовых заявок, и 2 кружочка, как раз от Оли и Кирилла, которые благодаря этому победили с большим отрывом)

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

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

Не упускай шанс, возможно именно ты уже через месяц-два выйдешь на новое крутое место)
🔥138❤‍🔥3
This media is not supported in your browser
VIEW IN TELEGRAM
❤‍🔥1911👍9
Еще пару кружочков от Оли, которая уже отработала 1,5 месяца на новой работе из прошлого реалити, для тех, кто оттягивает до последнего)
Сегодня финальный день, завтра проведем голосование)
❤‍🔥5🔥3😍2
This media is not supported in your browser
VIEW IN TELEGRAM
😍9❤‍🔥6🥰53🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
🔥9😍8❤‍🔥43
День голосования! 🔥

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

Ребята поделились своими историями, переживаниями и целями. Теперь ваша очередь определить победителя.

На этот раз у нас очень много заявок, абсолютно все очень хорошие и интересные, и это будет очень сложный выбор, но главное что выбирать нужно не мне, а вам)

Начинаю отправлять кружочки, надеюсь не заспамлю вас сегодня, это только один день такой, держитесь, и главное - голосуйте 👋

Нужно:
1. Посмотреть и прочитать внимательно истории
2. Выбрать того, чей путь хотели бы смотреть в канале
3. Выбирайте ответственно, потому что мы планируем поменять жизнь этого человека, повысить зп в 2-3 раза и вместе выйти на новый уровень 🤝

Поехали!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15❤‍🔥4😍2
1⃣
Привет! Меня зовут Катя. Сейчас я старший Frontend-разработчик в финтех-компании; это мое первое место работы, и на проекте я работаю уже 2 года. Еще из плюшек у меня есть профильное образование и полгода стажировки в HUAWEI.

Цель у меня амбициозная: с таким бэкграундом я собираюсь найти работу в Европе. Догадываюсь, что сейчас это настоящая задача со звездочкой. Но верю, что с поддержкой коммьюнити и помощью менторов получится пройти этот путь гораздо быстрее и увереннее.

Думаю, что и для команды Тихона это звучит как настоящий челлендж: всего два года опыта работы, минимальные навыки в прохождении интервью, и поиск зарубежом как вишенка на торте. Но, кажется, звучит как крутой шанс проверить подход на международном уровне!

Готова учиться, пробовать, ошибаться и пробовать снова! Надеюсь, что этот путь окажется не только сложным, но суперинтересным и полезным — и для меня, и для всего коммьюнити.

Кружочек Кати 👇
Please open Telegram to view this post
VIEW IN TELEGRAM
48🔥29🦄18💋6💘4💅2🆒1
This media is not supported in your browser
VIEW IN TELEGRAM
46😍19👏15💋4🆒3🔥1🥰1💘1
This media is not supported in your browser
VIEW IN TELEGRAM
41😍17🏆16🆒4❤‍🔥3🥰1💘1
2⃣
Я уже 8 лет живу в Китае, совмещаю преподавание и фронтенд-разработку, и сейчас хочу полностью перейти в IT. Рассматриваю работу удалённо из-за рубежа, в российской или международной компании.
Хочу пройти путь до оффера, показать реальный процесс и вдохновить тех, кто тоже хочет сменить работу.
Если интересно следить за моим прогрессом — голосуйте за меня! 🚀

Кружочек Алексея 👇
Please open Telegram to view this post
VIEW IN TELEGRAM
102🔥17❤‍🔥16💯10🏆6🎉3🤩1💘1🦄1
This media is not supported in your browser
VIEW IN TELEGRAM
👍352❤‍🔥284🔥218174💯122🏆66🎉34🥰31🤩23😍19💊3