golang_interview | Unsorted

Telegram-канал golang_interview - Golang вопросы собеседований

14942

@notxxx1 - админ @Golang_google - Golang для разработчиков @itchannels_telegram - 🔥лучшие из ит @golangl - chat @golangtests - golang tests @golang_jobsgo - go chat jobs @ai_machinelearning_big_data - AI @data_analysis_ml РКН: clck.ru/3FmtKd

Subscribe to a channel

Golang вопросы собеседований

🔥 AI-кодинг в Go - не главная проблема. Проблема начинается, когда код никто нормально не проверяет.

Разбор актуальной практики 2026 года: Copilot, Cursor и Claude действительно хорошо справляются с boilerplate, тестами, миграциями и рутинным кодом. Но на сложных участках — concurrency, context, редкие API - ошибки всё ещё легко выглядят «правдоподобно».

Например, AI может сгенерировать код, который:

- компилируется, но содержит race condition
- теряет context и продолжает работу после отмены запроса
- придумывает несуществующий метод библиотеки
- проходит часть тестов, но ломается под нагрузкой

Вывод отсюда не в том, что AI плохо пишет Go.

Куда важнее сам workflow:

repo context → change → compile → tests → static analysis → race detector → review → fix → PR

То есть модель не должна быть «источником истины». Источником истины должны быть кодовая база, документация и детерминированные проверки.

Для Go это особенно важно:

go test ./...

go test -race ./...

go vet ./...

staticcheck ./...

Плюс отдельные правила для context, concurrency, shutdown, retries и внутренних API.

Ещё сильнее схема становится, если один агент пишет код, а другой отдельно проверяет concurrency, архитектуру и edge cases.

Идея простая:

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

Это уже не просто AI-assisted coding.

Это переход к agentic software engineering.

Читать полностью…

Golang вопросы собеседований

🐹 Go: `defer f.Close()` может скрыть ошибку записи

При работе с bufio.Writer данные сначала попадают в буфер. Ошибка может возникнуть при Flush() или закрытии файла - уже после успешного Write().

Сохранить все ошибки можно через именованный результат и errors.Join:


func save(path string, data []byte) (err error) {
f, err := os.Create(path)
if err != nil {
return err
}

w := bufio.NewWriter(f)

defer func() {
flushErr := w.Flush()
closeErr := f.Close()
err = errors.Join(err, flushErr, closeErr)
}()

_, err = w.Write(data)
return err
}


Нужны пакеты bufio, errors и os.

Что здесь важно:

* сначала выполняется Flush(), затем Close()
* файл закрывается даже при ошибке сброса буфера
* именованный err позволяет изменить результат после return, пока выполняется defer
* errors.Join сохраняет все ошибки; errors.Is и errors.As умеют их проверять
* если ошибок нет, результат остаётся nil

Ловушка: defer errors.Join(err, f.Close()) закроет файл сразу - аргументы отложенного вызова вычисляются при регистрации defer.

Приём работает в актуальном Go и доступен с Go 1.20. Flush() передаёт данные нижележащему writer; для синхронизации файла с хранилищем нужен отдельный f.Sync().

errors.Join - https://pkg.go.dev/errors#Join
os.File - https://pkg.go.dev/os#File.Sync

Читать полностью…

Golang вопросы собеседований

Команды ждут тебя на треке программирование роботов на МТС True Tech Champ 2026  — всероссийском чемпионате по программированию с двумя треками и призовым фондом 10 250 000 рублей.

Успей зарегистрироваться до 13 сентября.

В треке программирования роботов тебе предстоит запрограммировать робособаку для доставки груза через полосу препятствий сначала в онлайн-симуляторе, а затем на офлайн-полигоне в финале 22 октября. Рекомендуемые стеки: Go, Java, Python, C#, C++, JS.

Участие в командах 2-5 человек. Если у тебя нет своей команды, кураторы помогут объединиться с другими участниками на платформе.

Масштабный финал объединит борьбу за призовой фонд 10 250 000 рублей, выступления хедлайнеров, доклады спикеров и активности для всех гостей мероприятия.

Успей зарегистрироваться и пройти квалификацию до 13 сентября.

erid:2VSb5xDCSMY

Читать полностью…

Golang вопросы собеседований

Spinifex - open-source платформа с AWS-совместимым API для запуска инфраструктуры на собственном железе.

Проект позволяет поднимать сервисы, похожие на:

- EC2
- VPC
- S3
- EBS

Всё работает на bare metal и остаётся под полным контролем владельца инфраструктуры.

Spinifex рассчитан на сценарии, где обычное облако использовать нельзя или нежелательно:

- edge-площадки
- частные дата-центры
- среды с плохой связью
- изолированные и высокорисковые инфраструктуры

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

Проект написан на Go и открыт на GitHub:

https://github.com/mulgadc/spinifex

Читать полностью…

Golang вопросы собеседований

🔥 В Go есть странная, но полностью валидная конструкция:

error.Error(errors.ErrUnsupported)

Почему это работает:

- errors.ErrUnsupported — реальная ошибка из пакета errors
- error — интерфейс
- Error — его метод
- метод в Go можно вызвать как обычную функцию через method expression

Поэтому:


err := errors.New("oops")

err.Error()
error.Error(err)


дадут одинаковый результат.

А:


error.Error(errors.ErrUnsupported)



вернёт:


"unsupported operation"

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

Читать полностью…

Golang вопросы собеседований

10 GitHub-репозиториев, которые стоит сохранить Go-разработчику в 2026 году.

1. Golang Roadmap 2026 🇷🇺

Один из самых полных свежих roadmap на русском: 19 модулей от синтаксиса и concurrency до PostgreSQL, gRPC, Kubernetes, observability, distributed systems, eBPF, Wasm и AI-агентов. В каждом модуле есть практика и проекты.

github.com/Develp10/golangroadmap2026

2. Learn Go with Tests

Один из лучших способов реально выучить Go, а не просто читать синтаксис. Язык изучается через TDD: interfaces, concurrency, context, HTTP, generics, iterators, mocks и архитектура тестируемого кода.

github.com/quii/learn-go-with-tests

3. Practical Go

Свежие материалы Ardan Labs по практическому Go. Хороший переход от «я знаю синтаксис» к пониманию того, как писать нормальный production-код.

github.com/ardanlabs/practical-go

4. Go 101

Огромная и постоянно обновляемая база знаний по Go. Особенно полезна, когда базовый курс уже закончен и хочется глубже понять семантику языка, runtime, типы, memory model и неочевидное поведение Go.

github.com/go101/go101

5. Uber Go Style Guide

Как писать Go-код, который не стыдно отправлять на code review. Ошибки, goroutines, interfaces, naming, performance, functional options, table-driven tests и десятки production-практик. Репозиторий обновлялся и в 2026 году.

github.com/uber-go/guide

6. Go by Example

Go через маленькие работающие программы. Goroutines, channels, interfaces, HTTP, JSON, filesystem, timers, synchronization и другие вещи можно сразу запускать и менять руками. Проект продолжает учитывать новые возможности Go.

github.com/mmcgrana/gobyexample

7. Exercism Go Track

Если теорию уже прочитал - сюда за практикой. Большой набор задач с тестами и постепенно открывающимися концепциями Go. Track поддерживается и обновлялся в августе 2026 года.

github.com/exercism/go

8. LearnGo

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

github.com/inancgumus/learngo

9. Wild Workouts

Уже для тех, кто умеет писать Go, но хочет понять архитектуру больших приложений. На реальном проекте разбираются DDD, Clean Architecture, CQRS и рефакторинг.

github.com/ThreeDotsLabs/wild-workouts-go-ddd-example

10. Awesome Go

Не курс, а огромная карта современной Go-экосистемы: web, databases, distributed systems, observability, testing, networking, security, CLI и сотни библиотек. Репозиторий активно обслуживается и в 2026 году.

github.com/avelino/awesome-go

Если начинать с нуля, я бы шёл так:

Golang Roadmap 2026 → Learn Go with Tests → Exercism → Go 101 → Uber Guide → Wild Workouts.

Читать полностью…

Golang вопросы собеседований

Полный инженерный курс по AI-агентам на русском: от tool calling до production

Курс инженерный, а не обзорный. Здесь почти нет рассуждений о том, «изменит ли ИИ мир», зато есть: минимальные работающие реализации каждого механизма, лабораторные с критериями приёмки, шаблоны для копирования, чек-листы перед релизом, каталог антипаттернов и набор бенчмарков, по которым можно честно сравнить две версии своего агента.

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

https://github.com/justxor/Aiagentsfullcourse

Читать полностью…

Golang вопросы собеседований

