Search
Write a publication
Pull to refresh
26
0
Ильдар @Ildar92

Джавист, понаех в Германию

Send message

Как я получил работу с зарплатой 300 000 долларов в Кремниевой долине

Reading time17 min
Views63K
В конце января мы публиковали перевод на тему «Как я успешно прошел шесть собеседований в Кремниевой долине». Пришло время поделиться продолжением, где речь пойдет о более животрепещущей теме — о деньгах и о том, как получить больше.

«В течение недели мне предложили должность инженера-программиста в Google, Facebook, Amazon, Apple, LinkedIn и Yelp. Вот как я проходил у них собеседование.


Что если я скажу вам… что собеседования не так страшны, как кажется?
Читать дальше →

Подготовка к собеседованию в компании большой пятерки

Reading time5 min
Views18K
По моим впечатлениям очень многих людей интересует тема подготовки к собеседованиям в топ технические компании, поэтому решил вместо личных ответов написать одну статью на которую в дальнейшем буду ссылаться. Всем кому интересен процесс самого собеседования, вещи на которые нужно обращать внимание, как готовиться и к чему готовиться — добро пожаловать под кат.
Читать дальше →

Как я создаю сервис рекомендаций сообществ ВКонтакте

Reading time11 min
Views6.9K
Лето заканчивалось, шёл особенно холодный август. Начинался мой 11 класс и я осознал, что сейчас последний шанс (спойлер: нет) на то, чтобы как-то улучшить свою профессиональную компетенцию. Уже несколько лет я усердно делал разные IT проекты, какие-то один, какие-то в коллективе. Но вот все сыны маминой подруги  уже делают что-то красивое. Возможно, бесполезное, но прекрасное внешне. Кто-то делает залипательную симуляцию частиц в виде гифок, кто-то погружается в машинное обучение и делает всякие стайл-трансферы. А я чем хуже? Я так же хочу!

Пример симуляции также есть под катом
Читать дальше →

Скорлупа треснула

Reading time10 min
Views26K
Некоторые мои публикации вызвают у читателей массу вопросов. И не мои тоже. Особенно те, где человек пишет об опыте, выходящем, или выводящем за рамки текущей профессии.

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

На эту тему – нафига? – очень много сказано во всяких книжках, статьях, видео и т.д. Вас эта информация, я думаю, не вдохновляет. Лично меня эта мотивационная масса тоже не впечатляла, когда я сам, несколько лет назад, задавался тем же вопросом. Ко мне тогда не книги, а люди, вполне конкретные приходили и говорили: ты – руководитель, у тебя коллектив, ты должен использовать передовые методы, чтобы превратить коллектив в команду.

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

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

Чтобы это объяснить, придется рассказать небольшую часть своей биографии.
Читать дальше →

Senior Engineer в поисках работы. Как я прошел 15 технических собеседований и что я об этом думаю

Reading time13 min
Views50K
Продолжение истории о том, как я проходил собеседования в разные компании на разные позиции. В этот раз закроем несколько вопросов и комментариев касательно первой части и продолжим говорить о тестовых заданиях и технических собеседованиях.

К моему удивлению, предыдущая статья о собеседованиях с рекрутерами и HR вызвала неожиданный интерес: более 100 000 просмотров по всем источникам. Я получил кучу положительного фидбека в личку, мне написали бывшие коллеги, которых я последний раз видел лет 5 назад; героини некоторых историй; парень, которому я несколько недель назад продавал системник через OLX (аналог Slando, — прим. пер.); барабанщик с которым мы в прошлом году играли метал в гараже, и, как это ни странно, довольно много рекрутеров, которые поинтересовались моими мыслями касательно тех или иных аспектов собеседований и найма. 250 человек зачем-то добавились ко мне в LinkedIn :).
Читать дальше →

Полгода с разными беспроводными наушниками: что я выбрал

Reading time7 min
Views127K


Я один раз надел по-настоящему беспроводные наушники, и кабели после этого, пусть даже это и гибкое оголовье на беспроводной гарнитуре, стали раздражать. Поэтому все новые уши вроде эппловских AirPods я воспринимаю с энтузиазмом и стараюсь погонять какое-то время. В 2018-м помимо AirPods я успел поносить Jabra Elite 65+, Samsung IconX 2018 и Sony WF-1000X. В итоге получилась сравнительная табличка под катом — в ней объективные данные. А все остальное — мои субъективные наблюдения и тема для обсуждения.

Kubernetes Ingress глазами новичка

Reading time3 min
Views109K

Что такое ingress?


Ingress это базовый тип ресурса в кубертенесе. Если просто объявить объект типа Ingress в кубернетисе то ничего не произойдет.


Что бы этот ресурс начал работу в кластере кубернетиса должен быть установлен Ingress Controller, который настроит реверсивный прокси в соответствии с Ingress объектом.


Ingress Controller состоит из 2х компонентов — реверсивного прокси и контроллера который общается с API сервером кубернетеса. Реверсивный прокси слушает входящий трафик на портах которые указаны в настройках (обычно в настройках по умолчанию указан только порт 80). Контроллер может быть как отдельным демоном (как в nginx), так и встроенным в прокси (как в traefik).


