Код Меркури – Telegram
Код Меркури
2.26K subscribers
3.45K photos
486 videos
2 files
3.59K links
Микромедиа об IT для айтишников-релокантов и удаленщиков по всему миру 🪐

Познакомиться поближе: https://mercdev.com
Download Telegram
Google Brain разрабатывает процессоры для ИИ с помощью ИИ

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

Скайнет не за горами

Исследование
Самая хайповая новость вчерашней E3 — новая игра FromSoftware (Dark Souls, Bloodborne, Sekiro), созданная совместно с Джорджем Мартином — автором «Игры Престолов».

Анонс состоялся еще два года назад, и вот мир наконец увидел первый геймплей-трейлер.
Андерхуд-неделя с ведущим фронтендером Меркури

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

Это экспериментальный формат. Если зайдет, будем устраивать такие андерхуд-недели по разным направлениям. Со следующей недели снова будут новости технологий и разработки.

Спасибо, что вы с нами ❤️
Всем привет! 🙂
Меня зовут Лёша Кузнецов. Я руководитель направления фронтенд-разработки в Меркури (для меня именно так привычно называть компанию — Мéркури).

Несмотря на слово "руководитель" в названии моей должности я все еще пишу код (что меня несомненно радует). А кроме программирования я ещё:
- провожу технические интервью,
- занимаюсь стажировками,
- выступаю на митапах,
- и др.

Сегодня я расскажу немного подробнее о себе, про свой опыт и про текущие проекты. А дальше планирую придерживаться плана:

Среда
- поиск работы для начинающего фронтендера,
- преимущества студентов-айтишников,
- курсы и стажировки.

Четверг
- технический стэк фронтенд-разработки в Меркури,
- мобильная разработка React Native
- [возможно что-то еще]

Пятница
- внутренние фан-проекты,
- митапы Mercury PRO,
- [наверняка что-то еще]

Можно накидывать свои темы для обсуждения и/или вопросы в комментарии к этому посту — проведу Q&A сессию как у настоящий блогер 😀

#underhood
В 2013 году я закончил СГТУ (привет, Саратов!), переехал в Самару и устроился… PHP разработчиком в компанию Меркури Девелопмент. Забавно, но за 8 лет я не написал ни одной строчки на PHP. Зато было всякое другое.

Самая странная технология, с которой пришлось поработать — Adobe ColdFusion. Основная идея этого фреймворка в том, что якобы не надо учить никаких языков программирования. К обычному HTML просто добавляется набор специфичных тегов для доступа к бэкенду и всё работает!

Вот так, например, выглядит объявление функции из официальной документации:
<cffunction name="validateCredentials" access="remote" returntype="boolean" output="false">
<cfargument name="username" type="string" />
<cfargument name="password" type="string" />

<cfset var validated = false />
<!--- Ensure that attempts to authenticate start with new credentials. --->
<cflogout />

<cflogin>
<cfif arguments.username is "user" and arguments.password is "secret">
<cfloginuser name="#arguments.username#" password="#arguments.password#" roles="admin" />
<cfset validated = true />
</cfif>
</cflogin>

<cfreturn validated />
</cffunction>

С этим проектом чуть не случился один неприятный факап (как будто они бывают приятные). На момент старта у нас была единственная версия кода, которая досталась от предыдущего разработчика и лежала в виде папочки на FTP сервере. Решив почистить лишнее, я благополучно снес продакшен! Лежавший рядом архив с чуть более старой версией кода в итоге меня спас. И вроде бы никто ничего и не заметил. Но ощущение холодка по телу — бесценно.

#underhood
Channel name was changed to «Mercury Underhood»
После этого я долгое время работал фулстеком с бэкендом на .NET стэке. Это продукт, в котором мы делали приложения для мероприятий. Первый ивент, с которого всё началось был http://404fest.ru/, а дальше пошло поехало... Были многотысячные форумы, тусовки для желающих "расширить сознание", корпараты (и наши собственные в том числе) и многое другое.
Специфика ивент индустрии в том, что опции подвинуть дедлайн здесь нет вообще! Потому что после того, как ивент прошел, приложение уже никому не нужно было. Либо мы релизимся в срок, либо не релизимся вообще. Это был (и остается) очень крутой проект, который позволил мне прокачать технические навыки и дал буст моей карьере.

