Каковы ваши ожидания по зарплате? Это частый вопрос от рекрутеров даже до технических интервью и давай разберемся как на него можно отвечать
Есть два наиболее эффективных варианта ответа:
- Указать диапазон, в котором ты рассматриваешь предложения: этот вариант рекомендуют рекрутеры, включая Киру Кузьменко (Если не знаком с ней, погугли. Делает оч крутой контент.), с которой я обсудил этот вопрос на YaTalks 2023
- Вернуться к вопросу позже: этот вариант чаще всего предпочитаю я, если разработчик, которого консультирую имеет грейд между Middle и Senior (уж очень хорошо работает этот метод, когда спорный грейд)
Почему вообще рекрутеры советуют огласить зарплатные ожидания в начале? Основная причина, о которой говорят открыто - это "быстрый фильтр для тебя и рекрутера", однако стоит помнить и о недостатках:
- Назвав мелкий диапазон можете в нем и остаться, хотя достойны большего
- Психологическое ограничение для себя (может показаться надуманным, но ЗП в 500-600 тысяч многим кажется чем-то недостижимым)
- и так далее.
P.S. здесь не обсуждаем, насколько часто работодатели прибегают к этим приемам, скорее даю пищу для размышления...
Ты подумал и и решил оглашать ЗП после всех технических интервью, чтобы собрать побольше информации о компании и вдумчиво огласить желаемую вилку. Но что сказать рекрутеру, чтобы не выдать свои ожидания в самом начале? Вот несколько вариантов:
- На данный момент мне не комфортно говорить о деньгах. В первую очередь хочу пройти все технические интервью и познакомиться с командой, а только потом буду готов огласить сумму
- Предлагаю вернуться к вопросу о деньгах после прохождения всех технических интервью
Из рисков тут пожалуй только сразу получить отказ, но на этот счет я никогда не переживаю, ведь это показатель, что компания не готова выстраивать диалог и может быть “проблемной” . P.S. Для тебя это может быть не так, поэтому на консультациях этот момент обсуждаю заранее
Если уж совсем достали вопросами по ЗП, то фраза "Вы ставите меня в неприятное положение этим вопросом. Я сказал, что готов вернуться к этому после всех технических секций, и мое решение не изменится!" поможет остудить собеседника (применять с осторожностью!)
Каждый вариант заслуживает отдельного поста, и каждая стратегия может быть эффективной, но это уже совсем другая история...
На канале делюсь опытом ведения зарплатных переговоров, а так же историями про свои взлеты и падения в айтише. Залетай, будет интересно! Комментарии открыты и дискуссии приветствуются :)
Есть два наиболее эффективных варианта ответа:
- Указать диапазон, в котором ты рассматриваешь предложения: этот вариант рекомендуют рекрутеры, включая Киру Кузьменко (Если не знаком с ней, погугли. Делает оч крутой контент.), с которой я обсудил этот вопрос на YaTalks 2023
- Вернуться к вопросу позже: этот вариант чаще всего предпочитаю я, если разработчик, которого консультирую имеет грейд между Middle и Senior (уж очень хорошо работает этот метод, когда спорный грейд)
Почему вообще рекрутеры советуют огласить зарплатные ожидания в начале? Основная причина, о которой говорят открыто - это "быстрый фильтр для тебя и рекрутера", однако стоит помнить и о недостатках:
- Назвав мелкий диапазон можете в нем и остаться, хотя достойны большего
- Психологическое ограничение для себя (может показаться надуманным, но ЗП в 500-600 тысяч многим кажется чем-то недостижимым)
- и так далее.
P.S. здесь не обсуждаем, насколько часто работодатели прибегают к этим приемам, скорее даю пищу для размышления...
Ты подумал и и решил оглашать ЗП после всех технических интервью, чтобы собрать побольше информации о компании и вдумчиво огласить желаемую вилку. Но что сказать рекрутеру, чтобы не выдать свои ожидания в самом начале? Вот несколько вариантов:
- На данный момент мне не комфортно говорить о деньгах. В первую очередь хочу пройти все технические интервью и познакомиться с командой, а только потом буду готов огласить сумму
- Предлагаю вернуться к вопросу о деньгах после прохождения всех технических интервью
Из рисков тут пожалуй только сразу получить отказ, но на этот счет я никогда не переживаю, ведь это показатель, что компания не готова выстраивать диалог и может быть “проблемной” . P.S. Для тебя это может быть не так, поэтому на консультациях этот момент обсуждаю заранее
Если уж совсем достали вопросами по ЗП, то фраза "Вы ставите меня в неприятное положение этим вопросом. Я сказал, что готов вернуться к этому после всех технических секций, и мое решение не изменится!" поможет остудить собеседника (применять с осторожностью!)
Каждый вариант заслуживает отдельного поста, и каждая стратегия может быть эффективной, но это уже совсем другая история...
На канале делюсь опытом ведения зарплатных переговоров, а так же историями про свои взлеты и падения в айтише. Залетай, будет интересно! Комментарии открыты и дискуссии приветствуются :)
DynamoMQ - это библиотека очередей сообщений, использующая
DynamoDB
в качестве хранилища, написанная на Go. $ go install github.com/vvatanabe/dynamomq/cmd/dynamomq@latest
▪Github@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Откройте для себя распространенные антишаблоны архитектуры, узнайте, как их избегать и преодолевать "подводные камни" проектирования!
Антипаттерн (англ. anti-pattern) — это распространённый подход к решению класса часто встречающихся проблем, являющийся неэффективным, рискованным или непродуктивным. В отличие от шаблона проектирования, рассмотрение антипаттерна включает в себя как неправильное решение проблемы с его признаками и последствиями, так и выход из ситуации.
В этом проекте собраны ценные сведения, практические советы и примеры из реальных проектов для обучения и помощи в создании лучших программных архитектур и улучшать существующие.
▪Проект
▪Github
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥 Дайджест полезных материалов из мира Golang за неделю
Почитать:
— Миграции в YDB с помощью «goose»
— Логирование в Golang
— 100 вопросов для подготовки к собесу Data Science
— Дженерики в go
— Проектирование fault-tolerant систем на Go
— WebSocket в Go и причем тут горилла
— Building golang project from scratch - part 3 - setting up the database using docker
— Build a Golang Todo App Backend: A Step-by-Step Guide
— Go versus Rust: Choosing the Best Language for You to Learn in 2024
— Automate the task of creating requirements.txt with pyreqs!
— OnLogs – open-source simplified web logs viewer for Docker containers
— Evitando SQL Injection com Golang
— 5 Golang Features I Wished Were Different!
— Десять самых ярких ИИ-работ от NVIDIA Research за 2023 год
Посмотреть:
🌐 100 вопросов с собеседований Data Science — часть 1 (⏱ 36:48)
🌐FULL STACK Golang + HTMX Building an Engineer Recruitment Platform Golang ~ LIVE!
🌐 Building FFAAS In Go. Fast Function As A Service. (⏱ 01:48:16)
🌐 Coding Instant WASM Rollbacks In Go (⏱ 01:32:12)
🌐 Не мог найти первую работу программистом #айти #программирование #программист (⏱ 00:55)
🌐 Дубай для программиста | Сколько стоит жить в Дубае в 2023 (⏱ 05:38)
Хорошего дня!
@Golang_google
Почитать:
— Миграции в YDB с помощью «goose»
— Логирование в Golang
— 100 вопросов для подготовки к собесу Data Science
— Дженерики в go
— Проектирование fault-tolerant систем на Go
— WebSocket в Go и причем тут горилла
— Building golang project from scratch - part 3 - setting up the database using docker
— Build a Golang Todo App Backend: A Step-by-Step Guide
— Go versus Rust: Choosing the Best Language for You to Learn in 2024
— Automate the task of creating requirements.txt with pyreqs!
— OnLogs – open-source simplified web logs viewer for Docker containers
— Evitando SQL Injection com Golang
— 5 Golang Features I Wished Were Different!
— Десять самых ярких ИИ-работ от NVIDIA Research за 2023 год
Посмотреть:
🌐 100 вопросов с собеседований Data Science — часть 1 (⏱ 36:48)
🌐FULL STACK Golang + HTMX Building an Engineer Recruitment Platform Golang ~ LIVE!
🌐 Building FFAAS In Go. Fast Function As A Service. (⏱ 01:48:16)
🌐 Coding Instant WASM Rollbacks In Go (⏱ 01:32:12)
🌐 Не мог найти первую работу программистом #айти #программирование #программист (⏱ 00:55)
🌐 Дубай для программиста | Сколько стоит жить в Дубае в 2023 (⏱ 05:38)
Хорошего дня!
@Golang_google
Если бы у MongoDB и MySQL родился ребенок, то это был бы CursusDB. Шутки в сторону CursusDB - это распределенная документо-ориентированная in-memory база данных с открытым исходным кодом и SQL-подобным языком запросов, написанным на чистом GO.
▪Github
▪Документация
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Линтер для проверки проверки OpenTelemetry (End, SetStatus, RecordError)
go install github.com/jjti/go-spancheck/cmd/spancheck@latest
spancheck ./...
▪Github
▪Docs
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
💡 Hamlet
Шаблонный движок Haml для Go.
▪Github
▪Документация Haml
@Golang_google
Шаблонный движок Haml для Go.
Haml
(язык абстрактной разметки HTML) основан на одном главном принципе: разметка должна быть красивой. Это не просто красота ради красоты: Haml ускоряет и упрощает создание шаблонов.go install github.com/stackus/hamlet/cmd/hamlet@latest
▪Github
▪Документация Haml
@Golang_google
Gtkcord4 - клиент Discord на Go и GTK4.
go install -v github.com/diamondburned/gtkcord4@latest
▪Github
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Проведите стресс-тестирование своей базе данных с помощью заранее заданных запросов.
Библиотека поможет найти медленные и неэффективные запросы, которые мешают работе.
go install github.com/adaptive-scale/[email protected]
▪Github@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Он поддерживает различные функции, такие как автоматическая обработка запросов, ограничение скорости запросов и другие, что делает его идеальным как для простых, так и для сложных HTTP-запросов.
go get -u github.com/davesavic/clink
▪Github▪Примеры
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Бенчмарк семи популярных драйверов Go SQLite.
▪ Github
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Пакетом dot решается проблема добавления данных во вложенных структурах, ассоциативных массивах, срезах и каналах любой сложности и различных типов данных. Если точный путь к требуемому полю известен, но на этом пути имеется карта, нужно сначала корректно ее инициализировать, проверить наличие такого ключа, а затем вставить значение.
Для простой структуры этот пакет не нужен, а вот для иерархии посложнее проект dot Golang с открытым исходным кодом придется кстати.
Расставьте точки над «i», контролируйте данные
Приведу простой пример проблемы, с которой столкнулся, хотя иерархия структур у меня посложнее и пути к полям в будущем могут поменяться:
type Second struct {
Items []string
}
type First struct {
Store map[string]Second
}
📌 Продолжение
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Инструмент CLI, выполняющий SQL-запросы к различным файлам, включая файлы xlsx, и выводящий результаты в различные файлы.
▪Github
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
🥳 Выпущены версии Go 1.21.6 и 1.20.13!
📢 Анонс: https://groups.google.com/g/golang-announce/c/F12eMaUITDs
⬇️ Скачать: https://go.dev/dl/#go1.21.6
#golang
@Golang_google
📢 Анонс: https://groups.google.com/g/golang-announce/c/F12eMaUITDs
⬇️ Скачать: https://go.dev/dl/#go1.21.6
#golang
@Golang_google
This media is not supported in your browser
VIEW IN TELEGRAM
OSINT инструмент, написанный на Go, который не поддерживает сбор и анализ информации по опреленном никнейму в сети.
Благодаря данному методу сбора можно построить цепочку всех упоминаний в интернете, в соц сетях, на сайтах и формумах.
go install github.com/theyahya/enola/cmd/enola@latest
▪Github
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
В статье описан довольно элегантный паттерн обработки ошибок, при написании
REST,gRPC
и других сервисов на Go. 📌Читать
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Начальный набор для создания веб-сервисов на Go с использованием возможностей Kubernetes.
Проект регулярно обновляется и использует минимальные зависимости, реализует чистый код и следует лучшим практикам программирования на Go.
▪Github
▪Docs
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Go - отличный язык для создания высокопроизводительных веб-приложений, а высокопроизводительные веб-приложения часто требуют централизованного кэширования.
Стандартом де-факто для централизованного кэширования является Redis, но, популярные сегодня библиотеки Go не поддерживают потоковую передачу данных, эффективных с точки зрения памяти.
Вместо этого они предлагают
[]byte API,
с которыми вы взаимодействуете следующим образом:// В этом коде используется https://github.com/redis/go-redis, но те же
// ограничения действуют для Rueidis и Redigo.
func redisHandler(w http.ResponseWriter, r *http.Request) {
ctx := context.Background()
// Extract key from RequestURI
key := strings.TrimLeft(r.RequestURI, "/")
// Get the value from Redis as a byte slice
val, err := rdb.Get(ctx, key).Bytes()
if err == redis.Nil {
http.Error(w, "Key not found in Redis", http.StatusNotFound)
return
} else if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
_, err = w.Write(val)
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
}
}
Этот паттерн работает хорошо, если вы кэшируете небольшие объекты, но если вы кэшируете объекты размером более 1 кб, []byte-ориентированные API работют не так хорошо.
В протоколе Redis нет ничего такого, что мешало бы создать потоковый API. Поэтому пердставляем redjet, библиотеку Redis, ориентированную на производительность.
С помощью redjet вы можете написать приведенный выше код следующим образом:
func redisHandler(w http.ResponseWriter, r *http.Request) {
ctx := context.Background()
// Извлечение ключа из RequestURI
key := strings.TrimLeft(r.RequestURI, "/")
// Передаем значение непосредственно из Redis в ответ.
_, err := rdb.Command("GET", key).WriteTo(w)
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
}
}
Код стал проще и эффективнее.
go get github.com/coder/redjet@latest
▪Github
▪Читать дальше
▪Бенчмарки
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Быстрая и простая в использовании CDN, на основе Go.
CDN (Content Delivery Network) — это географически распределённая сетевая инфраструктура, обеспечивающая быструю доставку контента пользователям веб-сервисов и сайтов. Входящие в состав CDN cерверы географически располагаются таким образом, чтобы сделать время ответа для пользователей сайта/сервиса минимальным.
В проекте использованы базы данных SQLite с GORM и веб-фреймворком Gin. UI построен с помощью Vite + React и wouter.
▪ Github
▪Docs
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
go install -v github.com/alpkeskin/mosint/v3/cmd/mosint@latest
▪GitHub@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM