Internals

Lead Programmer

  • Hourly Rate: 21.25
  • Summer Commitment: Required

Position Overview

The Lead Programmer, under the supervision of the Web Applications Manager of Student Affairs - Information Technologies (SAIT), is a self-starter who develops web-based tools and applications for residential and academic staff services, including enhancement of an in-room Internet connection program that serves over 8,000 residential students and 50 staff members who provide residential technical support. The Lead Programmer also develops programs and support systems for six Academic Services Centers running on FreeBSD UNIX servers and over 200 client machines. The Lead Programmer is expected to conduct systems analysis and development, with support and direction from professional staff, to keep applications current with efficient and scalable program design. The Lead Programmer is responsible for establishing emergency response procedures and coverage as needed to correct systems problems. In coordination with the Student Leadership Coordinator, the Lead Programmer selects, trains, and evaluates the Programmer team.

The Lead Programmer must possess numerous advanced technical skills, including knowledge of multiple programming languages. As new technologies emerge and impact our systems, the Lead Programmer is expected to learn these technologies quickly and resolve any problems involved in integrating new technologies with SAIT systems.

The Lead Programmer is required to assume a rotating weekly on-call role as a "Duty Officer;" a shared role with other assigned Programmers. The Duty Officer will be assigned many small to medium operational tasks, e.g. code release coordination, troubleshooting, and emergency responses.

The Lead Programmer is a key technical resource for other IT Senior Staff, providing advice, training, and technical support for various projects. In addition, the Lead Programmer works closely with professional technical staff in the IT management team in evaluating current systems and making decisions on future development and works closely with staff from other teams to plan, define, and prioritize projects for future development. The Lead Programmer has a large role in determining the direction of technical developments within the Application Services group and overseeing implementation by its staff.

Qualifications

Required: Previous leadership/supervisory experience; effective communication skills and the ability to interact professionally with a diverse group of clients and staff; demonstrated success with administrative and organizational skills; ability to manage and supervise teams and projects; ability to work productively in teams; experience and ability to teach or instruct others (including persons who do not have a technical background), experience prioritizing tasks and delegating responsibility; experience using and operating in a UNIX environment; strong knowledge of data structures (such as stacks, arrays, hashes, etc.); ability to learn new programming languages quickly; minimum GPA of 2.3.

Preferred: Experience using Perl or Python (especially with the Django framework); experience writing CGI programs; experience designing database schema; experience programming in a UNIX environment; experience programming with any of the following languages: Perl, SQL, Ruby, Python, Java, and C/C++; experience maintaining and de-bugging live software systems; experience writing program documentation; in-depth technical knowledge of current hardware, operating systems (especially UNIX systems) and standard development tools (including SVN, GNU make and editors); working knowledge of networking technologies including DHCP, DNS, and SNMP protocols, ability to determine whether a particular problem is caused by hardware, operating systems software, application programs, or network failures; security and encryption on the Internet and basic networking concepts, technical knowledge of the residential network.

