Описание услуги
Я создаю быстрые и корректные системы на OCaml и выбираю этот язык именно за то, что важно под нагрузкой: строгую статическую типизацию, исчерпывающий разбор образцов и производительность, близкую к C. Когда компилятор принимает мой код, целые классы ошибок уже устранены, и до пользователей доходит та логика, которую я действительно продумал, а не набор оптимистичных предположений. Я работаю над компиляторами и языковым инструментарием, финансовыми движками, где ошибка округления недопустима, и бэкендами, которые обязаны оставаться живыми, пока всё вокруг меняется.
Большинство задач я начинаю с того, чтобы сделать недопустимые состояния невыразимыми. Я моделирую предметную область вариантными типами и записями так, что сама форма данных навязывает правила, а разбор образцов проходит по каждому случаю, известному компилятору. Такая привычка превращает расплывчатые требования в проект, в котором трудно ошибиться, и держит код честным по мере роста числа функций. Производительностью я тоже занимаюсь всерьёз: предсказуемое выделение памяти, плотные структуры данных и профилирование до оптимизации, чтобы цифры улучшались там, где их измеряют, а не там, где просто кажется медленно.
Вы получаете читаемые и задокументированные модули, набор тестов, проверяющий именно сложные пути, и сборку, которую коллега поднимет без недели устного знания. Мне комфортно связываться с существующим кодом на C, встраивать сервис в большой стек или разворачивать проект с нуля из пустого репозитория. Назовите ограничение, которое вас пугает, и я в первую очередь спроектирую систему вокруг него.
— Компиляторы, парсеры, предметные языки и статический анализ
— Низколатентные финансовые и торговые бэкенды
— Моделирование домена через типы и рефакторинг
— Взаимодействие с C, профилирование и тюнинг
Большинство задач я начинаю с того, чтобы сделать недопустимые состояния невыразимыми. Я моделирую предметную область вариантными типами и записями так, что сама форма данных навязывает правила, а разбор образцов проходит по каждому случаю, известному компилятору. Такая привычка превращает расплывчатые требования в проект, в котором трудно ошибиться, и держит код честным по мере роста числа функций. Производительностью я тоже занимаюсь всерьёз: предсказуемое выделение памяти, плотные структуры данных и профилирование до оптимизации, чтобы цифры улучшались там, где их измеряют, а не там, где просто кажется медленно.
Вы получаете читаемые и задокументированные модули, набор тестов, проверяющий именно сложные пути, и сборку, которую коллега поднимет без недели устного знания. Мне комфортно связываться с существующим кодом на C, встраивать сервис в большой стек или разворачивать проект с нуля из пустого репозитория. Назовите ограничение, которое вас пугает, и я в первую очередь спроектирую систему вокруг него.
— Компиляторы, парсеры, предметные языки и статический анализ
— Низколатентные финансовые и торговые бэкенды
— Моделирование домена через типы и рефакторинг
— Взаимодействие с C, профилирование и тюнинг