Overview
Skills
Job Details
Software Engineer 2 (Scala)
12+ month contract
Remote
We are seeking a skilled Software Engineer to join our team working on a Scala-based data processing platform. The ideal candidate will have experience building distributed systems and working with cloud infrastructure. You will be responsible for designing, developing, and maintaining robust, scalable services that process and manage large volumes of data.
Required Skills:
Proficiency in Scala, with experience using sbt for build management
Strong understanding of functional programming concepts
Experience with JSON serialization/deserialization (e.g., Circe)
Familiarity with cloud platforms (AWS and/or Google Cloud Platform), including authentication and authorization mechanisms (IAM, STS, AssumeRole, WebIdentity)
Experience integrating with AWS SDKs (S3, STS) in Scala
Experience with Google BigQuery and Dataflow for data processing and analytics
Experience with SQL and PostgreSQL for data storage and querying
Experience with asynchronous and concurrent programming (e.g., using FS2, cats-effect)
Familiarity with distributed messaging systems (e.g., Google Pub/Sub)
Ability to test and validate code effectively, with experience in unit, component, and integration testing
Ability to troubleshoot and resolve issues in distributed, cloud-based environments
Experience with version control systems (Git) and collaborative development workflows
Preferred Skills:
Experience with Finagle or similar RPC frameworks
Familiarity with data pipeline orchestration and workflow management
Knowledge of containerization and deployment in Kubernetes environments
Soft Skills:
Strong problem-solving and debugging abilities
Effective communication and collaboration in a team setting
Ability to write clear, maintainable, and well-documented code
Education & Experience:
Bachelor's degree in Computer Science or related field, or equivalent experience
8+ years of professional software engineering experience, preferably in data engineering or backend systems
This role will involve working with a modern Scala stack, integrating with AWS and Google Cloud Platform, and building resilient, observable services for data ingestion and processing.