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

Как быть CTO/CEO одновременно, как растить bootstrapped-стартапы и прочая айтишечка.
Download Telegram
Так. Если кому нужны инвестиции, наш уютный фонд "для своих" - Tinyseed - в январе набирает следующий батч фаундеров.

Спокойно, это не VC-спам

Это скучный, unsexy акселератор специально заточенный под bootstrapped SaaS. Инвесторы фонда - такие же фаундеры-технари: DHH, Rand Fishkin, Hiten Shah... (и конечно я!! хе-хе) Никаких банков, faang'ов, private equity фондов и прочего сброда.

Механика простая: $120k (если один фаундер, $60k на каждого следующего) в обмен на 10-12% equity. И все. Можно пустить деньги в развитие, а можно положить себе в карман в виде зарплаты.

Обычно такие программы (см. YCombinator) длятся три месяца и заканчиваются demo day, где фаундеры выпрыгивают из штанов, пытаясь получить Series A.

Здесь не три месяца, а год. Никакого demo day нет. Не надо никуда переезжать (фонд в Миннесоте, но все делается удаленно). Не надо любой ценой растить единорога или целиться на "exit", наоборот - сиди и спокойно выращивай прибыльный бизнес. У фонда просто доля. Выйдете в плюс - заплатите дивиденды. Не выйдете - не заплатите.

Такая инвестиция - просто способ снять с фаундера стресс "аааа, на что мне целый год кормить семью, если я уволюсь пилить свой проект??"

Взамен получаете доступ к пулу менторов (зацените список) всех нас можно дернуть во внутреннем Слаке или по емейлу (как и других фаундеров) + регулярные ретриты + перки от AWS и других партнеров, и тп.

Основной критерий - наличие какого-то traction и MRR. Если у вас просто крутая идеи а-ля "the next Facebook" - это вам в Долину.

инфа тут
Фан-факт про двухмиллиардную индустрию новогодних елок:

Оказывается, на елочных фермах деревья собирают ВЕРТОЛЕТАМИ. И как! Просто посмотрите это видео - это же просто офигенно.

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

PS. я расспросил живущего в Штатах приятеля с вертолетными правами - он подтвердил, что вот эти Орегонские tree-harvesters среди вертолетчиков считаются прямо элитой.

PPS. вот тут глазами пилота
В телего-чатах, в твиттере и даже на Хакерньюс народ время от времени интересуется:

"Почему в век единорогов, блокчейнов и Тесл никто до сих пор не сделал облачный MS Access?"

Чтобы подключил свою БД (или АПИ), перетащил на форму кнопочки, текстбоксы и списки - и через час получил простую CRUD-админку - для внутренних задач. Оказалось, что такие тулзы есть.

И я попробовал почти все.

У нас уже есть своя админка, но всегда находятся edge-cases, которые она не закрывает. Типа "глюканул биллинг - клиент поставил тикет - надо подвинуть дату подписки - Вася-кодер или Петя-девопс лезут в базу руками"

Эти кейсы нас дико затрахали. Особенно когда Петя в другом часовом поясе, а Вася вообще фронтендер и не нанимался ssh'иться по вашим дурацким серверам.

Лазить в базу - бесит. Кодить формы - лень. Пока сделаешь формочку, эндпойнт к ней, тесты, деплой... Ой нет, проще уж слазить в базу. Последний разик, обещаю.

Короче, я решил погрузиться в дивный мир "nocode/lowcode", чтобы бах! - и CRUD-админка за 10 минут.

Ниша молодая, устоявшегося названия пока нет. Что гуглить - непонятно. Точно не "No Code", потому что под ним понимается вообще все - от IFTTT до Airtable. Да еще и венчурный хайп вокруг этого термина ухудшает "сигнал-шум".

Пришлось перелопачивать Product Hunt, комменты на Hackernews и поиск а-ля "XXX alternative".

Я нашел примерно с десяток вариантов, который потом сузился до трех: AppSmith, Retool и ForestAdmin.

