地理空间前端工程师 (TypeScript)
Geospatial Frontend Engineer (TypeScript)
Orcrist 正在使用前沿技术构建下一代数据智能平台。我们处理 PB 级别的数据,实现亚秒级查询。我们的产品是一个基于 Kubernetes 的平台,以 B2B SaaS 或自托管本地化解决方案形式交付,包括隔离网络部署。我们为国防、执法和企业客户提供服务,帮助他们将关键任务数据转化为可操作的智能。
职位描述
为分析师构建用于探索影像、叠加图层并理解空间和时间关系的网页 GIS 体验。你主要使用 TypeScript 和 React 工作,MapLibre 和 deck.gl 是高度定制化地图平台的核心。
你的工作范围从精确、响应迅速的分析师工具,到保持复杂地图可用性的渲染和数据加载代码。你将把熟悉于桌面 GIS 工具(如 QGIS 和 ArcGIS Pro)的功能带入浏览器,持续扩展地图平台的丰富功能集,同时保持交互的一致性和响应性。你将扩展现有的 Sentinel 前端,并帮助建立多个应用中可复用的地图和图层组件。
你会做以下事情
- 使用 MapLibre 和 deck.gl 开发可复用的地图画布和图层系统,支持栅格影像、矢量要素、地形和分析覆盖层。
- 构建图层发现、分组、排序、可见性、透明度、图例、样式和持久化工作区状态,包括当数据源刷新或失败时的可预测行为。
- 实现 GIS 交互功能,如绘制、测量、空间选择、要素检查、坐标读取、过滤和地图导出。
- 创建时间探索工具、影像对比视图以及链接地图/表格的交互,使复杂的分析结果易于理解。
- 扩展地图库,添加自定义图层、控件、拾取行为和渲染逻辑。在需要交互或性能优化时,可在 React 组件层之下工作。
- 将 COGs、PMTiles、GeoParquet 和基于 Arrow 的数据源与视口感知的加载、取消、缓存和渐进式反馈集成。
- 分析 CPU、GPU、网络和内存使用情况。通过合理的细节层级策略、后台处理和受控图层更新,确保平移、缩放和交互的响应性。
- 与 UX 设计师和分析师紧密合作,提升制图、可访问性和交互质量。维护组件示例、浏览器测试和性能指标
查看英文原文
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 the web GIS experience analysts use to explore imagery, combine layers, and understand spatial and temporal relationships. You'll work primarily in TypeScript and React, with MapLibre and deck.gl at the center of a highly customised map platform.
Your work will range from precise, responsive analyst tools to the rendering and data-loading code that keeps complex maps usable. You'll bring capabilities familiar from desktop GIS tools such as QGIS and ArcGIS Pro into the browser, continuously expanding the map platform's rich feature set while keeping interactions coherent and responsive. You'll extend the existing Sentinel frontend and help establish reusable map and layer components for multiple applications.
What you'll do
- Develop a reusable map canvas and layer system for raster imagery, vector features, terrain, and analytical overlays, using MapLibre and deck.gl.
- Build layer discovery, grouping, ordering, visibility, opacity, legends, styling, and persistent workspace state, including predictable behavior when sources refresh or fail.
- Implement GIS interactions such as drawing, measurement, spatial selection, feature inspection, coordinate readouts, filtering, and map export.
- Create temporal exploration tools, imagery comparison views, and linked map/table interactions that make complex analytical results understandable.
- Extend mapping libraries with custom layers, controls, picking behavior, and rendering logic. Work below the React component layer when the interaction or performance requirement calls for it.
- Integrate COGs, PMTiles, GeoParquet, and Arrow-based data sources with viewport-aware loading, cancellation, caching, and progressive feedback.
- Profile CPU, GPU, network, and memory usage. Keep panning, zooming, and interaction responsive through sensible level-of-detail strategies, background processing, and controlled layer updates.
- Work closely with UX designers and analysts on cartography, accessibility, and interaction quality. Maintain component examples, browser tests, and performance checks within Sentinel's shared UI system.
About you
- Several years building sophisticated production interfaces with TypeScript and React.
- Substantial experience with web mapping or geospatial visualization, using MapLibre, deck.gl, Mapbox GL, OpenLayers, CesiumJS, or comparable tools.
- Experience extending mapping libraries or building reusable visualization components, beyond embedding a standard map.
- Strong understanding of frontend state, asynchronous data loading, browser rendering, and performance profiling.
- Familiarity with WebGL concepts and the practical costs of geometry processing, GPU buffers, large textures, and frequent layer updates.
- Good geospatial fundamentals: projections, coordinate systems, vector tiles, raster imagery, scale, and spatial accuracy.
- Care for cartography and interaction details, including readable symbology, useful legends, keyboard access, and clear loading and error states.
- Clear communication in English and an ability to collaborate with backend engineers, designers, and domain experts. Eligible to work in Germany.
Nice-to-haves
- Custom deck.gl layers, shaders/GLSL, luma.gl, WebGPU, or other graphics programming experience.
- GeoArrow, loaders.gl, DuckDB-WASM, Web Workers, or efficient browser handling of large geospatial datasets.
- Experience with kepler.gl, CARTO, or comparable spatial analytics interfaces, and translating their exploration, filtering, and visualization patterns into reusable web components.
- TanStack Query/Store/Router, Tailwind CSS, Storybook, and Playwright.
- Terrain and 3D visualization, imagery band controls, temporal animation, or experience building professional GIS tools.
- Military mapping conventions and interoperability standards, including MGRS coordinate grids, NATO APP-6 symbology, and relevant STANAG requirements.
- 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.
- Open-source mapping contributions, German language skills, or experience with offline and self-hosted applications.
What we offer
- The opportunity to shape a substantial web GIS and shared map platform.
- Technically demanding work across interaction design, cartography, browser performance, and GPU rendering.
- Direct access to designers and GEOINT specialists, with room to improve both the underlying libraries and the product experience.
- 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.