ROLE HIGHLIGHTS
- Senior Software Engineer, Flood Risk
- Location: Espoo, Finland (relocation supported)
- Team: Flood Risk, Flood Solutions
- Reports to: Flood Risk Team Lead
- Workplace model: Hybrid (minimum 3 days per week in the office)
- Employment is subject to applicable security screening (incl. SUPO, where required)
WHY THIS ROLE MATTERS
We are looking for a Senior Software Engineer to turn ICEYE's flood observation history into data products that help customers understand flood risk at their locations and areas of interest.
ICEYE has observed floods worldwide with its synthetic aperture radar (SAR) satellite constellation for years, so we know where water has gone, how deep it got, and how often it returns. We are turning our analysis catalog into predictive insights and building a product that gives customers near real-time understanding of flood risk for a location of interest.
You will join a senior team where the data scientists and machine learning engineers build the flood models, and you make them work in production, 24/7.
YOUR DAY-TO-DAY RESPONSIBILITIES
You will own how flood risk gets from our models and data into customers' hands. In practice, that means:
- Design and build the services and pipelines that compute, store, and serve flood risk for any location or area of interest.
- Take models from notebooks to production with the data scientist and the ML engineer: tested, versioned code; reproducible inference; staged rollouts; and drift monitoring. A big part of the job is deciding what gets pre-computed and what runs at request time.
- Design API-first. The contract is agreed before the code; the OpenAPI specification is the source of truth, and the documentation (reference, examples, changelog) lives in the repository as code, reviewed and validated in CI like everything else.
- Build security and privacy in as a day 0 item: authentication, authorization, tenant isolation, least privilege, data minimization, and audit trails, so we can reproduce and explain every response we have served. You take part in threat modeling.
- Run what you build, with automated tests and deployments, SLOs, dashboards and alerts, and automating away toil. This role includes an on-call rotation.
- Design for data at scale (years of observations, customer portfolios of any size): data models, storage formats, partitioning and the batch versus streaming trade-offs, watching cost per request as closely as latency.
- Make architecture decisions with our Staff Engineers (they work across the teams) and write them down as lightweight ADRs.
- Mentor teammates and help the data and ML colleagues with production engineering practices (they will teach you flood science in return).
WHAT WE ARE LOOKING FOR
Must have
- 5+ years building and running production software in the cloud (AWS, Kubernetes, Docker), owning design and delivery at senior level.
- You have operationalized machine learning models: taken research or notebook code into a production service or batch pipeline, and kept it versioned, reproducible, and monitored after launch.
- You have architected and built API-first products for external customers, and evolved them without breaking callers (versioning, error contracts, backward compatibility).
- API documentation as code is normal for you: OpenAPI with real examples, generated references, docs checked in CI.
- You design with security and privacy as the default, backed by practical experience in OAuth 2.0 and OIDC, authorization models, the OWASP API Security Top 10, and protecting customer data.
- You have operated software 24/7; high automation, test automation, and observability (metrics, logs, tracing, SLOs, alerting) are what you live and breathe, and you have learned from real incidents.
- Experience designing data-intensive applications: data modeling, storage formats, partitioning, and performance and cost at scale.
- Deep proficiency in Python for production services and data processing, and you are comfortable…