Pull to refresh
-1
0
Антон Нехаев @nehaev

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

Send message

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

Level of difficultyEasy
Reading time4 min
Views29K

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

Читать далее

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

Level of difficultyEasy
Reading time12 min
Views26K

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

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

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

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

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

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

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

Читать далее

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

Level of difficultyEasy
Reading time19 min
Views48K

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

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

садимся.

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

Level of difficultyEasy
Reading time8 min
Views75K

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

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

Дисклеймер:

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

Читать далее

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

Reading time7 min
Views46K

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

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

Читать далее

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

Level of difficultyMedium
Reading time12 min
Views2.4K

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

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

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

Level of difficultyMedium
Reading time10 min
Views2.3K

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

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

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

Level of difficultyMedium
Reading time43 min
Views24K

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

Читать далее

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

Level of difficultyEasy
Reading time14 min
Views72K

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

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

Читать далее

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

Level of difficultyEasy
Reading time4 min
Views9.4K

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

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

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

Читать далее

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

Level of difficultyEasy
Reading time14 min
Views10K

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

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

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

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

Level of difficultyMedium
Reading time21 min
Views19K

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

Читать далее

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

Reading time16 min
Views53K

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

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

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

Читать далее

Без одной faangи или как я проходил собеседования

Reading time14 min
Views33K

Привет, Хабр! Меня зовут Рустам, работаю программистом 9 лет. 7 лет работал в Контуре и около 2 лет в Яндексе. В этой статье расскажу про свой опыт подготовки и прохождения собеседований в большие технологические компании, поделюсь рекомендациями.

Пробовался в Facebook, Apple, Amazon, Microsoft, Google. Пять попыток: четыре на бэкенд программиста, одна на инженера по инфраструктуре. Два предложения по работе, два отказа, одно потенциальное предложение.

Принял предложение в Amazon. Сейчас в Лондоне.

Читать далее

ДА вздрогнет FAANG* или [практическое руководство] по поиску работы в США/Европе для айтишника

Reading time5 min
Views24K
*FAANG — акроним 5 крупнейших tech компаний (Facebook, Apple, Amazon, Netflix and Google), предоставляющих одни из самых хороших возможностей для разработчиков, которые мечтают/планируют/хотят приобщиться к волне IT-эмиграции.

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

К сожалению, на практике подобный процесс поиска работы часто заканчивается неудачами. Сайты со списком вакансий — один из самых низкоэффективных способов, по крайней мере в США.

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

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

Почему ты не станешь программистом

Level of difficultyEasy
Reading time7 min
Views113K

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

Читать далее

Глубокое погружение в Java Memory Model

Reading time53 min
Views198K


Я провел в изучении JMM много часов и теперь делюсь с вами знаниями в простой и понятной форме.


В этой статье мы подробно разберем Java Memory Model (JMM) и применим полученные знания на практике. Да, в интернете накопилось достаточно много информации про JMM/happens-before, и, кажется, что очередную статью про такую заезженную тему можно пропускать мимо. Однако я постараюсь дать вам намного большее и глубокое понимание JMM, чем большинство информации в интернете. После прочтения этой статьи вы будете уверенно рассуждать о таких вещах как memory ordering, data race и happens-before. JMM — сложная тема и не стоит верить мне на слово, поэтому большинство моих утверждений подтверждается цитатами из спеки, дизассемблером и jcstress тестами.

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

Сравнение подходов к реализации распределенных транзакций для микросервисов

Reading time21 min
Views45K

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

Читать далее

Основы Java Bytecode

Reading time29 min
Views35K

Внимание, статья содержит довольно много картинок и получилась довольно тяжелой и объемной

Как и многие базовые вещи на habr уже были статьи о bytecode, основные же отличия данной статьи - в попытке визуализировать, что происходит внутри, и краткий справочник инструкций (может кому пригодиться), многие с примерами использования.

В данной статье будут рассмотрены только основы Java Bytecode. Если вы уже знакомы с его основами, статья вряд ли будет вам интересна.

Вглубь

Как нанять трех разработчиков Scala в штат за три месяца

Reading time5 min
Views4.8K
Безработица, замена человека роботами, сокращения, невозможность найти стабильную и регулярно и хорошо оплачиваемую работу – о чем это они? Что за фантастика? Или эта статья родом из советского прошлого – о том, как тяжело жить при капитализме?

Сегодня ИТ-компании страдают от нехватки ИТ-специалистов, HR-ы придумывают все новые «плюшки» и организуют максимально дружелюбную и комфортную среду для работы ИТ-специалистов, разработчиков, DevOps-ов, аналитиков, которые диктуют правила рынку труда. Во всех соцсетях слышны стенания рекрутеров и HR-ов – где искать ИТ-специалистов, как их заманить на вакансию, а потом удержать и не повышать зарплату каждый квартал? Каждый ищет свои пути выполнения плана по найму. Расскажу про наш опыт – как мы решили вопрос с наймом Scala-разработчиков в 2020 году.

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


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

Information

Rating
3,736-th
Location
Россия
Date of birth
Registered
Activity

Specialization

Backend Developer, Software Architect
Lead
Java
Scala