ForestAdmin - удобный интерфейс, большое коммьюнити, бесплатный на малых объемах. Пароли не хранятся где-то у дяди в облаке - ты ставишь себе контейнер (или npm-пакет), в конфиге прописываешь путь к БД, а их SaaS уже дергает твой сервер. Который в случае сомнений можно быстро потушить.

Минусы: провозился час, но так и не завел. Их онбординг, как потом выяснилось, предполагает обязательный стейджинг на локальной дев-машине (у них тупо захардкожен "localhost" прямо в веб-морде SaaS-продукта) А я, дурак, поднимал EC2, ставил зависимости, заводил бек... Но нажать кнопочку "деплой" можно только пройдя "локальный" шаг. Мне стало лень. Я пришел за модным no code, а мне опять предлагают ковыряться в терминале.

(я пытался вежливо наехать у них на форуме, но мне так же вежливо объяснили, что у них "opinionated product" и не пойти бы мне нахер. Классная отмазка про "opinionated product", это типа такой новый "works on my machine", надо запомнить)

AppSmith - классный, бесплатный, быстрый, опенсорсный, даже hosted-версия бесплатная, они пока сами не придумали, как монетизировать. Живое коммьюнити, на Github-issue отвечают в течении пары часов. Есть коннекторы для любых баз, от Монги до MS SQL Server.

Минусы: продукт уж слишком "живой", постоянно допиливается, доки обновлять забывают, половина ссылок в них не работает, кнопки кидают 500 server error, чинят баг в одном месте - ломается другое... Молодежь, короче. Ну и главный баг - из некоторых баз данных неправильно забираются колонки "DateTime". Пишешь "SELECT Date" - в интерфейс приезжает "int". Ну ептвоюмать. А так красиво все начиналось.

Retool - пока остановились на ней. Добротный коммерческий продукт (есть бесплатный тариф), с нормальными доками и неглючным интерфейсом. Доки вообще классные, много анимированных гифок "ткни сюда, потом впиши команду здесь", на подключение и создание админки ушел час. Работает с любой базой и с кучей API (Stripe и тп).

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

Из остального попробованы: JetAdmin (вроде ок, но отпугнула поехавшая разметка в демке на сайте), Hasura (оказалось, что это просто GraphQL-генерилка с авторизацией и кешированием) и еще целый зоопарк опенсорсных поделок, которые заточены под какую-то одну БД.

Выводы: ниша молодая, но будет матереть. Опасения типа "все тормозит, потому что база в другом ДЦ" или "wysiwyg и прочий драгдроп в браузерах будет тупить" не оправдались. Самый зрелый продукт - retool, но скоро его порвут. У меня все.
👍1
Не мог пройти мимо последнего подкаста Самата (подкаст, кстати, огонь - в моем телефоне это единственный русскоязычный подкаст про стартапы и технологии)

В последнем эпизоде парни обсуждали комиссии апсторов.

И одним из аргументов "за" апсторы было то, что Apple, мол, такой няшный, классный и удобный - т.к. сам процессит платежи, сам берет с конечных пользователей нужные налоги (VAT в Европе, НДС в России, "налог штата" в Америке и тп), сам менеджит подписки, сам конвертирует валюты (за 2% хехе), уведомляет юзеров и тп. И, главное, шлет агрегированную выручку раз в месяц.

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

Это не совсем правда.

Между этими двумя крайностями ("апстор vs stripe") есть промежуточный вариант - компании по процессингу платежей, которые делают все то же самое, но берут 4-5%.

Мы пользовались ими еще в 2005 году, когда никаких апсторов еще не было. Страйпа, кстати, тоже.

Эти сервисы точно так же:

- берут деньги с пользователя
- сами следят за налогами
- выплачивают выручку раз в месяц (ужасно удобно, что по всем бумагам у тебя ОДИН контрагент)
- поддерживают не только кредитки, а вообще любые платежи, банковские переводы и пейпалы. В том числе локальные извращения, типа WeChat/Alipay в Китае, европейские переводы по SEPA, Яндекс-деньги в РФ, ACH в Америке и даже идиотизмы, вроде бумажных чеков в конверте по почте (!) - этот метод до сих пор используют в Штатах.
- сами саппортят клиентов по вопросам "ой платеж не прошел! ой карта просрочилась! ой я брал на компанию, верните НДС!"
- если у вас большая выручка (от $1млн в год) можно торговаться и продавливать меньший процент

Все что нужно сделать - вставить на сайт ссылку "купить", с нужной магией в URL-params. Или вообще одну строчку <noscript>, который сам повесит onclick на нужные кнопки и покажет красивый попап для ввода кредитки. Когда платеж пройдет - они дернут ваш вебхук, а вы уже доставите продукт, продлите подписку и тп.

(в начале 2000-х эти компании называли "регистраторами", ибо они были заточены в основном на инди-разработчиков shareware. Сейчас они называются модным словом "eCommerce-провайдеры")

Примеры таких компаний: FastSpring, Avangate, 2Checkout, PayProGlobal, BlueSnap, Digital River, CleverBridge, Recurly, Paddle и еще миллион

Мы перепробовали штук пять, сейчас используем FastSpring. Но - спойлер-алерт - они все почти одинаковые. Переехать с одного на другой можно за пару дней. Конкуренция, Карл.
👍1
​​DHH изобрел <asp:UpdatePanel>
https://hotwire.dev/

Ден Абрамов пошел еще дальше и изобрел PHP:
https://reactjs.org/blog/2020/12/21/data-fetching-with-react-server-components.html

Шутки в сторону - я ужасно рад обоим новостям, маятник несется обратно к server-side рендерингу.
Вчерашний скандал в российском фейсбуке напомнил...

У нас была похожая история: фейсбук забанил наш домен и доступ к АПИ. Ничего пошарить нельзя, старые посты, комментарии и любые ссылки - удалены. Сработал какой-то модераторский machine learning. И наш безобидный SaaS-сайт, который раз в месяц пукает в фейсбук скучным постом с двумя лайками, вдруг пометился суровым клеймом "violating community standards".

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

Проверить статус сайта можно в форме дебаггинга и там даже есть ссылочка "оспорить", но 8 месяцев никакого ответа не было. А многие пишут, что ждут годами...

Теперь самое интересное:

Есть компании, которые продают услугу «свяжем с живым человеком в ФБ».

Стоит это от 500 баксов. Просто завести тикет в поддержку. Как правило, это американские SMM-агентства, которые ведут жирных клиентов с большими бюджетами и за это ФБ выделяет им отдельного менеджера. И из всего этого они слепили такой полу-легальный сайд-продукт.

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

К чему я это все: если ваш бизнес целиком построен на piggybacking'е какой-то одной платформы - его легко за одну ночь превратить в тыкву.

Иногда случайно - этим летом, например, ютуб-боты заблокировали NASA-ролик запуска ракеты Falcon-9 потому что "обнаружили" в нем контент National Geographic

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

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

Такая вот коррупция в век машинлернинга и блокчейна...

Same old shit: "правительства", "преступники", карательные органы и индустрия "помогаек", которые берутся "решить вопрос" за 500 долларов. Где-то я все это уже видел :) Все-таки раса гуманоидов обречена.
Извините, я на минутку.

Если вот такой запрос тупит:

SELECT ... WHERE Column=X OR AnotherColumn=Y

То вот такой будет летать:

SELECT ... WHERE Column=X
UNION ALL
SELECT ... WHERE AnotherColumn=Y

(но помните про дубли)

Тут, конечно, не канал про SQL и дазы банных. Но очень хотелось напомнить.

P.S. И вообще. Если у вас взрослая датабаза с дохреллионами записей - старайтесь без "OR" (анлесс у вас хорошо подобраны индексы именно под них). Особенно если этот "OR" относится к разным колонкам. Или вообще к разным таблицам внутри джойна. А если там еще и не простое "A=B", а всякие вычисления и "больше-меньше"... Планировщик не может адекватно оценить estimated rows, а это всегда заканчивается table scan/index scan (вместо index seek).
Ого, кажется, в новом MacBook Pro... НЕ БУДЕТ ТАЧБАРА! Господи, неужели. Перелезать, что-ли, обратно на Мак?

Также обещают вернуть MagSafe (!!) и сделать "прямоугольные" края (как у iPhone 12 и iPad Pro).

Ну и, конечно, M1.

https://9to5mac.com/2021/01/14/kuo-details-2021-macbook-pro-new-design-with-squared-off-sides-magsafe-connector-and-io-return-touch-bar-removed/
Кажется, это лучший пост про "делайте скучно и надежно", что я видел.

Software development topics I've changed my mind on after 6 years in the industry

Кратко, четко и 100% попадание по всем пунктам.
Неправильные бизнес-книги, которые учат молодежь полной херне:

Питер Тиль, "Zero to One".

Проповедует революционность, инновационность и прочую "..ционность". Про умение заметить выигрышную идею, "перевернуть мир", "изменить будущее"... Ну и тд

Не верьте. Предпринимательство - это не про изобретение революционных велосипедов в вакууме, а про incremental changes и экспериментирование.

Ким Чен "Blue Ocean Strategy"

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

Забудьте про океаны. Завоевание "голубого океана" - это долго, дорого и рискованно. Да и неспроста он голубой - скорее всего там просто нечего жрать. Ищите "розовые" океаны - там где уже есть доказанный спрос и тренд, но при этом есть underserved клиенты.

Уолтер Айзексон "Стив Джобс"
Джеффри Янг "iКона"
и вообще любая книга про SJ

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

Нет ничего хуже начальника-дибила, который решил, что он Стив Джобс.

Сунь-цзы "Искусство войны"

Популярна среди CEO-биохакеров и смузи-инвесторов с раздутым эго. В свое время было очень модно пробросить в разговоре "А вы читали Art of War? -О даааа, а вы? -О дааааа, и мы!"

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

Тут как со Стивом Джобсом - читать познавательно и жутко интересно, главное не применять на практике в отрыве от контекста. Луис Фелипе Сколари выиграл ЧМ 2002 не потому, что читал The Art Of War.

Саймон Сенек "Start with Why"

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

Нельзя делать системные выводы, наблюдая аномалии

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

Прежде чем "менять мир" попробуйте выйти хотя бы на 1000 долларов в месяц.
👍2
​​Кстати, про тестирование гипотез и incremental changes.

Знаете, с какой идеи начался Netflix?

"Пришлите по почте прядь своих волос - и мы подберем вам формулу идеального шампуня!"

(господи, какой пиздец)

Попытайтесь представить путь, который проделала компания - от кастомных шампуней до "Queen's gambit".

Все потому, что Netflix одержима тестированием. В их манифесте 2009 года помимо всем надоевших "сотрудники могут брать отпуск сколько и когда хотят", есть знаменитое "ALWAYS BE TESTING"

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

Заметьте - не бросились кодить и регать домены, а пошли тестировать гипотезу.

Причем, там же в супермаркете они поняли, что надо делать не онлайн-продажу, а именно прокат с месячной подпиской - чтобы уйти от прямой конкуренции с Amazon и Wallmart.

Каждый день на главной странице Netflix идут десятки А/Б тестов. В результате рождаются крышесносные фичи. Моя любимая - когда разным пользователям показывают разные tumbnail'ы одного и того же фильма. Если вам нравится Ума Турман - на афише Pulp Fiction будет Миа, если Джон Траволта - то Винсент.

Короче, идеальный пример бизнеса, который вдумчиво и осознанно двигается к завоеванию вселенной.
Срочно в номер: там, говорят, Notion упал и лежал 2 часа.

Походу, стартап с оценкой 2 миллиарда долларов просто забыл продлить домен. В зоне ".so" (это Сомали) пятидневный grace period, который закончится 17-го февраля, как раз через 5 дней.

