Search
Write a publication
Pull to refresh
6
0
Игорь @peacecoder85

Backend Engineer

Send message

Техсобесы — это просто, но есть нюанс…

Level of difficultyEasy
Reading time8 min
Views21K

Привет, Хабр. Меня зовут Дима и я разработчик, тимлид и по совместительству наставник на курсе «Мидл Python-разработчик» в Практикуме. Сегодня, с вашего позволения, я вставлю свои пять копеек и поделюсь опытом по такой заезженной теме, как технические собеседования. Много слов сказано, статей написано и копий сломано на сей благодатной почве, потому постараюсь быть максимально кратким.

Не буду писать много о себе, скажу лишь одно: я провёл много часов по обеим сторонам стола. Уповаю на то, что смогу кому-то быть полезным в этом нелёгком и, кажется, поднадоевшем деле. Я практически не буду затрагивать другие этапы, сконцентрируюсь только на техническом собеседовании и процессе подготовки к нему.

TL;DR: Внимательно читайте вакансию и анализируйте результат собеседования. Говоря о себе, фокусируйтесь на релевантном для слушателя. Будьте готовы ответить за обозначенный опыт. Задачи совсем не про код. Задавайте вопросы, интересуйтесь. И помните — «г-г-главное  н-н-не бояться». Успехов!

Читать далее

Ультрабюджетный домашний сервер и что он может

Level of difficultyEasy
Reading time14 min
Views103K


Давеча мне попалась интересная материнская плата на процессоре Celeron J1800 за цену аж в 850 рублей! В повседневном использовании этот процессор, мягко говоря, не очень хорош, а в роли домашнего сервера у него могут быть все шансы, особенно при такой цене. В статье проведём тесты и изучим его реальные возможности и потребление в паре с бюджетным SSD.
Читать дальше →

Как я пишу на C по состоянию на конец 2023 года

Level of difficultyMedium
Reading time9 min
Views28K
Этот год выдался переломным для моих навыков по программированию на C. Можно сказать, что я пережил слом парадигмы, что побудило меня пересмотреть привычки и весь стиль программирования. Это была крупнейшая метаморфоза моего личного профессионального стиля за долгие годы, так что я решил написать этот пост в качестве «мгновенного снимка» моих нынешних суждений и профессионального существования. Эти перемены во многом пошли на пользу моей продуктивности и организованности, поэтому, при всей субъективности того, что я скажу, в посте наверняка будут описаны и вполне объективные вещи. Я не утверждаю, что на С нужно писать именно так, как рассказано ниже, а я сам, выступая контрибьютором некоторого проекта, придерживаюсь того стиля, который там заведен. Но описанные ниже приёмы, как оказалось, очень пригодились мне при работе.
Читать дальше →

Как выглядит техсобес в современном мире и нужно ли к нему готовиться?

Level of difficultyEasy
Reading time8 min
Views22K

Техническое собеседование - важный этап приема на рабочий проект. Мы поговорили с коллегами с рынка (как работающими в нашей компании, так и нет) и обсудили их последний опыт техсобесов, а также важный на наш взгляд вопрос - нужно ли к ним готовиться заранее. 

Спойлер - готовиться нужно. Все это делают по-своему, но мы наметили несколько общих подходов. Подробности под катом.

Читать далее

Как я из телефона сделал сервер для своего бота в телеграме

Level of difficultyMedium
Reading time3 min
Views42K

Как я из телефона сделал сервер для своего бота в телеграме

Все началось с того что я написал своего бота и решил его выложить в открытый доступ, а точнее чтобы он работал круглосуточно, но платить деньги, за хостинг мне не хотелось. И тогда я вспомнил, что у меня как раз в ящиках залежались старые 2 телефона, можно сказать только один, потому что второй я превратил в кирпич (Неправильно перепрошил). Мой путь поиска программы для установки линукса начался с Termux, но к сожелению он работает только с Android 7+. А телефон на Android 5. Поэтому действенным решением я выбрал UserLAnd.

Читать далее

Корутины для Go

Level of difficultyMedium
Reading time21 min
Views11K