Terms of Employment

  1. The period of employment for this position commences upon hire and continues through the 2012-2013 academic year.
  2. The Lead Programmer is paid a wage of $21.25 per hour. The position's classification title is Assistant IV. The Lead Programmer must be a currently enrolled university student with a minimum GPA of 2.3.
  3. The Lead Programmer is required to participate in a training program of approximately 4-7 hours per week during the Spring 2012 semester. This includes mandatory attendance at the Spring Lead Staff trainings on Wednesday, February 22, 2012; Friday, March 9th 2012; Friday April 6, 2012; Friday, April 13, 2012; and the week of May 14 2012.
  4. The Lead Programmer is required to work a minimum of 20 hours per week during regular business hours on at least 3 business days during the summer of 2012.
  5. Active participation in Senior Staff training (the week of August 1st, 2012) and Residential Computing Consultant (RCC) training (the week of August 13th, 2012) is required. The Lead Programmer must be available for all day training on Friday, August 17th, 2012. The only exception will be for students taking a final exam.
  6. The Lead Programmer is required to work 12-19 hours per week during the academic year. A work schedule will be determined in consultation with the SAIT Student Leadership Coordinator.
  7. This position is subject to a criminal background check. If driving, a DMV check for valid driver's license and driving record is required. Position meets the following criteria:
    • Possession of key or card access to computer storage areas and server rooms.
    • Control over campus-wide or departmental business processes, either through functional roles or systems security access, including responsibility for development or maintenance of critical business systems.
    • Possible operation of University vehicles as part of assigned job duties.
    • Specific job duties: Requires access to both on and off site computer equipment storage as well as server room access and root level access to business systems and databases. Driving is preferred to get to various units and locations.
  8. It is a requirement that anyone in this position work in a safe and responsible manner while not putting himself/herself or others at risk. This includes complying with applicable policies and regulations; using personal safety gear; observing warning signs; learning about potential hazards; and reporting unsafe conditions.
  9. The Lead Programmer will sign a Privileged Access Agreement prior to accessing SAIT production systems.
  10. Employment with the Information Technologies unit is subject to the applicant's ability to provide appropriate documentation and sign necessary papers for employment in conformance with state laws and University regulations.
  11. Continued employment is contingent upon satisfactory job performance evaluation by the Web Applications Manager.

Job Duties

(25 %) Lead Duties

  • Schedule and conduct regular meetings with a team of Programmers.
  • Maintain close contact with everyone on the Programmer team with the support of the Senior Programmer(s). The Lead Programmer should be aware of all ongoing projects and provide support, guidance and resources as necessary.
  • Delegate tasks and follow up to make sure they are completed.
  • Hold at least one informal check-in with each Programmer each semester and conduct one formal performance evaluation at the end of the Fall semester.
  • Build a sense of teamwork and cooperation within a group of Programmers and with other Network staff. Work closely with Lead Staff and Senior Staff in SAIT.
  • In coordination with the Student Leadership Coordinator and the Web Applications Manager, assist in hiring and training new Programmers. Update job descriptions, develop selection criteria, and write interview questions. Assist in hiring for other staff positions as needed.
  • Work with the Web Applications Manager and Student Leadership Coordinator to hire and train additional Programmer staff during the academic year as needed.
  • Provide structured training programs for the Programmers during the spring and summer. Additionally, provide ongoing training and staff development for Programmers throughout the year.
  • Attend and actively participate in Residential Computing lead staff meetings. Contribute agenda items when appropriate.
  • Attend regular meetings with Programmer team supervisor. Keep him/her informed of major projects in your area, and give feedback about ongoing issues within the organization and share your concerns as they arise.
  • Attend regular Programmer-Systems Administrator meetings.

(30%) Software Development and Documentation

  • Collaborate with Unit Supervisors and Residential Computing staff to ensure that the current suite of network management and Helpdesk programs is meeting the needs of clients and technical support staff.
  • Draft design documents for all new software applications.
  • Work with the Marketing team to design graphical user interfaces for key Residential Computing services.
  • Develop Perl and Python applications which link information from databases to web-based user display.
  • Document code consistently throughout the development process.
  • Maintain extensive documentation for all projects and systems in the programmer wiki.

(25%) Software Support and Maintenance

  • Respond promptly and professionally to bug reports.
  • Administer and maintain database for over 8,000 student clients.
  • Review and repair legacy code.

(15%) Administrative Duties

  • Update internal calendar (CalAgenda) regularly
  • Ensure that status is updated for all requests.
  • Add appropriate Programmer projects to the SAIT prioritized project list and keep project status updated.
  • Ensure that all Programmer projects are documented (ongoing status reports and summary reports).
  • Review staff timesheets and submit timesheets before deadlines.
  • Maintain wiki programmer home page, ensure it is accurate and up to date.
  • Assist the Senior Programmer in bi-monthly planning for the Duty Officer rotation and staff coverage planning. Determine the escalation procedures with the assistance of the Senior Programmer.
  • Report weekly status to the Programmer team, including the Web Applications Manager.
  • Other duties as assigned.

(5%) Training

  • Train Residential Computing Consultants on the use of online Helpdesk programs.
  • Conduct training for new programming staff and IT staff.
  • This job is not currently open for hiring