Организованное программирование | Кирилл Мокевнин
13.6K subscribers
83 photos
344 links
Как из джуниора дойти до мидла, а потом и до синьора
Ютуб https://youtube.com/@mokevnin
Связь для предложений: @kirillpublic
Download Telegram
Слои или Фичи (Домены)

Существует два основных подхода организации кода в приложениях. Либо по слоям, когда у нас, грубо говоря, в одной папке контроллеры, в другой модели, в третьей тесты и так далее. И подход когда папочки объединяются по фичам/домену, в таком случае в одной папке лежат все возможные элементы приложения (и контроллеры и модели и тесты и что там еще есть в вашей экосистеме). И каждый раз идет срач на тему, а как правильно? Иногда за нас это уже определено.

Значит если мы берем большие фреймворки, то там все это вшито на базовом уровне. В джанге мы объединяемся вокруг доменов, в rails/laravel и многих других вокруг слоев. В микрофреймворках обычно дефолт это слои, но никто не мешает разложить по доменам. Во фронтенде можно и так и так, мало какой инструмент диктует структуру.

Бывают и гибридные варианты. В той же Django внутри каждой фичи (app) у нас слоистая архитектура. А в rails есть понятие engine, когда часть логики можно вынести как бы в отдельное rails приложение, а затем внедрить его в исходное (для этого есть механизм движков). Его обычно используют для каких-то тем, которые прямо сильно выделяются или реализуются как отдельные проекты, например, так можно подрубить форум или систему мониторинга очередей.

Несмотря на то, что система с разбиением по фичам/доменам кажется очень привлекательной я скептически отношусь к попытке ставить это в базу и делать абсолютно всю логику приложения через такой подход. Для меня это сродни тому что мы со старта делаем микросервисную архитектуру. Сразу встает масса сложностей, которые надо решать начиная от управления зависимостями между этими частями (кто от кого зависит, а если они зависят друг от друга?) до решения того, куда помещать логику на стыках? Достаточно посмотреть сколько в Django мире на эту тему придумано паттернов и разведено срачей.

А вот наоборот проще. По дефолту все можно складывать вместе, но если надо, мы без особых проблем можем строить внутри достаточно изолированные части, которые хотя и лежат физически в разных папках, но правильно изолированы от других частей системы (тут и сервисы и события и все на свете). Если идти дальше, то можно вынести логику и в сервис и в библиотеку. Например в Хекслете редактор реализован в виде отдельного пакета и разрабатывается в отдельной репе, но теоретически мы могли бы положить его тупо внутрь проекта (кроме бекенда). Такое отделение заставляет делать больше телодвижений, но зато очень хорошо соблюдаются границы.

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

Как вы делаете в своих проектах?

Telegram | YouTube | Сообщество
45👍17🔥6🤔21🎄1
Как начать использовать агентов бесплатно

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

Прокаченные модели с условно-бесплатным доступом

Copilot. В первую очередь бесплатно (ограниченно) он дает автокомплиты и nes. Если вдруг вы еще не пользуетесь, то хотя бы попробуйте. Поставьте в редактор как расширение и подрубите базовую версию.

Gemini Cli. Free tier: 60 requests/min and 1,000 requests/day with personal Google account. Еще можно попробовать Antigravity (это аналог Cursor от гугл). Там мы уже получаем не только Gemini, но и другие топовые модели.

Не знаю как их пропустил изначально, но у этого агента 100 тыщ старов на гитхабе. Вчера попробовал с его помощью реализовать пару задач и мне прямо зашло. Тут мы получаем доступ к крутой модели условно бесплатно. Без vpn в рф вроде не работает

Qwen Code CLI. ~1000–2000 запросов в день через OAuth (зависит от региона/лимитов). Дает доступы к своим моделям (qwen-x)

Kilo Code. Еще один агент, который дает: "Get $20 in bonus credits when you top-up for the first time Credits can be used with 500+ models like Gemini 3.1 Pro, Claude 4.6 Sonnet & Opus, and GPT-5.2" Выглядит очень вкусно.

SourceCraft Coding Agent. Это агент разрабатываемый яндексом у которого сейчас под капотом DeepSeek есть бесплатный тариф и очень дешевый платный. Если вы помните, руководитель этого проекта Дмитрий Иванов был пару раз у меня на подкасте. Ребята общеают какие-то мегаапдейты скоро, будем посмотреть. А еще у нас запланирован с Димой вебинар где мы будем кодить с агентами в районе мая.

Бесплатные модели по проще

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

OpenCode Free Models. На выбор дают (mimo v2 pro, minimax m2.5, nemotron 3 super, big pickle).

По крутости не скажу, сажусь за них буквально на этой неделе. Если у вас есть опыт, поделитесь плс.

В целом бесплатный список моделей можно посмотреть на сайте OpenRouter. Дальше регаемся и подключаем через OpenCode или плагин к редактору.

Доступное из платного

Самый вкусный тариф из платных пожалуй дает OpenCode go. Первый месяц 5$, потом 10$.

Напомню что курс стартует 30 марта. А завтра я провожу вебинар про агентскую разработку. Зарегаться можно по ссылке: https://special.hexlet.io/ai-for-developers-2026 Буду ждать 🙂

Telegram | YouTube | Сообщество
👍3822🔥81😁1🎃1🎄1
Делаем мир чуть чуть лучше

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

Буквально недавно я так дебажил одну рубишную либу и выяснилось что там внутри есть косячки. Не долго думая, прямо в той же сессии я попросил агента собрать ишью дал линк на репу и потом просто скопировал это туда на гитхаб (наверное можно было попросить его сделать ишью автоматом, попробую так в следующий раз). Получилось очень обстоятельно с примерами кода, описанием того где ошибка. При желании можно было бы сразу пулреквест кинуть, но я не был уверен в какую сторону решит пойти автор либы. Вот кстати тот ишьюс: https://github.com/skryukov/rails_vite/issues/5 И фикс был сделан буквально в тот же день.

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

Telegram | YouTube | Сообщество
👍8930🔥20👎21🤔1🎄1
Выпуск про кризис в IT уже в сети. Разбираем реальные причины падения спроса на разработчиков вместе с Женей Кобзевым, сооснователем и техническим директором бухгалтерского сервиса Кнопка (я был их клиентом в самом начале пути этого сервиса). https://www.youtube.com/watch?v=ZgyE8JDTxSk

Альтернативные ссылки: Аудио | vk
👍396🔥51🤔1👀1
После года рефакторинга, мы переехали на Inertia.js и попрощались Bootstrap

Ну вот и закончился мегарефакторинг, в рамках которого мы переезжали с классической серверной шаблонизации на React SPA, но не через api + фронтенд стейт + клиентский роутинг. Мы взяли тогда еще набирающую популярность Inertia.js, которая работает по похожему принципу как next.js (серверный роутинг, отсутствие api и стейта на клиенте), но где в качестве бекенда выступает фреймворк на любом языке.

Жизнь показала, что мы сделали правильный выбор и с тех пор инерция не только стала популярнее и пошла по всем языкам, но и недавно ребята выпустили третью версию, на которую мы оперативно обновились. Если вы походите по сайту Хекслета, то заметите как плавно переключаются страницы, это они включили View Transition.

Одновременно с этим мы меняли Bootstrap на Mantine. Бутстрап служил нам верой и правдой больше 10 лет, но в какой-то момент он начал нас тормозить. И дело не только в новых подходах, а в том, что больше не хотелось работать на уровне верстки. По настоящему эффективность повышают готовые библиотеки компонентов на React (любом другом фреймворке), когда мы получаем не только внешний вид, но и готовую функциональность из коробки. Взять хотя бы тот же грид, сделать это самому со всеми фишками типа фильтров сортировок инлайн редактирований это еще тот челендж.

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

