Sobes.tech

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

Senior
Napoleon IT
10

Code review: кэш на Go с мьютексом. Найди проблемы и предложи улучшения. Условие: нагрузка чтение/запись 80/20.

Middle+
Ozon ФинтехOzon Финтех
10

Почему бы не использовать WebSocket вместо gRPC streaming?

Middle
Small
10

Почему сейчас в поиске работы?

Middle+
КуперКупер
10

package main import ( "crypto/md5" "fmt" ) var alphabet = []rune{'a', 'b', 'c', 'd', '1', '2', '3'} func RecoverPassword(h []byte) string { return "" } func hashPassword(in string) []byte { h := md5.Sum([]byte(in)) return h[:] } func main() { tests := []string{"a", "12", "abc333d"} ok := true for _, exp := range tests { h := hashPassword(exp) act := RecoverPassword(h) if act != exp { fmt.Printf("Ошибка: ожидалось %q, получено %q\n", exp, act) ok = false } } if ok { fmt.Println("Все тесты пройдены успешно") } } Для корректного исполнения кода: входная точка -- функция main в пакете main Задача: Реализовать функцию RecoverPassword, которая по MD5-хэшу восстанавливает исходный пароль, состоящий из символов из заданного алфавита.

Senior
Ozon ФинтехOzon Финтех
10

На чём работает в конечном итоге сервис? Какие Docker-образы использовали?

Middle+
Астрал-Софт
10

/ * Есть два сервера PostgreSQL: * PROD - OLTP сервер, * STATS - сервер для долгих аналитических запросов. На текущем сервер в базе prod есть большая (10Tb) таблица вида: CREATE TABLE profiles( id SERIAL, data JSONB ) В таблице могут быть "дырки", т.е. некоторые `id` могут быть пропущены. Нужно написать программу для копирования таблицы profiles с PROD на STATS. Для работы с базами данных предполагается использовать следующие интерфейсы: type Row []interface{} type Database interface { // реализация интерфейса Database умеет переустанавливать подключения // вызов SaveRows идемпотентен io.Closer GetMaxID(ctx context.Context) (uint64, error) LoadRows(ctx context.Context, minID, maxID uint64) ([]Row, error) // [minID, maxID] SaveRows(ctx context.Context, rows []Row) error } func Connect(ctx context.Context, dbname string) (Database, error) // CopyTable // Если full=false то продолжить переливку данных с места прошлой ошибки // Если full=true - то перелить все данные func CopyTable(fromName string, toName string, full bool) error { // ... your code } Если передана опция `full=false`, то программа должна продолжить переливку данных с места прошлой ошибки. Если `full=true` - то должна перелить все данные. **Базовый уровень**: - последовательная переливка данных в 1 поток - восстановление после сбоев (опция `full=false`) Дополнительная информация: - при необходимости вы можете расширить интерфейс, добавив свои методы - при необходимости вы можете использовать пакет **database/sql** напрямую

Senior
Яндекс
10

Расскажи про основной стек. С чем работаешь?

Senior
Spectr
10

Слышали ли вы про Domain-Driven Design (DDD)? Был ли у вас опыт применения паттернов из DDD?

Senior
техвил
10

В чем разница между soft link и hard link в Linux?

Senior
VKVK
10

На каких уровнях модели OSI ты работал?

Senior
AltDev
10

На основании чего делали партиционирование в Amazon Athena?

Middle
СБЕРСБЕР
10

Вы именно логистические маршруты составляли и считали?

Middle+
МВидео/эльдорадо
10

Расскажите про конкретные задачи, связанные с архитектурой, ваш личный вклад.

Senior
МТСМТС
10

Что такое .env файл и для чего он используется?

Middle+
А7
10

Как вы подходили к версионированию gRPC контрактов?

Senior
РамблерРамблер
10

// Написать имплементации кеша с ttl (time to live) для структуры User. // В качестве ключа можно использовать User.ID // мы хотим чтобы было потокобезопасно // мы не хотим получать записи с просроченным ttl при операции чтения // мы хотим чтобы записи с просроченным ttl удалялись и не хранились // API get/set/del

Senior
VK CloudVK Cloud
10

Расскажи про использование событий (event-driven подход) на твоём примере

Senior
Холодильник.руХолодильник.ру
10

Назови и раскрой две ключевые парадигмы программирования

Senior
Холодильник.руХолодильник.ру
10

Что такое таймауты и используешь ли ты их в работе?

Senior
AvitoAvito
10
/371