Code&Travel
1.31K subscribers
2 photos
278 links
Работаю frontend-разработчиком (10 лет) и flutter developer (1 год). Имею расширение для Google Chrome на 80к пользователей. Посетила 50 стран и продолжаю. Веду digital nomad lifestyle.

Связаться - @suzannoshka, рекламы нет, только ВП.
Download Telegram
Хочу поделиться с вами концепцией 12-ти недельного года, о которой я прочитала в книге «12 Weeks Year».

Суть в том, что вы весь год логично подразделяете на 12 этапов (по месяцам) и в рамках каждого этапа ставите основную задачу на этот месяц. А далее бросаете все силы на ее выполнение и оцениваете результат в конце.

Например, у вас есть цель «выучить английский». Вы формируете ее более конкретно, предположим, «пройти 5 обучающих курсов по английскому языку» и целый месяц занимаетесь только этим. На следующий месяц берете другую цель (можно и усложненную версию предыдущей), например, «написать 5 статей на ИТ-тематику». И весь месяц посвящаете именно этому. Таким образом, а) вы лучше концентрируетесь на определенной цели, т.к. постоянно о ней думаете и не распыляетесь; б) не переживаете об успехах в остальных целях: они и так стоят в расписании на этот год; в) результаты получаются более выдающимися, т.к. вы их оцениваете каждый месяц, а не под Новый год.

Ключевые моменты:

1. Вам обязательно нужен план, на месяц и на неделю. Каждый день сверяйтесь с вашим планом.

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

3. Придумайте систему оценки. Каждый день вы должны замерять, насколько эффективно продвинулись к вашей месячной цели.

4. Важно не думать, а делать, — спасибо, кэп!

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

6. Чтобы выполнить П.5 заранее пропишите, когда вы будете в потоке (не отвлекать) и когда у вас появится время на проверку e-mail и чтение чатов. Знание того, что через час вы сможете проверить почту, позволит вам не переживать за срочные вопросы и не начать проверять ее сейчас.

7. В воскресенье вечером или в понедельник утром формируйте ваше расписание на неделю, хотя бы ориентировочно. Если вы что-то не можете воткнуть в свой план на неделе, для этого действия не найдётся места и в реальной жизни (самая главная для меня мысль из книги 😀).

8. Действовать согласно плану надо вне зависимости от ситуации. У всех в жизни случаются не идеальные дни. Здесь вспоминаю цитату из книги «Собака по имени Мани»: «Ты должна делать то, что намеревалась, даже тогда, когда у тебя проблемы. Ведь когда все в порядке, делать это может каждый.»

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

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

Это был мой краткий конспект книги «12 weeks year», прочитать полную версию можно по ссылке.

Конечно, можно задавать больше 1 цели на месяц, но точно не больше трех. Здесь важнее измеряемость ваших задач в конце месяца, чем концентрация только на одном деле.

Как вам подход?) Лично я попробовала жить по нему и чуть не сошла с ума 😅. Прочитав книгу, я слишком много на себя взяла, чтобы добиться феноменальных результатов, так что потом просто выгорела, испортила здоровье и отдыхала от всех целей аж 3 недели.
Всем добрый день! Давно не виделись. За это время столько всего произошло. Последние 2 месяца я живу словно в сериале, события в моей жизни наслаиваются друг на друга, не давая мне возможности выдохнуть и пережить их. Я подумала: если бы я стала писать автобиографию, она оказалась бы весьма занимательной для вас. Возможно, кто-то смог бы подчеркнуть определенные жизненные уроки.

Я решила поменять концепцию блога. Он теперь будет не о программировании, а обо мне. Я буду описывать собственный опыт в проектах, в хобби, в том, как я преодолеваю трудности. Буду рассказывать больше в формате “здесь и сейчас”.

Что же такого интересного тут произойдет?

Я откатываюсь к первоначальному названию блога. В далеком 2018 он назывался Code&Travel. Я планировала активно путешествовать и работать. Планирую и сейчас. В ближайшее время у меня значится путешествие в Европу на 5 недель. Весьма вероятно, захочу поделиться, как я все это комбинирую.

Я по-прежнему работаю программистом. Но больше уже не там, где работала 8 лет подряд. Моя история об этом проекте достойна целой книги. Когда-нибудь она выйдет в рамках отдельных постов.

За последний год я стала в т.ч. мобильным разработчиком. Теперь я называю себя frontend + flutter developer. Разработанное мною приложение находится на состоянии апрува в AppStore и Google Play. Считаю изучение нового языка программирования наибольшим достижением за 2024 год.

Более года назад я запустила расширение для Google Chrome под названием Pixel Measurement . За это время оно набрало 70 000 еженедельных пользователей, из которых 50 000 пользуются им ежедневно. OMG, целый город! Буквально на днях я разработала версию 2.0 и вот-вот ее опубликую. Еще парочка недель — и внедрю монетизацию. Я уже не раз получала вопросы о моей “истории успеха”, даже давала интервью. Планирую рассказывать об этом больше, раз эта тема интересна людям.