А затем случился React. Проект, на котором в пике было до 10 фронтенд-разработчиков, один неопытный тимлид (я) и горы задач. Через полтора года команда супер прокачалась и ребята уже сами стали лидить следующие проекты. А я понял, что если не научиться делегировать задачи, то можно поехать кукухой.

В общем, челленджи рулят!

#underhood
В какой-то момент я начал смотреть в сторону React Native.
Мне очень хотелось делать мобильные приложения и RN давал возможность исполнить мечту! К тому же, мобильные разработчики в Меркури всегда были что называется “first-class citizen” и мне тоже хотелось войти в этот клуб (тщеславный фронтендер).

Как только в React Native появилась поддержка Android, я начал продвигать его внутри компании. Это было не очень просто. Учитывая негативный опыт с другими кроссплатформенными решениями (Xamarin, Cordova), уровень недоверия к React Native был очень высоким.
Однажды мы зарубились с iOS-разработчиком сделать одно и то же приложение на React Native, на Xamarin и на Swift. Дальше был план отдать билды в руки менеджеров, чтобы поиграться и угадать, где кроссплатформ, а где натив. К сожалению, полноценного эксперимента не получилось, но решение на React Native понравилось и моему ПМу и iOS-разработчику (что удивительно). Это была первая победа.
Затем удачненько пришел заказчик с запросом на доработку его React Native приложения и волей-неволей у нас появился первый коммерческий опыт разработки на RN.

Сейчас React Native — большое направление разработки в Меркури. У нас есть опыт внедрения RN в виде отдельных экранов внутри нативного приложения, проекты под Windows / Mac, решения с адаптацией RN-приложения под веб. На моем счету, 6 (или 7) React Native проектов, доведенных до продакшена, и один закрытый гештальт.

А в 2019 году глыбы Меркури даже устраивали баттл React Native vs. Real Native https://www.youtube.com/watch?v=6EJEDdWPgIw

#underhood
Сейчас я обратно вернулся в веб. Очередной челленджевый проект — делаем стримминговый сервис для независимых музыкантов. По техническому стэку там полный фарш: Next.js, Apollo, GraphQL, Terraform, AWS. Фронтенд сейчас очень сложный и многообразный. Надо постоянно держать себя в тонусе, учиться, смотреть по сторонам, чтобы отвечать требованиям рынка.

#underhood
Что нужно начинающему фронтендеру, чтобы найти работу?
Для начала хорошее резюме!

Формат hh обычно не подходит для начинающих разработчиков, он только подчеркивает их слабые стороны (отсутствие опыта). Хотя джуны — самый ценный ресурс IT компаний из регионов.

В резюме стоит указать
- фото,
- образование со средним баллом,
- уровень английского,
- курсы по программированию / пройденные стажировки,
- профиль на гитхаб с примерами кода (вёрстка, стили, немного JS — будет достаточно),
- сопроводительное письмо,
- выполненное тестовое задание, подробно разобранное

Писать нужно всё как есть, обманывать нехорошо.
Как интервьюер я обычно смотрю на общую грамотность кандидата и ищу предпосылки к дальнейшему развитию (хотя всё это, конечно, очень субъективно). Я недавно составлял пример резюме, которое приглянулось бы именно мне. https://gist.github.com/kuznetsov0209/5b85abbf42a75ecbd66d252d2d40b7e1

Для каждого указанного в резюме навыка желательно иметь пруфы. Можно попросить компанию прислать тестовое задание или поискать готовое в интернетах. У Hexlet, например, есть целый список тестовых заданий для прокачки https://github.com/Hexlet/ru-test-assignments

#underhood
👍3
Что добавить в портфолио, если ты новичок? Грустные новости — типовые проекты с курсов по фронтенду никому не нужны. Они, как правило, делаются по шаблону и под присмотром наставника, поэтому оценить навыки кандидата по таким проектам сложно.

Если вы студент-айтишник, то у вас отличное преимущество — вы можете составлять портфолио из лаб, курсачей и дипломов. Правда, здесь придётся проявить настойчивость, инициативу и немного рискнуть. Я так на первом курсе остался без стипендии, когда решил в качестве курсовой написать симулятор бильярда на Си. Постепенно урезая скоуп, к «релизу» осталось всего два шара с физикой столкновения. В итоге все равно не успел, но получил респект от препода и строчку в резюме.

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

