Position Announcement

JOB TITLE: Senior Software Engineer

REPORTS TO: Software Engineer Manager

JOB OBJECTIVE:  To create and maintain quality software applications to support NOLS and its customers.


Bachelor’s degree in Computer Science or MIS, or equivalent experience, and 5 years of experience. Solid skills in full software lifecycle activities including requirements gathering, design, coding, testing, documentation, configuration management, automated deployment, and maintenance. Experience in the technical lead role of multi-programmer projects required, and some project management experience preferred. Good communication skills with the ability to interact with other members of the software engineering team, both in peer and leadership roles, and internal customers.
The successful candidate will have strong Linux skills (including shell scripting, package management, and general troubleshooting) as well as have strong experience in either Python or JavaScript. We develop on Macintosh and deploy on Ubuntu using Salt. Our primary database is currently Oracle, but we are moving toward PostgreSQL, so experience in either of those would be helpful.
While we don’t require experience in all of these, here is a full list of our stack:
Frontend: SASS, webpack, npm, jQuery, Vue
Database: Oracle, PostgreSQL
Backend: Django, Django REST Framework, django CMS, uWSGI, HAProxy, Elasticsearch
Test / Deploy / Monitor: GitHub, Jenkins, Salt, Selenium, New Relic, pytest, Docker, Let’s Encrypt, VirtualBox, VMware/vSphere

LEADERSHIP OR SUPERVISORY DUTIES: May serve as the technical lead on multi-programmer projects. In that role will supervise the day-to-day work of 2 programmers and help manage the project. 

FUNDS AND/OR PROPERTY: Will participate in the decisions to purchase software engineering related assets.


  • Senior programmers are expected to handle the most complex and challenging software engineering tasks. Quickly deliver quality, tested and maintainable software products on schedule.
  • Field and document bug reports and new feature requests.
  • Serve as technical lead as assigned. In that role: work with project stakeholders to define project requirements, balance feature requests and schedule, direct testing and define product acceptance criteria; collaborate with the software engineering manager to select team members and make assignments; drive/make project-related technical decisions; track progress against schedule; and mentor team members.
  • Role model adherence to NOLS coding standards and development, test and deployment processes. Collaborate with the software development manager to ensure that NOLS stays current with trends and that documentation of standards and processes is up-to-date.
  • Review other engineer’s code and provide appropriate feedback and training.

EQUAL EMPLOYMENT OPPORTUNITY: NOLS does not discriminate on the basis of race, color, religion, national origin, sex, sexual orientation, gender identity, age, genetics information, disability unrelated to job or admission requirements, or status as a protected veteran. The school’s nondiscrimination policy applies to all phases of its employment process, its admission and financial aid programs, and to all other aspects of its educational programs and activities. Retaliation directed to any person who pursues a discrimination complaint or grievance, participates in a discrimination investigation, or otherwise opposes unlawful discrimination is prohibited.

CRIMINAL BACKGROUND CHECK: A criminal background check is required from all NOLS employees. 

E-VERIFY: NOLS Participates in E-Verify.



Send Cover Letter and Resume to: Erin Feed.

Email: erin_freed@nols.edu

Phone: (307) 332-8800.

Contact: Erin Freed with questions.



Thank you for your interest in NOLS. Please consider providing some optional, anonymous information by visiting link.