👣 В Go 1.27 появился почти настоящий LINQ

Автор go-linq показал новую версию библиотеки для Go 1.27, которая позволяет писать типобезопасные цепочки запросов в стиле LINQ:


From(users).
Where(...).
Join(...).
ToSlice()


Главная цель проекта - получить удобство LINQ без привычной цены в виде большого runtime-overhead.

По словам автора, производительность уже близка к вручную написанным циклам, а дальше её планируют ещё улучшать.


GitHub: https://github.com/ahmetb/go-linq

@Golang_google / Папка с полезными Go-ресурсами

Читать полностью…

Golang вопросы собеседований

Julius от Praetorian - open source-инструмент, который по IP:Port или URL определяет, какой AI-сервис работает на endpoint.

Он умеет распознавать больше 60 платформ:

— Ollama
— vLLM
— SGLang
— LiteLLM
— llama.cpp
— Hugging Face TGI
— NVIDIA NIM
— Open WebUI
— Dify
— AWS Bedrock и другие.

Пример:


julius probe 192.168.1.100:8080


Julius отправляет специальные HTTP-probes, анализирует ответы и пытается определить конкретный сервис, а не просто понять, что endpoint совместим с OpenAI API. Он также может показать доступные модели.

Написан на Go, работает локально и собирается в один бинарник.

https://github.com/praetorian-inc/julius

Читать полностью…

Golang вопросы собеседований

У SQLite один writer. И иногда это не ограничение, а очень удобная архитектура.

Работал с SQLite и увидел необычную схему: база работала сразу на нескольких машинах, но запись всё равно шла только через одну.

За это отвечал LiteFS.

Он не пытается превратить SQLite в полноценную distributed database. Вместо этого одна машина выбирается primary через distributed lease и получает право писать. Остальные работают как реплики.

Если primary пропадает, lease истекает и другой узел может занять его место.

В итоге сложная на первый взгляд задача сводится к довольно простой идее:

«Просто гарантируй, что в каждый момент времени пишет только одна машина».


А на скрине как раз часть Go-кода LiteFS, которая продлевает этот lease и следит, чтобы узел не продолжал считать себя primary после истечения TTL.

Читать полностью…

Golang вопросы собеседований

🧠 Алгоритм Флойда знают многие Go-разработчики: два указателя двигаются с разной скоростью и находят цикл в связном списке за `O(n)` времени и `O(1)` памяти.

Но есть менее известный алгоритм Брента, который решает ту же задачу и часто делает меньше переходов по Next.

Флойд:


slow := head
fast := head

for fast != nil && fast.Next != nil {
slow = slow.Next
fast = fast.Next.Next

if slow == fast {
return true
}
}


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

1 → 2 → 4 → 8 → 16


power, lam := 1, 1
tortoise := head
hare := head.Next

for hare != nil && tortoise != hare {
if power == lam {
tortoise = hare
power *= 2
lam = 0
}

hare = hare.Next
lam++
}


Асимптотика та же:

O(n) по времени
O(1) по памяти

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

Флойда спрашивают на собеседованиях постоянно. Про Брента многие Go-разработчики вообще не слышали.

Читать полностью…

Golang вопросы собеседований

⚡️ Одна из недооценённых сильных сторон Go - криптография в стандартной библиотеке.

Хороший пример - SHA-256.

Снаружи разработчик видит обычный crypto/sha256, но внутри Go умеет выбирать оптимальную реализацию под конкретный CPU.

На arm64 логика примерно такая:


if useSHA2 {
blockSHA2(dig, p)
} else {
blockGeneric(dig, p)
}


Если процессор поддерживает SHA-2 instructions - используется платформенно-оптимизированный код. Если нет - generic fallback.

В этом и сила стандартной библиотеки Go: простой API скрывает CPU feature detection, assembly и архитектурные оптимизации.


sha256.Sum256(data) выглядит простенько.

Но под капотом там очень серьёзная инженерия.

Читать полностью…

Golang вопросы собеседований

IRIS - open-source автодополнение на Go, которое рисует меню подсказок прямо внутри TTY.

Инструмент индексирует историю команд и aliases, после чего предлагает подходящие команды в реальном времени. Работает на Linux и macOS, включая SSH, Tmux и обычные виртуальные терминалы.

Внутри - один нативный Go-бинарник:

https://github.com/versenilvis/iris

Читать полностью…

Golang вопросы собеседований