#underhood
👍1
Основной стэк фронтенд-разработки в Меркури это React + TypeScript. Основной в том смысле, что в компании больше всего специалистов, готовых работать именно на этом стэке. И большинство проектов пишутся на React + TS. А на бэке у нас главенствует .NET.

У React есть несколько весомых преимуществ:
1. Относительно невысокий порог входа.
2. Более простой найм (как следствие п.1).
3. React Native. Учитывая специфику заказной разработки, очень круто иметь возможность доучивать фронтендеров до мобильщиков и подключать к новым проектам.

У нас был кейс, когда мы одной фронтенд-командой закрыли весь скоуп проекта: бэкенд на Node.js, админка на React и два приложения на React Native. Проект предназначен для азартных игроков в гольф — https://mercdev.com/portfolio/greenlinks. Идея в том, чтобы делать ставки на количество ударов, за которые ты докатишь мячик в лузу. Было одно пользовательское приложение и приложение для гольф-кара. По факту на гольф-каре был просто планшет на Android с альтернативным набором фич и мультиплеер-режимом. Было интересно, но такое фуллстечество скорее исключение из правил.

#underhood
Мобильная разработка на самом деле довольно сложная штука. В том числе на React Native. С одной стороны у нас есть знакомый JS / TS и React, а с другой — новые платформы со своими особенностями и UX-паттернами.

Каждый из нас — пользователь веба. И мы можем делать хорошие веб-приложения / сайты опираясь на собственный опыт, представляя себя на месте пользоваться. Со смартфонами всё иначе. Мы либо яблодр… пользуемся айфонами, либо нищебр… андроидами. В итоге происходит UX-деформации в сторону той или иной платформы.

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

#underhood
Пятница! Расскажу про некоторые фановые штуки, которые есть Меркури.

В перерывах между кофейком и разговорами у кулера мы обычно играем в кикер. Когда в какой-то момент у меня начало получаться, я решил, что свою крутость надо зафиксировать статистическими данными! 💪 На коленке было запилено веб-приложение для трекинга матчей и голов. Оно было жутко некрасивым и неудобным, но главное — всё работало! Игра перешла на новый уровень.

Когда нашу приложуху увидели дизайнеры, они обплевались и нарисовали свою версию. Админы подогнали списанный iPad 3. Мы обновили приложение (перевели на React Native, кстати). А вишенкой на торте стали матерные комментарии в озвучке бота Максима! 🔥 Считаю это вообще отдельным произведением искусства.

Потом мы стартовали первый турнир по кикеру! Потом второй. Потом третий… Возили кикер на дизайн-выходные, 404 фест и собственные корпоративы. На финальном матче последнего турнира (на котором решалась судьба золота) были даже свои ультрас в мерче с кричалками и плакатами 18+!

Код приложеньки, кстати, можно посмотреть по ссылке (если захотите собрать и не соберется — маякните).

Еще у нас был пост в инсте про кикер, там красивые фоточки 🙂

#underhood
Еще одна из клевых фановых штук — это Своя игра, которую мы проводим на наших митапах. Это такой аналог древней программы из телека с котом в мешке, Вассерманом и ручками Эрих Краузе.

Для митапа нам нужна была какая-то развлекательная программа, и идея сделать свою версию “Своей игры” всем понравилась. Мы накидали вопросы, нашли мантии (всё по-взрослому) и сделали заставку как на НТВ (почти). Кстати, заставка и выбор вопросов на большом экране были сделаны буквально за один вечер, причем на той же коленке, что и приложуха для кикера.

За полтора года мы провели митапы в Самаре, Тольятти, Саратове, Казани, Краснодаре, Новосибирске, Екатеринбурге, Нижнем Новгороде и Иннополисе (на очереди Питер). Судя по фидбэку, игра зашла не только нам, но и участникам. Оценка везде была на уровне 9-9.5 из 10!

Кстати, здесь есть кто-нибудь из игроков? 🙂

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

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

#underhood
Угадаете, что из этого НЕ происходило на наших митапах? Только один вариант выдуманный, все остальное — правда.
Anonymous Poll
11%
Вручили Airpods Pro за ноль баллов в Своей игре
41%
Афтерпати закончилась дракой
14%
Перебегали Оку, чтобы успеть на самолет
34%
Нас оштрафовал РКН