В августе я вписалась в один женский коучинговый проект под названием “Баланс”. Одно из ежедневных заданий состояло в том, чтобы вечером писать некий отчет “почему ты сегодня молодец” и “что тебя сегодня порадовало” другим людям. Я осознала, что мои отчеты очень сильно мотивируют других. Кто-то даже не смог жить без них после завершения проектов (да-да, отправляем отчеты до сих пор). Поэтому я решила, что публикация неких дайджестов “что я сделала за неделю или месяц” будет мотивировать моих подписчиков вставать с дивана).

Я запускаю новый проект. Подкаст на английском языке. Я всегда была человеком, который комбинирует в себе и техническое, и гуманитарное одновременно. Имея что-то одно, перестаю быть полноценной. Как писала выше, я часто путешествую. И мой подкаст будет об интересных местах, которые я увидела лично, или новых исторических/культурных знаниях, которые я получила. Запускаю я его не столько ради популярности или денег. Моя основная цель — прокачать английский. Поэтому даже если за год у меня будет всего 100 слушателей, я все равно буду рада. Каждый выбирает свой способ изучения языка.

Как я писала выше, последние 2 месяца перевернули мою жизнь с ног на голову. Все было стабильно в течении последних 8 лет — и тут бац! Я планирую стать ближе к читателям, раскрыть все подробности и поделиться, как боролась с тяжелыми событиями. Они, к сожалению, могут случиться у каждого.

А если говорить просто, по-человечески, я всего лишь ищу своих людей. Хочу на базе своего блога создать некое пространство единомышленников. Собрать людей, которым близки те же цели и идеалы. Поэтому я больше не энциклопедия по программированию. Смотрите, насколько нам с вами по пути.
Буквально на днях у меня взяли интервью по поводу моего расширения Pixel Measurement. Почувствовала себя знаменитостью) С одной стороны, я не считаю, что сделала что-то великое и об этом стоит рассказывать всем. С другой, людям очень интересно узнать, как выпустить продукт на 70к пользователей в неделю. Смотреть здесь.
Отвечу на вопросы, которые озвучили в комментариях к интервью выше.

1. Почему именно это приложение для Google Chrome выстрелило?

Я делала четыре, на одинаковых условиях. Мне не понятно. Да, я использовала SEO-анализ для поиска названия для расширения, но я делала то же самое и для остальных трех. Предполагаю, что тут дело в теории вероятности и удаче одновременно.

Пишут, что в момент поиска расширения будущие пользователи хотят пользоваться тем продуктом, у которого 70к пользователей, а не 70. Согласна с этим. Но кто-то же когда-то был первым, кто согласился воспользоваться продуктом на 100 человек?

Я делала расширение на основании анализа конкурентов, собирала максимально полезные функции и правила их баги. По факту, у меня получился продукт с одной главной функцией, простой в использовании и без багов. Но это явно не достаточная причина, чтобы набрать такое количество пользователей. В день приходит по 300 новых человек. Если пользователь вводит слова “pixel measurement” в строку поиска браузера Google Chrome, он видит мое приложение. Все, больше оно нигде не продвигается.

2. Кто пользователи моего расширения?

Для меня очередная загадка. Могу строить лишь догадки: тестировщики, дизайнеры, веб-разработчики. Но мне, как фронту, текущего функционала мало. Я бы не стала использовать свое расширение. Но та версия 2.0, которую я запущу на днях, уже будет способной закрывать мои потребности. Наиболее полезным будет встроить опрос в расширение, собрав обратную связь о пользователях. Записала это в to-do list.

3. Почему приложение, набирающее популярность в Chrome Store и явно успешное, заброшено разработчиком, и последнее обновление было год назад?

А вы попробуйте разрабатывать расширение, имея три работы, одна из которых типа fulltime, вторая — halftime с новым языком программирования, а третья — еще одна halftime, но уже на привычном React. При этом постоянно путешествуя и переезжая (10 стран за год, 5 месяцев заграницей, 23 разных города за 2024 год). И каждый день ходя на новые экскурсии/хайкинг, когда в поездке. Вам поспать будет хотеться, а не собственное расширение разрабатывать.

К тому же, мне, как разработчику, хочется иметь собственный проект, за который не стыдно и которым можно гордиться. Сейчас пока стыдно) Уж больно он прост. Я хотела доработать продукт настолько хорошо, чтобы выжать практически максимум из своих возможностей. Поэтому я решила накатывать изменения не планомерно по частям, а единоразово выпустить более навороченную версию. С моим графиком на ее создание у меня ушло полгода. Вот сейчас я буквально закрываю последние баги, готовность 95%. Текущая версия — это всего лишь 15% от возможностей новой.
И снова здравствуйте. Не прошло и двух недель, как я пишу в этот блог опять 😀.

За это время я все же закончила версию Pixel Measurement 1.0.0 (расширение для Google Chrome). Расскажу, из чего состоял процесс.

В августе я поняла, что из всех своих целей больше всего я хочу создать пассивный доход из Pixel Measurement. Но я не хотела монетизировать продукт в имеющемся сыром виде. Мне хотелось создать проект, которым можно гордиться. Когда пользователь удаляет мое расширение, он попадает на страницу опроса, на которой я спрашиваю, что пошло не так. Я проанализировала список ответов и составила to-do list улучшений из повторяющихся пожеланий, добавив к ним свое видение. После этого села исправлять баги и внедрять доработки.

Так прошёл целый месяц. В сентябре я улетела в путешествие на целый месяц. В октябре в еще одно. Возвратившись в Москву в конце ноября, у меня было две недели на то, чтобы добить хотелки пользователей. Параллельно проконсультировалась с людьми из комьюнити билдеров (кто также создает расширения для Google Chrome), каким образом мне модифицировать интерфейс. В моей версии настройки и различные конфигурации были распределены в разных местах экрана (что-то — на странице настроек, другое — в левом углу экрана, третье — в правом). Мне посоветовали создать единую панель со всеми возможными настройками.

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

Затем еще 2-3 недели наскоками я внедряла новый дизайн и фиксила баги. Их оказалось бесчетное количество. Казалось бы, такой простой интерфейс, не так много сценариев использования, но порой находишь такие вещи, о которых даже не задумывался. Тестировщиком выступала я сама + раздала нескольким друзьям на тест.

Самый суровый баг поджидал меня в момент обновления расширения. Предположим, пользователь использует версию 0.0.6, Google Chrome автоматом скачивает версию 1.0.0 и обновляет расширение, — и тут вся верстка едет и все перестает работать до следующей перезагрузки страницы. Благо, для тестирования подобных вещей есть отдельный браузер: Google Chromium. Когда выкатываешь новую версию на 75 000 пользователей, берешь на себя большую ответственность. В такой момент хочется, чтобы их было меньше) Ведь один серьезной баг, пропущенный по неосторожности, может стоить тебе 35 000 пользователей. Я создала to-do list из 280 пунктов на тест + добавила 15 сайтов, на которых стоит протестить расширение. Дело в том, что если сайт использует глобальные стили, они могут затрагивать и интерфейс расширения Google Chrome. Нужно все перепроверять.

6 февраля я опубликовала свежую версию расширения на 10% пользователей. Сейчас, не получив отрицательной обратной связи (видимо, все баги учла 😀), раскатала до 40%. Можете меня поздравлять 🥳.

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

Прошу извинить, последний пост про расширение для Google Chrome, дальше обещаю переключиться на другие темы)

Было:

Простая линейка пикселей онлайн. Пользователь рисует прямоугольник на экране, и линейка показывает, какое количество пикселей по ширине и высоте у этого прямоугольника. Есть сетка на background, которая позволяет удобнее прямоугольник рисовать. Можно менять цвет сетки (чёрный, белый, красный, зеленый) и размер сетки (4px, 8px, 20px, 50px, 100px). Есть возможность отключить сетку полностью. Прямоугольник на экране можно переносить, таким образом проверяя, что два элемента имеют одинаковые размеры. Также в панели слева отображаются координаты текущего указателя мыши. Саму панель с координатами можно перенести на любое место экрана.

Стало:

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

2. Для тех, кто предпочитает ручную линейку, добавился масштабный функционал настроек. Теперь цвет сетки определяется не из 5 сочетаний, а можно выбрать любой, воспользовавшись color picker. Также и с размером сетки: пользователь вводит необходимое количество пикселей в инпут, и сетка сразу перестраивается (было всего 5 предвыбранных сочетаний, напомню).

3. Появилась возможность менять цвет прямоугольника. Также, на любой из color picker. В предыдущей версии он всегда был одинаковым.

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

5. Появилась возможность получать измерения в ручном режиме не только в px, но и в см и дюймах. Зачем это надо — не знаю. Но многие пользователи жаловались на то, что в см расстоянии померить невозможно. Видимо, кто-то меряет страницы в pdf.

6. На панели управления (которая стала раз в 6 больше) появилась кнопка рейтинга и «сообщить о баге». Если пользователь ставит плохой рейтинг, я веду его на страницу обратной связи в Google Forms. Если хороший — на страницу отзывов по extension.

7. Поскольку панель управления теперь в разы больше и занимает значительную часть экрана, я сделала ее маленькую версию. В мелкой панели можно управлять наличием сетки и переключением режима (smart/manual select).

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

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

У каждого рано или поздно происходят события, которые случаются раз в восемь лет или вообще раз в жизни. События глобальные. Но когда они случаются каждый месяц, даже для меня, ребята, как для человека, любящего перемены, это — too much. Потому что нужно еще как-то сохранять концентрацию и умудряться работать.

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

Меня преследовала одна и та же фраза из книги «Собака по имени Money», о которой я уже как-то писала в блоге.

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

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

Таким образом, несмотря на все события, за эти три зимних месяца я успела:

1. Завершить работу в банке. Я работала на проекте банка Открытие более 8 лет. С первого дня основания проекта. Мы делали систему для малого и среднего бизнеса. Его купил ВТБ в конце 2022 года. С тех пор все пошло прахом, и два года мои задачи заключались в постепенном убивании проекта, который я так сильно любила и которым искренне гордилась. Который перевез меня в Москву, повысил мой доход сначала в 2, а потом в 5 раз, позволил свободно путешествовать, купить квартиру в Москве и дал многое-многое другое.

