Я уверен, что про эту эпичную историю в русскоязычном IT-сообществе практически никто не слышал, но она определённо заслуживает внимания.
Preston Thorpe работает software engineer в Turso и участвует в разработке Limbo — проекта по созданию SQLite-совместимой базы данных на Rust.
Turso — это distributed database platform, которая даёт совместимый с SQLite движок (LibSQL) для использования как edge-ориентированной базы данных: с репликацией, низкой задержкой и возможностью работать ближе к пользователю, как альтернатива классическим централизованным PostgreSQL/MySQL-схемам в некоторых сценариях.
Есть одна деталь, он делает это из тюрьмы.
В молодости Престон ушёл из дома, связался с наркотиками и в итоге получил длительный срок заключения.
Казалось бы, на этом история должна была закончиться.
Но в тюрьме штата Мэн он получил доступ к образовательной программе, компьютеру и ограниченному интернету. У него появилась возможность изучать Linux, базы данных, системы хранения данных и программирование.
Со временем программирование стало его главным занятием.
Затем он наткнулся на проект Limbo и начал отправлять pull request’ы.
Сначала его оценивали только по коду, никто не видел заключённого, никто не видел уголовного прошлого.
Люди видели инженера, который пишет хороший код, участвует в технических обсуждениях и помогает развивать проект.
Через несколько месяцев он стал одним из самых активных контрибьюторов.
А потом получил предложение о работе от CEO Turso.
Мне очень понравился его взгляд на обучение.
Особенно это выглядит полезным для самоучек, таких как я.
Вот что он пишет в своем блоге:
Сегодня многие пытаются изучать очередной язык программирования или новый фреймворк.
Я же считаю, что это ошибка.
Мой главный совет:
Изучайте системы, а не языки.
Не React, а то, как работает браузер и HTTP.
Не ORM, а SQL и базы данных.
Не Kubernetes по гайдам, а Linux, процессы, файловые системы, сеть и системные вызовы.
По его мнению, компании нанимают не разработчиков Rust, Go или Python.
Они нанимают инженеров, которые понимают, как устроены компьютеры и программные системы. Языки и инструменты меняются, фундаментальные знания остаются.
Он советует писать собственные проекты:
— реализовать структуры данных;
— написать shell;
— сделать HTTP-сервер на сокетах;
— разобраться с компиляторами и интерпретаторами;
— глубоко изучить Linux и CLI-инструменты.
Для меня конечно самое интересное в этой истории даже не сам факт найма.
А то, что open source в данном случае сработал именно так, как многие мечтают: человека реально оценили по знаниям, а не по его диплому и не по умению проходить алгоритмическую секцию.
Его оценивали по результату и только потом узнали его биографию.
А вот ссылки на его историю:
How I got here
Learn systems, not languages
Подкаст на YouTube из тюрьмы
@tldr_data