Эта заметка о том, зачем нам нужен пакет coroutine для Go и как он будет выглядеть. Но прежде всего, что такое корутины?

Сегодня каждый программист знаком с вызовами функций (подпрограмм): F вызывает G, которая останавливает F и запускает G. G выполняет свою работу, потенциально вызывая и ожидая другие функции, и в конце концов возвращается. Когда G возвращается, G уже нет, а F продолжает работать. В этой схеме одновременно выполняется только одна функция, а ее вызывающие ожидают, поднимаясь вверх по стеку вызовов.

В отличие от подпрограмм, корутины выполняются конкурентно на разных стеках, но все равно верно, что одновременно выполняется только одна функция, а ее вызывающая сторона ждет. F запускает G, но G не выполняется немедленно. Вместо этого F должен явно возобновить (resume) выполнение G, который затем начинает выполняться. В любой момент G может развернуться и вернуться (yield) назад к F. Это приостановит G и продолжит F операцию возобновления. В конце концов F снова вызывает resume, который приостанавливает F и продолжает G после выхода. И так далее, туда-сюда, пока G не вернется, что приведет к очистке G и продолжению F с последней операции возобновления, с некоторым сигналом для F, что G закончена и F больше не должна пытаться возобновить G. В этом паттерне одновременно выполняется только одна корутина, а ее вызывающая сторона ждет на другом стеке. Они выполняются по очереди в четко определенном, скоординированном порядке.

Это несколько абстрактно. Давайте посмотрим на реальные программы.

Читать далее

Typescript: лучшие практики

Level of difficultyEasy
Reading time3 min
Views25K

Привет👋 В последние годы среди фронтенд разработчиков Typescript используется практически везде по умолчанию, начиная небольшими пет-проектами и заканчивая огромнейшими веб-приложениями. Однако, до сих пор на некоторых проектах можно встретить кучу any и Function. Давайте разберемся используете ли вы этот невероятно мощный инструмент правильно?

Читать далее

Остаться в живых. Токсичность в ИТ глазами девушки-лида

Level of difficultyEasy
Reading time6 min
Views66K

Каждый из нас хоть раз сталкивался с токсичными людьми. Но одно дело, когда ты встречаешь их на улице, другое — когда ты в токсичном коллективе каждый рабочий день. Как обстоят дела в ИТ? Может, мы и правда «поколение снежинок»? Присутствует ли нездоровое общение в наших кругах? Давайте разбираться в статье.

В ИТ я 15 лет. Не буду зудеть: «В нашей молодости было по-другому», да и не было. Понятие токсичности распространилось широко где-то в 2018-м, но, например, резкие высказывания на ревью были всегда. Другое дело, что многое зависит от нашего восприятия.

Приведу несколько историй, которые в моём понимании чётко ложатся под определение токсичности. А потом постараемся сделать выводы по каждой из них.

Читать далее

Гонконгский эксперимент: зачем власти Гонконга придумали цифровой доллар и как идут его испытания

Reading time10 min
Views3.6K

Недавно Гонконгская монетарная ассоциация (HKMA Hong Kong Monetary Association) опубликовала отчет о пилотных проектах гонконгской долларовой цифровой валюты (Central Bank Digital Currency, CBDC или ЦВЦБ) — e‑HKD. Регулятор запустил программу‑пилот в мае, чтобы исследовать применение потенциальной цифровой валюты в реальных сценариях. Чем это интересно? Гонконг — одна из ведущих экономик мира, десятки лет занимавший первые строки в разнообразных рейтингах. Поэтому можно ожидать, что лучшие практики будут перениматься другими странами. А отчет, представленный по итогам пилота — один из немногих документов, подробно освещающих тестирование цифровой валюты. Я прочитала этот монументальный труд и расскажу из чего состоит проект и что интересного напилотировали в Гонконге.

Читать далее

Эффективность на максимум: Микрооптимизации в Golang

Level of difficultyEasy
Reading time9 min
Views7.2K

Привет, Хабр!

Каждая миллисекунда имеет значение, микрооптимизация это must have, особенно на языке Go.

