Как стать автором
Обновить
4
0

Пользователь

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

Мой опыт собеседования в Amazon

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

О чём эта статья

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

Это история о моем опыте собеседования в Амазоне, почему мне в целом не понравилось по сравнению с другими FAANG. Так же тут будут ответы на “а что конкретно спрашивали на интервью, какие были задачки, что на систем дизайне было”, потому что мне не дали подписать NDA, все с пруфами, скринами и прочее.

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

Начало, предложение от Amazon

В один прекрасный день 6 сентября, мне пришел такой сообщение в Линкедин.

Читать далее
Всего голосов 93: ↑90 и ↓3+87
Комментарии177

Pinch-to-zoom под микроскопом

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

Привет! Меня зовут Алексей Дёмин, я Android-разработчик в Prequel - мобильном редакторе для фото и видео. Сегодня я бы хотел детально разобрать реализацию поведения Pinch-to-zoom. Такое поведение широко распространено в приложениях и выглядит привычным и естественным для большинства пользователей. Поэтому, на первый взгляд, его реализация на основе предоставляемого системой api не должна вызывать трудностей. Однако при попытке разработать решение, применимое в большинстве кейсов, возникают интересные нюансы, которые я постараюсь осветить в данной статье.

Pinch to zoom!
Всего голосов 3: ↑3 и ↓0+3
Комментарии0

Навигация на Jetpack Compose by Google

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

Всем привет, в данной статья покажу как организовать навигацию в Android приложении при использовании в своём проекте только compose UI. Методики навигации применены из официального источника от Google.

Расскажу как передавать объекты и примитивные данные между состояниями экранов, как советует google и свой метод, который мне подошёл как наиболее оптимальный и менее затратный.

Читать далее
Рейтинг0
Комментарии1

Использование Jetpack Compose в продакшне: первые впечатления

Время на прочтение7 мин
Количество просмотров8.6K
Мы в МТС Банке давно ждали релиза Jetpack Compose, чтобы использовать его в продакшне. В прошлом месяце такая возможность наконец появилась — мы решили обновить дизайн одного из экранов нашего приложения «МТС Банк для бизнеса» для Android.



В статье я хотел бы поделиться нашим опытом внедрения Jetpack Compose, мыслями о его преимуществах, а также привести несколько лучших практик, которые помогут вам в его освоении. Надеюсь, эта статья будет полезна тем, кто хочет попробовать Jetpack Compose в своем проекте.
Читать дальше →
Всего голосов 13: ↑13 и ↓0+13
Комментарии10

Custom view на Compose

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

В июле Google выпустил стабильную версию Compose. Это вызвало большой интерес в сообществе. Все вокруг стали поговаривать, что эта технология захватит Android-разработку, и скоро все будут писать на Compose.

Я принялся за изучение, заглянул на developer.android.com и нашел различные туториалы по использованию этой библиотекой, но не увидел примеров, как можно создавать кастомные view. Поэтому решил попробовать сделать это и поделиться с вами результатом.

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

Читать далее
Всего голосов 10: ↑10 и ↓0+10
Комментарии5

Подумайте дважды, нужен ли вам Hibernate

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

Я часто видел, как в проекте начинали использовать Hibernate, не особо задумываясь о том, действительно ли он нужен. А через какое-то время, когда сервис разрастался, то появлялся вопрос — не было ли это ошибкой.

Давайте порассуждаем о плюсах и минусах Hibernate в целом, чтобы в следующий раз добавлять его в новый микросервис осознанно. Возможно, имеет смысл обойтись простым Spring JDBC без всей сложности JPA?

Читать далее
Всего голосов 26: ↑22 и ↓4+18
Комментарии4

Оптимизируем отображение 10 000 объектов на карте

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

В приложении ЦИАН размещены десятки тысяч объявлений о недвижимости. Нашим пользователям важно видеть географическое расположение этих объявлений на карте. Самым популярным способом отображения оказался вариант, когда каждое объявление показано отдельной точкой. Внутри команды такой вариант мы назвали «Горошек на карте».

Проблема в том, что объявлений очень много: в одной только Москве более 10 000. Из-за этого наша карта работала не очень стабильно: при зуме и движении были тормоза, дёргалась и лагала картинка. С этим нужно было что-то делать. Чтобы разобраться в причинах проблем и найти решения, мы засучили рукава и начали копаться в используемых механизмах. Под катом подробно опишем весь путь оптимизации карт в Android-приложении: от постановки задачи до результата.

Читать далее
Всего голосов 30: ↑30 и ↓0+30
Комментарии18

