Scala-udvikling
Scala-udvikling til Apache Spark-datapipelines, back ends til fintech og handel, adtech- og analyseplatforme, hændelsesdrevne tjenester på Akka, Apache Pekko, ZIO eller Cats Effect, Play-applikationer og flytning fra Scala 2 til Scala 3, med dedikerede Scala-udviklere til jeres team eller et Scala-projekt leveret fra start til slut.
Det bygger vi med Scala
Apache Spark-jobs i Scala
Batch- og streaming-jobs på Spark 4 i Scala 2.13, med typede Datasets og Spark SQL over Delta Lake- eller Apache Iceberg-tabeller på Databricks, Amazon EMR eller Kubernetes, partitioneret og tunet, så hver kørsel passer til sit tidsvindue og sit budget.
Tjenester til handel, betalinger og risiko
Tjenester til betalinger, hovedbøger, prissætning og risiko med uforanderlige domænemodeller, sealed types og udtømmende matches over alle tilstande, en transaktion kan nå, BigDecimal til penge og et revisionsspor for hver ændring.
Akka- og Apache Pekko-systemer
Actor-baserede tjenester, klynger, event sourcing og streams med back-pressure på Akka under dets kommercielle licens eller på Apache Pekko, den Apache-licenserede fork af Akka 2.6, med persistens på PostgreSQL eller Cassandra.
Funktionelle tjenester på ZIO og Cats Effect
HTTP- og gRPC-tjenester på ZIO 2 eller Cats Effect 3 med http4s, Tapir eller ZIO HTTP, Doobie eller Skunk over PostgreSQL og fs2 eller ZIO Streams, hvor effekter, fejl og ressourcer holdes styr på i typerne.
Kafka-streaming i Scala
Producers, consumers og stream-processorer på fs2-kafka, zio-kafka, Kafka Streams eller Pekko Connectors, med Avro- eller Protobuf-kontrakter i et schema registry, idempotente skrivninger, genforsøg og dead-letter-topics.
Adtech-pipelines til bidding og attribution
Pipelines til real-time bidding, attribution og målgrupper, der modtager hændelser i store mængder, med aggregering i Spark eller ClickHouse og API’er, der svarer inden for den tid, en bud-forespørgsel tillader.
Play Framework-applikationer
Webapplikationer og API’er på Play 3, som kører på Pekko, og Play 2-applikationer på Akka flyttet over til det, med Slick eller Anorm til dataadgang og Twirl-skabeloner eller en separat front end til siderne.
Flytning fra Scala 2 til Scala 3
Scala 2.12- og 2.13-kode flyttet til Scala 3.9, den nuværende udgivelse med langtidssupport, modul for modul med compilerens migrationstilstand og Scalafix-omskrivninger, mens Spark-jobs bliver på Scala 2.13, så længe Spark er bygget på det.
Scala-builds, tests og opdatering af afhængigheder
sbt 2- eller Mill-builds, der kan genskabes fra et rent checkout, MUnit- eller ScalaTest-suiter med ScalaCheck-egenskaber, Scalafmt og Scalafix i pipelinen og Scala Steward, der åbner en pull request for hver opdatering af en afhængighed.
Ansæt Scala-udviklere
Dedikerede Scala-udviklere
Scala-udviklere, der indgår i jeres team på fuld tid, arbejder i jeres repositories, tracker og møder og rapporterer til jeres leder. I interviewer dem; vi står for den ukrainske kontrakt, lønudbetalingen, faktureringen og ferie og orlov.
Levering af Scala-projekter
Et team, der fører Scala-projektet fra afgrænsning til release: estimering, udvikling, tests og udrulning, med en teknisk leder hos os, der ejer planen og kvaliteten.
Support og overtagelse af Scala
Et eksisterende Scala-system, der overtages fra et andet team eller holdes kørende: først en skrivebeskyttet gennemgang og en skriftlig liste over risici, derefter rettelser og nye funktioner i rækkefølge efter betydning.
Siden om dedikerede teams forklarer, hvordan specialister indgår i jeres team, og siden om outsourcing beskriver projektleverance, overtagelser og hvordan vi tager betaling.
Hvem arbejder på jeres Scala-projekt
Scala-udviklere
Spark-jobs og tjenester på Akka, Pekko, ZIO eller Cats Effect
Dataingeniører
Lakehouse-tabeller, orkestrering og datakvalitet
Java-udviklere
JVM-tjenester ved siden af Scala-koden
Cloud- og DevOps-ingeniører
Kubernetes, Spark-klynger og pipelines
QA-ingeniører
Automatisering af API-, data- og belastningstests
Sådan arbejder vi med Scala
Uforanderlige data og udtømmende mønstermatchning, så compileren peger på de tilfælde, en ændring glemmer; fejl og effekter i typerne frem for i kastede exceptions; Scalafmt og Scalafix i pipelinen og et build, der slutter med nul advarsler; og afhængigheder holdt opdaterede, hvor en sikkerhedsadvarsel behandles som en ubetinget opgradering.
På en eksisterende kodebase følger vi dens stil, hvad enten det er funktionel Scala på Cats Effect eller ZIO, actors på Akka eller Pekko eller Scala skrevet tæt på Java, og hæver standarden én ændring ad gangen. Udviklerne arbejder i jeres repositories, jeres tracker og jeres proces, og alt, hvad de skriver, overdrages til jer.
Andre sprog, vi arbejder i
Java-udvikling
Java-udvikling: Spring Boot-mikroservices, bank- og betalingssystemer, backends til e-handel og SaaS, Kafka-integrationer og modernisering af legacy-systemer, med dedikerede Java-udviklere eller projektleverance.
Node.js-udvikling
Node.js-udvikling: TypeScript-API'er, backends til e-handel og SaaS, fintech-integrationer, realtids- og streamingfunktioner og serverless-funktioner, med dedikerede Node.js-udviklere eller projektleverance.
PHP-udvikling
PHP-udvikling: Laravel- og Symfony-applikationer, e-handel på Magento, Shopware og WooCommerce, API'er, WordPress og Drupal samt PHP-opgraderinger, med dedikerede PHP-udviklere eller projektleverance.
C- og C++-udvikling
C- og C++-udvikling: embedded firmware, desktopsoftware i Qt, net- og telekomsoftware, systemer med lav latenstid, sikkerhedssoftware og modernisering af C++, med dedikerede C++-udviklere eller projektleverance.
Go-udvikling
Go-udvikling: Golang-mikroservices og API'er, backends til fintech og SaaS, Kubernetes-operators, eventpipelines samt netværks- og sikkerhedssoftware, med dedikerede Go-udviklere eller projektleverance.
Kotlin- og Android-udvikling
Udvikling af Android-apps i Kotlin og Jetpack Compose til bank-, medie-, shopping- og sundhedsapps samt Kotlin Multiplatform og Ktor-backends, med dedikerede Kotlin-udviklere eller projektleverance.
Rust-udvikling
Rust-udvikling: backendservices og API'er, blockchain og Web3, system- og infrastruktursoftware, sikkerhedsværktøjer, embedded firmware og WebAssembly, med dedikerede Rust-udviklere eller projektleverance.
Swift- og iOS-udvikling
Udvikling af iOS-apps i Swift og SwiftUI: bank-, shopping-, medie- og sundhedsapps, apps til Apple Watch og Vision Pro, vedligeholdelse af Objective-C og udgivelser i App Store, med dedikerede iOS-udviklere eller projektleverance.
TypeScript-udvikling
TypeScript-udvikling: frontends i Angular, React og Vue, Node.js-backends, full-stack-apps, monorepos og migreringer fra JavaScript til TypeScript, med dedikerede TypeScript-udviklere eller projektleverance.
Spørgsmål om Scala-udvikling
Hvilke brancher bygger I Scala-systemer til?
Data- og analyseplatforme (Spark-pipelines, lakehouses og rapportering), fintech, bank og handel (tjenester til betalinger, risiko og prissætning), e-handel og markedspladser (anbefalinger, søgning og ordretjenester), adtech og markedsføring (bidding, attribution og målgruppedata), enterprise-software og SaaS samt industri- og energivirksomheder, der behandler sensor- og måledata.
Akka eller Apache Pekko?
Begge dele. Apache Pekko er den Apache-licenserede fork af Akka 2.6 og grundlaget for Play 3; Akka fortsætter under sin kommercielle licens. Et skift fra Akka 2.6 til Pekko er for det meste en ændring af pakkenavne, konfigurationsnøgler og afhængigheder, gennemført modul for modul med tests kørt efter hvert trin.
Kan I flytte vores Scala 2-kode til Scala 3?
Ja. Biblioteker og tjenester flyttes modul for modul, hvor compilerens migrationstilstand og Scalafix udfører de mekaniske omskrivninger, implicits omdannes til given-instanser og extension methods, og makroer omskrives til Scala 3-metaprogrammering. Kode, som Spark kører, bliver på Scala 2.13, så længe Spark er bygget med det.
Hvor hurtigt kan Scala-udviklere starte?
Når den rette Scala-udvikler er tilgængelig, afhænger starten kun af jeres samtale samt NDA og overdragelse af IP-rettigheder. Ellers gennemfører vi en søgning, som typisk giver kandidatprofiler inden for to til tre uger, og ingen starter, før I har sagt ja.
Hvordan ansætter vi Scala-udviklere gennem BigTree108?
Fortæl os om opgaverne, erfaringsniveauet og det timetal, I har brug for. Vi foreslår en eller to personer med deres profiler, I interviewer dem på samme måde, som I ville interviewe jeres egen medarbejder, og I underskriver én aftale med BIG TREE 108 LLC og modtager én faktura om måneden.
Hvem ejer det arbejde, de producerer?
Det gør I. Hver specialist har en underskrevet kontrakt med BigTree108, som overdrager alt arbejdsresultat til virksomheden, og vores aftale med jer overdrager det videre til jer. Kode, designs og dokumenter leveres ind i jeres egne repositories og værktøjer og opbevares ikke et sted, hvor kun vi kan ændre dem.
Har I brug for Scala-udviklere?
Fortæl os om systemet, Scala-versionen og de biblioteker, det kører på. I får svar inden for én arbejdsdag: kandidatprofiler eller en plan for arbejdet.