Senior Programmer, Center for Teaching and Learning

10027, New York City
commensurate with experience
Aug 22, 2017
Institution Type
Four-Year Institution

Columbia's Center for Teaching and Learning seeks a highly motivated and collaborative Senior Programmer to join the Instructional Technologies team. The Senior Programmer designs and develops complex software applications with an emphasis on web-based applications to support to the efforts of the Center for Teaching and Learning. The Senior Programmer also provides support and oversight to junior programmers on staff and works independently with minimal supervision from the Associate Director for Software Development and Project Management, the Senior Director for Instructional Technologies, and the Executive Director of the CTL.

Specific duties include but are not limited to:
- Designing, developing and implementing software applications with an emphasis on rich-client, web-based applications. Writing software using standard frameworks and participates in code reviews. Following policies and standard procedures for releasing or updating software.
- Leading the analysis process for complex projects. Performing research, testing, and evaluation of potential new systems and software accounting for data security and identity management. Maintaining and improving upon existing systems, software, and processes.
- Writing and reviewing a variety of technical documents including specifications, scope documents, user documentation, and configuration documents for internal and external use.
- Participating in planning and implementing upgrades and software deployments. Performing other duties and special projects, as required.

- Bachelor's degree and 4-6 years of related experience (or the equivalent combination of education and experience) required.
- Strong Object-Oriented programming background and fluency with design patterns required.
- Strong knowledge of open web standards including HTML5, CSS, and AJAX/JavaScript/jQuery and browser specific compatibility issues required.
- Fluency in dynamic scripting languages (Python/Ruby/JavaScript), MVC web frameworks (Django/Rails), and RESTful architecture required. Experience developing rich client-side interactive experiences required.
- Ability to manage complex software development using distributed version control software (git) required.
- Strong background in Linux/Unix administration; experience with automation/configuration management such as SaltStack or an equivalent required.
- Ability to use a wide variety of open source technologies and cloud services; experience with AWS is required.
- Knowledge of best practices, security and operations in an always-up, always-available service required.
- Strong relational database skills required.
- Ability to present at conferences and teach courses on related topics required.
- Experience with iterative, agile development processes required.
- Excellent oral and written communication skills required.
- Familiarity with unit testing, continuous integration, content management systems, metadata standards, and functional languages preferred.
- Experience developing enterprise-class web applications, contributions to open source software projects, and an interest in emerging development paradigms (nosql, node.js) preferred.
- Experience with producing and delivering streaming web video, data visualizations, and mobile application development preferred.

Please apply online at:

Columbia University is an Equal Opportunity/Affirmative Action Employer and strongly encourages individuals of all backgrounds and cultures to consider this position.