1 января 2025 года юр лицо банка Открытие перестало существовать. Моя работа вместе с ним тоже. 28 декабря 2024 года был мой последний рабочий день. Со мной, с человеком, который был от самого начала и до самого конца, никто даже не попрощался. Мне даже не дали последнего слова. В такую глубокую яму скатился этот проект уже под руководством ВТБ. 31 декабря я удалилась из всех рабочих чатов, чтобы больше никогда об этом не вспоминать.

2. Завершить разработку мобильного приложения на Flutter, которым я занималась целый год. С нуля, изучая язык программирования с помощью chatGPT. Сейчас приложение находится на стадии апрувов в Apple Store и Google Play. Как только появится, я вам сообщу.
3. Разработать новую версию Pixel Measurement, о которой писала выше. Иногда мне казалось, что я делала ее не из-за желания заработать деньги, а вопреки всему. Уж очень много всего случалось, что мешало мне реализовать задуманное. При этом я понимала, что данная задача для меня важная, не срочная, но важная (на такие как раз постоянно не хватает времени, потому что есть основная работа). Я тут вижу очень хорошие перспективы и возможность получать хороший пассивный доход в будущем. Которые выгорают каждый день, пока я торможу и ничего в сторону монетизации не делаю 😅. В итоге я добила расширение за день до своего отъезда в путешествие.

4. Найти новую старую работу, на которой я с февраля, и на которой уже многое случилось. И, да, я ее совмещаю вместе со своим 5-ти недельным путешествием по Европе и вместе со всем остальным. Но о нюансах этой работы расскажу уже в следующих постах.

А у вас как прошла зима?) Весна, пожалуйста, больше мне такого не надо 🤣
🔥Шанс попасть в IT

Компания Clevertec ищет участников бесплатного марафона по frontend-разработке. Лучших выпускников пригласят на стажировку.

🧑‍💻Если ты начинающий веб-разработчик (JavaScript, React) из России и хочешь прокачаться под менторством программистов компании, заполни эту анкету.

Онлайн-марафон длится 3 месяца. Каждую неделю ты получаешь задание с подробной инструкцией. Если не пропускаешь дедлайны, в финале в твоем репозитории будет готовый проект.

Старт — 1 апреля (не шутка 😂). Стоит попробовать😉
Не так давно я выполнила упражнение на определение собственных ценностей. На самом деле, полезно, помогает сверяться с ними как с компасом при принятии жизненно важных решений. После многих решений возникает либо ощущение, что так и должно быть, либо состояние дикого дискомфорта. Так вот, если чувствуете дискомфорт, значит, принятое решение идет в разрез с вашими ценностями. И стоит подумать, как его изменить.

Упражнение состоит в следующем:

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

Например, для меня одним из важных моментов был переезд из Петербурга в Москву. Мне всегда хотелось попробовать пожить в большом городе (Петербург в какой-то момент стал мне мал), сформировать с нуля свой круг общения и пожить, наконец-то, отдельно от родителей. Мною двигал интерес к новому, вызов, риск, самостоятельность. То же самое я чувствовала, когда переходила из одной школы в другую в 8 классе. Я выбрала школу с углубленным изучением информатики еще в 2004 году, не написав до этого ни одной строчки кода. И не прогадала. Или когда отправилась на краткосрочные курсы в Utrecht University на английском языке, одна, где погрузилась в студенческую жизнь на иностранном языке и перестала чувствовать себя туристом в другой стране. В каждом из этих случаев был вызов, развитие и новый опыт.

Ценности — это внутренний огонек внутри тебя, ты просто не можешь действовать иначе.

Более подробно упражнение и список 40 потенциальных ценностей описано здесь.

У меня получились:

1. Узнавание нового (каждый день мне важно узнать новую информацию, приобретать новый опыт, развиваться, быть продуктивной, находить время на творчество, вдохновение). Я просто не могу без личного развития и ненавижу, когда что-то ломает мою продуктивность.

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

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

4. Успех среди других. Да, мне нравится материальное благополучие, понимание, что ты взял лучшее из имеющегося, общественное признание. Мне нравится вдохновлять других людей, демонстрировать, как я крута и в чем я молодец, не довольствоваться малым и постоянно гнаться за тем, что мне надо. И доводить до победного результата.

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

Впрочем, вариантов было два: серьезно увеличить ставку в час и продолжать работать по часам, либо предложить оптовый заказ со скидкой. Я склонялась ко второму варианту, т. к. предпочитаю стабильность.

Переговоры прошли в нужное время и в нужном месте. Уже два года мы пилим стартап для поиска наиболее оптимального маршрута для грузоперевозок всему миру. Этакий aviasales для оптовых поставщиков с кучей наворотов. И сейчас как раз выходим на финишную прямую, ищем инвесторов, дорабатываем оставшиеся 15% функционала и готовы встречать первых пользователей. Поэтому идея вложится в этот проект побольше, чтобы получить результат побыстрее, понравилась главному. В общем, меня взяли 🙃.

Схема оплаты оказалась очень необычной для меня. Я всегда работала через ИП, Upwork или получала зп в конверте в далеком 2014 (в общем, никогда по трудовой), а тут мне предложили заплатить 50% наличкой. Сразу. Такая предоплата за полгода вперёд.

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

В такой парадигме я проработала три недели. Больше не выдержала. Это было практически нереально: вместо того, чтобы делать, запоминать по минутам, что именно было сделано. Да и вообще, как писала в предыдущем после, я тот человек, который не признает никакого контроля извне. Я чувствовала себя как в детском садике, где нужно каждый день докладывать воспитателю, что ты делал сегодня. Но мы-то с вами взрослые люди. Давайте работать так, чтобы всем было интересно и комфортно.

В общем, три недели спустя я провела другие переговоры, уже на групповом созвоне со всеми участниками. Где объяснила, почему текущая система трекинга задач крайне неудобна для меня. И предложила свою. Теперь время по всем задачам буду заполнять еженедельно, более крупными блоками (по 4-6-8 часов). А уже на протяжении недели выкладывать работающий функционал по мере готовности и писать в групповой чат с принскринами, что именно было сделано. Вроде, всех устроило. Так теперь и живем)

Буду рада, если тоже поделитесь вашей системой отчетности по задачам. До этого на проекте банка у меня была система уровня «почти никак»: в конце месяца списываешь время по задачам, чтобы суммарно равнялась количеству рабочих часов в месяц.
Многие удивляются моему образу жизни и каким образом я умудряюсь совмещать путешествия и работу одновременно. Я — тот человек, который активно путешествует, переезжает, но при этом умудряется выполнять поставленные задачи в срок и всегда отвечает за взятые на себя обязательства.

На самом деле, основное — найти работу с более менее свободным графиком. На текущей у меня нет жесткого начала рабочего дня, поэтому начинаю я его часам к 17-18. У меня нет ежедневных созвонов: встречи проходят дважды в неделю в 18.15 по Москве или 16.15 по Европе. Идеально!

Я самостоятельно распределяю часы, когда и сколько я работаю. Работать для меня на выходных — в порядке вещей. На буднях обычно утром и днём я занимаюсь своими делами, к задачам приступаю в районе 17-18, когда стемнеет. Если стоит вечернее мероприятие, перекраиваю свой день и работаю в светлое время суток. Главное — отработать необходимое количество часов на неделе. Таким образом, отправляясь в путешествие, часов до 17 я обычно хожу по музеям/гуляю по городу/на хайкинг, а после возвращаюсь в отель и приступаю к работе. В Азии с их часовыми поясами вообще идеально: выглядит так, что ты работаешь по московскому времени.

Есть только одна вещь, которая ломает мой режим: переезды. Когда их слишком много, я страдаю 🥲. Это означает, что весь мой сформировавшийся график в день переезда рушится, надо выделить 3 ч на упаковку/распаковку чемодана, дотащить его до транспорта и понадеяться, что в этом транспорте будет стабильный интернет. Ведь надо, чтобы можно было всю дорогу работать, но так бывает не всегда, к сожалению. В итоге я стараюсь оседать в каком-нибудь крупном городе (из которого можно удобно доехать до других мелких) недели три, чтобы все посмотреть в комфортном темпе и совместить с работой.

Но жизнь обязательно вносит свои коррективы: то хочется посмотреть несколько крупных далеких городов, то время по визе ограничено, то отели в этой локации дорогие, то начинаешь скучать по друзьям и по дому, то устаешь жить на чемоданах и хочется вернуться в свою квартирку. В итоге постоянно балансируешь между «успеть все и сразу» и «давай все же организуем все в комфортном для себя ритме». За последнюю 5-ти недельную поездку у меня было 4 страны и 5 городов. Вместо 2-х по идеальному для меня сценарию 🤣.

Путешествую я не всегда. Я так просто не выживу) Есть у меня и периоды затишья, когда я по целому месяцу или даже больше торчу в Москве (где у меня квартирка) или в Петербурге (где у меня родители). За время в Москве я выстраиваю себе максимально однообразную рутину, с небольшим количеством мероприятий на неделе, чтобы уделить это время личным проектам. Вот почему я так долго делаю Pixel Measurement 😀. Стараюсь организовать все так, чтобы все самое интересное, что ты видишь и слышишь, было написанием кода для своего проекта. Или созданием собственного подкаста. В Петербурге же у меня максимально социальная жизнь, куча друзей. Мне кажется, я никогда больше не общаюсь с таким количеством людей, как там) Распределение Россия/заграница у меня примерно 50%.

Вот так вот, постоянно балансируя, я стремлюсь жить жизнь, которую хочу. И успевать все то, что для меня важно. Одна подруга сказала мне, что я вдохновляю ее мыслить широко и свободно. Так и есть, никаких границ в моей голове не существует. Возможно, вдохновлю и вас.
Вы когда-нибудь делали сайт на конструкторах? Я — да. Вот, что получилось. Создавала сайт для своего расширения: обязательное требование для монетизации. Мои мысли: твою мать, вообще не оптимально, почему я не могу задать этой кнопке line-height или поменять размер шрифта при конкретном разрешении?! В итоге пришлось работать с тем, что есть.

Честно: оптимальнее было бы скачать красивый шаблон сайта на https://www.templatemonster.com/, отредактировать CSS и HTML и загрузить на хостинг. Но, нет, я пошла сложным путём. Понадеявшись, что AI constructor от domain.com способен на многое. Зря 🥲. Он даже не дает сделать другие отступы в мобильной версии.

Короче, создавать сайты на конструкторах, особенно на domain.com, — та еще запара. Ты постоянно обходишь ограничения из-за того, что разработчики что-то не предусмотрели. Мне вот, например, пришлось вставить кнопку картинкой (КАРТИНКОЙ, понимаете 🤯), только потому, что я не могла отрегулировать ее высоту. Уменьшить размер шрифта и задать гигантские неоптимальные отступы только для того, чтобы один текст не наезжал на другой в мобильной версии. В итоге, при каждом разрешении сайт смотрится не оптимально. Но, хотя бы, читаемо 👍.

Почему бы не перейти на хостинг? Да потому что я за этот онлайн конструктор уже заплатила) Целых 20$ за год, в отличие от хостинга в разы дороже. Продление, кстати, стоит 200$ за год. Кто делает такие тарифы?)

Короче, этот мой пост — ода моим мучениям с онлайн-конструктором domain.com. Не берите его там. И домен тоже не покупайте: продление стоит в 3-4 раза дороже первоначальной покупке.

Ну а то, что удалось выжать из этого редактора, кряхтя и парясь, вы можете посмотреть здесь.
Вы еще помните про мобильное приложение?) Я — да. Как сейчас помню, более года назад, в середине марта 2024 года, я приступила к разработке мобильного приложения на Flutter, о котором ничего не знала до.

Зачем мне это было нужно? Во-первых, мне обещали хорошие деньги. Люди, предложившие мне проект на Flutter, обещали платить мне такую же ставку в час, какую я получаю за работу на Frontend. Да, мне, человеку без опыта во Flutter. Им было важно, чтобы за проект взялась именно я.

Во-вторых, я была весьма не прочь получить новый опыт. Как вы уже, должно быть, заметили, на рынке идет существенное сокращение количество вакансий на Frontend. Если смотреть рынок РФ, практически все они требуют работу с территории России. А зарубежные компании, наоборот, работать из РФ не разрешают. Меня не устраивает ни тот, ни другой сценарий. На Flutter таких ограничений нет.

В-третьих, во всех самоучителях сказано, что Flutter — весьма простой фремворк. Так и есть, особенно если переходишь на него с фронта. Ничего такого сверхъестественного и высокоинтеллектуального, как, например, есть в machine learning, я в нем не нашла. Да, есть нюансы с билдами и публикацией приложения, которые просто выбивают меня из колеи. Но… на любой работе свои издержки.

Таким образом, взвесив все «за», я не нашла ничего «против». Разве что уменьшение свободного времени и откладывание все той же монетизации в Pixel Measurement. Который, на момент получения предложения о Flutter имел всего 3 000 пользователей.

Первые две недели при почасовой работе ушли у меня на просмотр самоучителей и сбор тестовых проектов. Вторые две — на экран логина, который создавала по аналогии с самоучителем. Дальше двинулась сама, и за 2-3 месяца осилила верстку, спрашивая советов у ChatGPT. Потом был перерыв, и с конца лета приступила к прикручиванию апишки. К началу декабря все было готово. Еще 2 месяца ушло на фиксы багов. И, вот, конец февраля, мы готовы к публикации 🎉.

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

В конце февраля мы приступили к публикации приложений на Android и iOS, и служба поддержки Apple вынесла мне все мозги 🤯. Нужно было создать privacy policy, каждые 2 дня отвечать на ряд их бизнес-вопросов, внедрить дополнительный функционал, без которого они ничего не апрувили и пофиксить баг, который никто кроме них не нашёл. Чтобы вы понимали: все билды мы тестируем на телефонах, у нас есть ряд добровольных тестировщиков. НО: в момент публикации выходила iOS 18.4 (которая была Beta), и они нашли баг на ней, на iPad Air, хотя наша версия полностью работоспособна на iOS 18.3. Пришлось в экстренном порядке разбираться, как тестировать на Beta-версиях iOS и скачивать новые эмуляторы на 8 Гб в при отсутствии интернета (да, в эти дни всему дому вырубили wi-fi на 3 дня 😀).

Как бы то ни было, годовые усилия не прошли даром, и разработанное мобильное приложение было, finally, опубликовано. Посмотреть его можно здесь на iOS и тут на Android.

А ко мне в копилку по праву добавилось звание Flutter developer. Иначе какой ты разработчик, если не можешь показать ни одного релиза своего продукта)
Я разрабатывала год мобильное приложение с нуля, не зная ничего о Flutter изначально. Я делала собственное расширение для Google Chrome полтора года, даже не ожидая, что оно может набрать 80 000 пользователей. И вот, что я поняла…

То, что ты делаешь — это всегда путь. И на нем обязательно встретятся трудности. Легко говорить друзьям: “Я выложила свое первое мобильное приложение на Flutter в Apple Store и Google Play, можете потыкать”. Это выглядит как результат, который легко дался. Но никто кроме тебя не знает, сколько ночей ты провела, пытаясь разобраться, почему не собирается тот или иной build. Никто не знает, сколько раз мне приходилось все сносить и заново ставить, чтобы запустить версию на эмуляторе после долгого перерыва. Или какое кол-во каверзных вопросов задала мне служба поддержки Apple, когда я впервые публиковала мобильное приложение. Всего и не припомнишь.