Каждый год в середине лета мы с друзьями собираемся на E-CODE. Ещё относительно молодая конфа Ozon Tech стала уже своего рода легендой. Не удивительно: хардовость официальной части здесь не уступает громкости афтерпати.

На E-CODE 2026 нас по части бэкэнда ждут:

• Runtime Async с его + и –
• трассировка с eBPF
• ускорение на SIMD
• построение кастомной real-time системы видеоаналитики
• сравнительный анализ алгоритмов сборки мусора

Фишка этого года — брейнринг разработчиков и ИИ. Эксперты разберут сложные кейсы и сравнят свои подходы с тем, что предложит машина. Победителя выберет зал.

Регистрируйтесь сейчас, чтобы услышать это всё вживую: https://ecode.ozon.tech/

12 и 13 сентября, Москва. До встречи на E-CODE!

Читать полностью…

Golang вопросы собеседований

MinLZ научился искать внутри сжатых данных без полного распаковывания

В релизе MinLZ v1.2.0 появилась очень полезная фича: поиск byte sequences прямо по сжатому потоку. Обычно, чтобы найти строку в архиве или логе, нужно сначала распаковать всё. MinLZ делает иначе: добавляет небольшой search index по блокам и распаковывает только те блоки, где совпадение вообще возможно.

Как это работает:

* каждый блок получает маленькую bloom-filter таблицу
* при поиске MinLZ быстро проверяет, может ли паттерн быть в блоке
* если точно не может — блок пропускается
* если может — только тогда блок декодируется и сканируется

Индекс можно встроить при сжатии или собрать потом как sidecar-файл, не трогая исходные сжатые данные. Старые MinLZ-ридеры такие chunks просто игнорируют, так что совместимость сохраняется.

Самый красивый пример из релиза: поиск строки в 10 GB CockroachDB log, сжатом до 578 MB, занял 0.14 секунды через mz search. Обычный путь через decompression + grep занимал около 5 секунд, а lz4 -dc | grep — около 10 секунд.

Но это не магия для всего подряд.

MinLZ особенно хорош, когда нужно искать редкие literal byte strings: ID, error codes, request paths, hostnames, JSON keys, hashes. Для regex, fuzzy search, case-insensitive поиска или очень частых паттернов выигрыш может исчезнуть.

Доступно как CLI и как Go API.

GitHub: https://github.com/minio/minlz/releases/tag/v1.2.0

Читать полностью…

Golang вопросы собеседований

🔥 Хочешь расти в IT быстрее остальных? Перестань учиться в одиночку

Можно годами смотреть курсы, читать документацию и всё равно топтаться на месте.

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

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

AI: t.me/ai_machinelearning_big_data
Python: t.me/pythonl
Linux: t.me/linuxacademiya
Хакинг: t.me/linuxkalii
DevOps: t.me/DevOPSitsec
Docker: /channel/+90Z5TAyfuNU5YmRi
Golang: t.me/Golang_google
Rust: t.me/rust_code
C++: t.me/cpluspluc
C#: t.me/csharp_ci
Java: t.me/javatg
JavaScript: t.me/javascriptv
React: t.me/react_tg
Frontend: t.me/front
PHP: t.me/phpshka
Android: t.me/android_its
Мобильная разработка: t.me/mobdevelop
Базы данных: t.me/sqlhub
Data Science: t.me/data_analysis_ml
Big Data: t.me/bigdatai
Математика: t.me/data_math
Физика: t.me/fizmat
Kubernetes: t.me/kubernetc
GameDev: /channel/gamedev
Haskell: t.me/haskell_tg

Собеседования и карьера:

DS собеседования: t.me/machinelearning_interview
Python собеседования: t.me/python_job_interview

Папка с вакансиями: t.me/addlist/_zyy_jQ_QUsyM2Vi
Папка Go разработчика: t.me/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: t.me/addlist/eEPya-HF6mkxMGIy
Папка ML: /channel/addlist/2Ls-snqEeytkMDgy
Папка Frontend: /channel/addlist/mzMMG3RPZhY2M2Iy

Полезное сверху:

ИТ-мемы: t.me/memes_prog
Английский для программистов: t.me/english_forprogrammers
ИИ и технологии: t.me/vistehno
954 ГБ open-source курсов: /channel/+rKBQEMccAA01MTcy
ИТ-книги бесплатно: /channel/addlist/BkskQciUW_FhNjEy