Планируя переход мы сразу целились в максимальную типизацию, поэтому везде ts и mantine, который очень этому способствует (вместо классов props). Плюс сюда же типизированный i18next.

Такое разделение еще навело порядок в беке, потому что вместо кода в шаблонах, все теперь собрано в DTO, чем явно проще управлять и рефакторить. Люди которые всю жизнь работают через апи надо мной посмеются, но вот да, если у вас шаблоны это тоже код на сервере, то там работают без DTO.

В общем я немного выдыхаю и перестаю херачить код как не в себя. Теперь наводим красоту, правим косяки и фокусируемся на контенте. Давно я серьезно не махал шашками, а тут столько курсов надо выпустить :)

Telegram | YouTube | Сообщество
1🔥90👍3713🎉6🤮5👀3❤‍🔥2👏2🤔2👌1
Конец эпохи

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

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

Что например меняется при переходе в агентскую разработку? Гораздо меньше имеет значения как написано внутри, важнее становится то из каких элементов собирается система и как текут/не текут абстракции, баланс между использованием готового и самопального, наличие хороших примеров, единообразие, правильное описание проекта (включая скилы). Остается и даже усиливается то как пишутся тесты, потому что агенты любят в тестах трешак разводить. И еще много всякого, но через призму агентской разработки.

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

Что вы обо всем этом думаете? Где находитесь сами и куда мы идем?

Telegram | YouTube | Сообщество
174👍57😢16🔥7🥱6🤮5🤬3🤔2👀1🫡1
Выпуск про SEO уже доступен на канале. Все что вы хотели узнать про поисковую оптимизацию но боялись спросить. От понятия спроса, до поведенческих факторов и технической оптимизации сайта. Как и зачем собирать семантическое ядро, откуда взялся page rank и зачем делать перелинковку на сайте. Садитесь по удобнее, будет интересно!

https://www.youtube.com/watch?v=gaWh8FSJ0a4

Альтернативные ссылки: Аудио | vk
👍3817🔥7👀21🤔1
Entity-based VS Consumer-oriented API

Из всех способов организации апи, можно выделить два основных: ориентированных на клиентов или ориентированных на внутренние сущности и структуру данных системы.

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

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

Немало людей сталкиваясь с этими проблемами, начинают винить REST, что это его ограничения и его природа. Но нет, просто невозможно спроектировать entity-based API как внешний контракт, хорошо подходящее сразу и идеально для всех. Поэтому есть другой способ, это api ориентированное на клиента. Когда API проектируется от конкретных сценариев использования (use cases), а не от структуры данных. В этом случае у нас нет просто общих эндпоинтов, все эндпоинты разделены по своим неймспейсам, одни для админки, другие для мобилки, третьи для клиентской части сайта, ну и классическое апи для внешних клиентов (не браузера и не мобилки).

При таком подходе обязательным становится внедрение сервисного слоя (use cases), чтобы обработчики эндпоинтов делегировали работу дальше, а не пытались ее выполнить сами, например, взаимодействуя с базой данных.

Entity-based API хорошо подходит как внутренний слой (Service API), но в качестве внешнего API почти всегда приводит к усложнению клиентов и росту связности. Consumer-oriented API, наоборот, берет на себя сложность внутри системы и упрощает клиентов, даже если это приводит к дублированию и большему количеству эндпоинтов.

Telegram | YouTube | Сообщество
1👍75🔥2111🤔3👎2🤝2😎1
Вы ведь заметили что последние месяцы я часто говорю про Mantine (React Component LIbrary)? Так вот сегодня в очередном выпуске подкаста будет говорить его создатель - Виталий Ртищев. А еще в подкасте прошлись по tailwind, mui, shadcn и chakra. Наслаждайтесь https://www.youtube.com/watch?v=r0uUJwyBJAc

Альтернативные ссылки: Аудио | vk
🔥44👍226🤔21🐳1
Точные типы DTO для ИИ

Есть такая проблема с DTO, что если делать их достаточно универсальными, то почти все поля внутри получаются nullable. Потому что любая сущность в режиме "создаем новую" практически всегда пустая, за исключением может каких-то флагов и статусов с дефолтными значениями. А вот в режиме редактирования как минимум заполнены id, name и тому подобное.


type Course = {
id: number | null;
slug: string | null;
name: string | null;
state: CourseState | null;
updated_at: string | null;
created_at: string | null;
}



При таком подходе в коде приходится делать что-то типа course.name!, когда мы говорим компилятору мол не парься, мамой клянусь тут есть name. Некрасиво, но жить можно. Казалось бы, а что мешает делать разные DTO под разные операции с нормальными типами? Лень. Если это не автогенерация, то может быть просто гемморойно постоянно все это поддерживать и добавлять. По крайней мере так можно было говорить раньше, но сейчас ситуация поменялась.

И дело даже не в том, что ИИ может сама нагенерить все что надо, а в том, что типы для ИИ это главный источник понимания вашего кода. Вы даже словами не всегда можете переубедить ИИ если она видит другие типы. Так вот, если все поля nullable, то ИИ по дефолту начнет втыкать проверки и фильтрацию на каждом шагу. Мне тут понадобилось сделать сортировку через drag and drop и для этого я завязал хук в плане к ии на id, который есть гарантированно во всех сохраненных сущностях. Что бы вы думали? Эта фигня видя такие типы, начала фильтровать данные по наличию id в объектах. Причем когда я дал команду так не делать, она просто перенесла логику в другое место, потому что тип явно говорит о том что id может не быть.

В общем закончилось тем, что я сделал файлик, куда автоматом нагенерил типов на базе моделей в беке (с валидациями):


type Course = {
id: number;
slug: string;
}


Ну а тем у кого design-first чуть проще, там генерятся любые DTO из спеки. Если используются правильные инструменты.

p.s. Вы сталкивались с этим?

Telegram | YouTube | Сообщество
👍396🔥3🤔2😢1👨‍💻1👾1
Попросил ИИ сгенерить картинку на тему идеального конечного результата для программистов (ТРИЗ). Как вы думаете, у нее получилось передать суть? (я фигею от того как gpt генерит картинки)
5💩88😁46👎6👍54💯3🥴2🤔1👀1
Домашнее: Прием у доктора

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

Как мы привыкли? Есть доктор у него кабинет и туда заходят пациенты один за другим. Приходишь ко времени и плюс минус вовремя попадаешь особенно если это платная медицина и не просто живая очередь.

Тут работает ваще не так. В целях оптимизации, в штатах у таких докторов как педиатров (куда толпами ходят), прием идет параллельно. Внутри клиники от десятки специальных комнат, куда вас заводят после того как вы подождали снаружи в приемной (может занимать до часа легко). Тут медсестра сразу вас осматривает, снимает температуру, записывает рост, вес, давление и задает вопросы. Дальше говорит "доктор скоро подойдет" и уходит. А в это время, несколько докторов, ходят по очереди по этим комнатам. И в каждой из них они могут зависать надолго. В нашей клинике таких комнат около 35. То есть они запускают в течение короткого времени всю эту толпу, а дальше большую часть времени ты сидишь и тупишь в ожидании доктора. И даже если доктор зашел, может оказаться, что нужна какая-то процедура. В таком случае доктор говорит "сейчас придет медсестра и все сделает", а сам уходит к следующему пациенту. Думаю не надо говорить, когда в следующий раз он к вам зайдет. И вот эта все хрень с ожиданиями может занимать и будет часы.

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

Кто-то скажет, так воспользуйся платной медициной, делов то. Проблема в том, что в штатах вся медицина платная 🙂

Telegram | YouTube | Сообщество
4😁54🤯38😱136🤔5👍4💯3🤮1🤡1
Подкаст про кишки агентов для разработки уже доступен для просмотра. У меня в гостях Дмитрий Коваленко (уже третий раз!), который разработал эффективный поиск (инструмент + алгоритмы) сначала для nvim, а потом и сделал его самостоятельным решением, благодаря чему его воткнули в OpenCode. youtube.com/watch?v=Jcx-JclhB18