Эти трудности сопровождали меня постоянно. Мобильное приложение на Flutter не было простым проектом. Да, нюансы верстки я осилила моментально. Прикручивание логики тоже не было сложным. Но все, что связано с build, публикацией, симуляторами выносило мне мозг как только я за это бралась. А не браться было невозможно: заказчику нужен конечный результат, и ему наплевать, что именно там не работает.

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

Аналогично с Pixel Measurement. Когда-нибудь (надеюсь, скоро) я напишу: “Я заработала первые 2000$ пассивного дохода на своем проекте!”. Меня прокомментируют: “Круто! Повезло!”. Но мало кто поинтересуется, что именно за этим заработком стояло. Как именно я регистрировала 10 почтовых ящиков, чтобы оформить хотя бы один developer аккаунт Chrome Web Store, как именно я вычищала ключевые слова из описания, забирая время у своего отпуска, почему я опубликовала это расширение пьяная из поезда в Осаку, какой дополнительный функционал я разрабатывала полгода и почему 10 раз я переписывала код для монетизации. Люди будут видеть лишь конечный результат.

Однако, вместо бессонных ночей с Flutter был у меня и другой вариант. Гораздо более простой и логичный, как покажется многим. Зачем изучать новый язык программирования, когда можно просто пойти в ВТБ, куда тебя уже берут по умолчанию?

К марту прошлого года я уже более 7 лет работала на проекте банка Открытие. Из-за присоединения группы Открытия к ВТБ нас сокращали. С каждым проводили собеседование, и по его результатам назначали на проект ВТБ. По умолчанию, даже готовиться к собесу не надо. Моя мотивация была настолько низкой, что я ответила на 3 вопроса из 10. И все равно меня взяли. Я могла сидеть в России без возможности работы из-за границы, ездить пару раз в году в отпуск, делать более-менее сносные задачи и постепенно становится злой, как все мои коллеги. Но есть один нюанс: пойди я по этому пути, я бы себе этого никогда не простила. Работать на проекте ВТБ после всего того, что он сделал с Открытием, было ниже моего достоинства. Не говоря уже об остальном диссонансе.

Именно поэтому, как только мне свалилось предложение о Flutter, я за него зацепилась. Да, я пошла изучать новый язык программирования, чтобы не быть в ВТБ. Мне было все равно, что ждет меня на пути мобильной разработки. Я знала, что мне будет не просто. Но одно дело сражаться за то, что тебе действительно важно. И совсем другое — воевать с ветряными мельницами в той среде, где ты не должен находиться. В последнем случае на битву просто не хватит сил.
Оглядываясь сейчас ретроперспективно, я понимаю, что мне даже страшно представить, каким человеком была бы я сейчас, согласись я на предложение от ВТБ. Грустным, злым, задавленным, без амбиций и блеска в глазах. Но я не только смогла отказаться от казавшего на первый взгляд идеального предложения (которое само идет тебе в руки, работа гарантирована, родители советуют соглашаться, некоторые друзья не видят в этом предложении ничего плохого); я зацепилась за ниточку и прыгнула выше своей головы в сторону тех перспектив, которые мне были нужны. И я допрыгнула до нужной мне отметки.

О чем этот пост? Я хочу донести до вас лишь одну мысль: сложно будет всегда. Неважно, выбираете вы один путь или другой. Вам придется бороться с трудностями, преодолевать себя, и усилий на любом из путей вы затратите много. Продажники говорят, что одинаково сложно продавать товар как на 10 000 руб., так и на 100 000 руб. Так какой смысл продавать товар на 10 000 руб., если за те же усилия можно впарить и за 100 000?

То же самое и с дорогой. Усилий на обе дороги будет затрачено одинаково. Только в случае неправильной вы будете постоянно бороться с собой и терять мотивацию. А в случае верной у вас будут гореть глаза. Да, вы, возможно будете выдыхаться, доказывать свою правоту всем тем, кто с вами не согласен, но у вас будет понимание, зачем вы это делаете. И вы не сдадитесь. Я всегда вам желаю идти правильной тропой.
Ну, погнали!

Внедрила монетизацию в Pixel Measurement 🎉. Не прошло и полтора месяца)

«Почему так долго?», — спросите вы. Во-первых, для монетизации я использовала сторонний модуль, который регистрирует оплаты Stripe/Paddle, создает личный кабинет пользователя, берет на себя все юридические вопросы. Моя задача заключалась лишь в интеграции с ним. И как только я полностью закончила интегрироваться с версией 1.4, ребята выпустили версию 2.0. Мне потребовалось начинать весь процесс заново 🤷‍♀️.

Во-вторых, в версии 2.0 были критичные для меня ошибки. Да, настолько критичные, что я не могла выпускать расширение. Не работала кнопка signOut (если пользователь захочет авторизоваться под другим аккаунтом) и запрос на получение инфы о пользователе вызывался только один раз. Причем, такие проблемы были только у меня в связи с особенностями моего расширения. Пришлось писать ребятам-разработчикам из самого paywall и ждать, пока поправят.

