Фронтенд по-английски 🇬🇧 British front-end
Open in Telegram
Привет! 👋 Я @snikidev, фронтенд разработчик из Лондона. Это мой персональный блог, в котором я делюсь мыслями не только о фронтенд, но и о других аспектах работы в UK и UK компаниях с перспективы фронтенд разработчика.
Show more327
Subscribers
-124 hours
-37 days
-530 days
Posts Archive
Мне сказали что я плохой сеньор…
…и они были правы. Потому что такой болтяру я на свои engineering principles еще не клал.
Дело в том что компания у нас не айтишная. Но очень хочет ей быть. Или думает, что хочет. Но когда мы даем estimates - их это не устраивает. И дедлайн все равно ставится из воздуха, даже не уменьшая scope.
И хотят, чтобы мы эти дедлайны еще успевали и постоянно давят на нас. И в этот раз я поддался давлению и начал срезать углы. Но добросовестно создавал tech debt tickets и собирался к ним вернуться как только мы deliver к нашему дедлайну.
Но я забыл, что бизнес и дедлайны не заканчиваются. После этих начинаются новые.
И вот у нас начался очередной push сделать следующий кусок работы. И к своим тикетам я так и не вернулся. И начал создавать новые.. И новые…
А после очередного delivery, еще новее…
Пока я не осознал, что я тупо создаю legacy. Мы просто переносим наш сайт с PHP legacy на Node legacy.
Более того, новые дедлайны я/мы уже не успевали. Одна из причин была тот самый легаси, который все таки нагнал нас и порушил наш прод настолько, что нам пришлось даже «un-release» то, что мы до этого released.
И мы начали чинить баги, пайплайны и т.д. вместо того, чтобы делать ту новую фичу, которую от нас ждали.
И теперь, как сеньор, который должен был следить за всем этим, я виноват в двух вещах: 1) не успел дедлайны; и 2) плохо сделал работу.
А мог бы только не успеть дедлайн…
Кароч мораль в том, что когда бизнес на вас давит - делайте работу хорошо и правильно даже если к дедлайну не успеваете.
А если бизнесу не нравится - пусть уменьшают scope.
Если не уменьшат, то в неуспетых дедлайнах виноват только бизнес. Ваше дело сказать сколько это займет (estimate) и потом сделать свою работу как нужно.
И нет вас, не уволят. А если уволят - это к лучшему. Зато вы не забили на свои principles. Они важнее.
А я со следующей недели буду разгребать весь тот 💩, что я накодировал.
Но это позже, а пока Cheers!🍻
📍The Clachan, Soho
GopherCon 2023
So… что было вчера: TL;DR
Scaling with Goroutines
Когда учим Go сразу нужно думать о scale issues. Собственно поэтому мы выбрали Go с его concurrent goroutines а не Node.
Как scale’ить:
1.Начинаем с простого использования goroutines, для выполнения функций в параллели.
2. Нужно быстрее? Деплоим все в containers/kubernetes. Теперь у нас больше силы.
3. Нужно еще быстрее? Scale’им наши контейнеры либо horizontally либо vertically.
4. Нужно еще быстрее? Разделяем наши контейнеры/pods каждый под определенную ответственность. One container - one functionality.
Это нам рассказывала presenter из Канады, которая работает в однлм блокчейн стартапе который продает NFT из спорта?
Хотите купить какой-то момент из футбольного матча? Я нет, я этого не понимаю. Но сайт и графика у них прикольные, как фронтендер я заценил.
Хотя бы потому, что вся анимация - это видео. И красиво и делается быстро! Nikita Approved! 👍😁
https://nflallday.com/listing/moment/1147
Fun with Algorithms and Data Structures
Давно про алгоритмы вспоминали?
Вот вам repo, пройдитесь еще раз по
- Node Chain
- Big O notation (time + space complexity)
- Linked List
- Stack - LIFO- one half of Linked List essentially
- Queue - FIFO
- Binary Tree
- AVL Tree (HuffmanTree)
- Heap - priority queue
- Graphs
- Shortest path algorithm
Go Quiz
Talk - развлекалочка. Тебе показывают код, и ты должен угадать, что он returns.
Всего не запомнил, но было интересно узнать о нюансах. Вот ссылка, просмотрите, кому интересно.
Сколько угадали? 🙌
Эти 3 talks были highlight дня. Все остальные я либо проспал либо нихрена не понял. 😁
GopherCon!
Сегодня я взял отгул и буду слушать про/изучать Go! Это не совсем фронтенд, но это тоже web. В Go мы можем делать много каких сервисов, APIs, scripts которые могут быть использованы в компаниях/проектах т.д. где я работаю/потенциально могу работать.
Это вам не Rust. 😁
JavaScript мешает мне учить новые языки.
У моей жены появилась идея для приложения. У нас у обоих яблокофоны, поэтому подумал сделаю на swift. Выучу новый язык. Отвлекусь/отдохну от JS/TS и всего этого nonsense…
I’m having fun so far. Даже взял себе iOS ментора, уже один раз с ним созвонились, поработали вместе, позаваливал его вопросами… Класс 👍
НО. Наступает момент когда я обязательно застряну где-то, а проект хочется закончить. Хочу все и сразу. И я начинаю беситься, что в JS я бы это уже сделал.
Так было уже с Rust. Так было с go. Так было с Vue, когда я думал, что это что-то стоящее. В результате все на React и Gatsby/Next переписал. И я жду, что так скоро будет и со swift. 🤦♂️
Я люблю учить новые языки. Но языки просто так нет смысла учить, с ними нужно что-то делать/создавать.
И желание увидеть готовы результат проекта и мысль о том, что я могу сделать, например, ту же lambda функцию на JS намного быстрее, не дает мне спокойно наслаждаться изучением других языков.
Жена говорит, нужно будет потом на андроид выпустить приложение. Мне что теперь Kotlin учить? Я не планировал.
Короче психану и на React Native с Expo все переделаю. 😁
Кароч, пока только Coming Soon page есть. Подписывайтесь, если интересно 🙌
https://safechoice.app
Сделано кстати с Next.js и Beehiiv. А также с моим дизайнером. Да, у меня теперь есть дизайнер, и он крут, зацените!
PS Flutter не предлагать, он уже dead до того как мог стать alive. Как говорится, “the only thing you can deliver with Flutter is disappointment”. И люди в этом начинают убеждаться, imo.
Блин, заснял интерьер после того, как уже запостил😅
Зачетный интерьер, в общем, в недавно сгоревшем и отремонтированном The Admiralty pub na Trafalgar Sq.
Всех с воскресеньем!
Если вы забыли то сегодня все еще лето. Хотя погода в Лондоне заставляет в этом усомниться😅
Этим летом мы пьем Fuller’s Golden Rays summer ale. Говорят “refreshing”, как мне показалось, не врут.
Ваши выходные и лето в целом как проходят?
PS кароч этот канал о фронтенде и пиве/пабах. 😁
ОДИН hack который поможет вам получить повышение и бонус!
Как вам такой таблоидный заголовок? 😂
Выполнение работы, перемещение тасок с TODO -> In progress -> QA … не поможет нам выделиться. Это лишь отличный способ чтобы не быть уволеным. Но если мы хотим повышения, роста, то нам нужно как-то выделиться.
КАК? 👇
Быть ВЕЗДЕ.
Начнем со своей команды. Меня поставили в одну команду. Для этого у нас есть slack channel. В нем помимо retro и обсуждения спринта бывают и инциденты.
У нас недавно сломался pipeline. Никто не мог понять почему контент не получает в стейджинге то, что у нас уже сделано на dev. Оказалось у нас синхронизация сломалась. Я сделал фикс. Открыл даже issue в GitHub.
Мне наш Principal похлопал по плечу, сказал “Молодцом!”
Но еще есть и другие каналы. Я недавно гуляя по нашему slack нашел #data канал, где у нас тоже что-то сломалось. И это что-то был Airflow DAG Automation script, написанный на питоне человеком, который уже 10 месяцев (!!) у нас не работает. Вместе с нашим девопсом мы починили это хотя меня никто туда и не звал. Большую работу конечно он сделал but still.
Теперь я не только разработчик на одном проекте, теперь я senior tech person, который может помочь в разных аспектах компании.
Изучая Go по вечерам, меня наш VP бросил также на go скрипты, которые тоже безхозно валяются и никто их починить не пытался. С этим я еще не работал, т.к. времени не было, но это значит, что я еще и там могу помочь компании.
Помогать компании в разных аспектах равносильно зарабатыванию и/или экономии компании денег. А деньги все любят. Поэтому чтобы удержать таких людей компании дают бонусы и повышения.
Но мне пока ничего не дали, так что это не точно. 😂️️
Но я пока буду придерживаться этой теории. 👍
Закончилась виза…
…начался ILR! 🎉💃
И стоило сее удовольствие £10К на троих + £750 за next day appointment на сдать отпечатки пальцев. 🤯🤦♂️
Нам одобрили, несмотря даже на отсутствие в 290 дней за один раз, что по правилам не разрешено.
Но одобрили, потому что у нас была «медицинская» причина, что является разрешенной причиной отсутствия.
Теперь я здесь на перманентке. 👍👍👍
Теперь я могу сидеть на benefit’ах и работать на ДРУГИХ профессиях, что по Global Talent было запрещено.
Пойду в фермеры. Где тут можно купить доброго хряка…? 😁
А нам вообще нужно становиться хорошими программистами??
И вообще, что такое «хороший программист»? Субъективно, я бы сказал. 🙃
Я заметил, что в нескольких компаниях, где я работал, тебе не нужно было быть прям ИНЖЕНЕРОМ(!).
Там нахрен никому не сдались design patterns, advanced знания JavaScript, архитектурные и т.д.
Азы знаешь, там, что-то где-то слышал про Promises, как на коленке запустить MongoDB и взять оттуда дату можешь (а зачем custom индексация, это что?), откапать на StackOverflow фикс на TypeScript error можешь… И норм! Ты нанят! Погнали, у тебя месяц чтобы запустить этот говно проект, чтоб бизнес уже смог это монетизировать/получать деньги от инвесторов/черпать хайп…
И это были одни из самых классных компаний. Они всегда были честны перед собой и понимали, что им просто нужно картинку показать на экране и бизнес заработает, «people схаааваааююют!»
Они особо не парились с интервью, зарплаты предлагали выше рынка, и коллектив, все были с юморком, полны жизни, интересов, было о чем поговорить, и всегда на чиле. И тоже честны перед собой и понимали зачем они там. 🙂
В таких компаниях ты главное delivery date не пропусти, и все будет и у тебя и у компании тип-топ! А если проблемы какие - то их уже по мере поступления…
Например, когда scalability проблемы начнутся - …да не начнутся они! В таких компаниях таких проблем нет, там своя атмосфера!
И таких компаний дохрена, я бы даже сказал больше половины из тех кто разрабов нанимает. Работа всем найдется!
Вот и зачем вам все эти advanced patterns, clean code и подобное изучать? Помогайте бизнесам достигать их цели, не важно как, пусть даже плохо с инженерной точки зрения, и кайфуйте! От респекта со стороны менеджмента, от хорошей зарплаты, от коллег/работы в команде и пятничных выходах в пабы, от бонусов даже может…
Единственный минус, поработав так вот на чиле, работу в proper software компаниях сложнее будет найти. И я не только про Amazon, любая компания, которая действительно нуждается в алгоритмах, оптимизации, и т.д.
Но вам туда нужно??
Подумайте. 🙃
Такая вот рандомная мысля в субботу вечером.
PS все что я сказал не применимо на Российском рынке. Там всегда и всем нужны «высококачественные программисты». Даже там, где вся работа заключается в покраске buttons. 🥲
Хотите посмотреть как мы спасаемся от жары в в UK?
Кондиционеров же ни в одной квартире и ни в одном доме в этой «развитой стране» (!!) нет, и устанавливать нельзя. Поэтому мы покупаем вот это ☝️
Кстати, это предмет роскоши. Здесь не все могут/хотят себе позволить даже такой A/C, и предпочитают «перетерпеть» эти 1-2 месяца. Каждый год.
Я кароч тут понтуюсь, если вы не поняли. 😎
Интересная работа
Всех с пятницей! 🍺 Сегодня у меня хорошее настроение, сейчас расскажу почему 😁
После того как мы запустили проект, интересная работа, где мы эксперементировали с фреймворками, тестировали лимиты, scaffold’или новые репозитории и под-проекты, закончилась.
Началась ебала, которая есть в каждой компании и без которой, собственно, никак: планирование тикетов, обсуждения border-radius, почему карусель не так на мобилке выглядит (опять эта 🤬 карусель!), ну и, как я писал, я погряз в код ревью и всех этих процессах.
Вот уже 2 недели как, после отпуска, я снова занимаюсь интересной работой. У нас новые требования, нужны новые продукты.
Один из них - lambda function или api service, который будет доставать данные из легаси и пихать их в наш новый красивенький Mongo.
Сначала мы делали proof of concept на fastify, потом поняли, что сервис будет использоваться только периодически, поэтому нам нахрен не нужен постоянно running server, и мы переключились на serverless lambdas.
Их будет много, значит нам нужна monorepo. Сделали monorepo c turborepo.
SAM не позволяет модулярность, а нам все же хочется чтобы infrastructure и deployment был под каждую функцию индивидуально. Поэтому смотрим на serverless.
Но еще есть pulumi, может он нам лучше подойдет? Сделаем ветку под каждого и сравним.
У нас gitlab, нужно это все с нашим turborepo настроить, чтобы все нужные билды и тесты на автомате срабатывали.
…
Все еще в процессе. Результат будет работающая monorepo, где разработчики, которых подтянут на проект позже, смогут просто создавать функции и по одной pnpm команде деплоить их и вся инфраструктура будет собираться как нужно.
Ну и потом накинем повседневной ебалы, как всегда, и, надеюсь, что нужны будут новые проекты и я снова уйду делать их. 😂
Хотя я в своей профессиональной жизни я мало работал над lambda’ми, поэтому наверное буду не против позависать чуть дольше на этом проекте. 🙃
Вот это интересно - R&D (Research and Development). Вот это заставляет меня хотеть прийти на работу. 👍
Что я хочу от этой жизни
Сейчас сижу рефлексирую о своей роли в этом мире компаниях.
Сегодня в компании, после того как сделали Proof of Concept и MVP, я уже не занимаюсь активной разработкой. Большинство своего времени я трачу на code reviews, pair programming, feature planning и прихожу на кучу митингов.«Professional meetings attendee» такой😅
Как мне наш Principal сказал, я выполняю роль тех лида.
НО. Это в этой компании. Здесь иметь меня как разработчика особо не выгодно, особенно учитывая, что нам сейчас дали outsource. 5 разработчиков делают тикеты быстрее чем я один, тут не поспоришь. Поэтому бизнесу куда удобнее, чтобы я контролировал code quality, etc. нежели сам разрабатывал.
В некоторых стартапах, которые не всегда могут и/или хотят позволить outsource, выгоднее меня не отвлекать, и дать мне bang out кучку тикетов. Ну или на некоторых этапах проекта, как это было у нас, когда мы готовили PoC.
Anyway, я тут не пытаюсь выпендриться (ну может только чуть-чуть 😁), просто иногда задумываюсь о том, что я хочу и что мне больше нравиться.
А у вас бывало такое, чтобы «течение» уносило вас не туда, на что вы подписывались или ожидали от работы/жизни? 😅
PS Привет вам из Турции, одной из немногих стран, куда можно с нашими паспортами 😁
Я вообще должен был быть сейчас на нашем corporate retreat на Мальте, со всей компанией, но в Лондоне, Манчестере и Эдинбурге ВСЕ (!!) appointments во ВСЕХ шенгенских странах были разобраны с Апреля по Сентябрь-Октябрь.
Поэтому мы устроили свой retreat с блэкджеком и шл… турками. 😅
Никто не хочет Vue
История в одном скриншоте.
Storyblok, CMS который мы используем, разрешает делать плагины, НО написаны они должны быть в Vue.
Вот я и предложил.
PS если вы еще не совсем разгадали это, то в этом канале мы не любим Vue 😂
Пайплайнчик крутится, деплойчик мутится, лавэшка платится
Такие слова у меня сегодня в голове, потому что мы планируем запустить наш проект LIVE! Я уже со счету сбился сколько бессмысленных pull requests я за сегодня и вчера открыл, чтобы удовлетворить хотелки всех, по типу
- «у карусели только 1/3 торчит, а должна 1/2 следующей карточки»
- «hrefLang нужно переделать в hreflang» (HTML case insensitive, напоминаю)
- «у карусели вообще не должны карточки торчать» (как задолбала эта карусель, ею вообще кто-то пользуется?)
- «картинка должна быть hidden в мобильной версии»
И это не мы плохо тикеты сделали, это просто каждый хочет по своему. И перед запуском кто громче кричит так и делаем 😅
Четверть дня я трачу на фиксы, а остальное пополам между «check in»’ами которые каждый час, и смотреть на то, как крутится колесико в pipeline.
Но я особо без претензий или негативных эмоций, там... Деньги мне платят за мое время, пусть компания и выбирает на что я трачу его. I don’t care. 😥
Да и вообще так не всегда. Только перед запуском. В остальные дни такого гораздо меньше.
НО. Я, когда над своими проектами работаю, таким не занимаюсь.
В принципе, мне мои проекты никаких денег и не приносят, так что… 😂
PS кароч, мы сегодня походу не запускаемся 👍
Этот пост не имеет никакой информационной ценности, я просто хотел поделиться, что я нашел пинту за £2.50! В Лондоне!
Apparently, у них Ale Festival. Ну и это все же Wetherspoon. 🤷♂️
📍The Stargazer, O2
Как сделать так, чтобы тебя уволили за сексизм
Ну или сделали выговор. О насущном.
В некой компании, где я когда-то работал, (в какой же? 🤯) мы очень долго запускали продукт. Ничего не было в проде. Ну и обсуждали, что проблема в настройке AWS, нежели на фронте или бэке, и у нас уже работают DevOps с разработчиками, чтобы сделать красиво как нужно. И что больше людей нам на момент не нужно. Бросив больше людей на проект, переведя из другой команды или аутсорса, проблема не решиться.
Ну и в одной из дискуссий я использовал фразу “Nine women can’t deliver a baby in a month”. Думаю смысл фразы понятен.
И мне СРАЗУ дали знать, что такую фразу говорить нельзя и она оскорбительна и sexist.
Урок: в современных реалиях и workplaces, прежде чем использовать устоявшееся выражение, дважды подумайте. Оно может быть оскорбительно.
Книги или списка неразрешенных фраз я пока не нашел. Поэтому лучше вообще не используйте выражения. И не шутите. И в принципе говорите поменьше. А то вдруг вы кого-то обидите.
PS Fun fact, узнал пока писал пост, эту фразу сказал Warren Buffet. Гребаный сексист. 😁
А еще у нас новый король! 👑
И мы это отметили в пабе с Coronation Ale by Shepherd Neame, сама лучшее, на мой «вкус и цвет», пиво и сеть пабов.
God Save the King! 👑
О “million dollar ideas”
Я пропал. Я знаю. Несколько раз обящал, что буду более активен, но нет. Inconsistency- это мой стиль👍
Я недавно с нашим commercial manager поговорил, мне рассказали, как наша компания делает деньги, и откуда платиться наша зарплата.
Хотите расскажу, что вас сделает богатым?
Affiliate marketing!
Пока гегемоны tech’а вроде Амазона и Фейсбука Мета увольняют тысячи своих сотрудников, МЫ (!) делаем миллионы и каждый месяц тратим сотни тысяч на acquisition новых сайтов, компаний и продуктов.
Например недавно купили thepogg.com. Да, он выглядит стремно, как будто из прошлого века… НО! Знали бы вы насколько он прибыльный. (Сорри, эта инфа confidential, рассказать не смогу.)
Что ведет к моему главному point этого поста:
Те разводилы и инфоцыгане, которые пытаются продать нам курсы по affiliate marketing оказались правы! Это охренеть какой прибыльный бизнес! Скорее покупайте их курсы! (Не надо!)
Наша компания зарабатывает ТОЛЬКО на affiliate marketing. У нас 100+ сотрудников, зарплаты выше рынка, не разу не получали инвестиций извне и мы «не слышали» про кризис.
Все, что у нас есть - это php front-end (скоро в прошлом), CMS с текстами и MySQL с главными вендорами, провайдерами и игроками рынка. Все.
Такие вам мысли в субботу… 🙃
О менторстве, senior engineers, и динамике команды
Из недавнего личного опыта. 😅
Когда работаете в команде, где у вас есть все от junior до senior до principal или даже до CTO, я заметил, что есть некоторые unspoken rules, во имя оптимизации процессов, времени, performance, etc.
Во-первых, все мы по разному стоим, e.g. я стою раза в полтора дешевле Principal Engineer. Поэтому, чтобы попросить помощи у Principal, у меня должна быть ах*еть какая причина, т.е. она должна стоить тех денег == времени которое Principal потратит на меня.
Во-вторых, pressure от бизнеса на каждого члена из комманды разный. И каждый существует в компании для облегчения и помощи с задачами вышестоящему по должности. И если вы этого не делаете, т.е. если тот, кто выше вас не может на вас положиться и делегировать часть задач вам, то свою функцию вы не выполняете.
Так что прежде, чем попросить помощи, мы должны
1️⃣ Облазить ВЕСЬ google в поиске доступных функций, модулей, паттернов, решений, и т.д.
2️⃣ Разложить все на плюсы и минусы, сделать свой вариант, и proof of concept может, чтобы предложить свое решение проблемы, прежде чем начинать дискуссию и спрашивать вопросы.
3️⃣ Расписать все настолько четко, что когда я буду говорить со “старшим” из меня описание проблемы шло как pitch перед инвесторами: быстро и покрывала всю информацию, что нужно донести.
Не нужно подходить к человеку со словами вроде “а я не знаю responsive design”. Потому, что ответ будет один - иди гугли. Цель и работа senior level folks не учить нас основам javascript, лучшим patterns в React, system design и подобным.
Их цель - достигать бизнес цели.
И помогать нам с достижениями тех же целей. НЕ путать с «помогать нам с нашей карьерой и обучением».
Так что если нас приходится капец как учить - бизнес будет думать с перспективы вложенных в нас ресурсов versus результатов, что мы привнесем позже.
Если польза не в нашу сторону → на выход.
Не у всех есть такие ресурсы.
Вы можете вспомнить про mentorship. Да, данная роль подразумевает чуть больше аспекта обучения. Но эта роль должна быть explicitly дана компанией определенному человеку, либо человек сам должен предложить себя на эту роль, to volonteer themselves, так сказать. Не все готовы быть менторами.
Ну и, опять, не у каждой компании есть менторы и ресурсы, чтобы менторить. Даже предложить себя иногда нельзя, компания запретит.
Мораль: каждый сам за себя. C’est la vie. 🤷♂️
Работаем над персональным брендом
Я часто постю в LinkedIn, делаю стримы на четырех платформах и пишу блог посты, как на свой сайт, так и на dev.to, или на сайты платформ про которых пишу (за денюжку, конечно).
Зачем? Вы спросите.
Потому что я хочу настроить себе inbound marketing/sales своего рода. Искать работу долго и напряжно, поэтому всегда лучше, когда те, кто в тебе и твоих знаниях заинтересованы, пишут тебе сами.
So far работает медленно, не всегда, но как-то работает.
Продолжаю делать то же. Consistency! И продолжаю искать эффективность в этом.
Сегодня хочу сделать необычный стрим, где буду исследовать AI writing tools, которые обещают сделать всю работу за меня. Конечно, зная качество сегодняшнего AI, постить то, что выдало не стоит, иначе это будет как раньше писание блог постов ради SEO - absolute nonsense, не читабельный для человека.
Поэтому сегодня мы будем не только генерировать контент, но также тестировать и adjust’ить.
Подсоединяйтесь в 8pm Greenwich Time к стриму, если в эту пятницу скучаете, постараюсь сделать сегодняшний стрим развлекательным. 🔥
twitch.tv/sniki_dev
