General DescriptionGeneral Position Summary:Responsible for the creation, implementation, maintenance, performance, production support and documentation of various departmental and enterprise-wide application systems, with an emphasis on Ruby-on-Rails development. This includes but is not limited to the installation, modification, and testing of new and/or upgraded applications (packages vendor, open-source, or home grown), operating systems, databases, and file structures, hardware, communication devices, and productivity tools. Applies analysis techniques and procedures to gather and then translate business requirements into functional/technical specifications and designs and technical solutions. Using functional specifications and designs,agile development processes, produces all or part of the deliverables to meet the needs of stakeholders. Maintains databases and application system code. Creates stable, easily maintained code by adhering to development methodologies
Responsible for full life-cycle of medium to large sized complex projects; strong technical skills; strong abliltyability to understand complex business processes. Develops solutions based on extensive technical knowledge, skills and experience; influences client towards innovative/integrated solutions.
BUSINESS ANALYSIS AND REQUIREMENTS GATHERING
- Define complex business/clinical/education problems by meeting with clients to observe and understand current processes and the issues related to those processes. Provide written documentation of findings to share with the client and other IT colleagues.
- Gather complex system requirements by meeting with clients and researching existing technology to understand the business requirements and possible solutions for new applications.
DESIGN AND DEVELOPMENT
- Develop detailed tasks and project plans by analyzing project scope and milestones for complex projects in order to ensure product is delivered in a timely fashion according to software lifecycle standards.
- Write functional/technicalagile stories and serve as tech lead or scrum master as needed in development cycle. specifications from the complex system requirements, putting them into functional and technical descriptions for use by programmers and business analysts to develop technical solutions.
- Develop/change data input, files/database structures, data transformation, algorithms, and data output by using appropriate computer language/tools to provide technical solutions for complex application development tasks.
- Follow versioning and Develop/Operations best practices.
- Document code and associated processes by adhering to development methodologies, adding code comments and appropriate documentation to various knowledge-base system(s) to simplify code maintenance and to improve support.
- Provide monitoring and guidance in application design and development to more junior staff.
- Provide thought leadership in designing and developing innovative integrated solutions.
TESTING AND DOCUMENTATION
- Follow test-as-you-go development practices
- Create and document complex test scenarios using the appropriate testing tools to validate and verify application functionality.
- Test all changes by using the appropriate complex test scenarios to ensure all delivered solutions work as expected and errors are handling in a meaningful way.
- Author and maintain documentation by writing audience-appropriate materials to serve as technical and/or end-user references.
- Mentor junior staff in testing tools and technologies by reviewing their work.
IMPLEMENTATION AND MAINTENANCE
- Implement changes by adhering to the change management policies and procedures for any given project to communicate to all parties the nature, significance, and risk factors of the solution.
- Monitor changes and resolve complex problems by responding as they occur, by reviewing all processing and output of the newly implemented solution, and by proactively ensuring the solution works successfully in order to satisfy the customer requirements and to provide a smooth transition to the new solution.
- Provide support by investigating and resolving issues, including complex issues to ensure prompt, effective service.