Описание услуги
Я бэкенд-разработчик и пишу на Scala, а функциональное программирование для меня — это способ мыслить о задаче, а не приём, к которому обращаешься изредка. Я проектирую сервисы вокруг неизменяемых данных, чистых функций и типизированных эффектов, поэтому поведение остаётся предсказуемым, а компилятор ловит целые классы ошибок ещё до того, как что-то попадёт в продакшн. Если у вас уже есть стек на JVM и нужны гарантии корректности и конкурентности, которые даёт Scala, либо вы начинаете с нуля и хотите фундамент, который масштабируется, а не превращается в клубок, — я возьму работу от архитектуры до сервиса, спокойно работающего в бою.
Большую часть времени я делаю REST- и gRPC-API, событийные системы и конвейеры обработки данных. Строю конкурентные и распределённые бэкенды на акторах Akka и Akka Streams, моделирую долгоживущие процессы, переживающие перезапуски, и связываю всё с Kafka, PostgreSQL, Cassandra или Spark в зависимости от природы данных. Я думаю о back-pressure и о том, что произойдёт, когда зависимость станет медленной или пропадёт, поэтому мои системы деградируют мягко, а не падают. Пакетные и потоковые задачи на больших данных — обычная часть работы: перенос, очистка и агрегация больших объёмов без потери записей и без выхода за пределы памяти.
Сразу обозначу рамки: это именно Scala и функциональный подход, а не обычный Java, Kotlin или Go, переписанный синтаксисом Scala. Я пишу идиоматичный код с Cats, ZIO или Akka, тестирую через ScalaCheck и property-based-подход и отдаю код, который ваша команда сможет читать и развивать. Расскажите про нужную пропускную способность и ограничения — предложу подход и реалистичный срок.
— Функциональные бэкенд-сервисы на Scala (Cats, ZIO)
— Акторы Akka и Akka Streams для конкурентных распределённых систем
— REST- и gRPC-API с типизированными тестируемыми доменами
— Big-data и ETL-конвейеры на Spark и Kafka
— PostgreSQL, Cassandra и event-sourced-хранилища
— Property-based-тестирование и настройка CI под JVM
Большую часть времени я делаю REST- и gRPC-API, событийные системы и конвейеры обработки данных. Строю конкурентные и распределённые бэкенды на акторах Akka и Akka Streams, моделирую долгоживущие процессы, переживающие перезапуски, и связываю всё с Kafka, PostgreSQL, Cassandra или Spark в зависимости от природы данных. Я думаю о back-pressure и о том, что произойдёт, когда зависимость станет медленной или пропадёт, поэтому мои системы деградируют мягко, а не падают. Пакетные и потоковые задачи на больших данных — обычная часть работы: перенос, очистка и агрегация больших объёмов без потери записей и без выхода за пределы памяти.
Сразу обозначу рамки: это именно Scala и функциональный подход, а не обычный Java, Kotlin или Go, переписанный синтаксисом Scala. Я пишу идиоматичный код с Cats, ZIO или Akka, тестирую через ScalaCheck и property-based-подход и отдаю код, который ваша команда сможет читать и развивать. Расскажите про нужную пропускную способность и ограничения — предложу подход и реалистичный срок.
— Функциональные бэкенд-сервисы на Scala (Cats, ZIO)
— Акторы Akka и Akka Streams для конкурентных распределённых систем
— REST- и gRPC-API с типизированными тестируемыми доменами
— Big-data и ETL-конвейеры на Spark и Kafka
— PostgreSQL, Cassandra и event-sourced-хранилища
— Property-based-тестирование и настройка CI под JVM