[Личный опыт] Штутгарт: город, который мечтает о русских программистах. Porsche, жилье, налоги и немецкие гопники

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

Антон Костин, девелопер Ruby on Rails, переехал из Москвы, и уже почти три года живет в Штутгарте, городке с населением 630 тысяч жителей.


Он рассказал о зарплатах, особенностях юга Германии, общем уровне сервисов, знаменитой немецкой пунктуальности (которой нет), районах гопников, «холодной» цене квартир, «большой неделе» в домах, и приложении, с которым можно сэкономить 4000 евро.


Есть ли жизнь за пределами Мюнхена и Берлина? Как выглядит обычная Германия, и стоит ли там жить?




Читать дальше →
Всего голосов 55: ↑51 и ↓4+47
Комментарии374

Как настраивать диплинки: инструкция для Firebase, AppsFlyer и Facebook

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

На связи Алексей Поддубный, iOS-разработчик AGIMA. Я расскажу, как в iOS работают диплинки, и разберу тонкости настройки популярных сервисов: где создавать ссылки с динамическими параметрами, как настраивать конфигурацию приложений и что делать после настройки. Инструкции основаны на оригинальных туториалах, которые мы перевели и адаптировали.

Читать далее
Всего голосов 9: ↑9 и ↓0+9
Комментарии0

Над чем задуматься перед тем, как брать ML-задачу в работу

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

В Контуре мы решаем самые разные задачи с помощью машинного обучения: распознаем документы и ищем подделки паспортов, анализируем банковские транзакции, предсказываем вероятность банкротства компаний, классифицируем товары, автоматически отвечаем на вопросы в чате, развиваем собственный speech-to-text… и еще десятки проектов, которые привносят в продукты новые фичи или помогают оптимизировать процессы.

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

В этой статье я приведу ответы на вопросы, над которыми стоит задуматься в самом начале, если вдруг вам пришла в голову идея "прикрутить к проекту ML-фичу" (добавить ложечку Data Science / AI / другие модные названия).

Читать далее
Всего голосов 11: ↑10 и ↓1+9
Комментарии2

Как проходят архитектурные секции собеседования в Яндексе: практика дизайна распределённых систем

Время на прочтение25 мин
Количество просмотров125K
Привет, меня зовут Костя Кардаманов, я работаю в отделе технологий разработки Яндекса. Обычно такой же фразой я приветствую и кандидатов на собеседовании. А сегодня я хотел бы рассказать вам, как и зачем мы проводим интервью по дизайну систем с бэкенд-разработчиками. Сразу скажу: для фронтендеров, мобильных разработчиков и ML-инженеров подобный тип собеседований применим слабо, так что эти специальности мы здесь обсуждать не будем.

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

Что такое дизайн информационных систем


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

Опытный читатель может сказать — в мире полно платных и бесплатных решений, из которых я могу собрать систему как из деталей конструктора, зачем мне понимать устройство этих деталей?
Читать дальше →
Всего голосов 94: ↑92 и ↓2+90
Комментарии37

Proto DataStore + AndroidX Preferences на Kotlin

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

С тех пор, как команда Google AndroidX представила на замену библиотеки SharedPreferences новую библиотеку DataStore, прошел почти год, однако популяризация новой либы явно не стоит в активных задачах. Иначе я не могу объяснить 1) неполноценный гайд, следуя лишь по которому, у вас вообще не соберется проект из-за отсутствия всех необходимых зависимостей и дополнительных build-задач для системы сборки, и 2) отсутствие не hello-world подобных примеров в CodeLabs, кроме одного, и то, заточенного не под пример использования библиотеки с нуля, а под миграцию с SharedPreferences на Preferences DataStore. Аналогично все статьи на Medium буквально или другими словами повторяют все то же, что написано в гайде Google, либо используют неправильные подходы для работы с DataStore, предлагая заворачивать асинхронный io-код в runBlocking прямо на ui-потоке.

А еще неплохо бы соединить "тыл" с "фронтом", так сказать: у Google имеется библиотека AndroidX Preferences, которая позволяет в два клика накидать готовый material-design фрагмент для управления настройками приложения, чтобы излюбленным способом кодогенерации освободить разработчика от написания boilerplate. Однако эта библиотека в качестве хранилища предлагает использовать устаревшие нынче SharedPreferences, а официального гайда по соединению с DataStore нет. В этой заметке я хотел бы своим способом устранить два описанных недостатка.

Читать далее
Всего голосов 1: ↑1 и ↓0+1
Комментарии3

