Обновить
-1
0
Антон Нехаев @nehaev

Архитектор, консультант

Отправить сообщение

Многопоточность без боли: моя шпаргалка для собесов в Java

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров12K

Всем привет!

Я работаю Senior Java Developer в одном из банков, и за последние годы мне пришлось пройти не одно собеседование, услышать десятки каверзных вопросов и потратить уйму времени на подготовку. И вот что я понял: многопоточность — это одна из самых сложных и любимых тем на Java-собеседованиях, независимо от уровня кандидата.

Поэтому в этой статье я хочу помочь вам уверенно подготовиться к секции по concurrency: разберём ключевые термины, посмотрим, как это работает на практике, и дам несколько советов, которые реально помогают на собесах. Поехали!

Читать далее

Работа с JDK Flight Recorder (JFR) из командной строки: инструмент для профилирования без графического интерфейса

Уровень сложностиСредний
Время на прочтение13 мин
Количество просмотров2.1K

Экосистема Java богата качественными инструментами для разработчиков, и средства профилирования и диагностики - не исключение.

Существуют коммерческие профилировщики, есть встроенные инструменты профилирования в ведущих IDE. А если вам важна свобода (или цена является важным фактором), open source сообщество также готово предложить достойные альтернативы.

JFR (JDK Flight Recorder) один из ключевых инструментов для диагностики работы Java приложений, который можно эффективно использовать из командной строки. Приёмам работы с этим инструментом я хочу посвятить данную статью.

Читать далее

Как защитить свой VDS сервер: 53 000 попыток взлома за 5 дней

Уровень сложностиСредний
Время на прочтение23 мин
Количество просмотров53K

Как защитить свой VDS сервер: 53 000 попыток взлома за 5 дней

Представьте себе: вы арендовали скромный VDS, чтобы поэкспериментировать. Ничего грандиозного — пара тестовых сайтов, простенький веб-сервер на nginx, пара скриптов в cron для автоматизации рутины, SSH для удалённого доступа. Обычная песочница для разработчика, никому, казалось бы, не интересная. Сервер тихо живёт своей жизнью где-то в облаке, отдаёт странички, выполняет задачи, ждёт ваших команд. Вы даже не подозреваете, что за этой тишиной уже разворачивается настоящая цифровая охота.

За два года работы в технической поддержке облачного хостинга я видел множество взломов, помогал клиентам с восстановлением серверов. Видел всё: от примитивных майнеров до полностью стёртых проектов без бэкапов. Сейчас я работаю инженером технической поддержки в компании CleverData (входит в холдинг LANSOFT).

Однажды, ради чистого любопытства, я решил заглянуть в логи свежеиспечённого VDS, созданного всего пять дней назад...

Читать далее

Звонки через Jabber в докер-контейнере за 5 минут

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров45K

В свете сами знаете чего, свой приватный мессенджер и возможность звонков на XMPP стали как никогда актуальны.

Есть быстрый и простой способ: за несколько минут вы поднимаете собственный Jabber-сервер. Дальше — дело техники: рассылаете приглашения маме, бабушке, теще, жене и соседке Даше. После этого можно спокойно звонить и переписываться в защищённом мессенджере, который полностью под вашим контролем.

Звонки идут в зашифрованном режиме, работают p2p. А если у собеседника хитрый NAT, то на помощь автоматически приходит встроенный STUN-сервер.

Клиенты есть под все платформы: Android, iOS, Windows, macOS и Linux.

Читать далее

Почему я отказалась от тестовых заданий на 90% и начала получать больше офферов

Уровень сложностиПростой
Время на прочтение10 мин
Количество просмотров40K

Дисклеймер: статья написана на основе интервью с Ксенией Дранициной. 

В конце 2022 года рынок IT в России был на подъеме — компании боролись за кандидатов, можно было выбирать из нескольких офферов, предлагали высокие зарплаты.

Сейчас рынок IT в России становится рынком работодателя: вакансий немного, и на них сотни откликов. Недавно я искала работу на рынке работодателя, и у меня получилось сделать это за 3 месяца. Расскажу про свой опыт. 

Читать далее

Взаимодействие микросервисов: проблемы, решения, практические рекомендации

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров27K

Все говорили о микросервисах. Гибкость. Масштабируемость. Независимые команды. Звучало как мечта. Многие компании бросились распиливать свои монолиты. Разработка действительно ускорилась. Отдельные компоненты стало проще обновлять и разворачивать.

А потом сервисам понадобилось общаться. И мечта превратилась в сложную, многомерную головоломку.

Читать далее

Разработка высоконагруженных API: проблемы, решения, практические рекомендации

