Research Engineer

Job type:
Progressive Recruitment
flag_no United Kingdom

Project description:
This project is archived and not active any more.
You will find vacant projects in our project database.
Progressive Engineering has been tasked by a key account to source an Software and Algorithms Research Engineer to join their team in Edinburgh on a contract basis.
This will initially be a 6 month contract that is subject to renewal.
Implementation of C++ Software Lexer, for Regular Expressions with Integer Range Exponents
The goal of this project is to implement a software lexer, which can translate regular expressions with integer-range exponents (REIRE) in the general case into DFAs with counters, guards, increments and resets.
As a Software and Algorithms Research Engineer, you will bring a deep understanding of computer science and mathematics, and a specialist knowledge of Finite Automata and their application to data analysis systems.
Brining knowledge of the principles of lexical analysis, generating abstract syntax trees and parsing, Finite State Automation and Finite State Transducers, DFA/NFA Minimization techniques, Real-time lossless compression algorithms, and parallel computing algorithms - especially Prefix Scan/Prefix Sum and their applications.

* Strong computer science grounding, with knowledge of data structures, algorithms, computer architectures and real time systems.
* Advanced object-oriented design and coding skills in C++ and STL
* Algorithmic knowledge and experience in applying the following techniques: -
- Principles of Lexical Analysis (and Compiler Design)
- Creating Abstract Syntax Trees and Parsing
- Finite State Automation, Finite State Transducers
- NFA, DFA, and Minimization techniques of both.
- Regular Expression to DFA conversion
- Moore and Mealy Machines
- Prefix Scan/Prefix Sum and its uses in Parallel Computing
- Real-time lossless Compression Algorithms (Compressed Row, Block and Column Storage)
- Sequence, character and length encoding
Qualifications :

* Advanced degree (PhD or MSc) in Software and Computer Science, with research in the areas of parallel programming/architectures or Finite Automata.
* Bachelor's degree or above in Computer Science, or closely related field.
* 2-3 years related research or project experience.
If this role is of interest please forward your latest CV or call