Смена работы тимлидом: как готовиться, как онбордиться, и что дальше

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

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

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

Поразмышляв, я сделал этот прыжок, и в данной статье поделюсь полученным опытом. Душераздирающей истории здесь не будет. Статья задумана как полезная, и, надеюсь, такой она и получилась.

Читать далее
Всего голосов 31: ↑30 и ↓1+29
Комментарии13

Обновляемся на новую версию API Android по наставлению Google

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

Скоро выходит Android 12, но в этом августе уже с 11-й версии разработчикам придётся использовать новые стандарты доступа приложений к внешним файлам. Если раньше можно было просто поставить флаг, что ваше приложение не поддерживает нововведения, то скоро они станут обязательными для всех. Главный фокус — повышение безопасности.

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

Читать далее
Всего голосов 39: ↑39 и ↓0+39
Комментарии16

[Личная история] Как живется разработчику в Чехии. Поиск работы, любовь к Python, кнедлики и и чешское пиво

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


Чехия кажется центром Европы — развитым, красивым и с достойными зарплатами. Но насколько хорошо здесь жить IT-иммигранту? И не лучше ли выбрать соседнюю Германию?


Мы поговорили с Алексеем Рембишем (/u/rembish/), который в Чехии вырос до руководителя бэкенд-разработки и архитектора ПО.


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


Будет много фото. Здесь есть, что показать!

Читать дальше →
Всего голосов 44: ↑35 и ↓9+26
Комментарии177

Как мы интегрировали Huawei Mobile Services в два этапа

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

Всем привет, меня зовут Ленар Садыков, и я вместе с командой развиваю и поддерживаю приложение для клиентов Lamoda на базе Android. Сегодня расскажу, как мы добавили поддержку Huawei Mobile Services и Huawei App Gallery.


В мае 2019 года Департамент торговли США внес Huawei в черный список. Вследствие Google отказался от сотрудничества с Huawei, а Huawei, в свою очередь, перестал распространять устройства с сервисами Google. В ответ на это китайский гигант представил миру Huawei Mobile Services, в том числе — магазин приложений Huawei App Gallery.


Чтобы не заставлять наших клиентов искать обходные пути с установкой приложения, мы приняли решение заявиться на новую площадку.


image

Читать дальше →
Всего голосов 7: ↑7 и ↓0+7
Комментарии0

[Личный опыт] Биотех, велосипеды, датский национализм: как живётся разработчику в Копенгагене

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

Задача: найти работу за границей, с амбициозными челленджами и высокой зарплатой, ближе к европейской части России и простыми условиями релокейта. Какие есть варианты?


Наш герой искал возможность начать международную карьеру. И оказался… в Дании! Плюсы: размеренность жизни, мягкий климат и высокий доход. Минусы: всё те же мягкий климат и скандинавское спокойствие, а ещё произношение: датчане говорят, будто набив горячей картошкой рот. Оправдались ли ожидания от страны? Как переехать в Копенгаген и стоит ли? Передаём слово Диме.




Читать дальше →
Всего голосов 16: ↑12 и ↓4+8
Комментарии18

Навигация в многомодульном приложении на Jetpack без магии и DI

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

Когда вы начинаете создавать приложение, в котором хотя бы несколько экранов, всегда встает вопрос - как лучше реализовать навигацию. Вопрос становится интереснее и сложнее, когда вы собираетесь делать многомодульное приложение. Примерно полтора года назад я рассказывал как можно реализовать навигацию c помощью Jetpack в многомодульном проекте. И вот спустя время, я наткнулся на свою реализацию и понял, что можно на том же Jetpack летать по модулям проще: без магии и DI.

Читать далее
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

Жизнь без AppStore и Google Play: работаем с Huawei Mobile Services и AppGallery

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

С конца 2019 Huawei поставляет Android-смартфоны без сервисов Google, в том числе без привычного всем магазина приложений Google Play. В качестве альтернативы китайская компания предлагает собственные разработки — Huawei Mobile Services (HMS), а также магазин AppGallery. В этом тексте мы расскажем, как с этим жить и работать.

Читать далее
Всего голосов 7: ↑7 и ↓0+7
Комментарии9

CameraX+ML Kit для распознавания номера карты в действии

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

Привет, меня зовут Виталий Беляев, я Android-разработчик в red_mad_robot. В этой статье я расскажу про опыт интеграции CameraX с ML Kit на замену библиотеки card.io, и что в итоге из этого получилось.

Читать далее
Всего голосов 8: ↑7 и ↓1+6
Комментарии7
1
23 ...

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность