Senior Software Engineer/Architect (Remote in USA may be possible)
GrammaTech, Inc.

Overview:

GrammaTech is looking for a Senior SW Engineer/ Architect with advanced software architecture and development skills in a large Python and C/C++ codebase. Build new components and extend existing tooling to meet project needs.  Implement both exploratory research prototypes and high-quality library components and products. Significant experience overseeing development activities on large projects, designing and developing software, focus on Python and C/C++ required.

REMOTE EMPLOYEES (MUST BE LOCATED IN THE USA) WILL BE CONSIDERED IF SKILLS AND EXPERIENCE MATCH.

Responsibilities:


  • Architect and develop software in Python and C/C++ to meet goals of research projects

  • Analyze current software against requirements and negotiate appropriate scope to fit within time and budget constraints

  • Evaluate trade-offs among tools and approaches

  • Support and mentor junior engineers in design, development, testing and prototyping

  • Effectively communicate and develop presentations and demonstrations for peers, management, and customers

Qualifications:

Required Skills:


  • BS in Computer Science or equivalent experience. MS preferred

  • 10+ years experience working in structured systems and/or software development teams, with Python and C/C++

  • Experience overseeing development activities on large code bases (>10 MLOC) as well as developing software from scratch

  • Familiarity with common software architectures, design patterns, and software development life cycle practices

  • Demonstrated experience in a leadership role

  • Excellent communication and presentation skills; demonstrated ability to convey information clearly and concisely 

 Preferred:


  •  Binary Analysis, Source Code Analysis

  • Compiler design, compiler front-end integration

  • Static and/or Dynamic Analysis

  • Reverse-engineering

  • Malware-analysis techniques

  • Knowledge of machine code, especially ARM, x86 or x86-64

  • Dynamic analysis, program instrumentation, and profiling

  • Familiarity with executable file formats, dynamic loaders, and the C/C++ runtime

  • System-administration experience, especially related to security

  • Knowledge of machine code, especially ARM, x86 or x86-64

Posted 10 months ago