Software Engineer II
Job DescriptionAs a Software Engineer II, you will design, develop, and enhance sophisticated software systems that tackle complex technical challenges ranging from large-scale data processing and advanced algorithms to real-time systems and integrated business platforms. You'll take on leadership responsibilities, guiding teams, setting technical direction and ensuring quality while still engaging in hands-on development.Required SkillsAnalyze user requirements to derive software design and performance specifications.Design, code and modify software to add new features or improve performance.Integrate existing software into new or updated systems and environments.Debug software and resolve defects.Develop and implement algorithms that are complex and include strict performance or timing constraints.Build applications using programming languages such as C, C++, C#, Java and Python.Develop for Windows and UNIX environments, including scripting and automation.Oversee and coordinate software development teams, ensuring adherence to project standards.Perform quality control and reviews of team deliverables.Implement and recommend improvements to documentation and software development processes.Design and implement complex database interfaces and data queries.Lead the development and execution of test procedures.Collaborate with system and hardware engineers to gather requirements and resolve integration challenges.Use DevOps and CI/CD tools such as Artifactory, Docker, Terraform, Ansible, Packer, Jenkins and Bamboo.Coordinate software system installations and verify operational readiness.Bachelor's Degree in Computer Science, Engineering or related field. Equivalent work experience may be considered.Minimum fourteen (14) years experience in programs and contracts of similar scope, type and complexity.