Software Engineer – Programming Languages Team
Develop Java-based network query engines, domain-specific languages, and language-support tooling using programming languages and database-system techniques. Requires a computer science degree, 3+ years of experience with Java or similar languages, and strong object-oriented development skills.
Salary not listed
On-site3+ YOEBackend Engineering
About the job
Responsibilities
- Develop, enhance, and maintain the primarily Java codebase.
- Develop, enhance, and maintain the Network Query Engine (NQE), applying programming languages and database management system techniques.
- Deliver domain-specific languages used in the development of Forward Enterprise.
- Build and support tools associated with these languages, including IDE plugins that provide language support.
Requirements
- Bachelor's degree in Computer Science or a related field.
- 3+ years of professional experience with Java, Scala, or similar languages such as C#, F#, or other comparable languages.
- Strong object-oriented design and development skills.
Nice-to-haves
- Strong functional programming skills and experience with Scala, Haskell, OCaml, Scheme, F#, or another major functional programming language.
- Familiarity with functional programming concepts including monads, functors, algebraic data types, and persistent data structures.
- Experience implementing programming languages or domain-specific languages, including parsers, type checkers, type inference algorithms, compilers, evaluators, static analysis or optimization passes, and editor support.
- Experience implementing database-like systems, including query parsers, query optimizers, execution pipelines, or storage formats such as Parquet.
- Experience with open-source data-system libraries such as Apache Parquet, Apache Iceberg, or DataFusion.
- Experience analyzing and optimizing the performance of complex applications, particularly JVM-based applications.
- Networking-domain experience.
Skills
JavaScalaC#F#Object-Oriented DesignFunctional ProgrammingHaskellOcamlSchemeDomain-Specific LanguagesCompilersQuery OptimizationApache ParquetApache IcebergDatafusion