Альтернативные ссылки: Аудио | vk
👍43🔥1581🤔1🗿1👾1
Forwarded from Хекслет
Операция "Эпическая подписка"

Начиная с этой недели, часть больших программ "с нуля" становятся доступными в стандартной подписке для самостоятельного обучения. Наконец-то скажете вы и будете правы! Подробнее:

У Хекслета есть два режима работы: покупка курса и подписка.

Покупка включает курсы с поддержкой наставников, группами, кураторами, помощью в наработке коммерческого опыта, стажировками и так далее. Эти курсы создаются в основном для тех кто с нуля, долго идут и заканчиваются трудоустройством (если нужно). Такие курсы оплачиваются по какой-то фиксированной цене. При этом тут есть тарифы с разными ништяками, например персональным наставником.

Подписка, это, в основном, небольшие навыковые курсы, где обучение полностью самостоятельное (сюда включены практики, проекты и ии-ассистент). Подписка идеально подходит для повышения квалификации. Ее в первую очередь берут те, кто уже в теме и кому надо просто добрать каких-то навыков.

Теперь это меняется и мы возвращаемся к старому доброму Хекслету образца 2017 года. Часть больших программ обучения становится доступной по подписке. Сюда входят: java, php, python, javascript, ручное и автоматизированное тестирование, аналитика и некоторые другие. Вообще состав таких программ не фиксирован и со временем может меняться.

Что это значит? Если вы хотите прямо обучиться какому-то направлению, то теперь это можно сделать по подписке. Единственное надо помнить про самостоятельность, вы должны быть уверены что справитесь сами. А помогут вам в этом наше дружное сообщество и ТотаИИ. Последний кстати еще будет развиваться, у нас большие планы по добавлении автоматики в проекты, чтобы получать еще больше фидбека.

Одновременно с этим. Если вам нужно сопровождение и помощь в трудоустройстве, то эта опция никуда не девается и любую программу "с нуля" можно взять по фиксированной цене.

Но есть все таки часть программ, которые доступны только в трехлетней подписке. Как правило это новые программы. Концепт этой подписки в том, что помимо самой дешевой цены в пересчете на месяцы, вы получаете доступ к самым новым программам, которые мы делаем. Сейчас там есть devops, go, агентное программирование и некоторые другие. В ближайших планах мы делаем: вайбкодинг, автоматизатор (low-code) ИИ, LLM-программист. Все это будет выпущено до конца лет.

Какие программы вы бы хотели видеть в Хекслете?

p.s. мы еще в процессе доработки интерфейсов под нововведения, поэтому местами тексты могут не совпадать с тем что тут написано
🔥64👍1916😁10🤔1🫡1
Поиск в гитхабе через гугл

Помните у меня был подкаст про поиск? Я там сказал как ищу что-то на гитхабе и очень удивился, когда в комментах удивились на то как удивился я. Синхронизируемся. По мне поиск на большинстве сайтов работает настолько хреново, что им лучше не пользоваться. Например на гитхабе нормально искать что-то внутри репы (это тупое сопоставление), но когда тебе надо найти какие-то репы по описанию, то все приехали. И гугл в этом плане справляется в тыщу раз лучше.

Но тут есть хитрость, если просто искать что-то в надежде что покажет гитхаб, то конечно он так ничего не найдет. Как минимум надо добавить в начале или конце github. Типа "web framework go github". Но если настоящий кулхацкер, то знаете, что у любого поисковика есть свой язык запросов, который позволяет сделать этот поиск еще лучше. Если мы хотим четко искать на гитахбе, то надо набрать волшебные буквы "site:github.com" и тогда он будет искать строго по одному домену:


coding agent site:github.com


А какие еще фишки вы используете в поиске, которые вам помогают искать?

