.и в продакшен – Telegram
.и в продакшен
2.48K subscribers
9 photos
3 videos
107 links
Фаундер-технарь - канал основателя www.jitbit.com, Alexander Yumashev @jitbit

Как быть CTO/CEO одновременно, как растить bootstrapped-стартапы и прочая айтишечка.
Download Telegram
Пару месяцев назад я обругал несколько вредных бизнес-книг.

Теперь те, которые читать можно и нужно:

Clayton Christensen, "The Innovator's Dilemma"

Клейтон - великий. Профессор экономики в Гарварде, автор концепций "disruptive innovation" и JTBD - "jobs to be done". Стив Джобс когда-то признался, что Innovator's Dilemma - единственная бизнес-книга у него на полке.

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

Если лень читать целиком - вот полуторачасовой видос, где он проходится по всем своим теориям сразу,

Если даже это лень - тогда 4-минутный ролик, где он быстро рассказывает про JTBD на примере молочных коктейлей.

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

April Dunford, "Obviously Awesome"

Неплохая книга про позиционирование - что у вас за продукт, на кого рассчитан, и почему подойдёт лучше всех. Про то, почему позиционирование - это круто, а "product-market fit" - это базворд и фуфло.

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

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

Это как масло в двигателе. Мотор не крутит, поршни не толкает. Но без него - не поедет.

Опять же, если лень читать, погуглите видосы Эйприл, у нее много.

Gabriel Weinberg "Traction"

Гейбриел - основатель поисковика DuckDuckGo. Книга - просто маст для всех, кто собрался "пилить свой стартап".

Четко, понятно и максимально приземленно про Самый Главный Вопрос - "где же, сука, брать клиентов??"

Какие бывают каналы привлечения (их всего 19), стратегии и тактики. Для каждого "канала" Гейбриел пригласил известного спеца в этой нише и методично его допросил.

Мне почему-то лучше зашла в виде аудиокниги. Прослушал главу на пробежке - вернулся за комп и быстро претворил в жизнь.

PS. на амазоне есть еще одна книга "Traction" от какого-то другого чела, не промахнитесь. Смотрите имя автора внимательно.

Ben Horowitz "The Hard Thing About Hard Things"

Да да, тот самый, который "Andreessen Horowitz", отстаньте.

(A&H - это фонд, который вырастил Facebook, Airbnb, Twitter и черт знает что еще)

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

Реально стоит прочесть. Особенно если у вас УЖЕ есть бизнес и УЖЕ стоят задачи "как нанимать", "как управлять", "где не облажаться", что такое "Peacetime CEO / Wartime CEO" и тп.

Если еще что-то вспомню, напишу.
Лет 15 назад я работал обычным разрабом в маленьком банковском холдинге. Нас с напарником было всего двое "погромистов". В перерывах между написанием кода и SQL-запросов мы чинили принтеры и обжимали джеки (до сих пор помню эту долбаную мантру "оранжевый-белозеленый-синий-белосиний...")

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

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

При этом привитое на мехмате чувство прекрасного позволяло нам почти не создавать техдолг - каким-то чудом.

Тру-разработчиков через несколько лет выгнали всем отделом.

Очень хочется на этом закончить - красивым выводом про Д'Артаньяна и пидорасов. Но тру-разработчики не виноваты. Гемор взаимодействия "между бизнесом и разработкой" - он, сука, вечен. Даже Самат с Федей болтали про это целый час

Причина проста - все программисты страдают комплексом демиурга. Не "комплексом бога" в нарциссическом смысле, а именно обсессивно-демиургическим - мы хотим УПРАВЛЯТЬ МИРАМИ.

Это нормально. И даже неизбежно - мы работаем в сложных воображаемых вселенных. Вселенные затягивают. Мы хотим строить большие миры "шобы как Гугл", и этими мирами мы будем увлеченно рулить. Не мешайте нам.

Есть много способов с этим бороться. Но все они вертятся вокруг одного - надо доставать программистов из воображаемых вселенных за уши.

Можно нанять в штат психолога, как в сериале "Billions", а можно ввести хаки "dogfooding" или "all hands support", или наглядно показывать impact... Короткий видеоролик, где пользователь тыкает плод работы программиста - творит чудеса. Короче, любой ценой сокращать дистанцию с реальным миром. Миллион есть способов. Дерзайте-гуглите.

Еще можно решить эту проблему на этапе найма - просто нанимайте больше девушек. Я серьезно, у них реально нет этих дурацких personality disorders. А если уж собеседуете парня, особенно недавнего студента, тогда так:

Если у вас есть R&D - нанимайте отличников. А если бизнес, стартапы, деньги и жиза - нанимайте двоечников.

Двоечники круты. Просто попытайтесь представить, насколько двоечнику сложнее было закончить ВУЗ. Насколько сильнее он прокачан. Насколько крутой у него "ownership mindset", "problem-solving skills" и вот это все.

Двоечник до часу ночи где-то тусил, потом бухал, потом почему-то репетировал с группой на "базе", потом заснул на остановке, а утром пришел на третью пересдачу и СДАЛ ЕЕ.

Его выгоняли, отчисляли, выселяли из общаги, отчитывали в деканате, на горизонте была армия - а он все равно, сука, закончил. Бегал за преподами, договаривался о пересдачах, защищал себя на комиссиях... Софт-скиллы и устойчивость к стрессу - уровня "бог". А еще он быстро въезжает во все новое, ибо первый раз открывает учебник строго за день до экзамена.

Нанимая людей в тот банк мы всегда аккуратно выясняли - ну как там вообще в ВУЗе? Не был ли на грани вылета? Не уходил ли в "академ"? Не резался ли сутками в "Контру" вместо лекций? ...А то мы как раз такого ищем...
​​Первый раз за 20+ лет я купил "не ноутбук".

Ребята, это снос башки. Я в шоке, как продвинулась индустрия десктопов с момента, когда я последний раз произносил слова "материнская плата".

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

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

Я раньше все это видел только на канале "Linus Tech Tips".

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

Конфиг: nVidia RTX 3070. Плюс какие-то малозначительные железки вокруг.

Ну и, конечно, RGB-великолепие. С прозрачными стенками и вытекающими глазами.

Юнит-тесты пролетают за две минуты. а стейджинг-база влезает в память целиком. Но кого я обманываю - все это делалось ради 350 fps в каунтер-страйк.

Когда началась пандемия, мы с друзьями/коллегами придумали раз в неделю собираться на приватном csgo-сервере. Ну не в зуме же болтать, ей-богу... И оказалось, что это лучший тимбилдинг в мире.

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

...А главное, вся эта лошадиная моща стоит дешевле моего ноутбука раза примерно в полтора.

Плюсы:
- стационарность. Как ни странно, это плюс. Встал из-за стола - работа закончилась. Никаких "доделаю на диване" или "покодю на кухне".
- невзъебическая моща, модульность и никакого троттлинга. Плюс это отличная DIY-игрушка и бесконечная кроличья нора. Любители дронов и домашних пекарен меня поймут.

Минусы:
- стационарность (опять же). Рабочий ноутбук все же оставьте, пригодится.
- нужно просторное рабочее место

В общем, я снова счастливый 17-летний задрот. Рекомендую.

UPD. черт, забыл для фото включить RGB-великолепие на мышке! Прастити, переснимать лень, и так полдня на столе убирался...
👍1
Минутка tech porn.

У нас огромная multi-tenant реляционная база данных. Таблицы по 200 ГБ - рехнуться, если честно. При этом для multi-tenant архитектуры мы юзаем самую тупую модель - "Pool" - это когда во все таблицы добавляется ключик "tenant_id". Модель неэффективная, но зато простая в реализации и поддержке.

(кстати у AWS пролетала классная дока про дизайн multi-tenant систем, где разобраны все варианты, мастрид для всех CTO)

Все тормозило и заикалось. Клиенты бесились, сервера перегревались. Задачи типа "получить запись по ID" работали нормально, но любой список типа "непрочитанные письма за сегодня" в многотерабайтной базе начинает жестко тупить. Даже с правильными индексами. Один жирный клиент с дохреллионом записей притормаживает мелких клиентов, у которых данных совсем мало. Надо что-то делать.

И тут нам пришло Великое Озарение [sarcasm], которое рано или поздно приходит любому DBA - о том, что основная работа всегда ведется с "верхушкой" данных. А огромный "long tail" всегда лежит мертвым грузом и нахуй не нужен юзается только в отчетах.

Первая мысль - надо сделать "вертикальный" партишенинг. Т.е. "старые" данные спихивать куда-то за горизонт (на отдельный диск или даже сервер), а "активные" данные держать где-то под рукой.

Мысль правильная, но нет.

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

Я уже слышу крики из зала: "шардинг", "кликхаус", "разделяй OLTP и DWH". И прочий оверинжиниринг. Сразу нет. У нас есть self-hosted версия, которая должна заводиться в один клик даже у домохозяек. Хотелось простой хак, который решит все проблемы одной строчкой.

И тут я случайно вспомнил про офигенный читкод - фильтрованные индексы. Ведь по умолчанию индекс делается по всей таблице. Но зачем, если можно индексировать только 0.1%?

В коде любого CRUD-приложения, в бизнес-логике всегда есть признак, который отличает "старые" данные от "новых". Ну типа "статус проекта = сдан". Или "статус заказа = обработан". И это условие уже есть в большинстве ваших SELECT'ов. В нашем случае это был "статус тикета = закрыт".

Что делает DBA-джун? Создает индекс по этой колонке. Чтобы, значит, поиск незакрытых тикетов был быстрым и классным.

CREATE INDEX myIndex
ON messages (processed)

Что делает прошаренный DBA-синьор? Создает еще "filtered index" с этим условием

CREATE INDEX myIndex
ON messages (column1, column2...)
WHERE processed = 0 --вот так

И следит, чтобы это условие было в селектах.

В результате даже в многотерабайтной базе мы имеем маленький быстрый индекс всего в десятки мегабайт (!), который всегда показывает на самые последние данные. Как только данные перестают удовлетворять признаку - они из индекса улетают. Сами.

Когда мы прикрутили первый фильтрованный индекс и стали смотреть статистику использования, мы офонарели - SQL Server бросил все дела, и стал жадно его жрать. Приложение ускорилось в разы, нагрузка на проц снизилась на 80%. Посмотрите график - до и после внедрения только ОДНОГО пробного индекса.

Наш бд-сервер имеет всего 4 ядра и 32 гига памяти, при этом запросто тянет базу в несколько терабайт и сотни тысяч DAU. У нас в команде есть негласный челлендж - сколько можно протянуть на этом железе без апгрейдов? Уже годы держимся))

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

PS. "Filtered/partial index" есть в SQL Server, PG и в Монге. В мускуле есть воркераунд

PPS. есть нюанс, кстати. Когда делаете filtered index, обязательно включайте фильтрованную колонку в "include". Так мы заставляем сервер поддерживать "статистику" по колонке. Без статистики все это великолепие работать не будет, сервер индекс не заметит.

CREATE INDEX myIndex
ON Messages (Column1, Column2...)
INCLUDE (Processed) --важно
WHERE Processed = 0
"Copy-paste driven development" выходит на новый уровень:

https://copilot.github.com/

P.S. Анонс тут

P.P.S. помните, MS вложила в OpenAI миллиард долларов и получила эксклюзивные права на GPT-3? Это, видимо, первые плоды. Теперь код за нас пишет машина.

Можете начинать паниковать "ааа, мы все останемся без работы". Впрочем, отзывы от тех, кто попробовал, очень mixed. Одни говорят, что волшебно, другие ругаются, что эта штука ломается даже на простых задачах, типа "посчитай количество дней между двумя датами".

Джоел в легендарном посте Things you should never do в свое время сформулировал фундаментальную проблему всей разработки:

Писать код проще, чем читать

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

Во-первых, ребята, очнитесь. Время дизайнера не «дешевое», это самое дорогое время, которое в разработке продукта вообще может быть. Всем глубоко пофиг и насрать, что там у их ежедневных программ под капотом: лапша, не лапша, монолит или микросервисы, электрон или позитрон, json или xml, хаскель или джаваскрипт, стратегия или фабрика. Вот серьезно, мем с Райаном Гослингом, объясняющим девушке на вечеринке.

А на то, как продукт выглядит и как работает – нет, не пофиг. Неправильно поставленная кнопка может буквально разорить компанию. Сложная навигация — похоронить продукт. Неприятный визуал — сдержать рост. Я уж не говорю про просранные пользовательские сценарии или, прости господи, про левую идею продукта.

А баги — ну, а что баги? Любую мартышку посади, она будет разгребать тебе жиру и фиксить, если что-то серьезное. Вы же не думаете, что нужно каким-то особо умным быть, чтобы этим заниматься? Занудным, да, склонным к монотонной работе — тоже да, но только и всего, ум тут не особо нужен.

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

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

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

Во-вторых, по фактам. У любой программы, которой вы пользуетесь, есть интерфейс. Да, даже у CLI утилит.

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

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

Дальше собственно вопрос, на что вы собираетесь делать ставку: на то, что вы случайно найдете того самого золотого гуся (которых, вообще-то, единицы, даже не десятки) среди триллионов возможных идей и всем будет пофиг на интерфейс? Звучит это как разумная, рациональная стратегия?

Или все-таки заморочитесь и сделаете нормально, чтобы люди могли пользоваться вашей программой не превозмогая себя, не вопреки?

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

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

Между тем Кортланд Аллен позвал в свой подкаст "Indie hackers" Андрея Азимова - живущего на Бали парня, который кодить почти не умел и продукты делал настолько "на коленке", что волосы шевелятся.

Когда он писал свою тулзу "year in progress" - Андрюха не знал, как сделать в макоси прогресс-бар. Поэтому он нарисовал сто (!) картинок от 1% до 100% и написал сто if-ов

if (x==1) нарисовать 1.gif

(это буквальная цитата из его рассказа, я так ржал, что почти врезался в человека на пробежке)

От такого кода у любого уважающего себя синьора, конечно, вытекут глаза. Андрей, между тем, зарабатывает $10к в месяц, выигрывает "ProductHunt Maker of the Year" и сам над собой хохочет.

Когда он строил какой-то очередной сайт-поделку, он не умел в базы данных. Поэтому засунул все в google sheets и за пару дней наговнокодил скрипт (на php конечно) который забирает контент по API и пихает в HTML. После чего почесал репу и создал из этого красивый продукт https://www.sheet2site.com/

(на этом месте вытекли глаза не только у сеньоров, а вообще у всех продактов/стартаперов)

И знаете, все маркетологи мира очень ему благодарны. Поправил табличку - сайт обновился. Никаких тебе логинов, вордпрессов, CMS-ов или, простигосподи, маркдауна с джемстеком, тейлвиндом и деплоем в клаудфлер через git (это я сейчас описал реально популярный сетап для статических сайтов, если что).

Просто дай права на гугл-доку, выбери шаблон - и все, забирайте готовый сайт. Свободная касса.

P.S. подкаст тут (там сверху ссылки itunes/spotify и тд.) - он на английском, но Андрей говорит очень понятно с нашим родным акцентом. Реально послушайте, вдохновляющая, добрая и открытая история. А Андрюхе респект и лучи поддержки. 🎉

UPDATE: Sheet2Site недавно был продан. Учитывая выручку (120к в год) и текущие мультиплкаторы (4-5х), продан где-то за 400-500тыс.

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

НИКОГДА.

Высокие цены за траффик - это не способ заработать. Это способ удерживать клиентов внутри walled garden.

Нефиг строить кросс-облачные решения.

Нефиг юзать внешние сервисы, ищи аналог внутри продуктовой линейки AWS/Azure/GCP.

А главное, нефиг мигрировать между облаками. Хочешь перегнать свой петабайт из AWS в Azure? Плати 100тыс долларов ($0.10 * 1000000gb).

А то ишь, развелось вас, умников... Тут вам не DigitalOcean.

Вот CloudFlare хоть и раскричался на весь хакерньюс - а все равно, суки, за свой "Argo" берут те же 10 центов за гиг. Как и GCP. Как и Azure. Как и AWS.

Именно поэтому, кстати, игровые компании не сидят в этих ваших облаках, а юзают старый добрый colo. Та же Майнкрафт-сетка, говорят, жрет 3-5 петабайт в месяц. Это ж... Это ж... (считает нолики на калькуляторе)... это ж почти полмиллиона долларов в месяц только за траф.

Кто-то пошутил, что в жизни компании есть три стадии: (1) свои железки (2) миграция в облако (3) миграция обратно на свои железки. Самые умные доходят до 4й стадии - становятся облачным провайдером сами.
👍1
Ну вот опять. Все выходные ушли на борьбу с хакеро-спамерами. Регают триальные аккаунты в нашем SaaS и шлют "юзерам" фейковые "уведомления". В которых, конечно, фишинг: "вам пришел банковский перевод, нажмите сюда". Как же я устал от них.

В гитхабе шлют веерный спам через @-меншены. В гугл-доках шлют спам через упоминания в комментариях к документам... Когда твой продукт дорастает до некой критической массы, то почти 30-40% работы начинает уходить на набежавших хакеро-спамеров. Нотификейшен-спам - это большая боль и подводная часть айсберга, про которую никто, почему-то, не пишет. При этом тысячи инженеров по всему миру занимаются гребаным сизифовым трудом.

Что характерно, спамят в основном из рос-укро-беларуси. Никакой Китай и Индия вообще рядом не валялись. Не будь я русским давно бы забанил весь СНГ нахуй, извините. Все равно у нас там клиентов три с половиной инвалида...

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

1) аккаунт с фри емейлом? Получи +80 очков "риска"

(обошли - регают времнные домены)

2) несколько триалов с одного IP? Держи еще +80

(обошли - поднимают сотни vpn-ов и лезут через них)

3) кириллица в пейлоаде? Сорри, конечно, братья-славяне, но вот вам еще +80

(обошли - теперь пишут транслитом или кодируют)

4) клиент подключен через VPN/Tor? Н-на с ноги туда же

5) ASN ip-шника принадлежит мобильному оператору? Получай по рыжей морде (особенно Мегафон, почему-то, зверствует... кто в РФ - объясните, почему такие гигантские объемы абьюза именно от них?)

Мы уже столько понаделали всяких защит, что пора продавать отдельный продукт. Ведем каталог из 23тыс disposable емейл-провайдеров, репутационную базу IP-пулов, всякие WAF/OWASP, VPN-детекторы и черт знает что еще.

Эх.
👍1
Лет восемь назад у нас взломали AWS-аккаунт и запустили гору GPU-виртуалок для криптомайнинга. Из-за чего месячный счет за одну ночь вырос c 200 баксов до $50к. У нас не был куплен платный "саппорт", мы не были большим и важным клиентом (скорее наоборот, мы были двумя перепуганными сопляками, тогда еще - из России). Но один звонок - и проблему решили за 10 минут.

Причем, я с испугу все перепутал и позвонил даже не в AWS, а в саппорт обычного Амазона (магазина). Почему-то - итальянского. Я даже не знаю почему... Что вылезло при паническом гуглинге, туда и позвонил. И за 10 минут меня успели перевести на линию AWS US East, верифицировать, что я - это я, переключить на нужного человека, который посмотрел статистику аккаунта, выругался "damn those miners" и обнулил эти $50 тысяч.

Или вот пару месяцев назад мы переключили EC2-диски с "gp1" на новый "gp2". После чего в метриках сильно вырос "read/write latency", с 1мс до 4-6мс. Мелочь, а неприятно. В этот раз я даже не писал в поддержку, я просто запостил скриншот графика на реддит. Типа, смотрите, народ, какая шляпа.

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

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

Амазон - единственная FAANG-компания, где я могу достучаться до живого человека.

И человек, скорее всего, решит мою проблему. Это дико круто. И да, я все знаю про адские условия работы на складах, про подавление профсоюзов, про приукрашенную правду в фильме "Страна Кочевников" (граничащую с откровенной джинсОй)... Но для меня, как для клиента, Амазон - наркотически хорош.

Попробуйте добраться до живого человека в Фейсбуке. Или Гугле. Да это же, блять, просто невозможно.

Не знаю, для кого я это пишу. Но вот мы сейчас подключаем расширенный API фейсбука, для которого надо отправить запрос на ревью. Для этого надо верифицировать юр.лицо. Для чего надо иметь аккаунт платящего рекламодателя. Который у нас есть, но почему-то заблокировался (???) за какую-то неправильную рекламу (???). А чтобы разблокировать нужна тысяча документов, включая паспорта, налоговые выписки и чуть ли не справку от венеролога...

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

Мде.

Скотт Фарквар (фаундер Атлассиан) когда-то сказал "support is cheap marketing". Штош. Все правильно сказал. Тут, наверно, надо вставить шутку, что Атлассиан скатился в такое же говно, как остальные. Но лучше посмотрите его выступление по ссыле - о том, как все начиналась, как они жили в съемной комнатушке в СФ, как он чинил взломанные сервера находясь в пустыне Калахари на медовом месяце и прочие вкусности. Люблю такое.
Восьмитысячный раз спросили "как найти идею для стартапа?"

Да епрст, никак.

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

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

Мозг рождает креатив когда вокруг - движуха. И смена картинки.

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

А в это время пчелки-фрилансеры и консалтеры, которые c каждым следующим проектом крутятся в какой-то новой индустрии, будут придумывать восемь стартапов в секунду.

Есть такая теория "luck surface area". Это когда кто-то жалуется "ах, почему Васе везет, а Пете нет" - да нет, всем везет примерно одинаково. Просто Вася замечает, а Петя - нет. Надо вертеть башкой и расставлять пошире сети. Никакого говнокоучинга, это просто мат.стат. Закон, сука, больших чисел. Чем больше экспериментов - тем острее пик на биномиальном графике.
👍3
.и в продакшен
Ну когда же, когда же облачные провайдеры понизят цены на траффик? Ведь они берут за него почти в 80 раз больше себестоимости, ало? НИКОГДА. Высокие цены за траффик - это не способ заработать. Это способ удерживать клиентов внутри walled garden. Нефиг строить…
Кажется, я еще не писал про простой хак, как быстро сэкономить на AWS-счетах за траффик.

Траффик в Амазоне стоит дорого. Примерно $100 за терабайт. Если у вас, допустим, 100ТБ в месяц - это сразу $10к. Десять тысяч долларов. В месяц. Ну не суки?

Причем, 100ТБ - это вообще-то немного. Это плюс-минус обычный CRUD-SaaS с файл-аттачами. А уж если ваш стартап стримит видео или там хостит подкасты и клабхаусы - ох, боюсь даже подумать...

При этом у Амазона есть продукт "AWS Lightsail" - это такое, типа, облако для нубов. Панелька попроще, сервисов поменьше, цены потупее... Зато к серверу за $3.5 прилагается бесплатный траффик на 1 TB.

"$3.5 в месяц" vs "$100 в месяц"... Хммм, даже не знаю что выбрать....

Для тех, кто не понял:

- покупаем AWS Lightsail сервер(а)
- заводим nginx или haproxy
- профит

Траффик между Lightsail и "большим" AWS не тарифицируется. Но есть catch - в амазоновском TOS мелким шрифтом написано, что Lightsail нельзя использовать для прямого проксирования "больших" AWS-продуктов. Могут поймать и надавать по шее (хотя это маловероятно, знаю людей которые гоняют так траффик годами).

Поэтому вместо тупого реверс-прокси можно вынести туда фронтендовые микросервисы. Ну типа "микросервис по скачиванию файлов из S3", хихи. Юзер жмет ссылку "скачать файл" - мы не отдаем файл сразу, а редиректим на Lightsail со специальной магией в URL. А там уже крутится примитивный бекенд из трех строчек на node, который ходит в S3...

В общем, вариантов миллион. Дерзайте.
Напоминаю, что сегодня кончается рут-серт LetsEncrypt "R3". В тех странах, где 30 сентября уже наступило - некоторые браузеры выдают ворнинги. REST-клиенты, мобилки и IoT могут отвалиться вообще без предупреждения.

TLDR: сертификаты Letsentrypt - cross signed сразу двумя CA и один из них станет сегодня устаревшим. Если на вашем сервере стоят intermediary серты из цепочки - их надо либо удалить, либо поставить актуальные. Т.к. если серт имеет два "path" и только один из них отдаётся сервером, то второй path браузеру надо скачивать "снаружи" и некоторые этого не делают, кидая ошибку.

И чтоб два раза не вставать не ребутить: после последнего апдейта айфоны и макось стали ругаться на сайты с TLS 1.0 и TLS 1.1, Отрубите их, если еще не.

тулза https://www.ssllabs.com/ssltest в помощь
К вопросу о "сделать плохо, но быстро" VS "сделать круто, но за год"

Я, кстати, всегда был за первое - "из говна и палок, зато вчера". Но мне, наверное, просто везло с коллегами. Которые умели и быстро, и без откровенного шлака. Зато сразу вспоминается история про GST - "Google Standard Time".

Все сервера гугла, где бы они не находились, работают в часовом поясе "Pacific Time". Сколько у них серверов, миллионы? И на всех - калифорнийское время. "UTC"? Не, не слышали. В логах, в базах, в новостных лентах все хранится в "PST". Даже в BigQuery если написать new Date() - будет PST. Когда-то в самом начале делали "быстро" и решили забить. А теперь чинить настолько страшно и сложно, что проще оставить как есть.

Кто-то в шутку решил назвать "Google Standard Time". Так и прижилось. И ничего, работает.
Есть два типа CTO - выросшие "снизу" и выросшие "сверху".

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

Потихоньку учились делегировать, нанимать, рулить командой и вот это все. Чтобы стать, наконец, CTO.

Узнаются по важному тону и любви повыступать на конференциях.

А есть "выросшие сверху" - это когда ты, сцука, сразу ЦТО. Потому что тебя взяли единственным инженером в маленький стартап. И бросили разбираться со всем "айти" сразу. Ты и фуллстек, и девопс, и seo-шник, а еще принтер почини. Ну или ты соло-фаундер своего стартапа (👋) и там - все то же самое, плюс еще вагон с тележкой.

Эти - росли вместе с компанией. И тоже потихоньку учились делегировать, нанимать, рулить командой и вот это все.

Узнаются по синдрому самозванца, красным глазам и торчащей из рюкзака клавиатуре. На конференции ездят раз в год - выспаться.

Зато те, кто выживают - становятся великими. Такими, как Эван Уоллес (CTO и кофаундер Figma), или Ли Холловей (CTO и кофаундер Сloudflare).

Последний, к сожалению, давно отошел от дел. Если еще не читали - гляньте его (грустную) историю тут. Гениальный чувак.

P.S. в комментах подсказали, что есть русский перевод на хабре: https://habr.com/ru/post/498406/
👍1
Гугл поймали на таком количестве гадостей, манипуляций и просто нарушений закона, что волосы шевелятся.

Если кто пропустил, сразу 13 штатов подали в суд на Гугл. Разборка будет проходить в суде южного округа штата Нью-Йорк (привет сериалу "Billions") и вчера в сеть выложили неотцензурированный текст иска. Хотя адвокаты Гугла оооочень старались этого не допустить, но судья решил иначе.

Там от каждого абзаца челюсть выпадает.

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

Гугл вступил в сговор с Facebook ("проект Blue Jedi") чтобы, в числе прочего, бороться с последними фичами Apple по блокировке трекинга на айфонах. Самое смешное, что в документах есть целый раздел, как Гугл и Фейсбук должны друг друга выгораживать, если афера вдруг вскроется.

Гугл искусственно завышает AMP-страницы в результатах новостного поиска (AMP это проприетарный гугловый CDN). А также специально замедляет "не-AMP" страницы на 1 секунду (!), чтобы доказать, что "AMP работает быстрее" - все это чтобы заманить паблишеров на формат AMP, в котором они отсекают показы других рекламных сетей.

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

Гугл Хром, в котором нельзя вырубить гугл-логин - это часть долгосрочного "проекта NERA" по осознанному и постепенному захвату контроля над Интернетом. Прямо так и пишут во внутренних документах.

Гугл постоянно вступает в переговоры с MS, Apple и Facebook, как только те запускают прайваси-фишки, пытаясь давлением и уговорами этого не допустить.

И прочая жесть.

Сам я уже года четыре не пользуюсь Хромом, а два года назад мы убрали с сайтов Гугл-аналитику и переехали на селф-хостед гугл-фонты (да, через них тоже трекают). Чего и вам советую. Единственное, с чего никак не получается слезть - это gmail :(

(кстати о кэнселлинге Хрома. Я честно пытался в FF, но если ты хоть немного фронт - это ад. Дебаг кривой, сорсы не подгружаются, де-минимизация не работает, а степ-бай-степ перескакивает через строки. Да и кого мы обманываем, все равно придется тестить в хромиуме. Пару лет назад я попробовал MS Edge на маке, да так и остался. Быстрее хрома, совместим с экстеншенами, вертикальные табы ❤️... А главное, кому еще доверить аудит кода корпорации зла - как не другой корпорации зла?)

P.S. кому интересны подробности, твит-стормы и прочие новости по теме - просто гляньте HN-поиск по "google" за неделю

P.P.S. не мог не обратить внимания, что большинство подавших иск штатов - это "красные", республиканские, традиционно консервативные штаты. Техас, Монтана, Аляска, Арканзас, Кентаки, Айдахо и тд. Это не значит что "республиканцы хорошие". Это значит, что политическая конкуренция (в обе стороны) - это очень круто.
Когда кто-то начинает спорить "чем UX-дизайн отличается от UI-дизайна", я всегда вспоминаю крутую историю про дропдаун-меню Амазона.

Вы наверняка замечали каскадные меню, которые исчезают, если "неправильно" провести по ним мышкой. Вот так. Бесит же.

Обычно с этим борются задержкой/debounce. Но глаз замечает задержку и это раздражает.

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

В результате дропдаун летает и не пропадает. Ничего другого от Амазона и не ждали: именно Амазон еще в 2006 году сделал знаменитое открытие, что каждые 100ms задержки роняют им выручку на 1%. Я уверен, что каждый пиксель на их, казалось бы, уродливой главной странице - на самом деле АБ-тестирован и оптимизирован до абсурда.


P.S. Я не могу понять, почему тот же самый Амазон сделал абсолютно дибильную панель AWS аж с тремя скроллбарами. Вот вам два разных отношения к дизайну - там где он влияет на выручку, и там где не очень.

P.P.S вот оригинал истории с исходниками, кому интересно
👍5
Извините, воспользуюсь каналом в личных целях. У нас вакансия. Мы ищем фуллтайм тех.саппортера (-ршу) на удаленку, с отличным английским, отвечать на тикеты клиентов.

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

Примеры тикетов



КЛИЕНТ: "Хочу инвойс"

ВЫ: "Клик-клик, вот инвойс"

ВЫ (в слэке): "Меня бесит генерить долбаные инвойсы, запилите клиентам кнопку!"



КЛИЕНТ: "Я хочу фичу Х розового цвета"

ВЫ: "А что вы пытаетесь сделать? ааа, так это уже есть! вон там"

ВЫ (в слэке): "Вашу дурацкую фичу опять никто не может найти"



КЛИЕНТ: "Селф-хостед приложение на IIS за nginx-прокси выдает ошибку [текст ошибки] после апгрейда с версии Х на Y"

ВЫ: "Смотрю исходный код, судя по коллстеку на вашем виндовс-сервере нужно обновить .net core hosting bundle"

ИЛИ: "Похоже баг, клик-клик, я завела issue в беклоге, скоро починим"

ИЛИ: "Ой, ничего не понятно, щас позову кого-нибудь"



КЛИЕНТ: ...a.....1....0LHQu9GP0YI=

ВЫ (в слэке): "АЛО, ПРОД УПАЛ, где все?!!"



ВЫ (в слэке): У меня важное свидание с парнем/девушкой, меня завтра нет

МЫ: Ок

__

Большинство наших клиентов - в Штатах и ЕС поэтому желательно (но не обязательно) быть "поближе" к западным таймзонам. Команда русскоговорящая, все в разных странах, но все в UTC+1 плюс-минус.

Начальная вилка 1000-2500 Евро в зависимости от тех. знаний. У нас есть плюшки и нет зум-созвонов и митингов. Наш стек - ASPNETCore + SQL Server. Есть клиенты и из мира линух, и виндовс. Последних к сожалению много, поэтому нужно отдаленно понимать, что такое "windows-integrated авторизация" или "AD домен". Это нужно редко, но нужно... Впрочем, такому "айти" мы научим, главное хоть какой-то опыт в саппорте, свободный английский, софты и выдержка )) Плюс умение грамотно выражать мысли в письменном виде. Как говорится, Clear writing == Clear thinking

Вакансию я пока никуда не выкладывал, пусть тут повисит. Если вам понятны и комфортны все слова в примере тикета №3, шлите резюме в телеге @jitbit

UPD: в РФ у нас нет юридического лица. Но мы вместе придумаем как все официально оформить, опыт есть.

UPD2: уточню еще раз: речь о фуллтайм-занятости, не о фрилансе

UPD3: все, мы кажется нашли классного кандидата!
👍2
Обожаю "Fork", очень удобный GUI-клиент для git.

Самое крутое в нем, конечно, то, что программу пилит семейная пара indie-разработчиков. Причем "наших" разработчиков - Данила и Таня Приступовы, живущие в Праге. Раньше они кодили проект в свободное время, а теперь уволились и развивают его фуллтайм. Такой вот семейный bootstrapped стартап - милота.

Но и без этого клиент прямо классный, не зря он регулярно вылезает в топы Hacker News. Быстрее, проще и удобнее всяких ГитКракенов, SourceTree, Tower и т.д.

И конечно всегда приятно увидеть хоть что-то кроссплатформенное не на долбанном электроне

Гит-гуй нужен нечасто, но когда нужен, Форк - топ. Мой любимый use case - стейджить файлы "по кусочкам". Старый добрый git add -p конечно работает, но скроллить диффы в терминале - это не для меня. Или вот интерактивный rebase, как верно подсказали в комментах.

P.S. это ни разу не реклама и вообще там есть бесплатная версия. Она раз в месяц робко напоминает, что "меня ваще-то можно купить".