Уровень сложностиСредний
Время на прочтение14 мин
Количество просмотров44K

Ваш проект взлетел. Первые пользователи превратились в тысячи. Тысячи стали десятками тысяч. Метрики в дашбордах рисуют красивую кривую, устремленную вверх. Но есть и другие кривые, которые ползут вверх с не меньшей скоростью. Время ответа сервера. Количество ошибок 502 и 504.

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

Читать далее

Как собрать Docker-образ, который можно запускать в проде (а не только у себя на ноуте)

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров35K

Если ты пишешь Dockerfile, скорее всего, он работает. Но вопрос не в том, работает ли. Вопрос в другом: будет ли он работать через неделю, на другом сервере, в CI/CD, на чужом железе — и будет ли это безопасно?

Читать далее

Великая иллюзия Copilot

Уровень сложностиПростой
Время на прочтение12 мин
Количество просмотров28K

Глава 1: мой коллега, программист

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

«Постой-ка. У меня появилась идея. Дай мне клавиатуру.»

Идея. Ага. Как у младенца появляется «идея» засунуть вилку в розетку. Я почти доделал нечто прекрасное; стройную, изящную логику, пронзающую сложность подобно ножу, режущему масло. И тут появился он — бьёт по клавиатуре, как будто она ему деньги должна, копипастит код-франкенштейн из комментария на StackOverflow, написанный последователем Дяди Боба в 2014 году.

Знает ли он, что делает наша система? Нет.

Прочитал ли он тикет? Разумеется, нет.

Ощущает ли он уверенность, когда безрассудно корёжит глобальное состояние? Разумеется, да.

Читать далее

Итак, я приехал, что дальше?

Уровень сложностиПростой
Время на прочтение19 мин
Количество просмотров51K

Digital nomad - это человек, который добровольно решил сняться с якоря и жить свободно. Я к этой категории не отношусь. Меня скорее обстоятельства заставили сняться с большого тяжёлого якоря и двинуть куда подальше. Этим "куда подальше" оказались Штаты. Пока я жил во Владивостоке, я умудрился несколько раз отказаться от предложений с релокацией в Корею (Южную, на всякий случай уточняю), в Сингапур, в Канаду и США. Поэтому довольно иронично, что спустя 5 лет я оказался здесь.

В этой статье я больше хочу поделиться не тем как и почему я решил переехать, а скорее историей "оседания" там, куда приехал. Конкретно, я хочу затронуть три важных темы: культура и язык, быт, поиск работы. Это мой опыт, мой путь, конкретно про США (Калифорния). Кому-то он будет полезен - класс! Если кого-то это заденет за живое - сочувствую вам. Итак, пристегните ремни, мы...

садимся.

«Кем Вы видите себя через 5 лет», или HRско-русский разговорник

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров82K

Вас спрашивали «Кем Вы видите себя через 5 лет»? Меня тоже. За двадцать пять лет в IT я понял, зачем они так делают. Понял – это значит, что я «привык и научился пользоваться» (С). Но «неприятно удивлять» они меня не перестали.

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

Дисклеймер:

Я не призываю врать или «играть по правилам» HR. Я делюсь практической схемой подачи опыта и скиллов, чтобы минимизировать отказы «по софтам». В моем случае она работает.

Читать далее

Личный бренд в IT: как перестать быть «невидимкой» и начать получать повышения, приглашения и создавать сайд-проекты

Время на прочтение7 мин
Количество просмотров47K

В IT принято думать, что имя делают строчки кода. Но когда ты уже senior, CTO или фаундер — код больше не говорит за тебя.

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

Читать далее

Классические абстракции используемые в ФП

Уровень сложностиСредний
Время на прочтение12 мин
Количество просмотров2.7K

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

Читать статью

Решение задачи о 8 ферзях на трёх уровнях Scala — программа, типы, метапрограмма

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров2.4K

В заметке Ричарда Тауэрса (Richard Towers) Typescripting the technical interview (есть перевод на Хабре: Руны и лёд: техническое собеседование по TypeScript) по ходу повествования была решена классическая задача расстановки 8 ферзей на шахматной доске. Для решения использовалась система типов TypeScript. Мне захотелось посмотреть, как эта задача будет выглядеть на Scala. Т.к. Scala 3 помимо развитой системы типов предлагает превосходную поддержку метапрограммирования, то здесь мы рассмотрим не только решение на типах, но и мета-программное решение.

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

Моя петиция EB-1A на грин-карту талантов, одобренная с первой попытки

Уровень сложностиСредний
Время на прочтение43 мин
Количество просмотров27K

