Servizi di sviluppo Scala
Servizi di sviluppo Scala per pipeline di dati Apache Spark, backend fintech e di trading, piattaforme ad tech e di analytics, servizi event-driven su Akka, Apache Pekko, ZIO o Cats Effect, applicazioni Play e migrazioni da Scala 2 a Scala 3, con sviluppatori Scala dedicati per il Suo team o con un progetto Scala realizzato end to end.
Che cosa realizziamo con Scala
Job Apache Spark in Scala
Job batch e di streaming su Spark 4 in Scala 2.13, con Dataset tipizzati e Spark SQL su tabelle Delta Lake o Apache Iceberg su Databricks, Amazon EMR o Kubernetes, partizionati e ottimizzati perché ogni esecuzione rientri nella propria finestra e nel proprio budget.
Servizi di trading, pagamenti e rischio
Servizi di pagamento, ledger, pricing e rischio con modelli di dominio immutabili, sealed type e match esaustivi su ogni stato che una transazione può raggiungere, BigDecimal per il denaro e una traccia di audit per ogni modifica.
Sistemi Akka e Apache Pekko
Servizi basati su attori, cluster, event sourcing e stream con back-pressure su Akka con la sua licenza commerciale, oppure su Apache Pekko, il fork di Akka 2.6 con licenza Apache, con persistenza su PostgreSQL o Cassandra.
Servizi funzionali su ZIO e Cats Effect
Servizi HTTP e gRPC su ZIO 2 o Cats Effect 3 con http4s, Tapir o ZIO HTTP, Doobie o Skunk su PostgreSQL, e fs2 o ZIO Streams, con effetti, errori e risorse tracciati nei tipi.
Streaming Kafka in Scala
Producer, consumer e stream processor su fs2-kafka, zio-kafka, Kafka Streams o Pekko Connectors, con contratti Avro o Protobuf in uno schema registry, scritture idempotenti, retry e dead-letter topic.
Pipeline ad tech di bidding e attribuzione
Pipeline di real-time bidding, attribuzione e audience che ricevono eventi ad alto volume, con aggregazione in Spark o ClickHouse e API che rispondono entro il tempo consentito da una bid request.
Applicazioni Play Framework
Applicazioni web e API su Play 3, che gira su Pekko, e applicazioni Play 2 su Akka migrate a questa versione, con Slick o Anorm per l’accesso ai dati e template Twirl o un frontend separato per le pagine.
Migrare da Scala 2 a Scala 3
Codice Scala 2.12 e 2.13 portato a Scala 3.9, l’attuale release a supporto a lungo termine, modulo per modulo con la modalità di migrazione del compilatore e le riscritture Scalafix, mentre i job Spark restano su Scala 2.13 finché Spark è costruito su di essa.
Build, test e aggiornamenti delle dipendenze Scala
Build sbt 2 o Mill che si riproducono da un checkout pulito, suite MUnit o ScalaTest con proprietà ScalaCheck, Scalafmt e Scalafix nella pipeline e Scala Steward che apre una pull request per ogni aggiornamento delle dipendenze.
Ingaggiare sviluppatori Scala
sviluppatori Scala dedicati
Sviluppatori Scala che entrano a tempo pieno nel Suo team, lavorano nei Suoi repository, nel Suo tracker e nelle Sue riunioni e rispondono al Suo responsabile. Li intervista Lei; noi ci occupiamo del contratto ucraino, delle buste paga, della fatturazione e delle ferie.
Realizzazione di progetti Scala
Un team che porta il progetto Scala dal perimetro al rilascio: stima, sviluppo, test e deployment, con un responsabile tecnico da parte nostra che risponde del piano e della qualità.
Supporto e presa in carico di sistemi Scala
Un sistema Scala esistente rilevato da un altro team o mantenuto in esercizio: prima una revisione in sola lettura e un elenco scritto dei rischi, poi correzioni e nuove funzionalità in ordine di impatto.
La pagina sul team dedicato spiega come gli specialisti entrano nel Suo team, e la pagina sull’outsourcing tratta la realizzazione di progetti, le prese in carico e il modo in cui fatturiamo.
Chi lavora al Suo progetto Scala
sviluppatori Scala
Job Spark e servizi su Akka, Pekko, ZIO o Cats Effect
Data engineer
Tabelle lakehouse, orchestrazione e qualità dei dati
Ingegneri Java
Servizi JVM accanto al codice Scala
Ingegneri cloud e DevOps
Kubernetes, cluster Spark e pipeline
Ingegneri QA
Automazione di test di API, dati e carico
Come lavoriamo su Scala
Dati immutabili e pattern matching esaustivo, così che il compilatore indichi i casi che una modifica dimentica; errori ed effetti nei tipi anziché in eccezioni sollevate; Scalafmt e Scalafix nella pipeline e una build che si chiude con zero warning; e dipendenze aggiornate, con un avviso di sicurezza trattato come aggiornamento incondizionato.
Su una codebase esistente seguiamo il suo stile, che si tratti di Scala funzionale su Cats Effect o ZIO, di attori su Akka o Pekko o di Scala scritto vicino a Java, e alziamo lo standard una modifica alla volta. Gli sviluppatori lavorano nei Suoi repository, nel Suo tracker e secondo il Suo processo, e tutto ciò che scrivono è ceduto a Lei.
Altri linguaggi in cui lavoriamo
Sviluppo Java
Servizi di sviluppo Java: microservizi Spring Boot, sistemi bancari e di pagamento, backend per e-commerce e SaaS, integrazioni Kafka e modernizzazione di sistemi legacy, con sviluppatori Java dedicati o realizzazione di progetti.
Sviluppo Node.js
Servizi di sviluppo Node.js: API TypeScript, backend per e-commerce e SaaS, integrazioni fintech, funzionalità in tempo reale e di streaming e funzioni serverless, con sviluppatori Node.js dedicati o realizzazione di progetti.
Sviluppo PHP
Servizi di sviluppo PHP: applicazioni Laravel e Symfony, e-commerce su Magento, Shopware e WooCommerce, API, WordPress e Drupal e aggiornamenti di PHP, con sviluppatori PHP dedicati o realizzazione di progetti.
Sviluppo C e C++
Servizi di sviluppo C e C++: firmware embedded, software desktop Qt, software di rete e telecomunicazioni, sistemi a bassa latenza, software di sicurezza e modernizzazione di C++, con sviluppatori C++ dedicati o realizzazione di progetti.
Sviluppo Go
Servizi di sviluppo Go: microservizi e API Golang, backend per fintech e SaaS, operator Kubernetes, pipeline di eventi e software di rete e sicurezza, con sviluppatori Go dedicati o realizzazione di progetti.
Sviluppo Kotlin e Android
Servizi di sviluppo di app Android in Kotlin e Jetpack Compose per app bancarie, media, shopping e salute, più backend Kotlin Multiplatform e Ktor, con sviluppatori Kotlin dedicati o realizzazione di progetti.
Sviluppo Rust
Servizi di sviluppo Rust: servizi backend e API, blockchain e Web3, software di sistema e infrastrutturale, strumenti di sicurezza, firmware embedded e WebAssembly, con sviluppatori Rust dedicati o realizzazione di progetti.
Sviluppo Swift e iOS
Servizi di sviluppo di app iOS in Swift e SwiftUI: app bancarie, shopping, media e salute, app per Apple Watch e Vision Pro, manutenzione di Objective-C e release su App Store, con sviluppatori iOS dedicati o realizzazione di progetti.
Sviluppo TypeScript
Servizi di sviluppo TypeScript: front end Angular, React e Vue, backend Node.js, app full-stack, monorepo e migrazioni da JavaScript a TypeScript, con sviluppatori TypeScript dedicati o realizzazione di progetti.
Domande sullo sviluppo con Scala
Per quali settori sviluppate sistemi Scala?
Piattaforme di dati e analytics (pipeline Spark, lakehouse e reportistica), fintech, banche e trading (servizi di pagamento, rischio e pricing), e-commerce e marketplace (raccomandazioni, ricerca e servizi di ordine), ad tech e marketing (bidding, attribuzione e dati sul pubblico), software enterprise e SaaS, e aziende industriali ed energetiche che elaborano dati di sensori e contatori.
Akka o Apache Pekko?
Entrambi. Apache Pekko è il fork di Akka 2.6 con licenza Apache e la base di Play 3; Akka prosegue con la sua licenza commerciale. Il passaggio da Akka 2.6 a Pekko consiste soprattutto in un cambio di nomi dei package, chiavi di configurazione e dipendenze, fatto modulo per modulo con i test eseguiti dopo ciascuno.
Potete portare il nostro codice Scala 2 a Scala 3?
Sì. Librerie e servizi migrano modulo per modulo, con la modalità di migrazione del compilatore e Scalafix che eseguono le riscritture meccaniche, gli implicit trasformati in given instance ed extension method, e le macro riscritte per la metaprogrammazione di Scala 3. Il codice che Spark esegue resta su Scala 2.13 finché Spark è costruito con essa.
Con quale rapidità possono iniziare sviluppatori Scala?
Quando è disponibile il profilo giusto per il ruolo di sviluppatore Scala, l’avvio dipende soltanto dal Suo colloquio e dalla firma dell’NDA e della cessione della proprietà intellettuale. Altrimenti avviamo una ricerca, che di norma produce profili di candidati entro due o tre settimane, e nessuno inizia finché Lei non ha detto di sì.
Come ingaggiare sviluppatori Scala tramite BigTree108?
Ci indichi il lavoro, il livello di seniority e l’impegno orario necessario. Le proponiamo una o due persone con i rispettivi profili, Lei le intervista come farebbe con una Sua assunzione e firma un unico contratto con BIG TREE 108 LLC, ricevendo una sola fattura al mese.
A chi appartiene il lavoro che producono?
A Lei. Ogni specialista ha un contratto firmato con BigTree108 che cede all’azienda tutto il lavoro prodotto, e il nostro accordo con Lei lo cede a sua volta. Codice, design e documenti vengono consegnati nei Suoi repository e strumenti, non conservati dove solo noi possiamo modificarli.
Cerca sviluppatori Scala?
Ci indichi il sistema, la versione di Scala e le librerie su cui gira. Riceve una risposta entro un giorno lavorativo: profili di candidati o un piano per il lavoro.