The Senior Software Developer will be responsible for application development and support of high-quality, electronic products. The Developer will work in a highly collaborative, cross functional and Agile team and may take a lead role on various software components. The Developer will also be responsible for developing unit testing and overall integration tests for the project team.
Essential Duties/Responsibilities:
• Test-drives awesome code, working closely with other Agile team members.
• Gets things done. Takes ownership of tasks when others do not. Helps drive the completion of all kinds of work tasks.
• Helps break down, estimate, and provide just-in-time design for small increments of work.
• Builds a strong team using their collaboration skills.
• Promotes improvements in version control, continuous integration, project build, and project automation.
• Pair programs with different people in many situations.
• Performs root cause analysis, technology evaluation, and design spikes.
• Continuously learns, and is unafraid to learn new practices, processes, technologies, and languages.
• Models courageous, continuous learning to the team. Actively helps team members continuously learn.
• Stays abreast of industry trends, technology trends, language trends, process trends. Brings new ideas to the team. Ideally also participates in open source projects, and/or blogs about technology concerns.
• Provides leadership and assistance among and across teams.
• Commits to completing well-defined work, and delivers on those commitments.
• Participates in and may lead weekly demonstrations of recently-completed work.
• Reports status of assigned software development and/or maintenance tasks
• Consistently follows software development methodology
Skills/Knowledge/Experience:
Required
• Bachelor degree in Computer Science or related field, or equivalent combination of education and recent, relevant work experience
• Minimum 7 years software development experience including 4 years of combined Java and/or JavaScript programming experience
• Knowledge of and desire to work in an Agile development environment.
• Strong familiarity with object-oriented systems and enterprise design patterns
• Experience with development of service oriented applications
• Familiarity with wide portfolio of software development applications, environments and languages
• Strong understanding of HTTP/REST/API architecture
• Experience using source code control systems, such as Git, Subversion, or CVS
• Knowledge of XML parsing, and/or DOM traversal.
• Excellent verbal and written English communication skills required
• Creative problem solving skills and ability to effectively communicate and translate feedback, needs and solutions
• Must have strong teamwork orientation and the ability to foster collaboration within and across teams
• Must be sensitive to cultural differences in interactions and in the way work is done
• Needs good work ethic and strong sense of ownership of end result
Preferred
• Advanced degree preferred
• Experience with Agile development methodologies, including XP methods such as Test Driven Development and pair programming
• Experience with JavaScript frameworks, such as Backbone.js, JavaScript MVC, jQuery, etc.
• Experience with Advanced JavaScript (including prototype-based inheritance, event delegation, closures, AJAX, JSON)
• Understanding of Web Standards, Accessibility, and command of Semantic markup (XHTML, HTML5)
• Experience with high performance web page optimization techniques (edge serving, minimize http connections, etc.)
• Experience with a variety of Database Systems, such as LDAP, Oracle, Sybase, MongoDB, NoSQL
• Knowledge of search engine development, particularly with Lucene as a component
• Experience developing for mobile devices
• Leadership skills and experience managing the work of development staff
• Passion for working in the academic, professional or library markets, and experience with technologies within those markets such as LMS, eReaders, OPAC, OpenURL, Z39.50, and SRU/SRW