Sobre o serviço
TraduzidoSou um desenvolvedor backend e escrevo em Scala, e programação funcional para mim é uma forma de pensar sobre um problema, não uma técnica que utilizo ocasionalmente. Eu projeto serviços em torno de dados imutáveis, funções puras e efeitos tipados, para que o comportamento permaneça previsível e o compilador capture classes inteiras de erros antes que cheguem à produção. Se você já tem uma pilha JVM e precisa das garantias de correção e concorrência que Scala fornece, ou se está começando do zero e quer uma base que escale em vez de se transformar em uma bagunça, eu levarei o trabalho da arquitetura a um serviço funcionando de forma confiável em batalha.
A maior parte do tempo estou construindo APIs REST e gRPC, sistemas de eventos e pipelines de processamento de dados. Eu construo backends concorrentes e distribuídos em atores Akka e Akka Streams, modelo processos de longa duração que sobrevivem a reinicializações, e conecto tudo ao Kafka, PostgreSQL, Cassandra ou Spark dependendo da natureza dos dados. Eu penso sobre pressão de back e o que acontece quando uma dependência fica lenta ou desaparece, para que meus sistemas se degradem de forma elegante em vez de falharem. Tarefas em lote e streaming em big data são rotina: migração, limpeza e agregação de grandes volumes sem perder registros e sem ficar sem memória.
Deixe-me ser claro sobre o escopo: isso é Scala e abordagem funcional, não Java, Kotlin ou Go regulares reescritos na sintaxe Scala. Eu escrevo código idiomático com Cats, ZIO ou Akka, testo via ScalaCheck e abordagem baseada em propriedades e entrego código que sua equipe pode ler e evoluir. Fale-me sobre a taxa de transferência necessária e as restrições — eu sugerirei uma abordagem e um cronograma realista.
— Serviços de backend funcionais em Scala (Cats, ZIO)
— Atores Akka e Akka Streams para sistemas distribuídos concorrentes
— APIs REST e gRPC com domínios testáveis tipados
— Pipelines de big-data e ETL no Spark e Kafka
— PostgreSQL, Cassandra e armazenamento baseado em eventos
— Testes baseados em propriedades e configuração de CI JVM
A maior parte do tempo estou construindo APIs REST e gRPC, sistemas de eventos e pipelines de processamento de dados. Eu construo backends concorrentes e distribuídos em atores Akka e Akka Streams, modelo processos de longa duração que sobrevivem a reinicializações, e conecto tudo ao Kafka, PostgreSQL, Cassandra ou Spark dependendo da natureza dos dados. Eu penso sobre pressão de back e o que acontece quando uma dependência fica lenta ou desaparece, para que meus sistemas se degradem de forma elegante em vez de falharem. Tarefas em lote e streaming em big data são rotina: migração, limpeza e agregação de grandes volumes sem perder registros e sem ficar sem memória.
Deixe-me ser claro sobre o escopo: isso é Scala e abordagem funcional, não Java, Kotlin ou Go regulares reescritos na sintaxe Scala. Eu escrevo código idiomático com Cats, ZIO ou Akka, testo via ScalaCheck e abordagem baseada em propriedades e entrego código que sua equipe pode ler e evoluir. Fale-me sobre a taxa de transferência necessária e as restrições — eu sugerirei uma abordagem e um cronograma realista.
— Serviços de backend funcionais em Scala (Cats, ZIO)
— Atores Akka e Akka Streams para sistemas distribuídos concorrentes
— APIs REST e gRPC com domínios testáveis tipados
— Pipelines de big-data e ETL no Spark e Kafka
— PostgreSQL, Cassandra e armazenamento baseado em eventos
— Testes baseados em propriedades e configuração de CI JVM