Chief Software Architect

Role Overview

Our ideal candidate is a Chief Software Architect who is mission focused and passionate about providing technical leadership in software architecture definition, engineering, requirements analysis, interface definition, software design, integration, validation, and verification to multiple programs. This candidate will be leading our team of engineers to shape the development and delivery of InQuest’s solutions to our customers.

Key Responsibilities

  • Provide Architectural leadership and technical vision for InQuest products and services.
  • Apply creative thinking/approach to determine technical solutions that further our business goals and align with our corporate technology strategies, keeping in mind security, performance, reliability, scalability, usability, flexibility, and cost. - Essentially define and drive technology standard and best practices for this product development organization
  • Develop and maintain architectural roadmap for products and services while ensuring alignment with our business and enterprise architecture strategies and standards. Able to develop, present and explain the value and vision of proposed architectures and solutions to a wide range of audience.
  • Work with a team of developers to design a software system, messaging framework, cloud services, database solution, algorithms, front-end tech stack, etc.
  • Guiding engineering teams to achieve program and technical success through the entire Software Development Life Cycle (SDLC)
  • Applying technical knowledge to determine and set technical objectives to analyze, investigate, and resolve advanced software engineering problems
  • Evaluating the engineering solution, including the software design, development, documentation, and deployment procedures
  • Communicating risks or issues involving system performance, availability, or security to program leadership and the customer
  • Understanding, evaluating, and recommending new technologies that can enhance the performance of our software systems

Skills and Experience

Operating System Engineering

  • Good experience with building Linux operating system images that run on real hardware.
  • Deep understanding of systemd and the technologies it leans on (e.g., cgroups).
  • Understanding of Linux administration.
  • Understanding of Enterprise Linux packaging and deployment (e.g., building RPMs).
  • Understanding of the traditional Unix build tools, especially Make.
  • Good command of Bourne shell scripting.
  • Good understanding of how to secure Linux systems; iptables/netfilter experience absolutely necessary.
  • Good understanding of modern practical cryptography in general (and especially SSH in particular).
  • Good understanding of operating system monitoring, particularly SNMP and internal profiling/monitoring interfaces.

Network Analysis

  • Familiarity with low-level details of network protocols, traffic capture, etc.
  • Deep understanding of IPv4, IPv6, HTTP, and SMTP.
  • Experience with Linux kernel programming, particularly the eBPF, BPF, and TPACKET subsystems.
  • Experience with C programming, particularly memory-efficient socket programming.
  • Experience with Go programming; gopacket programming a plus.

Engine Ingestion

  • Extensive experience with Python (versions 2 and 3).
  • Experience with type-annotated and type-checked Python (e.g., MyPy) a plus.
  • Experience with async Python 3 a plus.
  • Good working knowledge of the Python standard library.
  • Understanding of various Internet standards, especially MIME.

Data Warehousing

  • Extensive understanding of SQL databases, especially MySQL.
  • Extensive understanding of relational schemas, triggers, query planners, and query optimization.
  • Ability to design relational schemas, with a good understanding of the performance impacts of choices.
  • Extensive Understanding of modern Linux filesystems, including storage provisioning.

Information Security

  • Understanding of threat models.
  • Extensive experience, knowledge, and understanding of regular expressions in support of static analysis
  • YARA experience a plus.

Qualifications:

  • Experienced technology leader with a minimum of 10+ years of software development experience
  • Expertise with the Python programming language (versions 2 & 3)
  • Expertise with the Linux Operating System. Specifically, Linux administration with RedHat and/or CentOS (RPM packaging, system interfaces, performing tuning, engineering, etc.)
  • Extensive experience with Flask, NGINX, uWSGI
  • Extensive experience with OpenAPI (Swagger)
  • Extensive experience on architecture design of large-scale platforms and application
  • Extensive experience on architecture design of large-scale platforms and application
  • Understand the Security requirements and standards and contemporary trends in Security risks as well as technologies
  • Proven track record of providing technical leadership for a 10+ person team throughout the whole software development lifecycle and transitioning capabilities into a classified government operational environment
  • Strategic and clear thinking, problem-solving, optimistic attitude, ability to delegate efficiently
  • Demonstrated excellent interpersonal skills and engagement with virtual teams
  • Demonstrated business acumen and ability to balance technical requirements with business needs

If you’re interested in fulfilling this role and working with the InQuest team, please apply here: