Software Engineer - Entry to Experienced Level

  • National Security Agency
  • Multiple Locations - Georgia, Hawaii, Texas
  • Jan 08, 2020
Full-time C++ Computer Science Data Center Data Modeling Deep Learning Information Security Java Python Ruby Software Engineering

Job Description

The need to maintain our core Computer Science group is vital to provide the technical capabilities necessary to successfully execute NSA's mission. The increased complexity of supporting NSA's mission requires world class researchers, programmers, and developers who operate in teams in areas such as software engineering, information technology infrastructure, high performance computing, data science, architectures, computer security, and networking in order to design and develop advanced tools, techniques, and systems.

Given the pace of technologies and myriad of adversaries in the cyber realm and foreign nation state actors, Software Engineers at the NSA develop the technologies and abilities to maintain our advantage in both national defense and information gathering. Software Engineers help collect data, extract value, route and manage at scale, build user interfaces, protect our systems, and identify and develop support infrastructure as a service provider to the Agency and Intelligence Community.

As a Software Engineer, your responsibilities can include:

  • creating applications that scale across an entire data center
  • identifying and retrieving the most important pieces of information out of 100s of petabytes of data
  • leveraging open source software
  • integrating off-the-shelf and government developed software
  • leading new advances in computer science and riding the bleeding edge of computing technologies:
  • microprocessor-based advances
  • beyond the horizon supercomputers
  • signals processing (including analog control)
  • user interfaces
  • deep learning
  • information security
  • the design and implementation of encryption
  • advanced algorithms

The ideal candidate is someone with excellent problem-solving, communication, and interpersonal skills who is able to:

  • work in a team environment to build software
  • handle multiple assignments
  • synthesize information to solve complex problems
  • apply knowledge data structures and algorithms to software engineering problems
  • develop, diagnose, and operate complex computer systems
  • identify customer needs and validate product design
  • deliver software that others WANT to use
  • deal with conflict within a team

Knowledge and experience in one or more of the following is desired:

  • programming with a high-level language (e.g., C, C++, Java, python, ruby)
  • building user facing services, middleware, and backend systems
  • Full-stack development
  • operating systems administration and advanced user functions, site reliability engineering
  • computer networking (e.g., communication protocols, distributed systems, , Internet of Things, real-time systems, routing and switching)
  • data spaces, data modeling, data analysis, storage design, and administration
  • information retrieval, machine learning, artificial intelligence, statistics and analytics
  • vulnerability analysis

Job ID