The Software Engineer is responsible for coding, testing, and documenting application programs that are moderate to complex in nature, working with accepted development department standards and procedures.
Participate in agile processes and ceremonies to collaborate with the team to define stories, identify tasks, estimates, and acceptance criteria.
Participate in analyzing, designing, writing, and testing code, documenting, and implementing functionally appropriate, technically sound, and well-integrated application systems.
This is completed in accordance with customer requirements and organizational methodologies and standards for new application development as well as existing system enhancements.
Participate in new application development and existing system enhancements by coding system features according to system designs.
Maintain existing application programs by fixing bugs or clearing up operational deficiencies in both previously released software and software slated for future release.
Assure program, module and system integrity through thorough testing and adherence to company standards and procedures.
Work through all phases of the software development life cycle, including research, design, analysis, requirements, implementation, test automation, and maintenance.
Utilize new technologies and tools to modify products and provide integration with applications developed internally and externally.
Prepare and modify program and system documentation.
Collaborate with more experienced team members to ensure knowledge transfer and training are successfully meeting department goals.
Achieve departmental goals and timelines.
Perform other duties as assigned.
Complexity : The Software Engineer must be able to :
Demonstrate the ability to take increasingly difficult assignments and successfully implement it with little or no help from more senior resources.
Develop programs that are moderate to complex in nature, adhering to established departmental standards.
Learn and implement new technologies and architectures within a reasonably quick timeframe while producing and testing high-quality software.
Demonstrate strong knowledge of software development practices, concepts, and technologies obtained through formal training and work experience.
Demonstrate strong knowledge of required programming languages.
Demonstrate strong knowledge of the technical / business environment.
Effectively partner, communicate and negotiate with business analysts, development, and support groups in order to clarify and implement business requirements.
Work on individual components that are part of a much larger application suite.
Adapt to changing products and technologies.
Fix bugs in existing software under considerable time constraints in support of service level requirements.
Manage and prioritize conflicting tasks and interruptions so as to minimize their impact on the current deadlines and workload.
Bachelor’s degree in computer science, computer engineering, or comparable work experience.
Typically, three or more years of software development experience.
Excellent verbal and written communication skills.
Strong interpersonal skills.
Demonstrated strong knowledge of software development practices, computer science theory, and understanding of relevant technologies.
Experience writing and testing code to meet strict deadlines.
Demonstrated understanding of product architecture and underlying technologies.
Demonstrated understanding of the development process.
Demonstrated experience with data modeling tools, web services and / or service-oriented architecture.
Ability to work well both independently and within a team environment.
Solid negotiation with various parties to ensure enhancements to applications are addressed while maintaining / balancing business situations and constrictions.
Well-developed logical thinking and reasoning skills.
Ability to prioritize and complete multiple tasks in a fast-paced, technical environment.
Keen attention to detail.