地理空间全栈工程师
Geospatial Full-Stack Engineer
Orcrist 正在使用前沿技术构建下一代数据智能平台。我们处理海量数据,实现亚秒级查询。我们的产品是一个基于 Kubernetes 的平台,以 B2B SaaS 或自托管本地解决方案形式交付,包括隔离部署。我们为国防、执法和企业客户提供服务,帮助他们将关键任务数据转化为可操作的智能。
职位
从分析师在地图上的交互开始,构建地理空间功能,直至其背后的服务和查询。你将使用 TypeScript/React、Go 和 Python,将影像目录、空间数据集和分析结果转化为有用的产品功能。
你将在现有平台上进行扩展,同时协助建立新的地理空间服务和应用。与前端工程师、数据工程师、数据科学家和领域专家合作,你将负责完整的功能及使其在产品间可复用的接口。
你将负责
- 构建完整的分析师工作流程:发现影像,按区域和时间筛选,将数据集添加到地图,检查特征,运行空间操作,并保存或共享结果工作区。
- 开发 TypeScript/React 界面和 Go/Python 服务,将交互式地图连接到目录、空间查询和处理任务。
- 设计用于地理空间搜索、特征访问、分析请求和任务状态的 API,具备清晰的验证、授权和错误处理。
- 实现 PostGIS 查询,用于视口过滤、空间连接、邻近性和时间探索;分析查询计划并选择合适的索引和响应格式。
- 集成地理编码和路径规划功能,使位置搜索和路径规划在 Sentinel 的基于地图的工作流中无缝运行。
- 构建从目录索引和空间发现到检索和地图显示的路径,适用于 COGs、PMTiles 和 GeoParquet。授权后生成预签名 URL,并支持 HTTP 范围请求、URL 刷新和缓存,确保大型资产在整个地图会话中仍可使用。
- 使用 DuckDB Spatial、GDAL/PROJ 和 GeoPandas 等地理空间工具,配合 PostGIS,为交互式查询和分析工作负载选择合适的格式和处理路径。
- 将影像获取和处理能力连接到 Sentinel 已有的摄入、编排、身份和本体服务。
- 与 MapLibre 和 deck.gl 合作,扩展共享组件,并将分析输出转化为清晰的可视化结果
查看英文原文
Orcrist is building a next generation data intelligence platform using cutting-edge technologies. We're handling petabyte-scale data with sub-second queries. Our product is a Kubernetes‑based platform delivered as B2B SaaS or as a self‑hosted on‑prem solution, including air‑gapped deployments. We enable customers across defense, law enforcement, and enterprise to turn mission-critical data into actionable intelligence.
Role
Build geospatial features from the analyst's interaction on the map through to the services and queries behind it. You'll work across TypeScript/React, Go, and Python to turn imagery catalogs, spatial datasets, and analytical results into useful product capabilities.
You will extend an existing platform while helping establish new geospatial services and applications. Working with frontend engineers, data engineers, data scientists, and domain experts, you'll own complete features and the interfaces that make them reusable across products.
What you'll do
- Build complete analyst workflows: discover imagery, filter by area and time, add datasets to a map, inspect features, run spatial operations, and save or share the resulting workspace.
- Develop TypeScript/React interfaces and Go/Python services, connecting interactive maps to catalogs, spatial queries, and processing jobs.
- Design APIs for geospatial search, feature access, analysis requests, and job status, with clear validation, authorization, and error handling.
- Implement PostGIS queries for viewport filtering, spatial joins, proximity, and temporal exploration; profile query plans and choose suitable indexes and response formats.
- Integrate geocoding and routing capabilities so location search and routing work seamlessly in Sentinel’s map-based workflows.
- Build the path from catalog indexing and spatial discovery to retrieval and map display for COGs, PMTiles, and GeoParquet. Issue presigned URLs after authorization and support HTTP range requests, URL renewal, and caching so large assets remain usable throughout long map sessions.
- Use geospatial tools such as DuckDB Spatial, GDAL/PROJ, and GeoPandas alongside PostGIS, choosing appropriate formats and processing paths for interactive queries and analytical workloads.
- Connect imagery acquisition and processing capabilities to Sentinel's existing ingestion, orchestration, identity, and ontology services.
- Work with MapLibre and deck.gl, extending shared components and translating analytical outputs into clear map interactions.
- Own testing, observability, documentation, and production troubleshooting for the features you ship. Use analyst feedback to improve both correctness and usability.
About you
- Several years building production software, including geospatial applications or complex analytical interfaces.
- University-level education in geoinformatics, geospatial engineering, computer science with a geospatial focus, or a related discipline.
- Strong TypeScript and React skills, plus practical backend experience in Go and Python. You can take a feature across API, database, and frontend boundaries.
- Experience with PostgreSQL/PostGIS, SQL, API design, and integrating asynchronous processing into user-facing applications.
- Hands-on experience with MapLibre, deck.gl, OpenLayers, CesiumJS, or comparable mapping frameworks.
- A sound understanding of coordinate reference systems, geometry types, raster versus vector data, spatial indexing, and tiled or viewport-based access.
- Good engineering judgment around performance, security, testing, and maintainable service boundaries. You can investigate a slow map interaction across the whole request path.
- Clear communication in English and the ability to work directly with designers, analysts, and other engineering teams. Eligible to work in Germany.
Nice-to-haves
- STAC/pgSTAC, OGC APIs, TiTiler, Martin, or other geospatial catalog and serving technologies; H3 for spatial indexing and aggregation.
- Familiarity with analytical data stacks using GeoParquet, Apache Arrow, and Apache Iceberg, and with tools such as QGIS or CARTO for exploring and validating spatial data.
- TanStack Query/Store/Router, Bun, and experience building shared React components or developer-facing APIs.
- Temporal, Kafka, Docker, Kubernetes, or delivery into self-hosted and air-gapped environments.
- Satellite imagery workflows, geospatial processing in Python, or integration of model inference into analytical products.
- Hands-on experience with OSM data pipelines and the open-source geo toolset around them.
- Experience working in defence and intelligence environments or on related projects.
- Strong interest and practical ability in agentic software development: using coding agents to plan, implement, test, and review software, and keeping up with rapidly evolving tools, techniques, and trends.
- German language skills.
What we offer
- Ownership of geospatial features that become part of a shared intelligence platform.
- A modern TypeScript, Go, and Python environment, with room to introduce well-founded technical improvements.
- Direct collaboration with GEOINT specialists, product teams, and the people using your work.
- Remote-first, Germany-wide: Work from wherever you do your best work, with regular team gatherings in Berlin and other off-site locations.
- Flexibility by default: Flexible working hours help you make work fit your life.
- Your setup, your way: Get a personal home-office equipment budget to create a workspace that works for you.
- 30 days of vacation: Take the time you need to recharge and come back with fresh energy.
- Keep growing: We invest in your personal and professional development.
- Get rewarded for impact: Performance bonuses are tied to agreed objectives and key results.
- A warm welcome: Every new team member gets a welcome goodie bag.
- Good people, good times: From summer and Christmas parties to regular team gatherings, we make time to celebrate together.
- A mission that matters: Work on challenges with tangible impact on public safety and national security.