About the job
Join our team at avalore as a Senior Software Engineer, where you'll be instrumental in developing, maintaining, and enhancing sophisticated software systems. Your expertise will contribute to various areas, including processing-intensive analytics, novel algorithm development, large data set manipulation, real-time systems, and business management information systems.
In this role, you'll work both independently and collaboratively within a team. You'll review and test software components to ensure they meet design requirements, document your findings, and resolve software issues efficiently. Leveraging appropriate software development and design methodologies, you will provide critical input on system design, including hardware/software trade-offs and the use of Commercial Off-the-shelf (COTS) and Government Off-the-shelf (GOTS) solutions.
- Analyze user requirements to derive software design and performance specifications.
- Debug existing software and rectify defects.
- Recommend enhancements to documentation and software development process standards.
- Design and code new software or modify existing applications to integrate new features.
- Integrate existing software into new or modified systems or operating environments.
- Develop basic data queries for existing or proposed databases or data repositories.
- Write or review software and system documentation.
- Lead a team when appropriate, based on the software development process used for each project.
- Design or implement complex database interfaces and queries.
- Develop and implement algorithms that meet or exceed system performance and functional standards.
- Assist in developing and executing test procedures for software components.
- Analyze system performance standards, confer with users or system engineers, assess systems flow, data usage, and work processes, and investigate problem areas to develop software solutions.
- Modify existing software to correct errors, adapt to new hardware, or enhance performance.
- Utilize scientific analysis and mathematical models to design, develop, and modify software systems.
- Implement complex algorithms while adhering to stringent timing, system resource, or interface constraints.
- Perform quality control on team outputs.
- Implement recommendations for improving documentation and software development process standards.
- Oversee software development teams and ensure adherence to project constraints.