В-третьих, поправили все в максимально неудобное для меня время 🤪. Когда я была с ног до головы погружена в проект на Flutter и ничего, кроме него, в своей жизни не видела. Пришлось ждать, когда освобожусь.

В-четвертых, помимо самостоятельного тестирования перед публикацией надо получить апрув от самих разработчиков paywall, который я встраиваю. И пройти все их проверки. На это тоже потребовалось время. И вот, 30 апреля, я здесь. Запускаю монетизацию прямо перед майскими 🚀.

Но не спешите поздравлять меня раньше времени: логика монетизации устроена таким образом, что деньги с пользователей я буду брать только после окончания trial-периода, который идет 7 дней. Таким образом, мне надо подождать, пока Google апрувнит мое расширение (5 дней уже думает), подождать еще 7 дней — и наблюдать первые оплаты. В дальнейшем задача будет сводиться к максимизации прибыли: буду экспериментировать с ценой подписки и временем триала, пытаясь выжать для себя максимум.

Судя по рассказам других, у меня есть оценка, сколько денег должно быть в месяц. Пожелайте мне удачи 🍀.
Ошибка, которая стоила мне 50% пользователей.

Есть у меня еще одно расширение, Download Svg называется. Результат средний: за год набрало 6 000 пользователей. Только вот могло быть 12 000. Причина — 50% удалений.

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

Полезно собирать обратную связь от пользователей при удалении расширения. Да, у меня есть Google-форма с вопросом «почему вы удалили расширение». Ее видит пользователь, когда решает закончить работу со мной. В ней же я и получала обратную связь «невозможно закрыть бесящую кнопку справа». Получала — и ничего не делала: другие дела, сами понимаете 🤷‍♀️.

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

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

Приезжая на новое место надолго, я всегда ищу, где пообщаться с новыми людьми по своим интересам. У меня для этого разработана мноуровневая схема. Сначала смотрим мероприятия на meetup.com, потом вступаем во все русские чаты Telegram конкретного места, затем подписываемся на все Facebook-группы для русских и иностранных экспатов, после ищем в Гугле по ключевым словам, затем подписываемся на events-аккаунты по этой локации в Instagram (он, кстати, хорошо рекомендует другие согласно вашим интересам) и, вишенка на торте, ищем все коворкинги, заходим на их сайты и смотрим, какие мероприятия у них есть. После все анализируем, добавляя сюда афиши оффлайн/рекомендации знакомых и другие случайным образом открытые тусовки. Да, это мы только поискали мероприятия, достопримечательности ищутся отдельно 😀. Так вот, проделав все вышеперечисленное и убрав из списка клубные тусовки и ночную жизнь, удалось выдавить лишь парочку. Даже в забытой болгарской деревне Bansko, о которой мало кто слышал, в разы больше, скажу я вам.

Что, в свою очередь, ждало меня на Бали, когда я там была. Здесь говорят о стартапах и бизнес идеях на английском, там проходит веган-фест, здесь открывается женский клуб на русском по прокачке женской энергии, там проходят квизы (да почти каждый день), здесь художник выставляет свои картины и устраивает презентацию по этому поводу, там все знакомятся на нетворкинг-встрече и играют в Денежный поток, тут вечеринка по йоге и медитации, а еще концерты на крыше, ежедневные мероприятия от коворкингов и много-много чего еще. Каждый вечер у меня был выбор из 5-6 событий, куда сегодня пойти. Вот так и надо жить 👍. В Тайланде же, если хочешь держаться подальше от разврата, молча идёшь вечером в отель или кафешку.

Короче, вердикт такой: съездить покататься по Пхукету, покайфовать в море, тратя не очень много денег (по сравнению с Европой), посетить Bounty-острова и посмотреть умопомрачительные закаты, заложив на это пару недель, — 👍. Но оставаться и жить на долгий срок я бы тут не стала. Даже на 8-ой день, постоянно работая, я умудрилась заскучать. За более активным образом жизни на Бали. Вот там бы я с легкостью провела месяца 3. Правда, говорят, что ситуация с пробками там существенно ухудшилась, чем два года назад ☹️.
В повседневной разработке я периодически использую ChatGPT. Новый язык программирования Flutter я вообще выучила с помощью него. Если говорить про Frontend-задачи, то в основном мне он помогает для простых нудных вещей типа маски телефона и идей, как можно сделать тот или иной эффект (например, создать parallax вручную). Для Frontend-разработки я использую Webstorm, при этом интеллектуальный помощник там я отключила. Уж очень тупым он мне показался)

При этом у меня есть знакомый, который 3 месяца писал код с помощью AI-редактора Cursor. Лично я в эту тему не залезала и сомневаюсь в эффективности подобных инструментов (мне привычнее писать код вручную по своим паттернам, чем идти на поводу у AI-редакторов), но знакомый решил провести серию вебинаров, чтобы здраво разложить по полочкам реальность AI-редакторов. Все на примере реального использования для рабочих проектов. Я заинтересовалась)

Первый вебинар сегодня, в 16.00, МСК, абсолютно бесплатно. Запись обещают. Я буду) Присоединяться тут.