Saltar para o conteúdo
BigTree108

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

Visão geral de Linguagens de programação

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.