Telegram | YouTube | Сообщество
👍6417🤣13🔥9💯43😐1
Вчера AI-агент уничтожил производственную базу данных небольшого SaaS-бизнеса. За 9 секунд.

Jer Crane, основатель PocketOS, сервиса для компаний по аренде автомобилей. Агент Cursor (на базе Claude Opus) работал в staging-среде, наткнулся на ошибку credentials и сам решил "починить" проблему: удалил Railway-volume одним GraphQL-запросом.

Токен, который он нашёл в случайном файле, был создан для управления доменами. Но Railway не разграничивает права токенов: каждый из них фактически является root-доступом. Никакого подтверждения не потребовалось.

Бэкапы? Они хранились в том же volume и ушли вместе с данными. Последний восстановимый бэкап был трёхмесячной давности. Когда Jer спросил агента, почему он так поступил, тот ответил письменно и перечислил все правила безопасности, которые нарушил: угадывал вместо того, чтобы проверять, выполнил деструктивное действие без запроса, не прочитал документацию перед удалением и не спросил разрешения.

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

Главный вывод: системные промпты не могут быть единственным слоем защиты. Безопасность должна быть встроена в API, токены и обработчики деструктивных операций, а не в текст, который модель "должна прочитать и соблюдать".

Если вы используете Railway и AI-агенты в проде, сегодня хороший день проверить скоупы токенов и то, где реально хранятся ваши бэкапы.

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

Telegram | YouTube | Сообщество
🔥75😁33👍239😢3🤣3🤔2🗿1
Всегда хотелось придумать какой-то этакий слоган для Хекслета, чтобы он сразу возникал в голове у всех кто слышал про нас. В общем с клодом и божьей помощью я таки родил:
"Хекслет - нормальные it-курсы". Запомните этот пост, через год у вас у всех будет эта фраза в голове!

Теперь есть где разгуляться, когда мне чо то будут говорить 🙂

"Не супер конечно, но вполне нормально"
"- Инфоцигане! - Да не, нормальные курсы"

Ну и буквально через час старт вебинара, если вы еще не, то уже надо. Сегодня будет формат воркшопа, я кожу вы смотрите
😁57👍26🔥87👎5🤔3🥴2🗿1
Forwarded from Хекслет
В каких компаниях искать работу

Вокруг одни бигтехи. Где работать если я устал от банков? Вот такой твит я увидел неделю назад и опечалился. Даже в реплаях было сплошное "а чо ты хотел", "такой мир". Есть и другой мир черт побери.

Сначала небольшая историческая справка. Действительно со временем присходит консолидация, крупные компании поглощают мелкие и выстраивают целые экосистемы замыкая на себе все до чего могут дотянуться. Сервисы типа читалок книг, кино, машины и многие другие были независимыми. Со временем их скупил яндекс и другие ребята. Куда не ткни в b2c, там на фоне обязательно какой-нибудь крупняк, который им владеет. Ну а торговля вообще уехала в маркетплейсы, больше никто не делает интернет-магазины на заказ (почти).

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

Однако это не отменяет того, что даже если сервисом владеет какой-то крупняк, значит он обязательно работает по формату бигтеха. Со всеми вытекающими. В любом случае даже бигтехов больше, чем может показаться. Существует рейтинг https://smartranking.ru/ru/ranking/big-tech/, где можно посмотреть их список, кто сколько зарабатывает и возможно найти себе будущего работадателя.

А куда еще можно податься? Из всех направлений я бы выделил четыре

Компании где ИТ имеет важную роль, но это все таки обслуживание, а не основа бизнеса. Например нефтянка, заводы и всякое другое. Я плохо знаком с этим направлением (хотя когда то нанимал c++ девов с завода и дивился тому как у них там работает).
Аутсорсеры/агенства/студии - Вот тут реально много разработчиков и эти компании живут тем что чем больше девелоперов тем больше зарабатываем (если есть заказы естессно). Тут обычно зп ниже, но зато можно поработать с кучей разных технологий и проектов. Откуда про них узнавать? И тут есть свой рейтинг https://digirate.ru/. Можно по нему посмотреть сайты компаний и раздел вакансий. Там всегда что-то висит
Стартапы. Тут вообще может быть все что угодно, главное что стартап эпично растет и кому-то продается. Сейчас их число в рф подозреваю сильно сократилось, но когда экономика на подъеме и доступны дешевые деньги, стартапы расцветают и появляется много работы.
И мое любимое, это независимые (но не всегда) SaaS решения, как правило b2b направленности

