Contribute to software development activities by developing, documenting, testing, modifying and maintaining new and existing software applications. Apply standard techniques, procedures, and criteria to the development life cycle. Bring application(s) and technology expertise to the specification and design development process. Provide technical expertise on assigned applications, to include interfaces and interrelationships with other applications and systems. Receive technical guidance and day-to-day direction from Software Engineers and Senior Software Engineers.
– Code, test and troubleshoot existing programs utilizing the appropriate hardware, database, and programming technology. Analyze end user data and business needs to format final product and assure user-orientation. Test and develop programming modifications. Utilize applications expertise to participate in the design process as needed, then write new program code based on defined specifications. Document programming problems and resolutions for future reference.
– Maintain and modify programs; make approved changes by amending flow charts, develop detailed programming logic, and coding changes. Write and maintain programming documentation, as well as operations and user guides (as required).
– Effectively unit test all code and programs prior to releasing them to the quality assurance (QA) team. Resolve all unit test issues in a timely manner. Collaborate with the QA team to identify test cases and create/mine test data to enable a thorough test of all development deliverables. Respond to all inquiries and issues in a timely manner as the developed code/program moves through the testing process and ultimately into production. Provide implementation/production support as required.
– Analyze performance of programs and take action to correct deficiencies based on consultation with end users, Business Analysts and senior development team members. Provide input to prolong application life or recommend replacement. Confer with senior development team members to gain understanding of needed changes or modifications of existing programs. Assist in resolution of questions of program intent, data input, output requirements, and inclusion of internal checks and controls.
– Evaluate and thoroughly understand complex interrelationships between assigned applications and systems, such as whether a contemplated change in one application would impact or cause unwanted results in a related part of that application or other applications/systems. Proactively provide subject matter expertise regarding assigned application(s) to other members of the technology and business teams to assure understanding of interrelationships and dependencies.
– Support the installation planning for application program requirements. Support the end-user and technical operations staff as required. Assist senior development staff with the integration of technology within and across the capability domains.
– Act as a resource to junior development staff regarding technology, methodologies and standards. Proactively share knowledge and collaborate with development team members, Business Analysts and Technology Operations to assure quick and effective responses to customer needs (internal and/or external).