Remote job
Software Engineer - Query Execution
Job details
About this role
Role overview Help build the runtime that executes analytical queries at scale, translating query plans into reliable, efficient processing. You’ll contribute well-scoped improvements to an established execution engine while learning how its operators, scheduling, memory use, and performance fit together. The role suits an early-career engineer who enjoys collaborative problem solving and wants to grow their skills in data systems.
Responsibilities - Implement, test, debug, and maintain components such as query operators, expression evaluation, scheduling, and resource management. - Write readable, maintainable Java code and contribute unit and integration tests, documentation, and code reviews. - Investigate correctness, reliability, and performance problems using query profiles, logs, telemetry, benchmarks, and production data. - Build understanding of vectorized processing, concurrency, memory use, parallelism, data exchange, and disk spilling. - Work with experienced engineers and partner teams to clarify requirements, break work into manageable tasks, and deliver incremental improvements. - Use AI-assisted tools for code comprehension, debugging, test creation, or documentation, verifying their output through sound engineering practices.
Requirements - Up to two years of professional software development experience, or comparable experience from internships, coursework, or substantial personal projects. - Proficiency in Java or another object-oriented language, and willingness to work in a large Java codebase. - Foundational knowledge of data structures, algorithms, and basic concurrency. - Ability to solve defined technical problems, ask questions, communicate progress, and surface blockers early. - Care for tested, maintainable code and willingness to learn established development and review practices. - Bachelor’s degree in computer science or a related technical field, or equivalent practical experience.
Nice to have - Exposure to database internals, query processing, distributed systems, or large-scale data processing. - Familiarity with profiling, memory management, concurrency, or vectorized execution. - Experience with C++, Apache Arrow, Parquet, Apache Iceberg, Spark, Hadoop, cloud object storage, or open-source contributions.