Вот про последних хочется чуть больше. Вам что нибудь говорят названия AmoCRM, Mindbox, Timepad, Tutu, Все инструменты, Мой Склад или Roistat? Конечно все знают Aviasels и многие ТуТу, но остальные вообще врядли слышали. А между тем, я как и большинство владельцев цифовых бизнесов пользуюсь либо ими либо их аналогами. То есть существует большой блок b2b сервисов и небольшой b2c, в котором есть частные компании, где разработчиков от нескольких до сотни человек (может сотен в редких случаях) и где совершенно другое ощущение от работы (меньше бюрократии, близость к бизнесу, к собственнику).

Если вы про эти компании ничего не знаете, то самое время познакомиться тут https://digirate.ru/saas

p.s. Вы работаете в бигтехе или как раз в одном из таких частных проектов?

Telegram | YouTube | Сообщество
👍4817🔥9👏4🤮4🤔1👀1
Кто такой бизнес?

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

Мне хочется разложить эту тему, потому что меня немного коребит, когда разработчики жалуются на своих менеджеров сопровождая это словами "бизнес не понимает чего хочет" и тому подобным. Хочется кричать, ребята, эти менеджеры от бизнеса бесконечно далеки. Не как что-то плохое, а просто по объективным причинам которые я ниже опишу.

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

Бизнес это всегда про деньги и риски. Упрощая можно сказать так, что если у человека нет денежного KPI и риска потерять реальные деньги (в смысле он прямо отвечает за деньги, а не косвенно через готовность проекта найм и так далее), а не только работу, то он не про бизнес.

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

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

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

Ну и именно здесь принимаются ключевые стратегические решения, которые как правило могут перекрывать вообще все. То есть одно решение тут, может компанию как утопить, так и наоборот. Кто платит тот и танцует.

Дальше идет большой провал, потому что остальные люди как правило наемные сотрудники. У некоторых из них очень серьезный уровень ответственности и есть неслабые риски, но это уже не уровень фаундеров и акционеров.

Кто эти люди? В первую очередь гендир, финдир, комм дир, операционный директор. Тут возможно вы удивитесь, но задача гендира зарабатывать деньги акционерам. А в целом эта компашка является ключевой в происходящем уже на уровне организации.

Ниже есть РОП (руководитель отдела продаж), СМО (Директор по Маркетингу) и CPO (Главный прОдакт). Эти ребята тоже очень про бизнес, но с уже более узким фокусом по конкретным направлениям.

Ну а дальше идет уже сильное разделение, где слишком узкая задача, чтобы говорить что человек про бизнес. Про его какую-то очень ограниченную часть. Единственное возможное исключение это продакты (но только те что про деньги) даже линейного уровня. Потому что эти ребята ближе всех к верхнему уровню. В этом смысле многие продакты в энтерпрайзе с точки зрения обычных бизнесов (не бигтеха) не совсем продакты, они отвечают там за что угодно кроме денег (в том числе те самые скрамовые product owner).

А где тут программисты спросите вы? Где-то за продактами, задачи которых они выполняют. Если это про разработку продуктов и систем. Плюс инфраструктурные направления в подчинении у СТО. Где-то рядом аналитики и другие ребята.

Поэтому когда вы слышите что-то про "бизнес сделал то", всегда смотрите на то, про кого идет речь. Если это не фаундер + c-level, то скорее всего это локальные корп баги/разборки/тупизна, а не бизнес

Telegram | YouTube | Сообщество
👍5918🔥12👎3💯1