Konstantin
👣 Тестовое задание для разработчика на Go
У сети ресторанов доставки есть множество точек, на которых готовятся заказы для клиентов. Каждый клиент хочет вместе с заказом получить чек, содержащий детальную информацию о заказе.
Сотрудники кухни также хотят чек, чтобы в процессе готовки и упаковки заказа не забыть положить всё что нужно. Наша задача помочь и тем и другим, написав сервис для генерации чеков.
1. Сервис получает информацию о новом заказе, создаёт в БД чеки для всех принтеров точки указанной в заказе и ставит асинхронные задачи на генерацию PDF-файлов для этих чеков. Если у точки нет ни одного принтера - возвращает ошибку. Если чеки для данного заказа уже были созданы - возвращает ошибку.
2. Worker'ы с помощью wkhtmltopdf генерируют PDF-файл из HTML-шаблона. Имя файла должно иметь следущий вид <ID заказа>_<тип чека>.pdf (123456_client.pdf). Файлы должны хранится в папке media/pdf в корне проекта.
3. Приложение опрашивает сервис на наличие новых чеков. Опрос происходит по следующему пути: сначала запрашивается список чеков которые уже сгенерированы для конкретного принтера, после скачивается PDF-файл для каждого чека и отправляется на печать.
📌 Технические требования
Сервис должен быть написан на GO
База данных - PostgreSQL
Все инфраструктурные вещи необходимые для сервиса (PostgreSQL, Redis, wkhtmltopdf) запускать в docker с помощью docker-compose, сам проект не нужно оборачивать в docker
Помимо API, должна быть админка для обеих моделей, с возможностью фильтровать чеки по принтеру, типу и статусу
📌 Модели
▪Принтер (Printer). Каждый принтер печатает только свой тип чеков. Поле api_key принимает уникальные значения, по нему однозначно определяется принтер. Для этой модели должны быть fixtures (принтеры для обоих типов чеков для нескольких точек).
Поле Тип Значение Описание
name CharField название принтера
api_key CharField ключ доступа к API
check_type CharField kitchen|client тип чека которые печатает принтер
point_id IntegerField точка к которой привязан принтер
▪Чек (Check). Информация о заказе для каждого чека хранится в JSON, нет необходимости делать отдельные модели.
Поле Тип Значение Описание
printer_id ForeignKey принтер
type CharField kitchen|client тип чека
order JSONField информация о заказе
status CharField new|rendered|printed статус чека
pdf_file FileField ссылка на созданный PDF-файл
API
Добавить описание доступных методов в файл api.yml (swagger-спецификация).
@golang_interview
Больше похоже не на тестовое, а на реальную задачу
Timur
👣 Тестовое задание для разработчика на Go
У сети ресторанов доставки есть множество точек, на которых готовятся заказы для клиентов. Каждый клиент хочет вместе с заказом получить чек, содержащий детальную информацию о заказе.
Сотрудники кухни также хотят чек, чтобы в процессе готовки и упаковки заказа не забыть положить всё что нужно. Наша задача помочь и тем и другим, написав сервис для генерации чеков.
1. Сервис получает информацию о новом заказе, создаёт в БД чеки для всех принтеров точки указанной в заказе и ставит асинхронные задачи на генерацию PDF-файлов для этих чеков. Если у точки нет ни одного принтера - возвращает ошибку. Если чеки для данного заказа уже были созданы - возвращает ошибку.
2. Worker'ы с помощью wkhtmltopdf генерируют PDF-файл из HTML-шаблона. Имя файла должно иметь следущий вид <ID заказа>_<тип чека>.pdf (123456_client.pdf). Файлы должны хранится в папке media/pdf в корне проекта.
3. Приложение опрашивает сервис на наличие новых чеков. Опрос происходит по следующему пути: сначала запрашивается список чеков которые уже сгенерированы для конкретного принтера, после скачивается PDF-файл для каждого чека и отправляется на печать.
📌 Технические требования
Сервис должен быть написан на GO
База данных - PostgreSQL
Все инфраструктурные вещи необходимые для сервиса (PostgreSQL, Redis, wkhtmltopdf) запускать в docker с помощью docker-compose, сам проект не нужно оборачивать в docker
Помимо API, должна быть админка для обеих моделей, с возможностью фильтровать чеки по принтеру, типу и статусу
📌 Модели
▪Принтер (Printer). Каждый принтер печатает только свой тип чеков. Поле api_key принимает уникальные значения, по нему однозначно определяется принтер. Для этой модели должны быть fixtures (принтеры для обоих типов чеков для нескольких точек).
Поле Тип Значение Описание
name CharField название принтера
api_key CharField ключ доступа к API
check_type CharField kitchen|client тип чека которые печатает принтер
point_id IntegerField точка к которой привязан принтер
▪Чек (Check). Информация о заказе для каждого чека хранится в JSON, нет необходимости делать отдельные модели.
Поле Тип Значение Описание
printer_id ForeignKey принтер
type CharField kitchen|client тип чека
order JSONField информация о заказе
status CharField new|rendered|printed статус чека
pdf_file FileField ссылка на созданный PDF-файл
API
Добавить описание доступных методов в файл api.yml (swagger-спецификация).
@golang_interview
Тут путаются понятия. Для кухни и для клиента нужны разные чеки. Для клиента нужен чек от офд) А кухне подойдет просто список блюд)
Dmitry
Да тут постоянно что не тестовое то проект на пару дней минимум
Bohdan
👣 Тестовое задание для разработчика на Go
У сети ресторанов доставки есть множество точек, на которых готовятся заказы для клиентов. Каждый клиент хочет вместе с заказом получить чек, содержащий детальную информацию о заказе.
Сотрудники кухни также хотят чек, чтобы в процессе готовки и упаковки заказа не забыть положить всё что нужно. Наша задача помочь и тем и другим, написав сервис для генерации чеков.
1. Сервис получает информацию о новом заказе, создаёт в БД чеки для всех принтеров точки указанной в заказе и ставит асинхронные задачи на генерацию PDF-файлов для этих чеков. Если у точки нет ни одного принтера - возвращает ошибку. Если чеки для данного заказа уже были созданы - возвращает ошибку.
2. Worker'ы с помощью wkhtmltopdf генерируют PDF-файл из HTML-шаблона. Имя файла должно иметь следущий вид <ID заказа>_<тип чека>.pdf (123456_client.pdf). Файлы должны хранится в папке media/pdf в корне проекта.
3. Приложение опрашивает сервис на наличие новых чеков. Опрос происходит по следующему пути: сначала запрашивается список чеков которые уже сгенерированы для конкретного принтера, после скачивается PDF-файл для каждого чека и отправляется на печать.
📌 Технические требования
Сервис должен быть написан на GO
База данных - PostgreSQL
Все инфраструктурные вещи необходимые для сервиса (PostgreSQL, Redis, wkhtmltopdf) запускать в docker с помощью docker-compose, сам проект не нужно оборачивать в docker
Помимо API, должна быть админка для обеих моделей, с возможностью фильтровать чеки по принтеру, типу и статусу
📌 Модели
▪Принтер (Printer). Каждый принтер печатает только свой тип чеков. Поле api_key принимает уникальные значения, по нему однозначно определяется принтер. Для этой модели должны быть fixtures (принтеры для обоих типов чеков для нескольких точек).
Поле Тип Значение Описание
name CharField название принтера
api_key CharField ключ доступа к API
check_type CharField kitchen|client тип чека которые печатает принтер
point_id IntegerField точка к которой привязан принтер
▪Чек (Check). Информация о заказе для каждого чека хранится в JSON, нет необходимости делать отдельные модели.
Поле Тип Значение Описание
printer_id ForeignKey принтер
type CharField kitchen|client тип чека
order JSONField информация о заказе
status CharField new|rendered|printed статус чека
pdf_file FileField ссылка на созданный PDF-файл
API
Добавить описание доступных методов в файл api.yml (swagger-спецификация).
@golang_interview
Задание для джуна, срок два дня ))
Konstantin
Опять же, как правило есть еще всякие доп условия , специфичные логи и т.д
Bohdan
Konstantin
Просто, обычно тот кто ищет работу ходит параллельно по собесам, а может и работает еще
Dmitry
А в часах это сколько 16 или 40?
Миринговин
Да, похоже кто-то хитрый решил на халяву сервис получить. :)
Вы знаете хоть один пример успешный, как подобная история превратилась в "сервис нахаляву"?
Хоть один.
Уже молчу, что с точки зрения бизнеса эта полная хуйня - втащить в прод сервис, который писал аноним из интернета, который без поддержки, качество которого никто не гарантирует.
Dmitry
Aleks
Aleks
Миринговин
Aleks
Это полнейшая чушь
Судя по наличию таких тестовых скорее полная чушь что это простое тестовое.
Миринговин
Да это раскрутка канала и контент для него.
Миринговин
То есть, тестовое задание в буквальном смысле
Сергей
Сергей
Не, ну со своими дополнениями и изменениями)
Aleks
Сергей
В моей ситуации любое задание подобного плана станет петом)))
Сергей
Тут мелькало задание для линукса демон сделать, в процессе поуверенней в линуксе стал, да и разобрался с синтаксисом команд, чтобы нужные данные получить)
Aleks
Сергей
Хотя Чую первое время придётся подзабить, снова пошёл в инженеры)
Владимир
Сергей
Неужели срач? Почему с одной стороны ужасен, а с другой - прекрасен?)
Aleks
Aleks
https://www.mongodb.com/compare/mongodb-postgresql
Aleks
Если храним json как минимальную единицу есть смысл использовать документную базу.
Aleks
Если храним строки данных, тогда Postgres однозначно.
Анастасия
#вакансия #vacancy #golahg #almaty
Вакансия: Middle/Senior Golang разработчик
Город: Алматы
Формат: проектный
Занятость: полная
Tezteam ищет в команду Middle/Senior Golang разработчика, на проект "Teztaxi" такси агрегатор из KZ🇰🇿
upd: уже запустились в Кокшетау 🥳
🏢нужно работать в офисе
📍Алматы
🤑ЗП от 1000k - 2000k KZT (net)
@Albertovna_a
Sasha
1kk - 2kk выглядит привлекательнее)
lmn
Sergey
Sergey
хотя наверное когда пишешь кучу строк каждый день, ощущается важность и нужность...
lmn
Владимир
lmn
Alexander
Sergey
lmn
Sanity = nil
Pass
Обо всем, только не про го и про вакансии
Serge
Вы знаете хоть один пример успешный, как подобная история превратилась в "сервис нахаляву"?
Хоть один.
Уже молчу, что с точки зрения бизнеса эта полная хуйня - втащить в прод сервис, который писал аноним из интернета, который без поддержки, качество которого никто не гарантирует.
Балы одна контора, не помню как она называлась за давностью лет, еще в нулевые (это год 2004-07 плюс минус), они давали постоянно разные тестовые, которые походили на реальные задачи и нужно было прям разбираться в нюансах и плотно так посидеть в документации. На дельфях писали. Про них прям плотно ходили слухи и разоблачения, что они дают тестовые что б получить решение какой-то задачи. Сам как-то смотрел их тестовое, таким тестовым почти задачу можно закрыть) Вообще знал людей, которые давали тестовые для сеньоров, что б посмотреть как можно что б закрыть дыри в своей экспертизе. В одной конторе работал по срочному контракты и hr как-то предложила на мое "надо нанять человека с экспертизой" - "а давай собесы устроим, на них выудим". Люди бывают разные, культура в компаниях бывает разная. Огромные тестовые задания всегда должны вызывать недоумение.
Это тестовое задание огромное. Что люди хотят посмотреть?
Alex
Огромные тестовые имхо всегда должны быть платными.
Alex
Пусть закрывают у себя чего хотят, если время оплачено.
Pavel
Pavel
щас подумал.
что через правильно составленные тестовые можно звезды на гитхабе наркучивать
даешь тестовое, с просьбой использовать вот тот же wkhtmltopdf
и у либы растет узнаваемость, звездочки, и адопшн рейт
Sunat
Sunat
👣 Тестовое задание для разработчика на Go
У сети ресторанов доставки есть множество точек, на которых готовятся заказы для клиентов. Каждый клиент хочет вместе с заказом получить чек, содержащий детальную информацию о заказе.
Сотрудники кухни также хотят чек, чтобы в процессе готовки и упаковки заказа не забыть положить всё что нужно. Наша задача помочь и тем и другим, написав сервис для генерации чеков.
1. Сервис получает информацию о новом заказе, создаёт в БД чеки для всех принтеров точки указанной в заказе и ставит асинхронные задачи на генерацию PDF-файлов для этих чеков. Если у точки нет ни одного принтера - возвращает ошибку. Если чеки для данного заказа уже были созданы - возвращает ошибку.
2. Worker'ы с помощью wkhtmltopdf генерируют PDF-файл из HTML-шаблона. Имя файла должно иметь следущий вид <ID заказа>_<тип чека>.pdf (123456_client.pdf). Файлы должны хранится в папке media/pdf в корне проекта.
3. Приложение опрашивает сервис на наличие новых чеков. Опрос происходит по следующему пути: сначала запрашивается список чеков которые уже сгенерированы для конкретного принтера, после скачивается PDF-файл для каждого чека и отправляется на печать.
📌 Технические требования
Сервис должен быть написан на GO
База данных - PostgreSQL
Все инфраструктурные вещи необходимые для сервиса (PostgreSQL, Redis, wkhtmltopdf) запускать в docker с помощью docker-compose, сам проект не нужно оборачивать в docker
Помимо API, должна быть админка для обеих моделей, с возможностью фильтровать чеки по принтеру, типу и статусу
📌 Модели
▪Принтер (Printer). Каждый принтер печатает только свой тип чеков. Поле api_key принимает уникальные значения, по нему однозначно определяется принтер. Для этой модели должны быть fixtures (принтеры для обоих типов чеков для нескольких точек).
Поле Тип Значение Описание
name CharField название принтера
api_key CharField ключ доступа к API
check_type CharField kitchen|client тип чека которые печатает принтер
point_id IntegerField точка к которой привязан принтер
▪Чек (Check). Информация о заказе для каждого чека хранится в JSON, нет необходимости делать отдельные модели.
Поле Тип Значение Описание
printer_id ForeignKey принтер
type CharField kitchen|client тип чека
order JSONField информация о заказе
status CharField new|rendered|printed статус чека
pdf_file FileField ссылка на созданный PDF-файл
API
Добавить описание доступных методов в файл api.yml (swagger-спецификация).
@golang_interview
Но ТЗ грамотно описано, такой человек мог бы и сам решить такую задачу или дать её тому кто консультировал по тз
Sunat
👣 Тестовое задание для разработчика на Go
У сети ресторанов доставки есть множество точек, на которых готовятся заказы для клиентов. Каждый клиент хочет вместе с заказом получить чек, содержащий детальную информацию о заказе.
Сотрудники кухни также хотят чек, чтобы в процессе готовки и упаковки заказа не забыть положить всё что нужно. Наша задача помочь и тем и другим, написав сервис для генерации чеков.
1. Сервис получает информацию о новом заказе, создаёт в БД чеки для всех принтеров точки указанной в заказе и ставит асинхронные задачи на генерацию PDF-файлов для этих чеков. Если у точки нет ни одного принтера - возвращает ошибку. Если чеки для данного заказа уже были созданы - возвращает ошибку.
2. Worker'ы с помощью wkhtmltopdf генерируют PDF-файл из HTML-шаблона. Имя файла должно иметь следущий вид <ID заказа>_<тип чека>.pdf (123456_client.pdf). Файлы должны хранится в папке media/pdf в корне проекта.
3. Приложение опрашивает сервис на наличие новых чеков. Опрос происходит по следующему пути: сначала запрашивается список чеков которые уже сгенерированы для конкретного принтера, после скачивается PDF-файл для каждого чека и отправляется на печать.
📌 Технические требования
Сервис должен быть написан на GO
База данных - PostgreSQL
Все инфраструктурные вещи необходимые для сервиса (PostgreSQL, Redis, wkhtmltopdf) запускать в docker с помощью docker-compose, сам проект не нужно оборачивать в docker
Помимо API, должна быть админка для обеих моделей, с возможностью фильтровать чеки по принтеру, типу и статусу
📌 Модели
▪Принтер (Printer). Каждый принтер печатает только свой тип чеков. Поле api_key принимает уникальные значения, по нему однозначно определяется принтер. Для этой модели должны быть fixtures (принтеры для обоих типов чеков для нескольких точек).
Поле Тип Значение Описание
name CharField название принтера
api_key CharField ключ доступа к API
check_type CharField kitchen|client тип чека которые печатает принтер
point_id IntegerField точка к которой привязан принтер
▪Чек (Check). Информация о заказе для каждого чека хранится в JSON, нет необходимости делать отдельные модели.
Поле Тип Значение Описание
printer_id ForeignKey принтер
type CharField kitchen|client тип чека
order JSONField информация о заказе
status CharField new|rendered|printed статус чека
pdf_file FileField ссылка на созданный PDF-файл
API
Добавить описание доступных методов в файл api.yml (swagger-спецификация).
@golang_interview
Разве что менеджер из какой хорошей IT компании своё дело открыл
Вадим
кто работает с эласиком на работе?
вы пишите скрипты в нем для запроса, например когда нужно отсортировать по количеству совпадающих тегов записи из индекса?
Элина
#Go #Golang #Fulltime #Middle #Senior #работа #вакансия #job
Вакансия Middle / Senior Golang developer
Компания: КИБЕР-РОМ
Город: Москва, метро 1905 года.
Формат работы: 5\2 с 10-19 или с 11-20 в офисе (возможен гибридный график работы и удаленка)
❗️Важное условие - работать только на территории РФ
Зарплата: от 250.000 до 400.000 руб на руки.
Контакты: @elinka88📩
📍Функции в команде:
• Проектирование и разработка высоконагруженных микросервисов на Golang, которые станут продуктом в продукте.
• Участие в развитии архитектуры системы.
• Технический анализ и тестирование.
📍С чем предстоит работать:
• Чистый бекенд, без инфраструктуры и фронтенда;
• Участвовать в создании новой функциональности сервисов - у нас полный беклог фич;
• Работать с потоковыми данными, распределенной архитектурой, системой доставки контента.
• Микросервисной архитектурой (Golang, gRPC, Protobuf, JSON-RPC);
• Хранением и обработкой больших объёмов данных (ClickHouse);
• Системой мониторинга (Prometheus, Grafana);
• Очередями обмена и кешами;
• Написанием систем для развёртывания и тестирования.
📍От вас ждём:
• Опыт разработки на Go не менее 2 лет;
• Опыт разработки микросервисных приложений на Go;
• Понимание сетевых протоколов;
• Знания REST API, gRPC, WebSocket, HTTP, JSON-RPC;
• Глубокое понимание концепций языка (concurrency, интерфейсы);
• Уверенные познания в Linux и Docker;
• Понимание принципов CI/CD;
• Наличие опыта работы с Kafka / RabbitMQ, Redis / Memcached;
• Разработка unit-тестов.
R
Hi, Looking for below mentioned requirement,  This is contract to hire position,  WFH
* GOLANG Developer:
1. Mandatory requirement  - SQL, GOLANG, API development
2. OOPS
3. Intermediate level OS concepts
4. REST APIs
5. Design level questions
6. Plus point - Prior experience in lending.
7.
Please feel free to reach out to us in case of any queries.
Dmitry
Не ну это
Emin Zalaev
Dmitry
Вижу много вакансий от Nebius. Написано что это spin-off of Yandex international cloud business. Собесы у них такие же как у Яндекса?
Руслан
#вакансия #удаленка #middle #junior
GoLang developer в Keenetic
Middle или одарённый Junior
200 000 - 250 000 руб на руки
Граждане РФ
Гибкое начало рабочего дня с 9 до 12
Удалённо
Рабочая станция на выбор (Linux, Windows, Mac OS)
Задачи:
● Разработка и поддержка распределенных облачных сервисов;
● Участие в формировании технологического стека;
● Участие в создании инфраструктуры для высоконагруженных проектов.
Требования:
● Опыт работы от 1 года в роли бэкенд разработчика на GoLang;
● Знание основ Linux и сетевого взаимодействия;
● Знание и понимание модели OSI и в частности HTTP;
● Знание и применение принципов Single responsibility, Open-closed, Liskov substitution, Interface segregation, Dependency inversion, Don’t repeat yourself, Keep It Simple and Straightforward и в идеале Domain-driven design
(SOLID, DRY, KISS, DDD);
● Знание паттернов проектирования (основных, архитектурных, enterprise, интеграционных) и умение их применять;
● Понимание и умение работы с системами GIT.
Плюсом будут знания:
● Key-value СУБД, Oracle NoSQL;
● Принципы асинхронного программирования
@alimjanovitch
Aleks
Знание паттернов проектирования, асинхронщину и ООП, и при этом конечно иметь это все подтвержденное своим опытом (чтобы уметь грамотно применять), не слабо так продвинутый джун должен быть. Очень продвинутый. Совсем продвинутый джун требуется в данной вакансии. А почему не турбо продвинутый стажер? :)
Aleks
Я бы ставил на стажера...
Sanity = nil
Sanity = nil
тем более зпшка миддловая.