Max Ai: https://max.ru/ai_machinelearning_big_data
Max python: https://max.ru/pythonl
ТЕХНО: https://max.ru/vistehno
Max Go: https://max.ru/Golang_google
Max Linux: https://max.ru/linuxkalii
Devops: https://max.ru/DevOPSitsec
C#: https://max.ru/csharp_ci
C++: https://max.ru/cpluspluc
SQL: https://max.ru/sqlhub
Java: https://max.ru/javatg

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

Читать полностью…

Golang вопросы собеседований

⚡️ DeepSeek открыла веса V4.1-Flash

DeepSeek выложила свежайшую DeepSeek-V4.1-Flash, мультимодальную MoE-модель на 552 млрд параметров, с контекстом до миллиона токенов и методом Causal Encoder-Decoder под капотом, который вдвое удешевляет разбор входа.

Задача, под которую её делали, скучная, но дорогая. Долго работающий агент постоянно перечитывает свой контекст, и всё прочитанное приходится держать в KV-кэше.

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


В V4.1-Flash кэш сжат до 890 байт на токен, это вчетверо меньше, чем у V4-Flash, и в 437 раз, чем у первой версии DeepSeek.

Каждому слою внимания заранее назначен один из трёх режимов:

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

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

🟡Causal Encoder-Decoder

Метод вдохновлен майкрософтовской работой You Only Cache Once про переиспользование KV-кэша слоями. DeepSeek внесла в него структурные улучшения, чтобы поднять ёмкость кэша и глубину вычислений при его порождении.

40 слоёв разделены пополам: 20 на энкодер, 20 - декодер. К и V для декодера не считаются в каждом его слое, а проецируются из последнего скрытого состояния энкодера.

Поэтому при разборе входа работает только первая половина сети - 8 млрд активных параметров на токен против 16 при генерации ответа.

Для агентов, у которых вход в разы длиннее вывода, это именно то, что нужно.


🟡Бенчмарки

На DeepSWE v1.1 модель берёт 74,2% против 74,0 у Claude Opus 5 и 73,0 у GPT-5.6 Sol.

На Terminal-Bench 2.1 - 90,6% (выше всех).

На AutomationBench - 54,8% против 50,3 у Opus 5.

А вот в Terminal-Bench 4.0, где нужны экспертные знания в науке, модель даёт 31,2% против 51,8 у Opus 5, то есть разрыв с топами на самых сложных задачах никуда не делся.


Модель поддерживает настраиваемый уровень рассуждений от 1 до 100, в API это три пресета: low, high, max - они соответствуют значениям 50, 75 и 100.

Шаблона чата в Jinja нет - вместо него советуют реализацию промптов на Python и отдельный набор Rust-библиотек.

Сообщество на Hugging Face уже сделало квантованные версии практически под всё.


📌Лицензирование: MIT License


🟡Блогпост
🟡Веса
🟡Техотчет


@ai_machinelearning_big_data

#AI #ML #MMLM #MoE #Deepseek

Читать полностью…

Golang вопросы собеседований

🔥 monty-go - безопасный запуск Python-кода от LLM прямо внутри Go

Проект оборачивает интерпретатор Pydantic Monty в WebAssembly и запускает его через wazero.

Что интересно:

- pure Go — без CGO
- без контейнеров и subprocess
- запуск sandbox меньше миллисекунды
- WASM-бинарник всего около 2,9 МБ
- можно ограничить память, время, число аллокаций и глубину рекурсии
- доступ к файлам и ОС идёт только через разрешённые Go-callbacks
- внешние функции работают через pause/resume

Главная идея — агент может написать один Python-скрипт, который вызывает ваши Go-инструменты, вместо длинной цепочки отдельных tool calls. Это уменьшает число обращений к модели и упрощает сложные agentic workflow.

MIT.

https://github.com/fugue-labs/monty-go

Читать полностью…

Golang вопросы собеседований

🔴 Тестовое собеседование с Go Senior с опытом работы в Яндексе, EPAM и Uzum в этот четверг

3 сентября(в четверг!) в 19:00 по мск приходи онлайн на открытое собеседование, чтобы посмотреть на настоящее интервью на Middle Go-разработчика.

Как это будет:
📂 Маруф Караев, Senior в европейской компании, ex-Uzum, ex-Яндекс, ex-EPAM будет задавать реальные вопросы и задачи разработчику-добровольцу
📂 Маруф будет комментировать каждый ответ респондента, чтобы дать понять, чего от вас ожидает собеседующий на интервью
📂 В конце можно будет задать любой вопрос Маруфу