Казалось бы, современные пекарни настолько мощные, что могут простить нам небольшую неэффективность. Однако, когда дело доходит до масштабируемых систем и высоконагруженных приложений, каждая лишняя аллокация памяти и каждый неоптимальный цикл могут привести к значительному снижению производительности. Микрооптимизации позволяют добиться максимальной эффективности и производительности.

Читать далее

Увядает ли ремесло программиста?

Level of difficultyEasy
Reading time16 min
Views22K

Я всегда считал, что как мои родители позаботились о том, чтобы я научился читать и писать, так и я позабочусь о том, чтобы мои дети могли программировать компьютеры. Это одно из самых молодых искусств, но в то же время одно из самых насущных, и с каждым днём оно становится всё важнее в любой сфере, от съёмки фильмов до физики. Беглый кодинг станет частью грамотности моих детей и обеспечит им работу. На момент написания статьи моя жена беременна нашим первым ребёнком и должна родить через три недели. Я профессионально пишу код, но когда мой ребёнок научится печатать, ценность кодинга как навыка может померкнуть для мира.
Читать дальше →

11 ошибок в резюме, из-за которых вас не берут в IT. Рассказываем, на что обратить внимание

Level of difficultyEasy
Reading time6 min
Views35K

И снова привет! Меня зовут Валерия, я старший HR-менеджер веб-студии Пиробайт. Для нас тема откликов очень актуальна, потому что часто ищем новых сотрудников в штат: расширяемся, открываем новые направления, ищем замену. Эти поиски сопровождаются своими нюансами, которые осложняют работу и нам, и кандидатам. И имя этому нюансу — корявое резюме. 

Расскажу, почему кандидат не получает долгожданного оффера и как сделать так, чтобы вас точно заметили (по крайней мере мы)

Читать далее

Генеративный ИИ — это просто «замыленный JPEG интернета», который убедительно косит под интеллект

Reading time12 min
Views44K

ИИ чат‑боты любят ловить глюки и выдавать всякую чушь. Так массово, что словом 2023 года признали «галлюционировать». В чем причина такого явления? Является ли генеративный ИИ интеллектом (спойлер — и да, и нет)? И что общего у ChatGPT и копировального аппарата Xerox? Разбираемся, осмысляя неочевидный нюанс в логике работы больших языковых моделей.

Читать далее

«Человеческая» сторона ИТ. Распространённые проблемы разработки, связанные с людьми

Reading time4 min
Views3.5K

Недавно Аби Нода*, программист и генеральный директор платформы DeveloperExperience, ознакомился с исследованием The Human Side of Software Engineering Teams: An Investigation of Contemporary Challenges. В нём авторы обозначили наиболее важные «человеческие» проблемы, сопутствующие разработке ПО.

По мнению Ноды, материал закладывает основу для будущих исследований о взаимосвязи человеческого фактора и продуктивности разработчиков. В то же время менеджеры могут использовать его как чек-лист, позволяющий выявить зоны для потенциальных улучшений в командах.

Подробнее о том, как человеческий фактор мешает работать программистам, читайте под катом.

*Обращаем ваше внимание, что позиция автора может не всегда совпадать с мнением МойОфис.

Читать далее

Из Go в Rust или ад generics

Level of difficultyEasy
Reading time3 min
Views11K

В Go ввели generics и он потерял одно из своих основных преимуществ: легкую читаемость.

Как же обходились без шаблонов в Go 13 лет? Это не помешало выпустить отличные библиотеки и сделать хорошую стандартную библиотеку! При этом сохранялась лаконичность и легкость языка. А теперь...

Читать далее

Глубокий JS. В память о типах и данных

Level of difficultyHard
Reading time10 min
Views33K

Всех нас учили, что в JavaScript есть примитивные и ссылочные типы данных. Исчерпывающая информация есть в официальной документации, а на просторах интернета полно статей на этот счет.

Теория теорией, однако, JS-код исполняется не в теории, а на практике. Точнее, его компилирует и исполняет движок JS. Таких движков существует несколько, разрабатывались они разными людьми и для разных целей. Было бы наивно предполагать, что все они полностью идентичны друг другу. А значит, время разобраться, как же на самом деле хранятся вполне конкретные данные на вполне конкретном движке JS V8.

Читать далее

Чем хорош Rust для продакшена?

Level of difficultyEasy
Reading time13 min
Views15K

За последние годы интерес к Rust значительно вырос. Отчасти этому способствовало то, что ведущие участники технологической индустрии, такие как Microsoft, Google и Amazon рассказали о своём опыте использования этого языка в реализации критических систем.

При этом немалое внимание к Rust проявляют те, кто ещё не применял его в продакшен-среде или же делал это в некритических системах. В результате сформировалось искажённое понимание специфики применения этого языка в продакшене, особенно среди небольшого и среднего бизнеса, где при его рассмотрении чаще фокусируются на преимуществах быстродействия, не уделяя должного внимания другим важным аспектам.

Будучи консультантом по Rust, я имел возможность работать со многими компаниями: как крупными, так и малыми. В итоге я понял, что организации в первую очередь ценят продуктивность, стабильность и удобство при долгосрочной поддержке, а не производительность.
Читать дальше →

Алгоритмы не важны

Level of difficultyEasy
Reading time7 min
Views45K

Прошу простить заранее за несколько кликбейтный заголовок )

Не так давно писал в соцсетях хейт‑пост по поводу «алгоритмических секций» при приёме на работу в Яндекс.

Да и многие другие софтверные компании это практикуют и считают навыки написания алгоритмов — чуть ли не самым важным навыком для программистов.

И ставят данной компетенции очень высокий приоритет при приёме на работу.

Попробую сегодня развить эту мысль и объяснить почему ставить навыки написания алгоритмов на первый план — не правильно, почему этот «алгоритмический» критерий не релевантен и не отражает реальной ценности / уровня / потенциальной пользы от данного программиста.

Читать далее

Пишем gRPC сервис на Go — сервис авторизации

Level of difficultyMedium
Reading time63 min
Views96K

Пишем gRPC сервис на Go — сервис авторизации


В этой статье мы научимся писать полноценный gRPC сервис на Go на примере сервера авторизации с полноценной архитектурой, готовой к продакшену. Мы напишем как серверную часть, так и клиентскую. В качестве клиента мы возьмём мой сервис — URL Shortener, о котором у меня также есть статья и видео-гайд на ютубе. Попутно мы познакомимся с базовыми подходами к работе с авторизацией. И в конце настроим автоматический деплой сервиса с помощью GitHub Actions на удалённый сервер.


Видео-версия этого гайда с более подробными объяснениями

Исходный код проекта: https://github.com/GolangLessons/sso


Итого, наш план:


  • Напишем простой, но полноценный gRPC-сервис
  • Разберемся с базовыми принципами работы авторизации — чтобы не было скучно
  • Настроим автоматический деплой в прод — потому что руками деплоить лень
  • Подружим его с уже готовым сервисом URL Shortener — чтобы был практический смысл
  • Напишем полноценные функциональные тесты

На выходе мы получим полноценный рабочий сервис авторизации, который вы сможете по аналогии подключать к своим пет-проектам.


Кратко обо мне: меня зовут Николай Тузов, я много лет занимаюсь разработкой на Go, очень люблю этот язык. Также веду свой YouTube-канал.

Читать дальше →

Черкаш-код: изобретение и внедрение

Level of difficultyEasy
Reading time4 min
Views30K

Так вышло, что спустя более чем 20 лет работы связанной с IT мне захотелось заглянуть в другие области знаний и таковой стала юриспруденция. Поступление на заочку, учёба, множество открытий, о которых и не задумывался раньше, привели меня к очередному этапу - учебной практике. Практика длилась месяц полноценной работы (рабочий день чуть короче обычного) и, помимо прочего, столкнула меня с большим количеством папок с документами. Поковырявшись недельку с этим добром мне пришла простая идея по структуризации этого дела в виде внедрения черкаш-кода, о чём и поведаю в данной статье.

Читать далее

Information

Rating
8,167-th
Location
Одесса, Одесская обл., Украина
Date of birth
Registered
Activity

Specialization

Backend Developer
Senior
From 4,000 $