Не все клауд провайдеры кубернетеса предустанавливают Ingress Controller по умолчанию.


Контроллеры могут запускаться либо как DaemonSet либо как Deployment. DaemonSet идеально использовать как единственный Ingress Controller, что бы реверсивное прокси слушало на всех IP адресах воркеров. Deployment отлично подходит если перед Ingress контроллером стоит балансировщик — от провайдера кубернетиса (GKE, AKS), MetalLB если онпремис или обычный haproxy/nginx установленный на сервере (требутеся ручная настройка). При этой установке возможно установить несколько Ingress Controller.

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

Фильтр Блума в Java с помощью Guava

Reading time3 min
Views7.4K
Всем доброго дня.

Мы запустили новый курс — «Алгоритмы для разработчиков», предназначенных для тех подтянуть знания по разнообразным структурам и алгоритмам обработки данных, решению алгебраических задач и задач динамического программирования для различных языков. Так что сегодня мы делимся небольшой заметкой о работе фильтра Блума в Java.

Введение

В этой статье мы рассмотрим структуру фильтра Блума из библиотеки Guava. Фильтр Блума — это вероятностная структура данных с эффективным использованием памяти, которую мы можем использовать для ответа на вопрос “Содержится ли данный элемент в множестве?”.

В фильтре Блума не бывает ложноотрицательных, поэтому, если он возвращает false, можно быть уверенным на 100%, что этого элемента в множестве нет.

Однако, фильтр Блума может возвращать ложноположительные, поэтому по возвращении true высока вероятность, что элемент действительно есть в множестве, но вероятность не 100%.

Чтобы узнать подробнее о работе фильтра Блума, ознакомьтесь с этим руководством.

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

Внедрение зависимостей через поля — плохая практика

Reading time6 min
Views80K
Перевод статьи Field Dependency Injection Considered Harmful за авторством Vojtech Ruzicka

image

Внедрение зависимостей через поля является очень популярной практикой в DI-фреймворках, таких как Spring. Тем не менее, у этого метода есть несколько серьезных компромиссов и поэтому стоит чаще избегать его.
Читать дальше →

Я работаю в ТехЦентре Дойче Банка

Reading time5 min
Views44K
Всем привет! Я Александр Белотуркин, работаю Дев Менеджером в ТехЦентре Дойче Банка, куда пришел более 4-х лет назад. В первый день было непривычно. По сравнению с IT компаниями, где большинство приходит в джинсах и футболках, было очень необычно увидеть людей в строгих рубашках и говорящих по телефону на английском. Но со временем атмосфера стала привычной и дружной. Меня заинтересовала, с одной стороны, близость к конечному пользователю, умение и желание этого пользователя объяснять суть проблем, которые мы совместно решаем, а с другой стороны — коллеги, которые так трепетно относятся к качеству своей работы. И, забегая немного вперед, скажу: нет, мы не пишем бухгалтерию под win98, мы делаем самую эффективную в мире платформу для торговли валютными деривативами и еще много всего интересного.
Читать дальше →

Сравнительный анализ рынков б.у. Автомобилей Германии и Франции в B и C сегменте

Reading time7 min
Views8.2K
Привет, Хабр!

В этом посте я хотел поделиться опытом использования нескольких питоновых инструментов для сравнительного анализа рынка подержанных машин в Европе на примере Германии и Франции.

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

Олег Докука о реактивной разработке на jug.msk.ru

Reading time2 min
Views4.9K
13 декабря 2018 года на встрече сообщества московских Java-разработчиков jug.msk.ru Олег Докука рассказал об особенностях реактивной разработки на языке программирования Java.


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

Теория шардирования

Reading time26 min
Views153K
Кажется, мы так глубоко погрузились в дебри highload-разработки, что просто не задумываемся о базовых проблемах. Взять, например, шардирование. Чего в нем разбираться, если в настройках базы данных можно написать условно shards = n, и все сделается само. Так-то, он так, но если, вернее когда, что-то пойдет не так, ресурсов начнет по-настоящему не хватать, хотелось бы понимать, в чем причина и как все починить.

Короче, если вы контрибьютили свою альтернативную реализацию хэширования в Cassandra, то вряд ли тут для вас найдутся откровения. Но если нагрузка на ваши сервисы уже прибывает, а системные знания за ней не поспевают, то милости просим. Великий и ужасный Андрей Аксёнов (shodan) в свойственной ему манере расскажет, что шардить плохо, не шардить — тоже плохо, и как это внутри устроено. А еще совершенно случайно одна из частей рассказа про шардинг вообще не совсем про шардинг, а черт знает про что — как объекты на шарды мапить.

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

Учебный курс по React, часть 2: функциональные компоненты

Reading time6 min
Views41K
В одном из наших предыдущих материалов мы задавали вам вопрос о том, целесообразно ли сделать на базе этого курса по React серию традиционных публикаций. Вы нашу идею поддержали. Поэтому сегодня мы представляем вашему внимание продолжение курса. Здесь мы поговорим о функциональных компонентах.

