Serviços de desenvolvimento Scala
Serviços de desenvolvimento Scala para pipelines de dados Apache Spark, back ends de fintech e de trading, plataformas de adtech e de análise, serviços orientados a eventos em Akka, Apache Pekko, ZIO ou Cats Effect, aplicações Play e migrações de Scala 2 para Scala 3, com programadores Scala dedicados à sua equipa ou um projeto Scala entregue de ponta a ponta.
O que construímos com Scala
Jobs Apache Spark em Scala
Jobs batch e de streaming em Spark 4 com Scala 2.13, com Datasets tipados e Spark SQL sobre tabelas Delta Lake ou Apache Iceberg em Databricks, Amazon EMR ou Kubernetes, particionados e afinados para que cada execução caiba na sua janela e no seu orçamento.
Serviços de trading, pagamentos e risco
Serviços de pagamentos, livro-razão, preços e risco com modelos de domínio imutáveis, sealed types e matches exaustivos sobre todos os estados que uma transação pode atingir, BigDecimal para dinheiro e rasto de auditoria para cada alteração.
Sistemas Akka e Apache Pekko
Serviços baseados em atores, clusters, event sourcing e streams com back-pressure em Akka sob a sua licença comercial, ou em Apache Pekko, o fork do Akka 2.6 com licença Apache, com persistência em PostgreSQL ou Cassandra.
Serviços funcionais em ZIO e Cats Effect
Serviços HTTP e gRPC em ZIO 2 ou Cats Effect 3 com http4s, Tapir ou ZIO HTTP, Doobie ou Skunk sobre PostgreSQL, e fs2 ou ZIO Streams, com efeitos, erros e recursos controlados nos tipos.
Streaming Kafka em Scala
Producers, consumers e stream processors em fs2-kafka, zio-kafka, Kafka Streams ou Pekko Connectors, com contratos Avro ou Protobuf num schema registry, escritas idempotentes, novas tentativas e tópicos de dead-letter.
Pipelines de bidding e de atribuição de adtech
Pipelines de real-time bidding, atribuição e audiências que recebem eventos em grande volume, com agregação em Spark ou ClickHouse e APIs que respondem dentro do tempo que um pedido de bid permite.
Aplicações Play Framework
Aplicações web e APIs em Play 3, que corre sobre Pekko, e aplicações Play 2 em Akka migradas para ele, com Slick ou Anorm para acesso a dados e templates Twirl ou um front end separado para as páginas.
Migração de Scala 2 para Scala 3
Código Scala 2.12 e 2.13 migrado para Scala 3.9, a versão atual de suporte de longo prazo, módulo a módulo com o modo de migração do compilador e reescritas Scalafix, enquanto os jobs Spark ficam em Scala 2.13 enquanto o Spark for construído sobre ele.
Builds, testes e atualizações de dependências em Scala
Builds sbt 2 ou Mill que se reproduzem a partir de um checkout limpo, suites MUnit ou ScalaTest com propriedades ScalaCheck, Scalafmt e Scalafix no pipeline, e o Scala Steward a abrir um pull request por cada atualização de dependência.
Contratar programadores Scala
programadores Scala dedicados
Programadores Scala que integram a sua equipa a tempo inteiro, trabalham nos seus repositórios, no seu tracker e nas suas reuniões, e reportam ao seu responsável. A sua empresa entrevista-os; nós assumimos o contrato ucraniano, o processamento salarial, a faturação e as férias.
Entrega de projetos Scala
Uma equipa que conduz o projeto Scala do âmbito à release: estimativa, desenvolvimento, testes e implementação, com um líder técnico do nosso lado que é responsável pelo plano e pela qualidade.
Suporte e tomada a cargo de sistemas Scala
Um sistema Scala existente assumido de outra equipa ou mantido em funcionamento: primeiro uma revisão só de leitura e uma lista escrita de riscos, depois correções e novas funcionalidades por ordem de impacto.
A página da equipa dedicada explica como os especialistas integram a sua equipa, e a página de outsourcing aborda a entrega de projetos, as tomadas a cargo e a forma como cobramos.
Quem trabalha no seu projeto Scala
programadores Scala
Jobs Spark e serviços em Akka, Pekko, ZIO ou Cats Effect
Engenheiros de dados
Tabelas lakehouse, orquestração e qualidade de dados
Engenheiros Java
Serviços JVM ao lado do código Scala
Engenheiros de cloud e DevOps
Kubernetes, clusters Spark e pipelines
Engenheiros de QA
Automação de testes de API, de dados e de carga
Como trabalhamos em Scala
Dados imutáveis e pattern matching exaustivo, para que o compilador aponte os casos que uma alteração esquece; erros e efeitos nos tipos e não em exceções lançadas; Scalafmt e Scalafix no pipeline e um build que termina com zero avisos; e dependências mantidas atuais, com um aviso de segurança tratado como atualização incondicional.
Numa base de código existente seguimos o seu estilo, seja Scala funcional em Cats Effect ou ZIO, atores em Akka ou Pekko, ou Scala escrito próximo de Java, e elevamos o padrão uma alteração de cada vez. Os programadores trabalham nos seus repositórios, no seu tracker e no seu processo, e tudo o que escrevem é cedido a si.
Outras linguagens em que trabalhamos
Desenvolvimento Java
Serviços de desenvolvimento Java: microsserviços Spring Boot, sistemas bancários e de pagamentos, backends de comércio eletrónico e SaaS, integrações Kafka e modernização de sistemas legados, com programadores Java dedicados ou entrega de projetos.
Desenvolvimento Node.js
Serviços de desenvolvimento Node.js: APIs TypeScript, backends de comércio eletrónico e SaaS, integrações fintech, funcionalidades em tempo real e de streaming e funções serverless, com programadores Node.js dedicados ou entrega de projetos.
Desenvolvimento PHP
Serviços de desenvolvimento PHP: aplicações Laravel e Symfony, comércio eletrónico em Magento, Shopware e WooCommerce, APIs, WordPress e Drupal, e atualizações de PHP, com programadores PHP dedicados ou entrega de projetos.
Desenvolvimento em C e C++
Serviços de desenvolvimento em C e C++: firmware embebido, software desktop em Qt, software de redes e telecomunicações, sistemas de baixa latência, software de segurança e modernização de C++, com programadores de C++ dedicados ou entrega de projetos.
Desenvolvimento Go
Serviços de desenvolvimento Go: microsserviços e APIs Golang, backends fintech e SaaS, operadores Kubernetes, pipelines de eventos e software de rede e segurança, com programadores Go dedicados ou entrega de projetos.
Desenvolvimento Kotlin e Android
Serviços de desenvolvimento de aplicações Android em Kotlin e Jetpack Compose para aplicações bancárias, de média, de compras e de saúde, além de Kotlin Multiplatform e backends Ktor, com programadores Kotlin dedicados ou entrega de projetos.
Desenvolvimento Rust
Serviços de desenvolvimento Rust: serviços de backend e APIs, blockchain e Web3, software de sistemas e infraestrutura, ferramentas de segurança, firmware embebido e WebAssembly, com programadores Rust dedicados ou entrega de projetos.
Desenvolvimento Swift e iOS
Serviços de desenvolvimento de aplicações iOS em Swift e SwiftUI: aplicações bancárias, de compras, de média e de saúde, aplicações para Apple Watch e Vision Pro, manutenção de Objective-C e releases na App Store, com programadores iOS dedicados ou entrega de projetos.
Desenvolvimento TypeScript
Serviços de desenvolvimento TypeScript: front ends Angular, React e Vue, backends Node.js, aplicações full-stack, monorepos e migrações de JavaScript para TypeScript, com programadores TypeScript dedicados ou entrega de projetos.
Perguntas sobre o desenvolvimento em Scala
Para que setores desenvolvem sistemas Scala?
Plataformas de dados e de análise (pipelines Spark, lakehouses e relatórios), fintech, banca e trading (serviços de pagamentos, risco e preços), comércio eletrónico e marketplaces (recomendações, pesquisa e serviços de encomendas), adtech e marketing (bidding, atribuição e dados de audiência), software empresarial e SaaS, e empresas industriais e de energia que processam dados de sensores e de contadores.
Akka ou Apache Pekko?
Qualquer um. O Apache Pekko é o fork do Akka 2.6 com licença Apache e a base do Play 3; o Akka continua sob a sua licença comercial. A passagem do Akka 2.6 para o Pekko é sobretudo uma mudança de nomes de pacotes, chaves de configuração e dependências, feita módulo a módulo com os testes executados após cada um.
Conseguem migrar o nosso código Scala 2 para Scala 3?
Sim. As bibliotecas e os serviços migram módulo a módulo, com o modo de migração do compilador e o Scalafix a fazer as reescritas mecânicas, implicits transformados em given instances e extension methods, e macros reescritas para a metaprogramação do Scala 3. O código que o Spark executa fica em Scala 2.13 enquanto o Spark for construído com ele.
Em quanto tempo podem começar programadores Scala?
Quando o programador Scala adequado está disponível, o arranque depende apenas da sua entrevista, do NDA e da cedência de propriedade intelectual. Caso contrário, fazemos uma pesquisa, que normalmente produz perfis de candidatos em duas a três semanas, e ninguém começa antes de a sua empresa dar o seu acordo.
Como contratamos programadores Scala através da BigTree108?
Diga-nos qual é o trabalho, a senioridade e o horário de que precisa. Propomos uma ou duas pessoas com os respetivos perfis, a sua empresa entrevista-as como entrevistaria uma contratação própria, e assina um único contrato com a BIG TREE 108 LLC e recebe uma fatura por mês.
A quem pertence o trabalho que produzem?
A sua empresa. Cada especialista tem um contrato assinado com a BigTree108 que atribui à empresa todo o trabalho produzido, e o nosso contrato com a sua empresa atribui-lho. O código, os designs e os documentos são entregues nos seus próprios repositórios e ferramentas, e não mantidos onde só nós os podemos alterar.
Precisa de programadores Scala?
Diga-nos o sistema, a versão de Scala e as bibliotecas em que assenta. Recebe resposta no prazo de um dia útil: perfis de candidatos ou um plano para o trabalho.