CLOSED - 2450 - Embedded Software Engineer
OVERVIEW :
We are a growth-focused and culture-oriented company that is looking for candidates to join our high-performing team. We were founded in 2009 with the simple goal of driving the GEOINT community to do better.
We thrive on solving complex geospatial software engineering, development, and integration problems in the Defense and Intelligence community.
We pride ourselves on making an immediate impact for our nation’s soldiers and analysts. We also have additional expertise across various disciplines to include DevOps, Data Science, and Data / Geospatial analysis, all of which are essential to our customers’ missions.
We are looking for a talented Embedded Software Engineer to support the integration of new technology development. This individual will be a key member of a software development team translating real-world needs into technical solutions.
The ideal candidate must be a self-starter, a quick learner, and able to balance simultaneous tasks while delivering quality results.
GENERAL DUTIES :
Participate in the architecture design of complex embedded sensor and signal processing functions hosted within COTS, GOTS and custom electronic hardware consisting of both CPU, MCU and FPGA hardware resources.
Architectures must support very high bandwidth data ingest, data manipulation, storage and system housekeeping functions with deterministic performance
Actively design, develop and employ near real time algorithms using parallel programming and embedded technologies (e.
g., GPUs, multi-core CPUs, FPGAs)
- Evaluate algorithm performance and recommend the most appropriate parallel programming and embedded technologies for implementation
- Develop software and firmware source code in C / C++ and other languages to instantiate the capabilities required of the chosen architecture
- Perform both simulation and Hardware-In-The-Loop testing to validate designs and code for robust and reliable performance
- Work closely with Software Engineers and Electrical Engineers to diagnose faults and rapidly identify / repair the root cause.
- Develop presentation materials to summarize designs for both peer and general technical audiences
REQUIRED QUALIFICATIONS :
- B.S. in Computer Science, Software Engineering, Electrical Engineering, Computer Engineering or applicable engineering or science field
- Three or more years’ experience :
- Developing embedded software solutions for R&D and / or prototype scientific & engineering software in C++ (i.e., not academic) primarily on Linux platforms
- Developing parallel programming and embedded software solutions utilizing GPUs, multi-core CPUs, MCUs and FPGAs
- Experience with FPGA Development (Xilinx & PetaLinux preferred)
- Strong Object-Oriented design and development skills
- Strong multi-threaded / multi-core / concurrent programming skills
- Experience / expertise in video and image processing, preferably utilizing optimized libraries such as CUDA, OpenCV, OpenCL and GStreamer
- Experience / expertise in designing, developing, and testing data acquisition and control software for sensor-based systems utilizing a variety of technologies and protocols (e.
g., TCP / IP, USB, CameraLink, GigE Vision, USB3 Vision, CoaXPress, RS-232 / 422 / 485, I2C, and GPIO)
- Experience in working with medium to high complexity hardware / software systems
- Excellent written and verbal communication skills
- The ability to obtain and maintain a SECRET security clearance, therefore U.S. Citizenship is required
- To maintain a professional appearance and demeanor in an employee / customer environment
- Strong problem-solving skills, including the ability to readily decompose complex problems into smaller, manageable tasks
DESIRED QUALIFICATIONS :
- Experience / expertise employing software engineering DEVOPS tools / practices (e.g., Jira, Confluence, GitLab, GitFlow)
- Experience with Interface Control Documents (ICDs) and / or Interface Description Documents (IDDs)
- Experience with US Army Ground Combat Vehicle System Electronics Hardware and Software
- Experience with a variety of DoD (e.g., WMI, DSTAT, JAUS, CoT, ISA) and standard (UDP, Multicast, TCP, protobuf, XML, CAN) data transfer and network protocols / frameworks
- Experience with HDL Code Development (VHDL, Verilog, System Verilog)
- Experience / expertise employing complex data structures (e.g., queues, stacks, maps, dictionaries, lists, vectors, iterators, sets)
- Experience / expertise employing industry accepted programming constructs / practices (e.g., thread pools, abstract class implementations, unit testing, concurrency)
- Experience / expertise with various programming and scripting languages (e.g., C, C# / .NET, Python)
- Experience / expertise designing and developing GUIs
- Experience / expertise in Linux Systems & Network Administration
- Cross platform (Linux, Windows) software development experience
- Hardware and software system integration experience / expertise
- Experience successfully leading a team of software engineers
CLEARANCE
- Secret minimum required