Software Engineer, Level 3
Independent Software, Inc. · Ellicott City, MD · 5 mo ago
EngineeringFull-time
Key Responsibilities
- Analyze user requirements to derive software design and performance requirements
- Design, develop, and modify software systems to add new features, improve performance, or adapt to new hardware
- Debug existing software, identify root causes, and correct defects
- Develop and implement algorithms that meet strict performance, timing, and functional constraints
- Integrate existing software into new or modified systems or operating environments
- Design and implement complex database or data repository interfaces and queries
- Develop simple data queries for existing or proposed databases or data repositories
- Absorb and execute test procedures for software components
- Review, test, and validate software components for adherence to design requirements
- Write, review, and maintain software and system documentation
- Provide recommendations and implement improvements to software development processes and documentation standards
- Perform quality control on team deliverables to ensure compliance with project standards
- Serve as a technical lead or team lead, as appropriate to the software development process
- Delegate programming and testing tasks and monitor team performance
- Oversee one or more software development teams to ensure work is completed within process constraints
- Confer with system engineers and hardware engineers to derive software requirements and understand system limitations
- Coordinate software system installation and monitor system performance to ensure operational specifications are met
- Recommend new technologies, tools, and processes for complex software projects
Required Skills and Qualifications
- Strong experience with object-oriented programming languages such as C++ and Java
- Experience developing software for complex systems, including processing-intensive applications, real-time systems, or large data environments
- Proficiency in applying software development methodologies appropriate to the development environment
- Experience with requirements analysis, software design, implementation, testing, and integration
- Experience designing and implementing complex algorithms using scientific analysis and mathematical models
- Experience supporting Information Assurance or secure software development environments
- Strong problem-solving, analytical, and debugging skills
- Ability to work independently and lead technical efforts across multiple teams
- Strong written and verbal communication skills for documentation and technical collaboration
Education And Experience
- Bachelor’s degree in Computer Science or a related discipline from an accredited college or university
- Four (4) additional years of software engineering experience on projects with similar software processes may be substituted for a bachelor’s degree
- Minimum of fourteen (14) years of experience as a Software Engineer on programs and contracts of similar scope, type, and complexity
- Additional experience with object-oriented programming languages such as C++ and Java is required