⚡️ Будь как этот гений с картинки — предлагай свои условия работодателю, а не наоборот!
Кто нужен?
Но если вы пока джун — я бы предложил:
- Full-time контракт: 180к/мес после курса + опцион на карьеру в топ-компаниях
- Либо фикс за проект: стань ML-инженером за 39к вместо 44к с промокодом LASTCALL
🔗 Старт 9 сентября
Кто нужен?
Senior ML-Engineer с опытом работы более 6 месяцев в FAANG компаниях. Требование: разработать кросс-платформенное приложение-трекер зарплат с AI-распознаванием вакансий по резюме.
Но если вы пока джун — я бы предложил:
- Full-time контракт: 180к/мес после курса + опцион на карьеру в топ-компаниях
- Либо фикс за проект: стань ML-инженером за 39к вместо 44к с промокодом LASTCALL
🔗 Старт 9 сентября
😁7❤2
🍁 Осенний дайджест
Пришло время собрать интересные материалы первой недели осени.
— Как ускорить тесты и сократить время их выполнения
В новом посте команда Go делится методами оптимизации времени выполнения тестов. Рассматриваются техники параллельного запуска, уменьшения объёма тестовых данных и правильного использования моков.
— Появился новый yamlgoyaml для Go
Сообщество Go объявило о форке популярной библиотеки GoYaml, теперь под названием yamlgoyaml. Форк направлен на улучшение совместимости с современными версиями Go, исправление багов и оптимизацию производительности.
— Методы по умолчанию в Go
— Cup o’ Go про актуальное
— Обновления Go-безопасности
— Строим банк с нуля
🐸 Библиотека Go-разработчика
Пришло время собрать интересные материалы первой недели осени.
— Как ускорить тесты и сократить время их выполнения
В новом посте команда Go делится методами оптимизации времени выполнения тестов. Рассматриваются техники параллельного запуска, уменьшения объёма тестовых данных и правильного использования моков.
— Появился новый yamlgoyaml для Go
Сообщество Go объявило о форке популярной библиотеки GoYaml, теперь под названием yamlgoyaml. Форк направлен на улучшение совместимости с современными версиями Go, исправление багов и оптимизацию производительности.
— Методы по умолчанию в Go
— Cup o’ Go про актуальное
— Обновления Go-безопасности
— Строим банк с нуля
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Библиотека задач по Go | тесты, код, задания
Anonymous Quiz
23%
Транзакция может видеть чужие незавершённые изменения.
51%
Фантомные записи могут изменить количество строк в выборке, влияя на бизнес-логику.
19%
Ничего, уровень достаточен для всех случаев.
6%
Транзакция может привести к панике во время выполнения
👍8❤2
Иногда реально ощущение, что нас держат в Матрице.
Большинство сидит, читает статьи про ML, смотрит ролики «как это работает» — и всё.
❗ Сегодня последний день промокода Lastcall (−5000 ₽).
Уже завтра стартует первый вебинар по Машинному обучению — полный набор для выхода из Матрицы.
Кто готов вырваться из симуляции и ворваться в сезон найма?
👾 — я уже в команде Нео
👍 — хочу красную таблетку
🤔 — пока думаю, но интересно
👉 Забронируй место сейчас
Большинство сидит, читает статьи про ML, смотрит ролики «как это работает» — и всё.
❗ Сегодня последний день промокода Lastcall (−5000 ₽).
Уже завтра стартует первый вебинар по Машинному обучению — полный набор для выхода из Матрицы.
Кто готов вырваться из симуляции и ворваться в сезон найма?
👾 — я уже в команде Нео
👍 — хочу красную таблетку
🤔 — пока думаю, но интересно
👉 Забронируй место сейчас
😁2
Senior Backend Engineer — от 600 000 ₽, удаленно (Москва)
Senior Go / Kubernetes Engineer — до 7 000 $, удаленка в Москве
Go Developer — до 400 000 ₽, удаленно (Москва)
Senior Golang Developer — от 400 000 ₽, удаленка в Москве
Golang-разработчик — от 3500 до 4000 $, удаленно (Москва)
Бустер — удалённо (не только Москва)
Please open Telegram to view this post
VIEW IN TELEGRAM
Данные проходят через множество слоёв: браузер → CDN → балансировщик → брокер сообщений → сервисы → распределённый кэш → полнотекстовый поиск → БД (и её логи/кэши).
Чтобы «стереть» их, нужно инвалидировать и подчистить каждый слой.
1. Клиент: не кэшировать чувствительное
Отдавайте такие ответы с Cache-Control: no-store и без ETag/Last-Modified.
// middleware: запрет кэширования чувствительных ответов
func noStore(next http.Handler) http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Cache-Control", "no-store")
w.Header().Del("ETag")
w.Header().Del("Last-Modified")
next.ServeHTTP(w, r)
})
}
2. CDN: точечная инвалидация и короткие TTL
Для публичных данных — ETag/short TTL; для приватных — вообще не пускать в CDN (поддомен без CDN / приватные заголовки).
Паттерн: после удаления на сервере — отправить сигнал на инвалидацию в CDN (CloudFront/Fastly) из вашего Go-сервиса.
// псевдокод: инвалидация пути в CDN после удаления пользователя
func purgeCDN(userID string) error {
// вызов SDK/HTTP API CDN-провайдера
reqBody := strings.NewReader(`{"paths":["/users/` + userID + `"],"type":"invalidate"}`)
req, _ := http.NewRequest("POST", "https://cdn.example/api/invalidate", reqBody)
req.Header.Set("Authorization", "Bearer "+os.Getenv("CDN_TOKEN"))
_, err := http.DefaultClient.Do(req)
return err
}
3. Балансировщик: purge ключей
Если используете NGINX/Varnish как кэш перед сервисами — включите адресуемый cache key (например, по X-User-ID) и выполняйте purge на удаление
# пример идеи: привязка кэш-ключа к пользователю
proxy_cache_key "$scheme$request_method$host$request_uri$user_id";
4. Messaging: retention и перезапись по ключу
Персональные данные лучше вообще не класть в сообщения. Если необходимо:
• Выносите PII в secure-storage и передавайте только ссылку/ID.
• Для Kafka — короткий retention.ms и/или compact topics (перезапись по ключу).
// kafka-go: запись "затирающего" сообщения (compacted topic)
msg := kafka.Message{
Key: []byte("user:123"),
Value: []byte("{}"), // пустые поля вместо PII
Headers: []kafka.Header{{Key: "event", Value: []byte("user.redacted")}},
}
err := writer.WriteMessages(ctx, msg)
5. Сервисы: согласованная инвалидация кэша
Правило: сначала удаляем/редактируем источник, затем инвалидируем все кэши, которые могут содержать копии.
// cache-aside с Redis: сначала БД, затем кэш
func DeleteUser(ctx context.Context, db *sql.DB, rdb *redis.Client, id int64) error {
tx, err := db.BeginTx(ctx, nil); if err != nil { return err }
if _, err := tx.ExecContext(ctx, "DELETE FROM users WHERE id=$1", id); err != nil {
tx.Rollback(); return err
}
if err := tx.Commit(); err != nil { return err }
// Инвалидация всех связанных ключей
keys := []string{
fmt.Sprintf("user:%d", id),
fmt.Sprintf("user:%d:profile", id),
fmt.Sprintf("user:%d:permissions", id),
}
if err := rdb.Del(ctx, keys...).Err(); err != nil { return err }
return nil
}
#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤2
Грейды уже не гарантируют рост зарплаты, джоб-борды теряют эффективность, а AI вмешался в процесс собеседований так, что теперь компании делятся на лагеря — одни разрешают использовать ChatGPT, другие устраивают собесы с ручкой и листочком.
В карточках — пять главных трендов рынка найма: от умирания грейдинга до смещения фокуса на удержание сотрудников.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM