Forward Networks is looking for a Software Engineer with expertise in either Programming Language (PL) and Compilers or in database systems implementation, especially in query language development and query optimization. In this role, you will help drive the development and delivery of a suite of domain-specific languages and associated tools, used both internally and externally, to create a reliable, robust experience with the network verification and assurance software from Forward Networks.
You will apply programming language and database concepts to help develop the state-of-the-art network verification platform and improve how network operators manage networks today. In particular, you will help develop Forward Networks' Network Query Engine (NQE), a new network database system that enables users to "query their network like a database." NQE provides access to a large set of network data, organized as a hierarchical data model, using established data models from the networking community. NQE includes a novel functional query language, featuring static types and type inference, for accessing this data. NQE is used by many Fortune 500 companies to obtain reports on network data and to express verification conditions that continuously check network correctness.
We are specifically interested in candidates with the following:
Experience and comfort programming in Java and at least one functional programming language, such as OCaml, Haskell, Scala, Scheme or F#
Experience in one or more of the following areas:
Design and implementation (via interpretation, compilation or analysis) of domain specific languages, either stand-alone or embedded within a host language
Familiarity or experience with database system implementation, especially in implementation of query languages or query optimizers
Familiarity or experience with parsing techniques and tools, for example, parser generators (Lex, YACC, ANTLR, Bison, etc.) or parser combinator libraries (e.g. Parsec, etc)
Familiarity with PL concepts like concrete and abstract syntax, denotational and operational semantics, type systems and control and data flow analysis
Knowledge of computer networks is not required but would be helpful
Deliver a suite of domain-specific languages used in the development of Forward Enterprise
Build and support tools associated with the above domain-specific languages