image


Часть 1: обзор курса, причины популярности React, ReactDOM и JSX
Часть 2: функциональные компоненты
Часть 3: файлы компонентов, структура проектов
Часть 4: родительские и дочерние компоненты
Часть 5: начало работы над TODO-приложением, основы стилизации
Часть 6: о некоторых особенностях курса, JSX и JavaScript
Часть 7: встроенные стили
Часть 8: продолжение работы над TODO-приложением, знакомство со свойствами компонентов
Часть 9: свойства компонентов
Часть 10: практикум по работе со свойствами компонентов и стилизации
Часть 11: динамическое формирование разметки и метод массивов map
Часть 12: практикум, третий этап работы над TODO-приложением
Часть 13: компоненты, основанные на классах
Часть 14: практикум по компонентам, основанным на классах, состояние компонентов
Часть 15: практикумы по работе с состоянием компонентов
Часть 16: четвёртый этап работы над TODO-приложением, обработка событий
Часть 17: пятый этап работы над TODO-приложением, модификация состояния компонентов
Часть 18: шестой этап работы над TODO-приложением
Часть 19: методы жизненного цикла компонентов
Часть 20: первое занятие по условному рендерингу
Часть 21: второе занятие и практикум по условному рендерингу
Часть 22: седьмой этап работы над TODO-приложением, загрузка данных из внешних источников
Часть 23: первое занятие по работе с формами
Часть 24: второе занятие по работе с формами
Часть 25: практикум по работе с формами
Часть 26: архитектура приложений, паттерн Container/Component
Часть 27: курсовой проект
Читать дальше →

Введение в Git Merge и Git Rebase: зачем и когда их использовать

Reading time4 min
Views375K
Часто у разработчиков возникает выбор между Merge (слияние) и Rebase (перемещение). В Гугле вы увидите разное мнение, многие советуют не использовать Rebase, так как это может вызвать серьезные проблемы. В статье я объясню, что такое слияние и перемещение, почему вы должны (или не должны) использовать их и как это сделать.

image

Git Merge и Git Rebase преследуют одну и ту же цель. Они предназначены для интеграции изменений из одной ветки в другую. Хотя конечная цель одинаковая, принципы работы разные.

Некоторые считают, что вы всегда должны использовать Rebase, другие предпочитают Merge. В этом есть свои плюсы и минусы.

Git Merge


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

Микросервисы на Go с помощью Go kit: Введение

Reading time12 min
Views61K

В этой статье я опишу использование Go kit, набора инструментов и библиотек для создания микросервисов на Go. Эта статья — введение в Go kit. Первая часть в моем блоге, исходный код примеров доступен здесь.

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

Java Challengers #2: Сравнение строк

Reading time7 min
Views24K

Java Challengers #2: Сравнение строк


У нас как всегда много опаздывающих к началу курса, так что только вчера провели второе занятие среди нового потока "Разработчик Java". Но это так, мелочи жизни, а пока что мы продолжаем публикацию серии статей Java Challengers, перевод которых подготовили для вас.


В Java класс String инкапсулирует массив char (прим. переводчика — с java 9 это уже массив byte, см. Компактные строки в Java 9). Говоря по простому, String — это массив символов, используемый для составления слов, предложений или других конструкций.


Инкапсуляция — это одна из самых мощных концепций объектно — ориентированного программирования. Благодаря инкапсуляции вам не нужно знать как работает класс String. Вам достаточно знать методы его интерфейса.


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

О-нотация в проектировании программного обеспечения

Reading time7 min
Views12K
Разбираясь с SOLID, я часто натыкался на то, что неследование этим принципам может приводить к проблемам. Проблемы известны, но плохо формализованы. Эта статья написана с целью формализовать типичные ситуации, возникающие в процессе написания кода возможные решений и вытекающие из этого последствия. Мы поговорим, чем нам грозит плохой код и как проблемы растут вместе с ростом программы.
Читать дальше →

Ошибка, которая сохранилась в Windows с 1974 года

Reading time5 min
Views125K
Сейчас 2018 год, а это сообщение — ошибка, сохранившаяся с 1974 года. Ограничение, которое встречается даже в самой последней Windows 10, появилось ещё ДО «ЗВЁЗДНЫХ ВОЙН». Баг древний как Уотергейт.


В те времена только изобрели штрих-коды, в Америке работала лишь одна телефонная компания, Тед Банди ещё бегал на свободе, а рекорд Бейба Рута по хоум-ранам стоял последние дни.

Эффективные личные финансы. Уровень 1

Reading time8 min
Views206K
Я решил написать эту статью для сотрудников нашей компании, так как понял, что они очень образованные и умные люди, но не перестают беспокоиться о пенсионной реформе
эффективно обращаться с финансами их никто не научил. Как руководитель, заботящийся не только о своем благосостоянии, но и о благосостоянии своих коллег, я постарался взять на себя роль финансового наставника. А мои наставления о том, как стать финансово-эффективным вы можете прочесть под катом.


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

Information

Rating
Does not participate
Registered
Activity