• Фантастические тимлиды и где они обитают

      Всем привет! Меня зовут Анатолий Панов, я работаю в ИТ уже больше 15 лет. За это время прошел путь от разработчика до руководителя тимлидов. Работал в таких компаниях как Badoo, Lazada. С начала этого года я в Авито. Руковожу разработкой новых проектов и разработкой для вертикалей Авто и Недвижимость.


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


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


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


      Читать дальше →
    • Роль тимлида в рекрутинге

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

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



        Доклад Катерины Гавриловой на Saint TeamLead Conf дает вполне конкретные, не слишком трудозатратные рекомендации для руководителей, которые хотят нанять к себе в команду своих людей и не потратить на поиски полгода.

        Читать дальше →
      • Лекции Техносферы. Подготовительный курс «Алгоритмы и структуры данных» (весна 2016)

        • Tutorial


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

        Курс ведет Сергей Бабичев, доцент кафедр информатики и вычислительной математики, а также теоретической и прикладной информатики в МФТИ. Под катом вас ждет восемь лекций:

        • Лекция 1. «Введение. Исполнители. Абстракции интерфейсов. Рекурсия»
        • Лекция 2. «Жадные алгоритмы»
        • Лекция 3. «Сортировки»
        • Лекция 4. «Поиск. Списки»
        • Лекция 5. «Деревья»
        • Лекция 6. «Хеш-таблицы»
        • Лекция 7. «Динамическое программирование»
        • Лекция 8. «Алгоритмы на графах»
        Читать дальше →
        • +52
        • 35.3k
        • 7
      • Карьерные стероиды. Лифты

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

          В конкурсах, обычно, любят участвовать не айтишники, а всякие там… Не знаю, как назвать. Активные, короче. Те, кто любил, когда еще учился в школе или институте, участвовать в самодеятельности, кружках и осенних балах. Да, обычно это – женщины (это не stereotyping, а статистика).

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

          Но есть у лифтов три неприятные особенности.
          Читать дальше →
        • Многомодульность в Android с точки зрения архитектуры. От А до Я

            Всем привет!

            Не так давно мы с вами осознали, что мобильное приложение — это не просто тонкий клиент, а это действительно большое количество самой разной логики, которое нуждается в упорядочивании. Именно поэтому мы прониклись идеями Clean architecture, прочувствовали, что такое DI, научились использовать Dagger 2, и теперь с закрытыми глазами способны разбить любую фичу на слои.

            Но мир не стоит на месте, и с решением старых проблем приходят новые. И имя этой новой проблемы — мономодульность. Обычно об этой проблеме узнаешь, когда время сборки улетает в космос. Именно так и начинаются многие доклады про переход на многомодульность (раз, два).
            Но почему-то все при этом как-то забывают, что мономодульность сильно бьет не только по времени сборки, но и по вашей архитектуре. Вот ответьте на вопросы. На сколько у вас AppComponent большой? Не встречаете ли вы периодически в коде, что фича А зачем-то дергает репозиторий фичи Б, хотя вроде такого быть не должно, ну или оно должно быть как-то более верхнеуровнево? Вообще у фичи есть какой-то контракт? А как вы организовываете общение между фичами? Есть какие-то правила?
            Вы чувствуете, что мы решили проблему со слоями, то есть вертикально все вроде хорошо, но вот горизонтально что-то идет не так? И просто разбиением на пакеты и контролем на ревью не решить проблему.

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

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

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

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

              Последнее время ко мне часто обращаются начинающие тимлиды и руководители продуктов с вопросами: а что почитать на тему управления? что почитать на тему планирования? что почитать про управление рисками?

              Я читал и читаю довольно много книг. Хорошие книги, которые мне понравилось, записываю, чтобы потом порекомендовать. Я решил сделать небольшую подборку must have книг, которые должен прочитать каждый начинающий руководитель. Одно из требований, чтобы эти книги были не только полезными, но и интересными. Книги должны заинтересовать человека развиваться в управлении, ни в коем случае не демотивировать.
              Читать дальше →
            • Чистая прагматичная архитектура. Мозговой штурм

                Закрадывалась ли вам в голову идея переписать своё жирное энтерпрайзное приложение с нуля? Если с нуля, то это ж ого-го. Как минимум кода будет раза в два меньше, верно? Но ведь пройдёт пара лет, и оно тоже обрастёт, станет легаси… времени и денег на переписывание не так много, чтобы делать идеально.

                Успокойтесь, начальство всё равно не даст ничего переписать. Остаётся рефакторить. На что лучше всего потратить свои невеликие ресурсы? Как именно рефакторить, где проводить чистки?

                Название этой статьи — в том числе отсылка к книге Дяди Боба «Чистая Архитектура», а сделана она на основе замечательного доклада Victor Rentea (твиттер, сайт) на JPoint (под катом он начнёт говорить от первого лица, но пока дочитайте вводную). Чтения умных книжек эта статья не заменит, но для такого короткого описания изложено весьма хорошо.

                Идея в том, что популярные в народе вещи вроде «Clean Architecture» действительно являются полезными. Сюрприз. Если нужно решить вполне конкретную задачу, простой изящный код не требует сверхусилий и оверинжиниринга. Чистая архитектура говорит, что нужно защищать свою доменную модель от внешних эффектов, и подсказывает, как именно это можно сделать. Эволюционный подход к наращиванию объема микросервисов. Тесты, которые делают рефакторинг менее страшным. Вы ведь уже знаете всё это? Или знаете, но боитесь даже подумать об этом, ведь это же ужас что тогда делать придётся?

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



                Читать дальше →
              • Кривая Гильберта vs Z-order


                  Неоднократно доводилось слышать мнение, что из всех заметающих кривых. именно кривая Гильберта наиболее перспективна для пространственной индексации. Мотивируется это тем, что она не содержит разрывов и потому в некотором смысле “хорошо устроена”. Так ли это на самом деле и при чем здесь пространственная индексация, разберёмся под катом.
                  Читать дальше →
                • Как это было: раскрываем детали Droidcon Moscow 2016

                  22 сентября в Москве прошла третья ежегодная конференция Android-разработчиков Droidcon Moscow 2016. В Технополисе собрались более четырехсот жадных до знаний участников, Google Developer Expert’ов и представителей СМИ. Мы впервые присоединились к организации этой конференции в этом году. И вот наш отчет.



                  Деловая программа проходила в два потока и была разделена на четыре секции: Android, VR, IoT и Firebase. Секцию Android открыл Google Developer Expert Денис Неклюдов с докладом об адаптации приложений под новые возможности API 24 (Android 7.0 Nougat). Обсуждение жизненного цикла Activity в условиях MultiWindow перенеслось в Issue Tracker андроида, что привело к интересным результатам: оказалось, что вызов onStop не произойдет, если пользователь нажмет кнопку “Домой” во время работы с многооконными приложениями, а вот on Pause вызовется. Юрий Шмаков из Arello Mobile рассказал об их собственной библиотеке для реализации MVP. Тема жизненного цикла и проблем наследования от множества библиотечных базовых Activity вызвала бурный интерес у слушателей.
                  Читать дальше
                • Укрощаем асинхронные процессы в Android с RxJava. Опыт Яндекса

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


                    Мы разберём, как создавать свои холодные и горячие последовательности, обратим
                    внимание на некоторые нюансы при использовании RxJava, а также рассмотрим
                    насколько мощными инструментами являются предоставляемые данной библиотекой
                    операторы.


                    Рассказывать обо всём я буду на примере приложения Яндекс.Недвижимость и его
                    главного экрана с картой.


                    Скриншот

                    Для начала посмотрим на экран и разберёмся, что на нём происходит и что нам
                    предстоит реализовать.


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