UPD: ко мне в Твиттер пришел Notion и уверяет, что это не так. Штош... Не убедили. Подождем пост-мортем.
Когда DHH в очередной раз кидался какашками в Apple за комиссии аппсторов, к нему в Твиттер пришел Тоби Лютке, основатель Shopify.

И сказал, мол, да! Аппсторы отстой, Apple козлы, а Дэвид молодец.

(Shopify - это такой "хостинг" онлайн-магазинов. Любая домохозяйка может начать продавать там печеньки, а Shopify возьмет на себя ВСЕ - красивый сайт с корзиной, прием оплаты, доставку товара и тп. Компания сделала IPO, стоит 150млрд, выручка 2млрд в год)

Только вот у Shopify тоже есть свой аппстор. Где куча независимых программеров предлагают домохозяйкам свои маленькие плагины. Чтобы у печенек был крутой емейл-маркетинг, анонсы, умные "корзины" с апгрейдами, акциями и скидками и тп. Классная, кстати, ниша, я знаю пару ребят, которые зарабатывают несколько $миллионов в год.

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

История интересна тем, что все эти shopify-apps, вообще-то, повышают выручку самого Shopify. Ибо большинство плагинов - это всякие напоминалки про abandoned carts, промо, апгрейды, реферальные программы и прочий маркетинг. Авторы приложений повышают выручку продавцов - а значит прибыль Shopify - но все равно должны 20%.

Чую, будет скандал 🍿🍿Зачем ты полез в Твиттер, Тоби?
​​Вчера занимался странным: отлаживал наш фронт на... смарт-ТВ.

Погодите, я все объясню.

Если в вашем продукте есть красивые графики (курсы акций/биткойнов, дашборды и прочий мониторинг), наверняка найдутся клиенты, которые захотят повесить эти картинки себе в офис - на стену, на большом экране. В Штатах это очень модно и молодежно. Кое-где в Европе тоже. Так что будьте готовы к тикетам "ой, а ваше приложение не заводится на телеке!!"

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

Короче, я пару часов возился с эмуляторами телевизоров (LG webos SDK, Samsung Tizen SDK, Philips и тп) и они все ужасны. Сначала ты качаешь 10гб какого-то говна, потом продираешься через инсталлеры, потом запускаешь эмулятор и... выясняешь что в нем нет веб-браузера и тд. и тп.

Лучше так: по спекам телека находим ОС, по ней - версию встроенного Chromium-движка, ставим эту версию локально и тестим. В нашем случае это оказался Chromium 51, который как-то криво ест secure-кукисы и поддерживает не весь ES6.

Гугл хранит все билды Хромиума за всю историю. Они portable, небольшие и быстрые (я аж всплакнул, каким быстрым был когда-то Хром)

Основной квест - найти номер нужного билда по номеру версии. Чтобы не лазить вручную по коммитам и тегам, добрые люди написали удобную тулзу (выбираем "мак/вин/линух", номер версии и получаем ссылку на скачивание)

PS. кто вспомнит, из какого фильма кадр - тот получит водокачку
Я как-то пропустил, а между тем MongoDB зарабатывает 700млн в год.

Я в шоке.

Та самая опенсорсная "монга", над которой все ржут и делают мемы про web scale, а некоторые вообще не считают полноценной базой данных - зарабатывает под миллиард. И это на диком росте - 40% в год.

Причем, большая часть выручки - ARR, то есть recurring revenue. Насколько я понял, львиную долю делает их SaaS-решение для управления инстансами в облаках AWS/Azure.

(ну и кстати, монга - единственный продукт, который умеет в кросс-облачные кластеры, т.е. "половина в Амазоне - половина в Azure")

Акции Монги (дада, у нее есть еще и акции, сам в шоке) за последний год выросли в три раза. С момента IPO - в восемь.

Ужас, короче.
Пару месяцев назад я обругал несколько вредных бизнес-книг.

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

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 в свое время сформулировал фундаментальную проблему всей разработки:

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

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