Это бесплатно. Эфир проходит в рамках менторской программы от ШОРТКАТ для Go-разработчиков, которые хотят повысить свой грейд, ЗП и прокачать скиллы.

Переходи в нашего бота, чтобы получить ссылку на эфир → @shortcut_go_bot

Реклама.
О рекламодателе.

Читать полностью…

Golang вопросы собеседований

🔥 diffyml - быстрый структурный diff для YAML и Kubernetes

Вместо обычного сравнения строк инструмент понимает структуру YAML и показывает реальные изменения в данных.

Что умеет:

- сравнивать Kubernetes-ресурсы по apiVersion + kind + name
- находить переименования ресурсов
- сравнивать директории
- подсвечивать изменения внутри строк
- работать как git external diff
- отдавать аннотации для GitHub, GitLab и Gitea CI
- маскировать чувствительные значения
- генерировать AI-summary изменений

Написан на Go и имеет всего одну внешнюю зависимость. На больших YAML-файлах авторы заявляют скорость до 1,5-1,9× выше ближайшего YAML-aware конкурента.

https://github.com/szhekpisov/diffyml

Читать полностью…

Golang вопросы собеседований

О!Хакатон возвращается — на кону миллион

Приглашаем Go- и Python-разработчиков, аналитиков и продакт-менеджеров на тревел-тех хакатон от Островка.

Вам предстоит решить одну из двух AI-задач в сфере тревел-теха и побороться за главный приз — 1 000 000 ₽.

Присоединиться к хакатону можно из любой точки мира. Участвуйте командой до пяти человек и выбирайте один из двух треков:

📌«О!дин запрос». Цель для junior-специалистов — создать AI-агента для путешествий и отелей.
📌«О!дин шаг до идеального отеля». Задача для специалистов уровней middle и senior — «переизобрести» опыт бронирования пользователя с помощью AI и новых интерфейсных механик.

📅 Регистрация открыта до 16 октября 2026 года. Стартуем 23 октября.

Скорее присоединяйтесь по ссылке!

Реклама. ООО "БРОНИРОВАНИЕ ГОСТИНИЦ". ИНН 7703389880.

Читать полностью…

Golang вопросы собеседований

Бархоппинг и разгон факапов? ДА!

Атмосферу «ну мёёёёд» сложно передать словами, но мы попробуем! Делимся видео и фоточками с нашего митапа для Go-разработчиков в Нижнем Новгороде.



Данил Руденко, 2ГИС — «Репозиторий здорового человека»
Зачем нужен паттерн «Репозиторий», почему не стоит тащить в него бизнес-логику, с какими сложностями можно столкнуться при работе с транзакциями и как их решать.

Никита Метелкин, Cloud.ru — «Как написать свой плагин для protoc-gen-go»
Как устроен protoc и как с помощью Go и protogen генерировать собственный код из .proto-файлов.

Александр Бухалко, MWS Cloud Platform — «Взросление OpenAPI-кодогенерации»
Почему одной модели для запроса и ответа может быть мало, как внедрять частичное обновление данных, переходить на OpenAPI 3.1 и работать с полями в Go и Kotlin.

Приходите на наши следующие мероприятия. У нас хорошо

Другие инженерные инсайты от 2ГИС → в Telegram-канале RnD

Читать полностью…

Golang вопросы собеседований

Вам доклады по Go или Java? VK приглашает на митап с двойной начинкой
26 августа VK собирает Go- и Java-инженеров, чтобы прокачать знания.

В программе два трека — Go и Java, по три доклада в каждом.

Трек Go:
• «Компиляция Go в динамическую либу, или как мы ускорили выкатку фичи в два раза, но нам не понравилось», Михаил Кичигин, бэкенд-разработчик, Avito Tech
• «Go-платформа VK: как мы построили единую основу для создания Go-сервисов», Александр Апанасенко, руководитель команды SDK Backend, VK
• «Почтальон от Kubernetes до Palo Alto. Как осуществляется доставка информации об адресах», Дарья Кулькина, бэкенд-разработчик, Точка Банк

