Андрей
стейдж накатить разве что
Hello
Хз
Pass
Индексы
Они снижают скорость
Sanity = nil
так тебе же задавали вопросы, не ответил?
Дмитрий
Они снижают скорость
точно? насколько я знаю, наоборот, увеличивают, но и память жрут. хотя могу ошибаться
Иван
Это на джуна или мидл?
Похоже на мида. Но могли и у Джуна такое спрашивать. Просто более снисходительно к ответам относиться
Sanity = nil
При кривых ручках снижают
как гуглить что гуглить чтобы научиться?
Иван
и как же ускорить бд?
Кстати, очень интересный и объемный вопрос. Может кто что напишет?)
Юрий
А ускорить на какую операцию и что значит ускорить
Emin Zalaev
и как же ускорить бд?
Сказать работай
Sanity = nil
Сказать работай
кнут забыл.
Юрий
Если ускорить на запись - индексы правда замедляют
Sergey
Кстати, очень интересный и объемный вопрос. Может кто что напишет?)
Слишком абстрактный вопрос. Скорее он «на потрындеть» и задать кучу уточняющих вопросов
Иван
А ускорить на какую операцию и что значит ускорить
Думаю, вопрос можно разделить на две части: как ускорить базу где преобладают записи и как ускорить, где преобладает чтение. Думаю на собесе часе будут спрашивать про «ускорить чтение»
Иван
Юрий
где об этом всем инфу собирать блин?
Приходишь на работу, тебе дают запрос который выполняется 10 минут. Долбишься гуглишь, а потом такой « дядя тимлид, направь»
Sergey
На Хабре была прикольная статья от Озона - «Почему PostgreSQL тормозит: индексы и корреляция данных» . Ссылкой не буду, а то мало ли
Иван
На Хабре была прикольная статья от Озона - «Почему PostgreSQL тормозит: индексы и корреляция данных» . Ссылкой не буду, а то мало ли
Так же добавлю: был неплохой обзор postgresql на Хабре от Авито. С разбором багов, которые просаживали базу
Fariz
Ускорить , может имелось ввиду закешировать?
Sergey
Ускорить , может имелось ввиду закешировать?
Вот это уже ближе к теме собесов
Hello
Но да, вопрос на поболтать был
Андрей
ревью запросов, индексы, портиционирование, использование материалайзд вьюх
Андрей
первое что в голову приходит
Андрей
Начать с explain analyze
ну вот я про это первым и указал, плюс там еще есть всякая база, типа нормализации, вакуума и проч
Sweety
Постгрес изнутри - лучшая книга
Null
Привет, на связи Podlodka Crew! Мы заметили, что в последнее время ивентов по Go стало меньше и решили исправить эту несправедливость. Поэтому начинаем год с премьеры Podlodka Go Crew — стартуем 6 февраля. В дебютном сезоне на реальных примерах разберём создание и внедрение внутреннего тулинга для автоматизации задач на бэкенде.  Подробно обсудим: ✴️Организацию верификации контрактов между сервисами. ✴️ Быстрый запуск разработки с помощью шаблонов микросервисов. ✴️ Поиск и использование оптимальных способов генерации схем микросервисов. ✴️ Оптимизацию генерации запросов к БД. Онлайн-конференции Podlodka Crew родились из одноимённого IT подкаста. Длятся пять дней, ежедневно — две экспертные сессии. Кроме докладов, в программе воркшопы, рулетки кейсов, конкурсы и круглые столы. Все сессии посвящены одной теме, чтобы рассмотреть её всесторонне и глубоко.  😉 Уже скоро мы опубликуем подробности. Залетай на сайт, чтобы узнать больше и купить билет. Не забывай, для early birds действуют скидки!
Khalid
всем привет! есть ли у кого телеграмм рекрутера amoCRM? поделитесь, пожалуйста
Khalid
благодарю!
Iryna
#вакансия #job #golang developer # golang разработчик # Golang senior 📍Вакансия: Senior Golang developer (ведущий разработчик) 🌎В компанию: АкссонСофт (#AxxonSoft) - международная продуктовая компания по разработке ПО для систем безопасности и видеонаблюдения. ✔️Задачи: Развитие облачных решений в видеонаблюдении и физической безопасности. ✔️Требования: Использование языка Golang в качестве основного рабочего инструмента на протяжении последних 3 лет; Опыт использования протоколов HTTP и HTTP v2 для предоставления REST API со стороны разрабатываемых приложений; Опыт разработки многопоточных приложений; SQL; ✔️Что мы предлагаем? 🧰Работать можно удаленно или в офисе (г.Алматы) + свободный график 🛠Предоставляем мощную технику, 📊Интересные задачи и профессиональный рост 🧑🏼‍💻👩🏻‍💻Дружный коллектив профессионалов 🪪Заработная плата: от 2 000 000 KZT на руки 🇰🇿Место: Казахстан, г.Алматы 🔍 Ирина Попова i.papova@axxonsoft.com
Evgeniy
Rashid
#вакансия #backend #blockchain #protocoldevelopment Вакансия: Backend разработчик Golang Формат работы: Удаленно «Зарплатная вилка»: 3000-6000 USD (готовы обсудить) BITQUERY (Bitquery.io , 99 Wall Street Suite 1808, New York, NY 10005, USA) Bitquery - международная компания разработчиков программного обеспечения для аналитики децентрализованных данных. У нас распределенная команда, мы ищем программистов для дальнейшей разработки и поддержки системы сбора и обработки данных Что нужно делать: • реализовать алгоритмы обработки данных (в первую очередь на Golang) • настройка, отладка и поддержка программного обеспечения, работающего на большом аппаратном кластере • программирование парсера блокчейн/криптоданных, включая реализацию новых протоколов • переход на CI/CD, систему мониторинга и оповещения • принимать участие в контроле качества данных, мониторинге и обеспечении качества данных Что желательно иметь: • хорошее понимание технологий баз данных, структур данных, алгоритмов • знакомство с серверным программированием, Linux • умение работать с данными Key skills: •  Golang •  SQL •  Linux Additional skills welcome: •  Ruby on Rails •  GraphQL •  Airflow •  Clickhouse •  Extract - transform - load (ETL) •  data warehouses (DWH) •  decentralized and distributed systems •  blockchain Желательно владение разговорным английским. ---- Дополнительно о некоторых плюсы работы в Bitquery.io: - свободный рабочий график - возможно предоставление рабочего ноутбука - опцион компании Bitquery - возможна помощь в релокации - организуем оффлайн-сессии - поездки в интересные места. Bitquery.io - Динамичная компания, добившаяся стабильного роста, с высокой культурой разработки, сотрудники участвуют и побеждают в топовых хакатонах. У нас высокая репутация в технологических стартапах. Услугами и продуктами Bitquery.io пользуются крупнейшие инвестиционные фонды мира
Aлёна ✨
#вакансия #удалённо #remote #Golang #Go Golang Team Lead|Senior Golang-разработчик Доход: до 400к на руки (готовы обсуждать) Удалённая работа, полная занятость. Компания: ТМХ (ТрансМашХолдинг) Команда разрабатывает различный софт для оценки технического состояния оборудования. И сейчас они заменяют системы, которые ранее поддерживали компании, которые ушли с рынка) Что нужно делать? ✔️Организовывать работу разработчиков (3-5 человек, первое время); ✔️Принимать участие в проектировании информационной системы ✔️Разрабатывать компоненты информационной системы на языке Go ✔️Разбираться со сложными математическими методами, и реализовывать их Требования: ✔️Опыт работы Go-разработчиком не менее 3х лет; ✔️Опыт работы с СУБД PostgreSQL; ✔️Понимание коллективного процесса разработки и тестирования ПО ✔️Общая компьютерная грамотность: TCP/IP, HTTP, JSON, SQL. ✔️Владение инструментарием: git \ gitlab, postman, jira\redmine\trello. Будет плюсом: ✔️Опыт работы с СУБД ClickHouse ✔️Знание Python и особенно библиотек обработки данных (NumPy ) ✔️Интерес и знания в области машинного обучения. Что мы предлагаем: ✔️Полностью удаленная работа из любой точки мира; ✔️Программа ДМС; ✔️Необходимая техника для работы; ✔️При желании комфортный офис в Москве, около м. Шаболовская 📌По всем вопросам - @Alena_Grigoryeva
Komisar
Всегда было интересно, а кто собеседует Тим лидов?
Akhmad Osmanov
Всегда было интересно, а кто собеседует Тим лидов?
Тот кто загуглил "Вопросы на тимлида топ 100"
Андрей
Всегда было интересно, а кто собеседует Тим лидов?
Техлид, мб СТО, завист от масштабов, может и СЕО
Андрей
Тимлиды остальных команд
Vadik
Всегда было интересно, а кто собеседует Тим лидов?
Чаще, если в компании нет человека, который может провести интервью, нанимают такого человека на аутсорс
Komisar
Чаще, если в компании нет человека, который может провести интервью, нанимают такого человека на аутсорс
И как без раскрытия того чем занимается компания стороннему человеку он может кого-то собесить? Он же не знает ни стека, ни продукта, ни бизнес процессов. Он просто извне. + он может не достаточно скиллованым. Или типа так, а буду его спрашивать его о том, в чем сам хорошо разбираюсь?
Komisar
Я без предьявы просто реально как это бывает
Vadik
Есть чек лист, что должен знать лид и уметь применять на практике, его и гоняет по этому чек листу. Сделал 3 из 3, значит шарит:) А вот софт скиллы чекают уже СТО, hr и тп
Vadik
я скажу так, есть компании крупные, у которых нет возможности выделять время разрабов на собесы и они нанимают людей для этого
Sergey
сам за 4 дня провел 6 собесов
Vadik
Там вообще кейс интересный. Написали мне разок, прошел тех интервью, потом просто молчание, думаю ну ок, не подошел видать. Через год где то пишет другой hr, я описал прошлый опыт, свалили все на то, что наверное hr был без опыта, не ругайся, го собес! Прошел как раз с приглашенным спецом, часа 2 разговаривали с ним, был очень доволен тем, как он все провел. Получил федбек от него и от hr, назначили встречу с СТО, потом перенесли, потом перенесли еще раз, потом сказали что у него не получается, отменили без переноса и пропали
Vadik
Потом еще где то через пол года - год пишет опять другой hr оттуда, я уже отказываюсь тратить время, опять сваливают на некомпетентность прошлый hr и зовут на собесы, я отказываюсь, но меня так и не поняли почему я отказываюсь
Aлёна ✨
Всегда было интересно, а кто собеседует Тим лидов?
Зависит от конкретной компании/проекта, конечно Но, по опыту, чаще всего или Тим лиды соседних команд, или, если это кто-то очень крупный, типа банков, то лиды стримов/департаментов и тд
Anastasia
🟡Компания: Exness 🟡Вакансия: Senior Software Engineer (Golang) 🌴Город: Лимассол, Кипр. 🌊Формат: релокация (возможна и полностью удаленная работа, если находитесь в Европе или за пределами РФ) 💸Вилка: от 5,5-6к EUR чистыми и больше, обсуждаем индивидуально:) 🤖Основной стек: Go, PostgreSQL, Redis, Kafka, Docker, Kubernetes. В основном, мы пишем на GO, у нас также есть сервисы на Python. Мы работаем с Kafka и катим сервисы в Kubernetes. Очень плотно взаимодействуем с Clickhouse, так как в нем лежат основные торговые данные, которые нужны во всех направлениях и Postgres. Выбор новых технологий зависит от решаемых задач. 📍Наш идеальный Го разработчик: -5+ лет коммерческой разработки на Го -Понимание принципов SOLID, Uncle Bob’s Clean Code, Clean Architecture и процессов модульного и интеграционного тестирования, асинхронной разработки. -Опыт работы с реляционными БД -Экспертиза с PostgreSQL, Redis, понимание микросервисной архитектуры -Опыт работы с Docker и запуска кода в контейнере Linux -Опыт написания веб-сервисов на основе REST 🌎У нас 7 офисов на Кипре, два из них на берегу моря, свои собственные Jetski, вечеринки на крыше по пятницам, самое популярное локальное IT сообщество. Мы оказываем полный саппорт с релокацией для Вас и Вашей семьи, оплачиваем переезд, предоставляем машину MiniCooper Countryman S на все время пребывания на острове, расширенные медицинские страховки, спорт-зал, языковое обучение, выдаем все необходимое оборудование, предоставляем 21+ дней отпуска, оплачиваемые больничные, оплату расходов на детские сады, школы для Ваших детей, 5 красивых офиса на острове в стиле коворкинга, вечеринки по пятницам на крыше и многое другое:) 📩Если Вам интересно пообщаться, ознакомиться с полным описанием роли и узнать побольше о нас, пишите @Anastasiia_khudiakova_CY в личные сообщения. Всем прекрасного и продуктивного дня! Exness Team💛 #Вакансия #Vacancy #Golang #Senior #Relocation
Grigory
#Вакансия #Golang #Go #Backend #middle #senior #office #remote #Москва Вакансия: Golang Developer Уровень: Middle/Senior Компания: Бери заряд! (https://berizaryad.ru/) Формат работы: офис (Москва, ст. м. Автозаводская)/гибрид/удаленно ЗП: 200-300к net Всем привет, меня зовут Григорий, я рекрутер компании Бери заряд!⚡️ Мы самый крупный сервис по аренде зарядок для мобильных телефонов в России для всех типов устройств на iOS и Android. Наверняка вы уже видели нас в торговых центрах, кафе и множестве других заведений по всей России. Мы готовы расти во всем смыслах дальше, но только еще быстрее, амбициознее и еще круче! Сейчас мы ищем в свою команду Golang разработчика. 🛠Наш стек: Golang, Postgres, Redis, MQTT, NATS, Rest, GRPC, Telegram bot API, Docker, Kubernetes, Git ✅Чем тебе предстоит заниматься: • Разрабатывать различные микросервисы на языке Go, участвовать в проектировании архитектуры приложений и баз данных; • Интеграции с платежными системами; • Взаимодействие с сервисами агрегирования аппаратов по шерингу повербанков; • Модернизировать существующий бэкенд. 🎯Что мы ожидаем от тебя: • Опыт backend разработки от 3х лет; • Опыт разработки на Go от 1-го года; • Опыт построения Rest API, WebSocket; • Опыт работы с SQL базами данных – PostgreSQL; • Опыт работы с NoSQL базами данных – Redis; • Знание асинхронных паттернов программирования; • Понимание принципов работы планировщика Go (Go рутина, каналы, контексты); • Желание и умение быть частью команды, учиться, отвечать за качество разработки; • Умение оценивать задачи и планировать загрузку вместе с командой. 🎉Точно будет плюсом, если у тебя есть: • Опыт работы с MQTT; • Знание GraphQL; • Опыт работы в хардварных стартапах. 🔥Что мы предложим тебе взамен: • Честную оплату труда в рынке, которую мы обсудим с успешным кандидатом. • Оформление по ТК РФ, белая ЗП; • Работа в офисе/гибрид/удаленно; • Хочешь учиться? Расскажи, почему это важно и как улучшит работу —> учись за счёт компании; • Уютный модный офис с кофе, баром, сезонными фруктами и вот этим всем. Есть собственная парковка, бесплатная. Безлимитный заряд :); • Веселые интеллектуальные и музыкальные вечера, прямо не отходя от кассы в компании крутых коллег. Если играешь на чем-то — выдадим инструмент; • Возможность вырваться из замкнутого круга одинаковых задач, экспериментировать, быстро внедрять свои инициативы. ✉️Контакты: по всем вопросам, пожалуйста, пишите сюда @GrigoryKopylov
Артем
#вакансия #go #fulltime #vacancy 🔷Ищем Technical Architect Golang З/п: 5000 - 8000$ net Занятость: полная занятость График работы: удаленная работа Международная компания B2Broker (Business to Broker) https://b2broker.com/- это финтех разработчик и провайдер ликвидности для банков, инвестиционных фондов и брокерских компаний. Мы предлагаем готовые решения для других компаний по всему миру. На сегодняшний день офисы компании расположены в Лимасоле, Гонконге, Минске, Киеве, Дубае, Лондоне. Стек: Go(Echo, FX) RabbitMQ, Mysql, Clickhouse, Redis, gPRC, k8s, protobuf 📌Задачи: — Проектирование/разработка/рефакторинг функционала продукта; — Оптимизация кода, быстродействия и контроль качества выполнения; — Участие в сборке релизов и хотфиксов; — Разработка проектных, интеграционных решений, регламентов межсистемного взаимодействия; — Техническое/архитектурное лидирование проекта/продукта (архитектура, декомпозиция задач, оценка задач, консультирование по тех.части проекта); — Формирование перечня архитектурных рисков и предложений по их снижению; — Участие в обсуждении технической реализации новых функций с внутренней и внешними командами других проектов/продуктов; — Выбор инструментов/технологий для решения новых задач (прежде всего высоконагруженных); — Выбор и контроль применения архитектурных подходов для реализации новых функций в проекте/продукте; — Рефакторинг существующей архитектуры продукта/проекта; — Участие в найме (профиль кандидата, тех. собеседование); — Делать R&D по новым технологиям и стекам; — Capacity management. 📌Требования: — Опыт в разработке от 5 лет; — Опыт работы архитектором в финтех сфере от 2 лет; — Практическое знание архитектуры современных программных приложений; — Знание методологии проектирования программного обеспечения; — Уверенные знания о системах управления базами данных; — Знание основ SLA/TLA/OLA; — Опыт проектирования и разработки с применением DRY/KISS/SOLID/DDD в любом сочетании; — Опыт проектирования и разработки приложений с параллелизацией и примитивами синхронизации, асинхронными вызовами; — Опыт проектирования приложений использующих брокеры сообщений, gRPC, и стриминговые web протоколы: websocket / sse; — Опыт распиливания монолита на сервисы/микросервисы; — Опыт работы архитектором/Тим лидом в проектах с клиент серверной архитектурой; — Опыт сбора/описания/систематизации и декомпозиции требований со смежных продуктов; — Английский не ниже B2. 📌Желательно: — Опыт проектирования и разработки и распределенных сервисных/микросервисных и SOA ориентированных систем; — Опыт проектирования с учётом атомарности / транзакционности процессов, и приоритета задач; — Опыт построения архитектуры для Enterprise решений; — Владение предметной областью об услугах, предоставляемых на финансовых рынках, о различиях финансовых инструментов, предлагаемых этими рынками, и принципах исполнения клиентских заявок брокерскими компаниями. 📍Условия: — Подарки на день рождения от компании; — Современное оборудование для работы (Macbook и дополнительные мониторы) ; — Передовая индустрия и технологии; — Частичная оплата онлайн курсов английского + общение с носителями прямо в офисе; — Гарантированные бонусы на Новый Год, при работе в компании более 3 месяцев; — Пересмотр условий раз в полгода по результатам работы; — Возможность работать удаленно или в любом офисе компании; — Интернациональный коллектив; — Курсы по специальности; — Возможность оплачиваемого отпуска на Кипре; — Яркие корпоративные мероприятия; 🔶 Буду рад получить обратную связь! Если Вас заинтересовала наша вакансия - ☎️telegram: @DenisovIT
Кристина
#вакансия #fulltime #remote #Go #senior Вакансия: Senior Go разработчик Компания: B2Broker ( https://b2broker.com/ru/ ) Локация: remote З/п: до 8000$ Уровень английского - В1 Рассматриваются кандидаты из разных стран. Требования: Проектирование сервисов и распределенных систем; Профилирование и оптимизация нового и текущего кода; Проведение ревью и кросс-ревью; Покрытие кода Unit-тестами, benchmark’ами; Автоматизация процессов разработки; Поиск новых технических решений для внедрения в продукт; Менторинг младших коллег и наставничество; Используемые технологии: GoLang; PostgreSQL, MongoDB, ClickHouse; WebSocket, REST, gRPC; Docker, Kubernetes; NATS Обязанности: Разработка кода (GO) Чем предстоит заниматься: * Продуктовой разработкой для внешнего и внутреннего пользователя; * Проектированием и разработкой архитектурных решений как для отдельных сервисов, так и всей экосистемы; * Разрабатывать новые микросервисы; * Работать с большими потоками данных; * Создавать торговые сервисы; * Участвовать в разработке Open Source решений. Пример: [https://github.com/b2broker/simplefix-go|https://github.com/b2broker/simplefix-go|smart-link]; * Улучшать код: проводить ревью и кросс-ревью, создавать тесты и бенчмарки, иногда работать с профилировщиком. Буду рада пообщаться! 📩Контакты: https://t.me/RecruiterKristinaGalanina
Marina
#Вакансия #Golang #Go #Backend #middle #senior #remote Вакансия: Golang Developer Уровень: Middle/Senior Компания: Tabby (tabby.ai) Локация: удаленно за пределами РФ, помощь с релокацией в Грузию/Армению ЗП: $4500-6000 net Tabby – IT-компания и fintech-лидер в странах Ближнего Востока. Мы начинали с “buy now, pay later” сервиса и уже сейчас являемся целой платформой для выгодного шоппинга, выпускаем виртуальные карты и развиваем другие финансовые продукты. Сейчас у нас +3,000,000 активных клиентов и десятки тысяч заказов ежедневно. Среди наших партнеров H&M, Adidas, IKEA, SHEIN, noon, Bloomingdale’s и еще более 10,000 ритейлеров. Наши инвесторы: Sequoia Capital India, STV, PayPal Ventures, Arbor Ventures и Mubadala Investment Capital. 🛠Наш стек: Golang, PostgreSQL, Redis, Kubernetes, Google Cloud Platform, Gitlab. ✅Чем тебе предстоит заниматься: • Создание дополнительных сервисов для клиентов (cashback, программа лояльности, виртуальные карты для Apple/Google Pay), affiliate marketing для партнерской сети, аналитика и многое другое; • Разработка и поддержка продуктов компании: нам понадобится много новых сервисов и API для внешнего и внутреннего использования в event-driven архитектуре; • Проработка технических и бизнес-метрик; • Поддержка работы сервисов в production окружении. ✅Мы ожидаем: • Английский Intermediate и выше; • Опыт в коммерческих продакшн проектах от 3-х лет; • Опыт разработки на Golang от 2 лет; • Опыт работы с SQL базами данных – PostgreSQL; • Опыт работы с NoSQL базами данных – Redis; • Опыт проектирования и реализации REST и gRPC API; • Опыт реализации SOA. ✅Будет плюсом: • Опыт применения DDD в микросервисной архитектуре; • Опыт работы с Kubernetes; • Опыт работы в финтехе. ✅Что ты можешь ожидать от нас: • Ты сможешь существенно влиять на бизнес здесь и сейчас; • Зарплата в USD, покрываем налоги и бухгалтерию в Грузии/Армении; • Релокация в Грузию/Армению: билеты, жилье на время оформления, юридические услуги; • Fully remote, гибкий график; • Официальный язык коммуникации - английский, покроем 75% обучения; • Компенсация ДМС/спорта ($1000 в год); • Компенсация психолога ($250 в месяц); • Компенсация коворкинга ($250 в месяц). ✉️Контакты: @Marina_Birukova
Null
👣 Задание на разработку демона, осуществляющего "Системный мониторинг" Общее описание Демон - программа, собирающая информацию о системе, на которой запущена, и отправляющая её своим клиентам по GRPC. Архитектура ▪GRPC сервер; ▪допускается использование временных (/tmp) файлов; ▪статистика хранится в памяти, долговременное хранение не предусмотрено. Требования Необходимо каждые N секунд выдавать информацию, усредненную за последние M секунд. Например, N = 5с, а M = 15с, тогда демон "молчит" первые 15 секунд, затем выдает снапшот за 0-15с; через 5с (в 20с) выдает снапшот за 5-20с; через 5с (в 25с) выдает снапшот за 10-25с и т.д. N и M указывает клиент в запросе на получение статистики. Что необходимо собирать: ▪Средняя загрузка системы (load average). ▪Средняя загрузка CPU (%user_mode, %system_mode, %idle). ▪Загрузка дисков: -tps (transfers per second); -KB/s (kilobytes (read+write) per second); ▪Информация о дисках по каждой файловой системе: -использовано мегабайт, % от доступного количества; -использовано inode, % от доступного количества. ▪Top talkers по сети: - по протоколам: protocol (TCP, UDP, ICMP, etc), bytes, % от sum(bytes) за последние M), сортируем по убыванию процента; -по трафику: source ip:port, destination ip:port, protocol, bytes per second (bps), сортируем по убыванию bps. ▪Статистика по сетевым соединениям: - слушающие TCP & UDP сокеты: command, pid, user, protocol, port; -количество TCP соединений, находящихся в разных состояниях (ESTAB, FIN_WAIT, SYN_RCV и пр.). Разрешено использовать только стандартную библиотеку языка Go! Команды, которые могут пригодиться: $ top -b -n1 $ df -k $ df -i $ iostat -d -k $ cat /proc/net/dev $ sudo netstat -lntup $ ss -ta $ tcpdump -ntq -i any -P inout -l $ tcpdump -nt -i any -P inout -ttt -l Статистика представляет собой объекты, описанные в формате Protobuf. Информацию необходимо выдавать всем подключенным по GRPC клиентам с использованием однонаправленного потока. Выдавать "снапшот" системы можно как отдельными сообщениями, так и одним жирным объектом. Сбор информации, её парсинг и пр. должен осуществляться как можно более конкурентно. Конфигурация ▪Через аргументы командной строки можно указать, на каком порту стартует сервер. ▪Через файл можно указать, какие из подсистем сбора включены/выключены. Тестирование Юнит-тесты ▪по возможности мок интерфейсов и проверка вызовов конкретных методов; ▪тесты вспомогательных функций и пр. Интеграционные тесты ▪потестировать факт потока статистики, можно без конкретных цифр; ▪можно посоздавать файлы, пооткрывать сокеты и посмотреть на изменение снапшота. Клиент Необходимо реализовать простой клиент, который в реальном времени получает и выводит в STDOUT статистику по одному из пунктов (например, сетевую информацию) в читаемом формате (например, в виде таблицы). @golang_interview
Dmitry
👣 Задание на разработку демона, осуществляющего "Системный мониторинг" Общее описание Демон - программа, собирающая информацию о системе, на которой запущена, и отправляющая её своим клиентам по GRPC. Архитектура ▪GRPC сервер; ▪допускается использование временных (/tmp) файлов; ▪статистика хранится в памяти, долговременное хранение не предусмотрено. Требования Необходимо каждые N секунд выдавать информацию, усредненную за последние M секунд. Например, N = 5с, а M = 15с, тогда демон "молчит" первые 15 секунд, затем выдает снапшот за 0-15с; через 5с (в 20с) выдает снапшот за 5-20с; через 5с (в 25с) выдает снапшот за 10-25с и т.д. N и M указывает клиент в запросе на получение статистики. Что необходимо собирать: ▪Средняя загрузка системы (load average). ▪Средняя загрузка CPU (%user_mode, %system_mode, %idle). ▪Загрузка дисков: -tps (transfers per second); -KB/s (kilobytes (read+write) per second); ▪Информация о дисках по каждой файловой системе: -использовано мегабайт, % от доступного количества; -использовано inode, % от доступного количества. ▪Top talkers по сети: - по протоколам: protocol (TCP, UDP, ICMP, etc), bytes, % от sum(bytes) за последние M), сортируем по убыванию процента; -по трафику: source ip:port, destination ip:port, protocol, bytes per second (bps), сортируем по убыванию bps. ▪Статистика по сетевым соединениям: - слушающие TCP & UDP сокеты: command, pid, user, protocol, port; -количество TCP соединений, находящихся в разных состояниях (ESTAB, FIN_WAIT, SYN_RCV и пр.). Разрешено использовать только стандартную библиотеку языка Go! Команды, которые могут пригодиться: $ top -b -n1 $ df -k $ df -i $ iostat -d -k $ cat /proc/net/dev $ sudo netstat -lntup $ ss -ta $ tcpdump -ntq -i any -P inout -l $ tcpdump -nt -i any -P inout -ttt -l Статистика представляет собой объекты, описанные в формате Protobuf. Информацию необходимо выдавать всем подключенным по GRPC клиентам с использованием однонаправленного потока. Выдавать "снапшот" системы можно как отдельными сообщениями, так и одним жирным объектом. Сбор информации, её парсинг и пр. должен осуществляться как можно более конкурентно. Конфигурация ▪Через аргументы командной строки можно указать, на каком порту стартует сервер. ▪Через файл можно указать, какие из подсистем сбора включены/выключены. Тестирование Юнит-тесты ▪по возможности мок интерфейсов и проверка вызовов конкретных методов; ▪тесты вспомогательных функций и пр. Интеграционные тесты ▪потестировать факт потока статистики, можно без конкретных цифр; ▪можно посоздавать файлы, пооткрывать сокеты и посмотреть на изменение снапшота. Клиент Необходимо реализовать простой клиент, который в реальном времени получает и выводит в STDOUT статистику по одному из пунктов (например, сетевую информацию) в читаемом формате (например, в виде таблицы). @golang_interview
На курсах по Го в Отусе похожая задача была как один из выпускных проектов
Komisar
На курсах по Го в Отусе похожая задача была как один из выпускных проектов
Хорошая задача согласен, как минимум потому что ее не заспидранить с ChaGPT
Dmitry
Хорошая задача согласен, как минимум потому что ее не заспидранить с ChaGPT
Мне просто показалось что это многовато для задания на собес, да даже для тестового домой много
Timur
Мне просто показалось что это многовато для задания на собес, да даже для тестового домой много
Это очень много для тз, большинство мне кажется откажется такое делать
Mikhail
Мне просто показалось что это многовато для задания на собес, да даже для тестового домой много
да это хрень, а не тестовое задание я б нахрен послал с таким заданием
Timur
Ну зато кучу людей отсеит сразу
Всех кто ценит свое время?
Mikhail
А в чем хрень?
- во времени, требуемом на его выполнение - в узкой специфике - в том, как интерпретировать результат выполнения (отбросим экстремумы типа "сделал великолепно", "вообще не сделал")
Евгений
Всех кто ценит свое время?
тот кто хочет прыгнуть выше своего уровня, тот будет делать. Возможно опытным прям ребятам это не по душе, такое тоже возможно, но те кто хочет углубиться, по-моему приколное тз. Лучше чем круд написать )
Meiram
написано 'Разрешено использовать только стандартную библиотеку Go', но для grpc нужно же пару нестандартных библиотек юзать
Mikhail
тот кто хочет прыгнуть выше своего уровня, тот будет делать. Возможно опытным прям ребятам это не по душе, такое тоже возможно, но те кто хочет углубиться, по-моему приколное тз. Лучше чем круд написать )
вопрос в целях. Если Вы говорите от лица тех лида, который занимается подбором, то Вы за деньги работодателя просто развлекаетесь, т к а) потратите свое (оплаченное время) б) отбросите большое кол-во заведомо подходящих кандидатов, которые бы дали профит проекту