Обо мне
Приветствую! Меня зовут Алексей, но друзья обычно называют меня Кластером.
Когда мне было 10 лет, у меня появился мой первый компьютер (486 DX-4). С этого момента я начал сильно интересоваться всем, что связано с компьютерами. Изучать операционные системы и различные программы мне было интереснее, чем играть в игры на этом компьютере.
Вскоре я узнал, что вместе с MS-DOS в комплекте идёт Q-Basic, и сразу же заинтересовался тем, как писать программы самостоятельно. Этому языку я учился по школьным учебникам (хотя там было про Бейсик Вильнюс) и справочной системе. Тогда я любил разбираться в том, как данные хранятся и кодируются в бинарных файлах, как что и где можно изменить.
Конечно, мне захотелось научиться программировать и под Windows, плюс было желание работать с сетями (в 2001 году у меня появился доступ в Интернет, мне было 14). Тогда я начал изучать для этого Delphi. Баловался с различными сетевыми протоколами, писал свой IRC клиент, простенькие веб-сервера и телнет-сервера.
В старших классах школы начали проводиться олимпиады по информатике, и я был в восторге от решения олимпиадных задач на различные алгоритмы. Занимал первое место в городской олимпиаде, участвовал в областной.
После школы я начал изучать Си (чистый, без плюсов), т.к. было интересно программировать что-то низкоуровневое и различные устройства. Писал приложения для портативных игровых консолей (КПК тогда были дорогими). Познакомился с тем, как вручную управлять выделением памяти, как работать с указателями и пр.
Параллельно с этим я начал изучать C#, наоборот, для высокоуровневого программирования. С тех пор я до сих пор активно пользуюсь этим языком и стараюсь следить за нововведениями в нём.
Ещё на первых курсах института я начал работать в местном Интернет-провайдере. Сначала я был обычным сотрудником технической поддержки, помогал абонентом по телефону. Вскоре я понял, что для проверки каналов пользователей надо выполнять слишком много однотипных действий. Так я начал писать приложения, которые облегчали бы мою работу: сами подключались к оборудованию, вводили различные команды, парсили результат и почти мгновенно ставили диагноз — в чём может быть проблема, и как её исправлять. Моими программами начали пользоваться и другие сотрудники, и производительность отдела увеличилась в несколько раз.
Я начал писать и серверные приложения, которые круглосуточно опрашивали наше оборудование и вели статистику по различным показаниями. Например, на основе данных из FDB и ARP таблиц я сделал автоматическое определение портов, куда подключены абоненты. Да, как-то так получилось, что при подключении абонентов далеко не всегда записывали в какой порт коммутатора подключили их кабель. Монтажникам часто приходилось выезжать на место, чтобы найти кабель и порт абонента. Каждый такой вызов стоил денег. Благодаря мне расходы компании существенно сократились.
Вскоре меня перевели из техподдержки на должность отдельного разработчика, чтобы я занимался только написанием софта. Там я продолжил писать различные инструменты для работы с сетями и оборудованием. Автоматизировал различные действия. Сделал, например, службу, которая опрашивала оборудование, анализировала длину кабелей и трубила тревогу, если кто-то явно их решил обрезать. Вандалов начали ловить.
Стоит сказать, что за время работы с сетями я неплохо разобрался в том, как они работают, и как настраивается сетевое оборудование. Мне нравится этим заниматься, сейчас у меня даже дома весьма сложная сеть.
Параллельно со всем этим я начал интересоваться электротехникой (хотя в какой-то мере любил это с детства) и микроконтроллерами. Мне было интересно заставить мои программы работать не только на компьютере, но и где-то в реальном мире. Я делал эмулятор домофонных ключей, различные устройства для управления умным домом, велокомпьютеры и много чего ещё. Научился самостоятельно проектировать схемы и платы.
В итоге я долгое время использовал микроконтроллеры AVR, но потом перешёл на STM32. Под всё это я программировал на чистом Си. Сейчас я уже разрабатываю весьма сложные устройства, многие из них с открытым исходным кодом и доступны на GitHub. Некоторые даже активно собирают и продают достаточно крупные компании. На AliExpress тоже можно найти разработанные мной штуки.
Конечно, во время всего этого мне приходилось изучать и другие языки/технологии: различные Verilog, СУБД, SQL, PHP, Bash, Java, JavaScript, Python, ассемблер 6502 и пр. Освоил работу с Linux и использую его сейчас на многих серверах.
Мне по-прежнему нравится писать ПО для самых разных устройств/платформ: смартфоны, умные часы, NES, Game Boy, DS, Wii, роутеры и пр. Мне нравится заниматься реверс-инжинирингом и разбираться, как работают какие-либо устройства, или как хранятся те или иные данные.
Однажды мой друг уговорил меня снимать совместное шоу «Пока все играют», где мы делали различные устройства для игровых консолей и рассказывали, как они работают. Вскоре я начал вести и сольный видеоблог на своём YouTube канале Лёша Кластер. Там я рассказываю о том, как проектирую различные устройства, как программирую или делаю ещё что-то на DIY/IT тематику. Ролики выходят редко, но людям вроде нравится смотреть на то, как проходят мои будни. Сейчас у меня более 100 тысяч подписчиков.
Сейчас я продолжаю программировать в основном на чистом Си и C#, проектировать схемы, разводить печатные платы, программировать микроконтроллеры, писать ПО для необычных устройств, работать с сетями, сетевыми протоколами и заниматься реверс-инжинирингом. У меня есть весьма популярные open source проекты и разработки на GitHub, в основном они касаются работы с какими-либо устройствами, сетевыми протоколами или API.