External Overview: Functional responsibilities of the Sr. Application Developer include: development of architecture specifications, object and data modeling, database design, programming, quality assurance, and implementation support. The Sr. Application Developer is guided by an object-oriented software lifecycle methodology. The Sr. Application Developer role at NYPL is a demanding, highly dynamic, and technically challenging position. He/She will function in a multi-faceted role that offers the opportunity for career growth, intellectual stimulation, creative problem solving, and enjoyment. A candidate for the Sr. Application Developer position must be experienced in all stages of the software development life cycle: Requirements gathering, Design, Development, Construction, and Implementation. Candidate must be highly proficient in development standards and have a good knowledge of UML concepts. The Sr. Application Developer must also have solid interpersonal skills and be resourceful in order to manage the software development process. Responsibilities: Reporting to the Director of Application Development, the Senior Applications Developer will: * Employ object-oriented analysis and design techniques including use case analysis, object modeling, and database schema design to ensure business requirements and design goals are met. * Work with business teams to clarify requirements and business needs. * Facilitate requirements gathering utilizing facilitated focus sessions and one-on-one interviews. * Participate in application architecture planning, including system partitioning and framework design. * Collaborate with other developers and architects (when appropriate) to determine optimal solution architecture, efficiency, maintainability, and scalability. * Participate in the development of detailed design specifications for use by the technical team. * Develop system test plans, ensure software quality assurance (SQA) standards are achieved, and validate that business goals are accomplished. * Develop detailed estimates for projects, including resource allocation, timelines, and budget. * Make technical decisions to meet the design goals laid out in product road map and by management. * Identify issues that require more attention, and work to resolve issues based on an understanding of the business problem being solved. * Draw appropriate resources together in order to address technical issues. * Direct and focus the efforts of the technical project team. * Monitor progress of the team and provide mentoring where appropriate. * Develop applications to NYPL coding standards and quality. * Be responsive and customer service oriented to all stakeholders via phone, email, etc. during the engagement. Maintain open and courteous communication. * Complete projects/tasks on a timely basis, according to commitments made to stakeholders and management. * Report project/task status to the appropriate Application Development Director on a weekly basis (at minimum). * Perform other duties as required Qualifications: * 8+ years application development using Ruby on Rails * Bachelor of Science in Computer Science, or equivalent knowledge/experience. * Experience with Fedora Commons and Hadoop a plus * Experience with the product lifecycle and strong understanding of the role of methodology / frameworks. * Understanding of object-oriented design and programming techniques. * Ability to work effectively with, and support the needs of, project team members and the customer support department. * Strong written and verbal communication skills. * Possess creative problem solving skills. * Experience using software design support tools and productivity suites such as Microsoft Visio, Microsoft Office, and Microsoft Project. * Experience in teaching and/or mentoring professionals. Please apply online: https://jobs-nypl.icims.com/jobs/6796/job Brought to you by code4lib jobs: http://jobs.code4lib.org/job/876/