Core Responsibilities
-
Design, build, and optimize high-throughput data processing systems (both real-time streaming and batch).
-
Engineer robust storage solutions capable of handling rapidly expanding volumes of time-series and spatial data without compromising on query performance.
-
Drive architectural decisions to ensure the infrastructure remains fault-tolerant and ahead of the company's aggressive scaling trajectory.
-
Develop intelligent, automated tooling that improves data quality, lineage tracking, and system reliability.
-
Collaborate closely with internal stakeholders to define technical abstractions that can be reused across different product lines.
-
Write scalable, production-ready code, primarily utilizing Java and Python.
Requirements
Candidate Profile
-
Scale Experience: A proven track record of designing and maintaining distributed backend systems or data platforms that process data at the terabyte or petabyte scale.
-
Technical Foundation: Deep expertise in computer science fundamentals, system architecture, and anticipating failure modes in complex networks.
-
Language Proficiency: Advanced proficiency in a JVM language (Java, Scala, Kotlin) and a willingness to work across different stacks as needed.
-
Data Ecosystems: Hands-on experience with modern large-scale processing frameworks (e.g., event streaming, distributed computation, and advanced data warehousing/lakehouse concepts).
-
Autonomy: High comfort level navigating ambiguity. You know how to scope complex problems, make definitive architectural calls, and drive projects to completion independently.
Bonus Points
-
Active contributions to open-source software, particularly in the distributed systems or data infrastructure space.
-
Familiarity with modern orchestration engines, lakehouse architectures, or spatio-temporal data models.
Benefits
Work Environment
-
High Autonomy: Engineers own their domains end-to-end and have a direct voice in product direction.
-
Proximity to the User: A culture of speaking directly with customers to understand their friction points before writing a single line of code.