This position is responsible for the design, development and support of new software applications, works with business owners and IT support staff on assigned project(s) to create and implement software products, and takes responsibility for documenting functional and design specifications to ensure the product meets the users' needs. This role develops new software including programming and scripting languages, business process tool sets, data modeling and reporting tools. Develops and maintains business applications in client-server or web-based environments. Codes new software, performs unit and functional testing of the code, and partners with Quality Assurance to test and fix bugs in the software. Leads design meetings and works with software architects to develop overall design of new system modules and data layouts. Writes functional and design documentation, user requirements, unit test plans, and user documentation. Works with leadership to set coding, review, and design policy. Works with the IT Network group and ensures software installation for end users. Follows up with end users to ensure the application is working properly. Assists the technical services team to resolve customer problems. Works within an agile methodology and performs the role of scrum master. Presents product demonstrations to leadership and product stakeholders. Performs periodic technology overview and training sessions. Mentors and coaches junior engineers. Researches and evaluates methods and techniques for solving problems. Participates in other projects or duties as assigned.