Idaho, USA - fully remote

The backend software and systems engineer position supports Gravwell’s software engineering and systems development group, which is responsible for the design, development, and testing of the core Gravwell analytics platform. Well-suited candidates are self-motivated and capable of working remotely on tasks which may be self-designated. The position is remote, but candidates must be resident in the United States.

The core platform is a highly concurrent distributed system designed to ingest and analyze all manner of data, including text, network traffic, executables, audio, and video. Candidates are expected to be competent in Go and concurrent programming, comfortable on a Linux platform, and capable of debugging and designing distributed concurrent systems.

The position requires minimal travel. Occasional extended travel involving a week or more of onsite support and analysis for large customers may be required. Extensive remote communications are required, and the candidate must have a quiet working environment and reliable means to interact with the rest of the remote team.

Software Engineering Requirements

  • Strong Unix fundamentals including but not limited to:
    • Process management
    • Network communications
    • Memory management
    • Kernel interfaces
    • Filesystems and file management
  • 5+ years experience with statically-typed systems languages
    • Any combination of C, C++, Rust, Go
  • 2 years experience with Go
  • Network and systems security
  • Network communications
    • IPv4, IPv6, TCP, UDP
  • Operating systems
    • Linux, Windows, MacOS
  • Parallel processing and concurrency
    • Resource locking and mutual exclusion
  • Deadlock and livelock
  • Strong speaking and writing skills
    • Fluent in English

Preferred but not required skills

  • Software reverse engineering and protocol design
    • Able to reverse engineer a black box system or network stream and develop a decoder
  • Language experience
    • Assembly, C, C++, C#, Rust, Python, Java
  • Lexing and grammar parsing for high speed data dissection
  • Cryptography fundamentals and code protection
  • Distributed system design
    • Federated data storage
    • Fault tolerant design and recovery
  • Web interfaces
    • REST, websockets, API design
  • Penetration testing and incident response

How to apply

Email us at your CV and a link to any public work that might showcase your skills and check out our full position description here:

Does this job really require Go skills? If not, please report it and we will take a look.