Posted over 5 years ago
Overview
Advanced software development in a large C/C++ codebase. Build new components and extend existing tooling to meet research project needs. Implement both exploratory research prototypes and high-quality library components and products. Significant experience contributing to large projects, developing software, focus on C and C++.
Responsibilities
A research-oriented software engineer is expected to:
* Study and implement approaches drawn from academic literature or in-house design
* Evaluate the resulting prototype implementation to test its value in addressing the research goals
* Report results to the PI and respond by adapting the prototype to better address research goals
* Contribute to presentations and written reports that keep research sponsors up to date on project progress
* Prepare prototypes for demonstrations and evaluations by research sponsors
Qualifications
Required
* BS in Computer Science or equivalent and 3+ years post-degree experience working in structured systems and/or software development teams, C/C++ or Graduate Degree in Computer Science
* Experience in development activities on large code bases as well as developing software from scratch
* Familiarity with common software architectures, design patterns, and software development life cycle practices
Preferred
* Knowledge of machine code, especially ARM, x86 or x86-64
* Compiler design, compiler front-end integration, C/C++ parsers
* Knowledge of common LISP
* Static analysis for binaries and/or source code
* Dynamic analysis, program instrumentation, and profiling
* System-administration experience, especially related to security
* Reverse-engineering
* Malware-analysis techniques