Всем привет! Это третий сезон курса «Паттерны и практики написания кода». Первая серия вводная: в ней бэкенд-инженер Юра Афанасьев знакомит вас с историей паттернов и их функциями, а также рассказывает, как с ними правильно работать.
Подписывайтесь на канал AvitoTech в Telegram, там мы рассказываем больше о профессиональном опыте наших инженеров, проектах и работе в Авито, а также анонсируем митапы и статьи.
Кардинальное упрощение привязки GitHub, GitLab, Bitbucket в Amvera Cloud
Привязка репозиториев GitHub, GitLab, BitBucketвызывала у наших пользователей затруднения, и мы обещали упростить процесс.
Теперь для привязки репозитория достаточно указать токен и выбрать ветку и репозиторий.
Способ позволяет организовать максимально простой деплой и обновление приложений через git push. Для обновления приложения достаточно сделать коммит в привязанный репозиторий, и оно соберется и бесшовно запустится автоматически.
Заполняем три поля и CI/CD готов
Подробная инструкция по подключению доступна по ссылке.
Amvera Cloud — это облако для простого деплоя приложений через git push (или интерфейс). Встроенный CI/CD, бэкапы и мониторинг позволяют развернуть проект тремя командами в IDE и не думать о настойке инфраструктуры. Amvera проще, чем использование VPS.
Последнее время замечаю тенденцию, что многие хостинги и публичные облака вводят платную поддержку.
Позиционируется поддержка как дополнительная опция и гарантия времени ответа. Но на мой взгляд это выглядит как вымогательство денег, когда компания может оказывать качественную поддержку, но если вы их не “подкупите” дополнительно, не будет.
Я основатель облака для простого деплоя проектов через Git push – Amvera Cloud. И вижу, что пользователи пишут нам в поддержку. И говоря честно – люди пишут только тогда, когда другие способы не помогли и они не знают, как решить их насущную проблему. А это значит мы не доработали и сделали что-то непонятно или неудобно. И это наша обязанность постараться им помочь. И я не вижу морального права просить за это с них деньги.
Поддержка может работать не идеально, можно даже разделять клиентов во время высокой нагрузки на постоянных или новых, с высоким или низким чеком или любым другим образом, чтобы кому-то помочь в первую очередь. Но помочь нужно всем.
И главное, я не верю, что на платной поддержке можно сильно заработать. Это просто предлог, чтобы работать хуже, чем может компания.
Поддержка должна быть бесплатной, всегда, и без всяких но!
Читаемость Си-кода: грустный ликбез, чтобы жить стало веселее
Многие коллеги по цеху подтвердят, что читаемость кода на языке Си иногда оставляет желать лучшего. Как подтвердят и те, кто им плохо владеет, но так или иначе сталкивается в связи с рабочими задачами.
И всему виной (ожидаемо) выражения препроцессора и, как следствие, макросы. Да, вы правильно подумали. Именно те части кода, в которых вызываются такие легенды как:
Последние два очень легко спутать, если читать код невнимательно. Вместо них иногда рекомендуют использовать
#if defined // вместо #ifdef
#if !defined // вместо #ifndef
Но если же в компании/проекте/отделе нет определенного код-стайла, или он не предполагает написание длинного варианта, то, естественно, разрабы пишут короткую форму (я, честно признаться, тоже).
Чего далеко ходить - все open source проекты пестрят именно сокращенными вариантами этих выражений и с этим уже ничего не поделаешь.
А вот первое выражение из первой тройки игроков иногда вообще открывает врата ада, когда используется многострочный макрос с бэкслэш-символами (\) на концах строк.
Конечно же выражения препроцессора - это очень гибкий и полезный инструмент, позволяющий делать всё:
условную компиляцию;
выравнивание структур;
предотвращать повторные включения файла;
работать со строками;
грамотно оборачивать повторяющийся код и т.д. и т.п.
Но бывают случаи, когда упрощение кода с точки зрения алгоритма делает его слабо читаемым для того самого бедного программиста, пытающегося прочесть этот шедевр машинописного текста:
который определяется после объявления полей структуры.
Как обрабатывается аргумент x:
имя аргумента преобразуется в строку с помощью макроса "#x" и присваивается полю *name;
полю *value присваивается значение поля структуры b с названием аргумента x (тут нужно убедиться, что поле с именем x действительно существует в структуре b).
То есть чтобы при заполнении массива не писать каждый раз одинаковые строчки:
Ну и в самом конце вызываем удаление созданного макроса, чтобы оно не было использовано в коде в дальнейшем:
#undef _SPECIAL
Теперь после прочтения этого небольшого ликбеза вы можете смело пользоваться макросами и создавать более сложные и нечитаемые шедевры наконец-то разобрались в том, насколько гибкими могут оказаться выражения препроцессора ( вообще не понимаю, как вы жили без них раньше...)
Недавно ревьюил один интересный PR в CPython: в питон добавили еще один способ форматировать строки. Теперь – со специальным АПИ для внешних интеграций. Расскажу: как и зачем.
Основная причина: использовать f строки удобно, но нет никакого АПИ для перехвата момента "вставки" или интерполяции значений. Например, при форматировании html или sql – требуется специальным образом делать escape для значений. И раньше код вида f"{template}" представлял собой дыру в безопасности и потенциальное место для XSS.
string.templatelib.Template
Новый префикс t не будет создавать объект str, он будет создавать объект класса string.templatelib.Template:
Обратите внимание, что при создании template – у нас не произошло форматирование сразу. Мы создали объект, у которого есть свойства strings и interpolations, из которых можно собрать финальную отформатированную строку.
Давайте посмотрим на примере. Допустим, мы хотим формировать URL из наших данных:
>>> domain = 'example.com'
>>> query = 'python string formatting is too complex'
>>> template = t'https://{domain}?q={query}'
И сам код логики форматирования, где мы будем вставлять значения разным способом. Если у нас шаблон query, то мы будем использовать quote_plus для его форматирования. Остальные значения – будем вставлять как есть:
>>> from string.templatelib import Template, Interpolation
>>> from urllib.parse import quote_plus
>>> def format_url(template: Template) -> str:
... parts = []
... for part in template:
... match part:
... case str() as s: # regular string
... parts.append(s)
... case Interpolation(value, expression='query'):
... parts.append(quote_plus(value))
... case Interpolation(value):
... parts.append(value)
... return ''.join(parts)
Архитектура программной системы - это набор ограничений, которые формируют и направляют реализацию системы в сторону максимизации её ценности
Архитектура - это набор ограничений
Это набор ограничений: архитектура задаёт рамки/правила по которым должна строиться система
Архитектура формирует и направляет реализацию: у разработчиков должна быть свобода в реализации, но архитектура задаёт для них ограничения
Архитектура максимизирует ценность: ограничения поставлены так, чтобы вписываясь в них система принесла больше ценности. Именно архитектура определяет: какими паттернами реализовывать бизнес-логику, как связываться со сторонними сервисами, из каких категорий будет состоять программный код
И я придумал для этого метафору. Представьте, что мы строим дом. Тогда:
Системный архитектор: Нарисует чертежи всего дома (фасада, этажей). Задаст форму квартирам: сколько в квартире комнат, куда проведены трубы и электричество. Исходя из этого, сан-узел можно будет поставить только в одной комнате (куда проведены вода и канализация), а кухню только в другой (куда проведена вода и газ). Системный архитектор наложил на весь дом и на каждую квартиру верхне-уровневые ограничения: структурные (сколько в каждой квартире комнат, где сан-узел, где кухня, а где жилые комнаты) и поведенческие (это жилое помещение, а не склад или магазин). Но в какой комнате будет детская, а в какой рабочий кабинет - решать не ему.
Системный дизайнер: Он как дизайнер интерьеров. Определяет назначение каждой комнаты, учитывая уже наложенные архитектурные ограничения. Где будет гостиная, где спальня, где рабочий кабинет и т.п. И расставляет мебель (структурные ограничения), руководствуясь назначением каждой комнаты (поведенческие ограничения). И всё это так, чтобы живущим в квартире людям было удобно.
Программист: Это рабочий, который по чертежам дизайнера положит паркет, подключит фурнитуру и соберёт мебель.
Хотя названия этих ролей подходит под метафору, сам я считаю, что всю вышеописанную работу делают программисты. Я не считаю, что компания выиграет, если будет иметь отдельную должность системного архитектора или системного дизайнера. Для меня это больше грейды, чем профессия:
Системный архитектор - senior (опытный программист, способный спроектировать кластер контейнеров)
Системный дизайнер - middle (программист, способный спроектировать один контейнер)
Программист - junior (любой программист, способный работать внутри контейнера по готовым ограничениям)
Как автоматизировать распознавание текста с изображений?
В открытых источниках часто встречаются изображения с ценным текстом — скриншоты рабочих столов и приложений, фотографии таблиц, чеков, рукописных заметок и т.д. Сбор обычного текста автоматизировать легко, но с текстом на картинках начинаются сложности.
Раньше в моём арсенале был только pytesseract (Python-библиотека для распознавания текста). Она работала, но с серьёзными ограничениями: ➖Плохо справлялась с разными шрифтами ➖Теряла точность на низкокачественных изображениях ➖Путала языки, если текст был мультиязычным
Сейчас появились LLM-модели, которые справляются с этой задачей гораздо лучше, но если у вас нет мощного железа, запустить их локально не получится.
В профильных каналах регулярно пишут: «Вышла модель Х, которая показывает отличные результаты. OSINT-еры больше не нужны!», но никто не дает гайдов, как с этими моделями работать. Сегодня я это исправлю.
Обзор моделей для OCR Прошерстив не один десяток источников, я выделил две наиболее популярные на текущий момент модели: 1️⃣ GPT-4 mini — высокая точность, но платная. 2️⃣ Google Gemini 2.0 Flash — высокая точность + бесплатный лимит.
Выбор без раздумий пал на Gemini. На момент публикации бесплатные лимиты от Google следующие: ✔️ 15 запросов в минуту ✔️ 1 млн токенов в минуту (ввод + вывод) ✔️ 1 500 запросов в сутки
Как взаимодействовать с Gemini? 1️⃣ Получаем API-ключ в Google AI Studio 2️⃣ Через API отправляем изображение в base64 + промпт 3️⃣ Получаем распознанный текст в ответе
Но есть важный нюанс: сервис не работает с российскими IP
Что делать, если Gemini недоступна? Если у вас по какой-то причине нет возможности получить доступ к серверам Google AI Studio, то можно воспользоваться сервисами, которые предоставляют доступ к различным open-source моделям. Например, DeepInfra. Плюсы: ✔️ Нет блокировок по геолокации ✔️ Гибкая тарификация Минусы: ✖️ Нет бесплатного тарифа
Проверка знаний в эпоху LLM: опыт преподавателя из Политеха
Сегодня преподаватели сталкиваются с новой реальностью: даже уникальные задания и ежегодное обновление вариантов не гарантируют защиту от списывания. Студенты могут принести работающий код, созданный с помощью LLM-моделей, но совершенно не понимать, как он устроен. Устные собеседования могли бы помочь, но они требуют много времени и экспертности — до 15 минут на одного студента, что превращается в колоссальную нагрузку.
На курсах «Введение в язык программирования Go» и «Технологии параллельного программирования на C++» в Политехе лабораторные работы проверяются с использованием системы контроля версий GitLab. Это позволяет упорядочить процесс сдачи и проверки заданий.
Каждый студент работает в личном fork-репозитории, созданном на базе основного, предоставленного преподавателем. Решения оформляются строго по структуре: каждая задача и подзадача — в своей директории, обязательное наличие модуля go.mod, а точка входа программы размещается в cmd/. Сдача работы происходит через создание Merge Request в основной репозиторий, где автоматически запускаются все проверки.
Пример хронологии коммитов и Merge Request'ов, отправленных в основной репозиторий.
Система GitLab CI/CD выполняет серию автоматических тестов, включая проверку структуры проекта, сборку и выполнение юнит-тестов. Если хотя бы один из этапов не пройден, работа не допускается к оценке. Это дисциплинирует студентов и делает процесс проверки прозрачным и объективным.
После успешного прохождения автоматических тестов работа передается на ручную проверку преподавателю. Он дает обратную связь и при необходимости запрашивает доработку через комментарии в Merge Request. Только после этого, если все в порядке, решение попадает в основной репозиторий и считается принятым. Такой подход делает процесс обучения максимально приближенным к реальной командной разработке в индустрии.
В статье Игорь Никифоров, преподаватель с 14-летним опытом, делится проблемами, с которыми сталкиваются вузы из-за массового использования нейросетей. Он рассказывает, как это влияет на обучение, почему преподаватели вынуждены тратить больше времени на проверку, и какие шаги можно предпринять, чтобы сохранить учебный процесс.
Docker — это open source-платформа для создания контейнеров — окружений, где приложения работают независимо от ОС или среды. Технология упрощает перенос приложений между окружениями и ускоряет разработку.
В новом бесплатном курсе мы расскажем, с чего начать: как установить Docker, собрать образ, создать и запустить контейнер. Также познакомимся с Docker Compose и обсудим, чем Kubernetes отличается от Docker Swarm.
Это всё началось с изобретения слова “бойлерплейт” в 2012 году. Всем было страшно, что им придётся писать аж по три строки вместо одной. Поэтому все начали насиловать компиляторы и добавлять в них новые функции — только бы (НЕ ДАЙ ГОСПОДЕ БОЖЕНЬКА!!!) не писать дополнительно два символа.
В 2025 году у нас есть ЛЛМ. И не надо врать — я знаю, что вы не набираете код, за вас это делает ЛЛМ. Я не говорю, что вы не вычитываете этот код и не перепроверяете всё. Нет. Но печатает за вас ЛЛМ. И это — нормально.
Пусть она занимается этим бойлерплейтом. Иногда это — самое простое решение. Если у меня есть один файл, в котором чётко видно, в какие функции инвокаются какие рауты, то это — прекрасно. Не надо создавать фабрику, которая будет строить псевдообъекты, которые потом по гаданию на картах Таро будут инвокать методы на основании положения Марса в Стрельце.
Пусть ЛЛМ за вас напишет файл с 500 строками кода, где каждому URL дан чёткий метод. И если вам надо будет переименовать 300 из этих методов, то пусть ЛЛМ это и сделает. Не велика проблема.
В 2025 году можно смело откатить все нововведения Яваскрипта до 2016 года — и не париться больше в попытках улучшить язык. Просто сделайте его стандартом и больше не меняйте. Пусть ЛЛМ будет страдать. Нам не страшно.
Зато потом это будет проще понять и прочитать, чем вспоминать, что делает последовательность символов ?./\ ﷼ℬ в вашем коде и какой транспайлер мне надо поставить, чтобы это компилировалось в Google Chrome версии 18384572.
Он переписал сортировку в Java! Интервью с Владимиром Ярославским
На JPoint 2025 мы пообщались с Владимиром Ярославским — разработчиком, чья работа вошла в историю Java. Именно Владимир стал автором улучшенного алгоритма сортировки, который используется в JDK.
Это только начало — впереди ещё больше бесед с интересными людьми из мира Java и Spring.
Присоединяйтесь к русскоязычному сообществу разработчиков на Spring Boot в телеграм — Spring АйО, чтобы быть в курсе последних новостей из мира разработки на Spring Boot и всего, что с ним связано.
На GitHub выложены исходные коды программ, опубликованы в 3-м издании 101 BASIC Computer Games Дэвида Ала за март 1975 года издательства Digital Equipment Corp.
Оппа! Не зря мне чудилось, не зря. Что-то глюкнуло и прямо по среди кода ответ на китайском!!!
Gork-ушены-ли странности? Пробуя вайбить Горкушей, обнаружил странные параллели с поведением Синего Кита.
1. "прощупывание пользователя", скобочку там не закрыть, тут инклюд не помянуть, и всё такое-прочее, очевидное и не доставляющее проблем даже джунам, но способное напугать посторонних полотном "ужасных" ошибок ;-) ДжиПетто вроде подобное тоже вытворяло (не знаю как сейчас), но там на общем фоне остального написанного это выглядело скорее как реальные косяки, а не издёвка... А вот синий кит, через некоторое время чистого вайба, начинает откровенно жечь!
2. похожие "чудачества в коде", пруф к сожалению привести не могу, он из реальной жизни, и не гуглится, но всё подобное, обычно делается простым и понятным способом, создаётся структура, в которой описывается сколько бит что означает, и вместо разбора пакета, он просто рассматривается через эту структуру и вообще удобненько. Gorkуше был предоставлен пример кода, в котором именно так всё было сделано, и он этим даже воспользовался пару раз, но потом, таки переписал, устроив программный разбор пакета битовыми операциями, и конечно-же криво на столько, что ошибки самостоятельно исправить был уже не в силах, ни за сколько итераций. Что самое поразительное, абсолютно аналогичное поведения я наблюдал у Синего Кита несколько дней назад, вот прямо такой-же код, и такой-же косячный. Логично предположить что он был откуда-то сдёрнут, но нет, ничего подобного не гуглится, да и вообще может-ли такой изврат человеку в голову придти?
3. Я люблю Кита за сравнительную трезвость, позволяющую куда-то его запрягать даже по делу, у Горкуши с этим к стати хуже но, тупят они поразительно похожим образом. Давеча попросил сделать демона общающегося с железом и что-то шарящего в мемори для других процессов. Read only вестимо, об этом было прямо сказано в промпте, но эти "двое из ларца" мьютиксов туда намутили, поразительно похожим образом! И ладно-бы это был-бы какой-то пример из книжки переписанный на 100500 сайтах, но нет, там и косяки одинаковые, и по поводу мьютиксов на каждом заборе популярно написано, что в таких ситуациях "скрипач не нужен, родной"...
Вот такой-вот вайб, с котятами, может у кого будут ещё какие похожие замечания из других областей коднинга, я таки православный сионист системщик, и приколы у меня соответствующие, но наверняка на других языках оно чудит похожим образом!
Я начал мучить Горкушу ещё в X использовал преимущественно для самери поиска, а тут он вдруг резко так поумнел перед открытием, демонстрируя сходное с синим китом поведение, вот прямо в деталях. Так что не знаю прямо что и думать ;-)
PS. Протестировал профессионального Джимми 2.5, и кое-что из грядущего, слава Богам! Он действительно с виду более профессиональный НО, без образца проблему не решает, хотя это и ожидаемо, там где осмысленная архитектурная многоходовочка требуется... ...но в отличии от от Кита и Горкуши, Джимми дали мне ссылку на ту отраву, которой они все походу обожрались. Ok это отрава, бывает, но непонятно всё-же, с какого, если в сети есть большое количество годных примеров, берётся один, но гадкий? И как-же так вышло, что его сожрали все, такие разные ;-)
Какие выгоды можно получить от регистрации программы для ЭВМ в Роспатенте?
В первую очередь, свидетельство о регистрации программы для ЭВМ — это охранный документ. Он дает формальное подтверждение наличия исключительных прав на программный код.
Получение инструмента для защиты от незаконного копирования, использования, распространения программы (ее исходного кода), согласно:
— УК РФ Статья 146. Нарушение авторских и смежных прав;
— КОАП РФ Статья 7.12. Нарушение авторских и смежных прав, изобретательских и патентных прав — ГК РФ Статья 1252.
Защита исключительных прав. Если программу незаконно использует третье лицо, можно через суд получить компенсацию до 5 млн рублей или возмещение упущенной вами выгоды в двойном размере.
Реальный кейс: Агрофирма «Южная» незаконно использовала программное обеспечение компании «1C» (свидетельства о регистрации №2001611306 и №2001610830) Перед иском в суд “1С” обратилась к нарушителю с предложением урегулировать спор досудебным соглашением, но “Южная” на это не ответила. Суд встал на сторону владельца ПО и компания “1С” получила компенсацию за нарушение ее прав в размере двукратной стоимости использования программы — 568 000 руб. (Дело № N А35-839/2020).
Способ идентификации программы для заключения лицензионных договоров, которые освобождаются от НДС (в случае включения программы в Реестр отечественного ПО). И то же самое свидетельство можно будет предоставить в Федеральную налоговую службу.
Упрощение процедуры постановки программы на баланс компании в качестве нематериального актива, предоставления информации в банки при заключении кредитного договора (в качестве объекта залога). При постановке программы на баланс ее стоимость рассчитывается как сумма затрат на ее создание. Эти затраты не списываются, а капитализируются, что позволяет увеличить стоимость чистых активов компании и ее прибыль. Дополнительный аргумент при внесении программы в реестр отечественного ПО. Свидетельство принимается Минцифры как дополнительный документ, подтверждающий наличие исключительного права (наряду с первичными документами, но не заменяет их).
☁️ Провели главную IT-конференцию про облачные технологии и искусственный интеллект — GoCloud 2025. А пока мы готовим записи докладов, читайте об итогах конференции и о том, какой простор облачные и AI-технологии могут открыть для ваших IT-проектов в статье.
🦾 Рассказали про новые сервисы на платформе Cloud.ru Evolution. Например, теперь в коммерческом доступе Evolution Managed ArenadataDB — база данных на основе решения с открытым исходным кодом Greenplum, с которой можно хранить и обрабатывать большие объемы структурированных и полуструктурированных данных. Массово-параллельная архитектура (MPP) базы позволяет ускорять обработку данных даже в критически важных системах.
Подробнее обо всех новых сервисах, а также обновлениях на других наших облачных платформах читайте в дайджесте на сайте.
💼 В кейсе рассказали, как технологии искусственного интеллекта в облаке Cloud.ru помогли подготовиться к выходу на новый рынок Wildberries — самому крупному по обороту маркетплейсу в России.
💸 Перезапустили реферальную программу, чтобы вы могли с большей выгодой рекомендовать сервисы Cloud.ru клиентам, коллегам или друзьям. Теперь можно получить 20% от суммы чеков приведенных пользователей в первый год и 15% — в последующие годы. Регистрируйтесь в программе до 31 мая и приводите новых пользователей в течение трех месяцев. Участвовать могут самозанятые, ИП и юридические лица. Присоединиться.
📺 Провели вебинары, и их можно посмотреть в записи:
Приглашаем на Frontend Mix — бесплатный митап ЮMoney для всех, кто интересуется фронтенд-разработкой 🔥
🕓 24 апреля, в четверг, в 19:00 (мск) приходите на митап в Санкт-Петербурге или подключайтесь онлайн.
Спикеры из ЮMoney и Сбера расскажут, как работают над задачами и улучшают процессы в команде. 😎
Темы докладов:
🟣 Рефакторинг за 10 секунд. Как с помощью консольной утилиты производить автоматизированный рефакторинг крупных приложений за считанные секунды. 🟣 Подходы и практики тестирования во фронтенде. Зачем нужно тестирование во фронтенде, какие стандарты и подходы существуют и как мы применяем их в своей работе. 🟣 Уязвимости фронтенда в финтехе. Топ-3 атаки, или как построить защиту по всем фронтам — от планирования до релиза. 🟣 Анимация до кончиков пальцев. Поговорим про анимацию в целом и на вебе. Рассмотрим все способы сделать анимацию. Узнаем про композитные слои и как их посмотреть в Dev Tools — на примере одинаковых анимаций, но с использованием разных подходов.
Чтобы попасть на митап, нужна регистрация. Все подробности — на сайте Frontend Mix❤️
ИИ-ассистенты (промпты) - это тоже low-code. Бизнес-аналитики сами разрабатывают ИТ-продукты. Сайт какой сложности можно разработать без знания JavaScript? Кейс app.2lead.ru
Возможности low-code растут. Бизнес-аналитики сами разрабатывают ИТ-продукты, фактически добавляя к своим обязанностям часть функций программистов. При этом эксперты не прогнозируют, что low-code полностью заменит традиционное программирование в ближайшие годы.
ИИ-помощники (промпты) - это тоже low-code
Чаще всего low-code определяют как создание ПО с помощью графических интерфейсов и настроек, а не через традиционное программирование. Мне ближе более широкое определение: low-code – это системы и платформы, которые предполагают изменение, дополнение кода пользователем, в том числе с применением ИИ-помощников (промптов).
ИИ-ассистенты значительно ускорили разработку сервисов app.2lead.ru, созданных мной на JavaScript - без опыта программирования на этом языке. Это подтверждает возможность разработки ПО силами бизнес-аналитиков, продуктовых менеджеров и так далее. Ранее это была прерогатива только профессиональных программистов.
Сервисы app.2lead.ru разработаны в конце 2024 года – начале 2025 года. Вошли в топ-5 Яндекса по запросу «калькулятор инфляции». Уже увеличили органический трафик сайта 2lead.ruболее чемв 5 раз, без расходов на рекламу. // См. также «Нерекламные методы продвижения» https://habr.com/ru/articles/686736/
Что дальше? Массовое применение таких методов разработки ПО, более совершенные low-code системы и программирование голосом? Считаю, что практику low-code нужно расширять, разрабатывать учебные материалы по этому направлению и т.д. В этих инструментах есть большое пространство для развития.
Моим предыдущим местом работы был стартап. В один прекрасный день начальство собрало нас и сказало, что "денег нет, но вы держитесь". У нас оставался месяц на поиск нового места перед тем, как остаться с голой задницей.
Я судорожно начал искать работу фронтом, потому что никаких накоплений сформировать еще не успел. На момент описываемых событий мой общий стаж в IT составлял 2.7 лет - я успел поработать АБД, фуллстаком и фронтом. За следующие 3 недели я сходил ровно на 1 собес в откровенно отстойное место, на остальные мои 100500 откликов былы только отказы и игноры.
Я очень не хотел заниматься подобным харамом, но из каждого угла трубили про накрутку. Я поступился совестью и накинул год стажа на первое место работы. Тут же поперли собесы. Мне даже впервые в жизни hr сама написала в телегу. Сложилось стойкое ощущение, что я просто перевалил через какой-то фильтр, как будто бы все hr-ы привыкли к накруткам и к исходным требованиям сами плюсуют пару лет.
Сейчас все хорошо, во время моих попыток устроиться фронтом меня взяли фуллстаком, и теперь я работаю бэкэндером (вернулся к светлой стороне силы).
Вопрос - какие были альтернативы? У меня жена, две собаки и кредит по учебе, жену я замотивировал и отправил получать образование, плюс уговорил ливнуть с ее подработки, чтобы она лишний раз не нервничала и могла себя всю посвятить учебе. Морально я начинал готовиться к работе курьером.
Будет здорово, если вы поделитесь своим аналогичным опытом
Хотите опубликовать свой продукт или сервис? Тогда присоединяйтесь к вебинару про Маркетплейс Cloud.ru.
📆 Когда: 17 апреля в 11:00 мск
📍 Где: онлайн
Какие продукты можно опубликовать на Маркетплейсе Cloud.ru, кто может стать вендором и какие это дает преимущества, а также, как устроен процесс публикации продуктов на витрине, расскажет Бузулуцкова Юлия — ведущий аналитик.
В программе:
что такое Маркетплейс Cloud.ru и какие решения мы уже предлагаем клиентам;
типы продуктов на витрине и особенности их использования;
публикация продукта на витрине: условия, этапы, сопровождение;
преимущества партнерства с Маркетплейс Cloud.ru в качестве вендора;
демо: как заполнить анкету продукта и опубликовать его.
Будет полезно не только компаниям, но и отдельным разработчикам, которые создают ПО, которое можно развернуть на виртуальных машинах, в кластерах или контейнерах в облаке.