Job Title:Sr. Software EngineerLocation(s): Reston, VAJob Summary:Performs complex analysis, design, development, testing, and debugging of computer software ranging from operating system architecture integration and software design to selection of computer systems, language, and/or equipment. Designs, develops/codes, tests, and documents critical and complex application programs for computer systems. Works with appropriate stakeholders to define system scope and objectives and establish baselines. Establishes project standards and processes. Breaks down software requirements and creates highly complex systems.
Key Responsibilities: - Perform technical detail design, coding, testing of applications. Serve as subject matter expert for both customer and internal discussions related to maintaining and enhancing existing software systems. Develop and/or analyze interface design documentation. Comply with hardware and software systems standards and procedures. Deliver large systems for tens of thousands of users. Comply with code quality, migration and dev/ops standards and policies.
- Perform software analysis, including requirements and use case development and design. Implement and document source code to design specifications. Perform software testing including developing and running automated unit tests, drafting, and executing structured automated test cases. Compile, assess, and report data results from software testing and analysis.
- Develop software solutions for enterprise environments and other technologies. Analyze and implement functional and non-functional requirements and design, implement, and test software. Perform operations & maintenance (O&M) of existing systems. Identify areas for improvement and streamlining. Demonstrated experience with front-end and back-end programming and integration frameworks and tools. Assist in the estimation of development of application features.
- Provide direct technical support for high level, high visibility, and critical trouble calls for supported applications. Work with cross-functional teams to develop highly reliable software that runs at scale. Provide recommendations to infuse new technology. Extend open-source libraries and systems as necessary to meet the needs of the team. Play a crucial role in product scoping and roadmap/architecture discussions. Continually evaluate emerging technologies to identify opportunities, trends, and best practices. Mentor junior software engineers.
Required Qualifications: - 5-8 years' experience with software development, basic coding and compilation, software architecture/design, user requirements definition, and software specification development.
- Must have application development expertise using the COBOL programming language and environments (CICS, JCL, TSO/ISPF, ChangeMan, Topaz, etc.).
- Must have Java development experience with the ability to develop unit/integration test cases using Junit/TestNg.
- Must have the ability to understand and work with code developed by other developers.
- Must have the ability to work independently.
- Must have experience with web services and understanding of RESTful/SOA Services.
- Must have extensive experience with Agile or Scrum methodologies.
- Must have strong experience in continuous integration within DevOps environment.
- Must have excellent communication skills, both verbal and written (in English).
- Must have experience with working on Java, Spring related technologies such as Spring Core, Spring Boot, Spring MVC, and Spring Integration.
- Must have experience with cloud technologies in AWS.
- Good to have experience working with API Management Tools.
- Good to have experience working with GIT/BitBucket.
Education Level: Bachelor's Degree
Education Details: Information Technology or Computer Science
In Lieu of Education: In lieu of a Bachelor's degree, an additional 4 years of relevant work experience is required in addition to the required work experience.