Моя полная петиция на грин-карту по программе талантов EB-1A. 557 страниц, 7 критериев, одобрена с первой попытки без RFE. Все мои рассуждения по выбору критериев, подготовке и описанию доказательств, переводам, оформлению и отправке.

Читать далее

Системный аналитик. Краткий гайд по профессии. Часть 1. Основы взаимодействия систем

Уровень сложностиПростой
Время на прочтение14 мин
Количество просмотров96K

Системный аналитик. Краткий гайд по профессии. Часть 1.

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

Читать далее

Немецкая карта шансов и другие малоизвестные возможности уехать

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров9.8K

Мы, конечно, ещё не в ситуации последнего корабля, но вчера, говорят, легли даже хорошие VPN'ы (не рекомендую пользоваться этими сервисами, потому что с их помощью вы можете узнать, сколько раз борец за приватность переписки Дуров ездил в РФ после своего отъезда) и мы оказались уже почти в изоляции со всякими Гурулёвыми, Пучковыми-Гоблинами и прочими великолепными людьми, компании которых мы вряд ли достойны.

Все знают схемы, когда ты получаешь предложение от работодателя и радостно топаешь в консульство за визой. И все, конечно, понимают, что и раньше зарубежные работодатели не особо горели желанием ждать месяц-два, а теперь, когда сроки ожидания увеличились в разы, этот вариант совсем труднореализуем. Однако есть страны, которые выдают визы для поиска работы на своей территории без (!) предложения от работодателя. Наиболее известные из них - это Австрия, Дания, Германия, Португалия, Испания и Швеция (простенький обзор тут).

Прежде всего про Германию, так как у них этот вариант кажется самым интересным. Виза для поиска работы, Arbeitsplatzsuche, у Германии существовала давно. По какой-то причине про неё никто не говорил и даже скрывали её существование, но тем не менее она была. Требования были вполне разумные: бакалавр или магистр университета, который есть в базе ANABIN, 5 лет опыта работы по специальности, страховка здоровья, примерно 1100 евро на каждый месяц проживания в Германии, и знание немецкого на уровне B1. И всё: получаете визу, едете в Германию и там уже ищете работу в благоприятных условиях. И вам не надо говорить работодателю, чтобы он прислал вам предложение и ждал вас пол года: вы можете выйти на работу немедленно.

Читать далее

Как я превратил обычный бизнес в IT компанию, читая книги

Уровень сложностиПростой
Время на прочтение14 мин
Количество просмотров11K

Началось с того, что я феерически прогорел при попытке создать IT компанию с нуля. Это произошло в дремучие года: у меня были длинные волосы, оранжевая рубашка, один из первых огромных смартфонов и белоснежный микро-ноутбук с большим черным модемом. Поэтому я мог сидеть в интернете прямо в Макдачной, что в те годы было реже, чем встретить Феррари на улице. И это почему-то приманивало ко мне разные интересные личности, они кидались ко мне чуть завидев издалека с кучей вопросов про компьютеры. И я почему-то решил, что было бы круто организовать телефонные консультации для пользователей компьютеров. 

Я готовился к настоящему валу звонков, ведь никто ничего похожего не предлагал.

Казалось бы, что могло пойти так?

В 48 собесах от оффера в Гугл

Уровень сложностиСредний
Время на прочтение21 мин
Количество просмотров20K

Здравствуй, хабр! Что-то я давно не писал, отбился от рук, а ведь когда-то мы целый курс машинного обучения на Хабре вели. Расскажу про свой недавний заход по собесам, что спрашивали, какие выводы сделал. Контекст: Applied Machine Learning science (в том числе этот ваш Generative AI), Нидерланды, уровень синьор+. Я долго получал отказы, старался не унывать и в конце таки нашил лычку Staff GenAI Field Solutions Architect в Google Cloud. Тут поделюсь статистикой собесов, полезными ресурсами и, конечно, всякими советами.

Читать далее

Что нужно знать, чтобы успешно пройти System Design Interview

Время на прочтение16 мин
Количество просмотров57K

Для любого разработчика глубокое понимание основных принципов системного проектирования является необходимым условием для создания стабильных и масштабируемых программных систем, способных обеспечивать высокую производительность. Системное проектирование (System Design) включает разработку архитектуры и структуры программной системы, направленную на удовлетворение специфических требований и обеспечение требуемых показателей производительности.

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

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

Читать далее
1
23 ...

Информация

В рейтинге
Не участвует
Откуда
Россия
Дата рождения
Зарегистрирован
Активность

Специализация

Бэкенд разработчик, Архитектор программного обеспечения
Ведущий
Java
Scala