Трек Java:
• «Перформанс-трюки в поисковой платформе Ozon», Пётр Портнов, ведущий разработчик среднего поиска, Ozon
• «Архитектура современного движка платёжной системы и переход к новой архитектуре», Игорь Крикунов, технический лидер разработки DBC, Альфа-Банк
• «Переход от федерации S3-кластеров в пользу коммунального и мультитенантного кластера», Кирилл Боблак, ведущий разработчик One-cloud, VK

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

Встречаемся в 17:00, начало в 18:00. Участие бесплатное, регистрация обязательна.

Читать полностью…

Golang вопросы собеседований

👣 Google выпустила Go 1.27. Обновление затронуло язык, runtime, стандартную библиотеку и инструменты разработки.

В язык наконец добавили generic methods. Теперь метод может работать сразу с разными типами без отдельных реализаций под int, int32, int64 и другие варианты. Ещё упростили инициализацию embedded-структур и расширили type inference для generic-функций.

Runtime тоже ускорили. Для маленьких объектов до 80 байт стоимость аллокаций снизили до 30%, а в allocation-heavy программах это даёт около 1% общей производительности. Появился и новый профиль goroutineleak в pprof, который помогает находить навсегда зависшие goroutine.

В стандартной библиотеке появился encoding/json/v2 с более строгими настройками и новым streaming API. Старый encoding/json теперь использует v2 внутри для более быстрого unmarshaling, сохраняя обратную совместимость.

Также добавили встроенный пакет uuid, поддержку постквантовых подписей ML-DSA и экспериментальный SIMD API.

Из приятного для повседневной работы: go doc теперь понимает package@version, go mod tidy сам приводит несколько require`-блоков в нормальный вид, а `go fix получил новые modernizer'ы.

https://go.dev/blog/go1.27

@Golang_google

Читать полностью…

Golang вопросы собеседований

🐹 Go 1.27 ускоряет мелкие аллокации в куче почти в 2 раза — и для этого не нужно менять ни строчки кода.

На тесте с объектом размером 16 байт:

Go 1.26 → ~9,5 нс
Go 1.27 → ~5,5 нс

Причина в самом аллокаторе.

Раньше даже для маленьких объектов компилятор вызывал одну универсальную функцию, а runtime уже определял нужный size class: 8, 16, 24, 32 байта и т.д.

В Go 1.27 для объектов меньше 80 байт появились специализированные пути аллокации под конкретные классы размеров. Лишняя работа в runtime просто исчезает.

Больше всего выиграют программы, которые постоянно создают множество мелких объектов:

• парсеры
• деревья и списки
• очереди событий
• структуры с отдельной heap-аллокацией каждой ноды

А вот сервисы с редкими крупными аллокациями почти ничего не заметят.

Редкий случай, когда достаточно просто пересобрать проект новым Go и получить ускорение бесплатно.

https://vc.ru/dev/3081222-go-1-27-uluchshaet-proizvoditelnost-allokatsiy-pamyati

Читать полностью…

Golang вопросы собеседований

🐳 Docker полностью переписала слой виртуализации Docker Desktop

Новый Docker VMM вышел в public beta для macOS и Windows начиная с Docker Desktop 4.86. Раньше Desktop полагался на сторонний VMM, теперь Docker контролирует весь стек и может оптимизировать его именно под контейнерные нагрузки.

Что обещают на практике: более быстрый запуск контейнеров, заметно ускоренный file I/O между host и контейнером, возврат неиспользуемой RAM системе и более стабильную работу на Windows.

На Windows Docker отдельно заявляет сочетание изоляции уровня Hyper-V со скоростью, близкой к WSL2. Тот же движок уже используется в Docker Sandboxes, а дальше компания хочет построить единый runtime для ноутбуков, облака, on-prem и AI-агентов.

GA планируется на конец октября 2026 года, после чего Docker VMM должен стать движком по умолчанию для новых установок Docker Desktop на Mac, Windows и Linux.

https://www.docker.com/blog/docker-vmm-public-beta/

Читать полностью…

Golang вопросы собеседований

Go-приём: как не получить 99% после округления

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


33.3 → 33
33.3 → 33
33.4 → 33

Итого: 99%


Для простого интерфейса можно округлить первые значения, а последнему передать остаток:


package main

import "math"

func balancePercentages(values []float64) []int {
if len(values) == 0 {
return nil
}

result := make([]int, len(values))
used := 0

for i := 0; i < len(values)-1; i++ {
result[i] = int(math.Round(values[i]))
used += result[i]
}

result[len(values)-1] = 100 - used

return result
}


Результат:


[]int{33, 33, 34}


Сумма останется равной 100.

Но это быстрый приём, а не универсальный алгоритм:

- значения должны быть заранее нормализованы;
- вся погрешность достаётся последнему элементу;
- результат зависит от порядка;
- при некорректных данных последнее значение может стать отрицательным.

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

Код актуален для современной Go 1.26 и работает без изменений. Функция math.Round доступна начиная с Go 1.10.

Читать полностью…

Golang вопросы собеседований

https://github.com/inspektor-gadget/inspektor-gadget## Inspektor Gadget: eBPF для отладки Kubernetes и Linux

Inspektor Gadget — open-source набор инструментов для диагностики через eBPF.

Умеет:

- отслеживать процессы, файлы, сеть и syscalls;
- связывать kernel-события с pod и контейнерами;
- работать через kubectl gadget и CLI ig;
- запускать eBPF-гаджеты из OCI images;
- экспортировать данные в observability-системы.

Пример:


kubectl gadget run trace_open:latest


Покажет, какие файлы открывают процессы внутри кластера.

Полезно для SRE и Kubernetes-инженеров, когда логов и метрик уже недостаточно и нужно посмотреть, что происходит прямо на уровне ядра Linux.

https://github.com/inspektor-gadget/inspektor-gadget

Читать полностью…

Golang вопросы собеседований

В Go всего 18 встроенных функций — и половину из них многие почти не трогают

С Go 1.21 их стало 18: добавились min, max и clear.

Чаще всего в реальном коде крутятся старые рабочие лошадки:

* make
* append
* len
* cap
* copy
* delete
* close

complex, real, imag нужны далеко не всем.
print и println вообще лучше не тащить в нормальный код — для этого есть fmt, log и нормальные инструменты отладки.

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

А какие built-in функции вы реально используете чаще всего?

Читать полностью…

Golang вопросы собеседований

🔥 Хочешь быстрее расти в IT? Хватит учиться в одиночку

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

Окружение решает больше, чем кажется.

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

AI: t.me/ai_machinelearning_big_data
Python: t.me/pythonl
Linux: t.me/linuxacademiya
Хакинг: t.me/linuxkalii
DevOps: t.me/DevOPSitsec
Docker: t.me/DevopsDocker
Golang: t.me/Golang_google
Rust: t.me/rust_code
C++: t.me/cpluspluc
C#: t.me/csharp_1001_notes
Java: t.me/java_library
JavaScript: t.me/javascriptv
React: t.me/react_tg
Frontend: t.me/front
PHP: t.me/phpshka
Android: t.me/android_its
Мобильная разработка: t.me/mobdevelop
Базы данных: t.me/sqlhub
Data Science: t.me/data_analysis_ml
Big Data: t.me/bigdatai
Математика: t.me/data_math
Физика: t.me/fizmat
Kubernetes: t.me/kubernetc
GameDev: /channel/gamedev
Haskell: t.me/haskell_tg

Собеседования и карьера:

DS собеседования: t.me/machinelearning_interview
Python собеседования: t.me/python_job_interview

Папка с вакансиями: t.me/addlist/_zyy_jQ_QUsyM2Vi
Папка Go разработчика: t.me/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: t.me/addlist/eEPya-HF6mkxMGIy
Папка ML: /channel/addlist/2Ls-snqEeytkMDgy
Папка Frontend: /channel/addlist/mzMMG3RPZhY2M2Iy

Полезное сверху:

ИТ-мемы: t.me/memes_prog
Английский для программистов: t.me/english_forprogrammers
ИИ и технологии: t.me/vistehno
954 ГБ open-source курсов: @courses
ИТ-книги бесплатно: /channel/addlist/BkskQciUW_FhNjEy

Max Ai: https://max.ru/ai_machinelearning_big_data
Max python: https://max.ru/pythonl
ТЕХНО: https://max.ru/vistehno
Max Go: https://max.ru/Golang_google
Max Linux: https://max.ru/linuxkalii
Devops: https://max.ru/DevOPSitsec
C#: https://max.ru/csharp_ci
C++: https://max.ru/cpluspluc
SQL: https://max.ru/sqlhub
Java: https://max.ru/javatg

Подписывайся на нужные направления и собирай себе ленту, которая реально двигает вперёд.

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

Читать полностью…
Subscribe to a channel