Software Engineer (Entry Level) - SEAL - Open Rank - (Hybrid)
On-site
Job Description
Project/Unit Description
The Sensors and Electromagnetic Applications Laboratory (SEAL) of the Georgia Tech Research Institute (GTRI) is seeking technical personnel to be part of an established software team that has multiple opportunities for software engineers within the Software Engineering and Architecture Division (SEAD) at Smyrna, GA. The SEAD group's mission is to provide world-class software for sensors, signal processing, electronic warfare, tracking, and intelligence surveillance reconnaissance (ISR) systems deployed on land, air, and sea. Our software team employs a modern software engineering process to design, code, integrate, and test capabilities continuously resulting in a mature and quality solution for our customers. We strive for technical excellence by drawing upon a diverse workforce whose knowledge base covers modern computing languages and platforms.
Job Purpose
The Software Engineer designs, develops, and tests software applications and products. Additionally, the Software Engineer manages software development teams, provides technical leadership, and establishes software development lifecycle practices and processes. The Software Engineer is proficient in programming languages such as Java, JavaScript, C, C++, C#, Ruby, Python, Scala, and Groovy. In this role, the Software Engineer requires extensive knowledge of programming languages, software development, computer operating systems, Continuous Integration/Continuous Delivery (CI/CD), DevOps, Application Programming Interface (API) development, container development, and distributed systems. The Software Engineer also applies engineering principles to software creation, manages production releases of software, performs code reviews, merges feature development branches, and analyzes and triages issues. The necessary skill areas for the Software Engineer include programming and coding, fundamentals of computer science, software design and architecture development, algorithms and data structures, information analysis, software debugging and testing, and working on development teams. The Software Engineer also works with sponsors to curate requirements, define sprint work items, set priorities for work backlogs, and organize development teams.
Responsibilities
Key Responsibilities
- Perform software development, debugging, modification, enhancement, and documentation
- Develop and maintain kernel and user-level software and scripts
- Contribute to technical reports and presentations
Additional Responsibilities
The successful candidates will be involved in software design, development, integration, and testing of real-time systems and working as a team with the hardware and algorithm engineers. Our real-time software applications are developed using C and C++ and our forensic and machine learning applications utilize Python programming languages running on a variety of computing platforms running Linux and Windows operating systems. SEAD utilizes productive modern (Agile) and industry-proven software development processes and environments. The candidate will be an active engineering participant on the project team, performing development tasks independently, and will provide developed and tested software capabilities. This successful candidate will have software development opportunities for various types of software functionality (real-time, high performance, machine learning, implementing specific algorithms, middleware, hardware interfaces, GUIs and networking).
Job Requirements
Required Minimum Qualifications
- Candidates currently enrolled in an accredited degree program relevant to this position will be considered. The candidate must have a graduation date of no later than December, 2024
- Some experience with C, C++ or Java
- Some experience with Linux, UNIX or Windows
- Knowledgeable in version control software such as GIT
Preferred Qualifications
- Active Secret Clearance
- Knowledge of computer architectures including multi-core environments
- Familiarity with software applications requiring multi-threaded programming implementation
- Experience in software engineering and development
- Complex programs that involved hardware, software, communications, and networking