Привет!К вам пришёл кандидат, который идеально проходит по всем критериям, но у него "не тот вайбик" или вам нравится давать необоснованные отказы? Тогда эта статья для вас! Я собрал несколько вопросов, которые абсолютно бесполезны в реальной разработке (только если вы не собеседуете Робов Пайков в Google), на которые почти точно ни один адекватный кандидат никогда не ответит. Если отбросить шутки (вы же поняли, что я шучу?), то перед вами фан-подборка каверзных, глупых и душных вопросо…
В прошлой статье я рассказывал, как лень довела меня до кодогенератора для биндинга и валидации. Закончил я обещанием: теги оказались не приватным входом одного инструмента, а объявлением, которое может прочитать кто угодно. Вот второй читатель.Две одинаково безнадёжные крайностиС документацией к API у меня было два опыта, и оба плохие.Написанная руками. Красивый openapi.yaml, в нём примеры, описания семантики, разложенные по полочкам коды ошибок. Ровно до первого релиза. Потом кто-то добавил п…
Всем привет! Меня зовут Михаил Голубев, и я работаю в команде Kubernetes Security, MWS Cloud Platform. В этой статье я расскажу об одной попытке оптимизации: как мы залезли под капот CEL и Protobuf, чтобы научить интерпретатор читать данные из бинарного формата на лету без полной десериализации, и почему в итоге от этого кода пришлось отказаться. Почему мы вообще этим озадачились: в одном из наших микросервисов реализовано сканирование приходящих событий по k8s-манифестам. Событий летит много,…
Когда рекламный баннер «Пройди Тест по Go от Selectel» всплыл уже четвертый раз за день — я сдался. Нажал и пошёл проходить тест — несмотря на аннотацию уровень оказался очень «базовым» так что через несколько минут я завершил его всего с одной ошибкой.Это событие не стоило бы упоминать — но «впечатлило» оформление и воплощение теста — как можно видеть ниже — из‑за неаккуратности составителей даже и ответ где‑то иной подходит. Попытался об этом написать приватно, почтой — но, кажется, безуспешн…
Всем привет!ПредисловиеВ этой статье я расскажу о своих рассуждениях и расчётах, а также рассмотрю различные подходы к маршрутизации электрокаров с учётом внешних условий и подходящих зарядных станций для их последующего бронирования. Возможно, этот материал окажется полезным и поможет вам в реализации собственных проектов.СОДЕРЖАНИЕВведение1. Ситуация с электротранспортом в мире2. Преграды для запуска «электричек» в России3. Обзор научной литературы4. Пространственная фильтрация зарядных станц…
Как одна конкретная RAG-система эволюционировала из нейросети, которая ищет по md-файлам до многослойного пайплайна с графом знаний, гибридным ретривером и адаптивной схемой рассуждений.Начну с краткой предыстории.Проект переезжал в другое облако. Прод переехал успешно, но dev-среда - чаты, документация, код, задачи - подтягивались постепенно. Часть людей, хранящих особые знания не переехало. И ничего не предвещало беды.Я новый человек на проекте, долгожданная смена проекта. Техлид, спокойно пе…
Я Тимур Баян, занимаюсь разработкой почти всю свою жизнь, ещё со студенческих лет. Программирование и разработка у меня в крови! Я люблю решать нерешаемые проблемы, делать людям жизнь легче, тестить гипотезы, создавать крутые продукты. Так меня позвали работать в Уралсиб помогать управлять уже не одной, а сразу тремя командами. Сложностей я не боюсь, так что ныряем в задачи с головой!Дано: три очень разные команды разработки, каждая со своим стеком технологий. С самого второго дня на меня понес…
Лень — двигатель прогресса. Я очень ленив, поэтому прогресс должен был выйти впечатляющим. Спойлер: он и вышел, но с ленью что-то пошло не так.Сколько раз можно написать «поле обязательно»Проект, в который я пришёл, был большой и почтенный, а валидация в нём жила внутри хендлеров. Выглядело это примерно так — и, подозреваю, вы такое видели:func (h *handler) CreateInvite(w http.ResponseWriter, r *http.Request) { var req InviteRequest if err := json.NewDecoder(r.Body).Decode(&req); er…
Привет, Хабр!График памяти, вроде — ровный. runtime/metrics показывает те же 600 МиБ, что и месяц назад, heap-профиль не растёт, утечек нет. А kubectl describe pod пишет OOMKilled, и рестарты идут каждые пару часов. Оба числа правдивые, просто меряют разное: рантайм считает память, которую сам попросил у системы и за которой следит, а ядро перед убийством смотрит на RSS — сколько страниц реально лежит в физической памяти.Расхождение это ровесник самого Go в контейнерах. Новое тут другое: за пос…