Internals

Lead Unix Programmer for Network Access Control (NAC)

  • Hourly Rate: 21.25
  • Summer Commitment: Required

Position Overview

The Lead Unix Programmer for Network Access Control (Lead NAC Programmer), under the guidance of the Network Technical Lead of Student Affairs - Information Technologies (SAIT), oversees a team that works independently to develop the Unix-based Network Access Control (NAC) system used by the Residential and Student Service Programs (RSSP) wireless network and the campus AirBears wireless network. Information Services and Technology (IST), the campus department responsible for AirBears, began using the NAC system (originally developed for RSSP's wireless network) with AirBears in Fall 2009. SAIT and IST have partnered to continue development of the NAC system as an open-source project, share operational experience, and provide mutual support.

The Lead NAC Programmer is required to assume a weekly rotating on-call role or "NAC Duty Officer". The NAC Duty Officer is responsible for monitoring and emergency responses for SAIT NAC systems and provides support to the Network Technical Lead, including emergency coverage. The Lead NAC Programmer should possess a strong background in any *nix OS, preferably with FreeBSD server administration. As new technologies emerge and impact our systems, the Lead NAC Programmer is expected to learn these technologies very quickly and resolve any problems involved in integrating new technologies with our systems.

The Lead NAC Programmer is a key technical resource for other SAIT staff and IST staff, providing advice, training, and technical support for NAC related projects. In addition, the Lead NAC Programmer works closely with career technical staff in the SAIT and IST management teams in evaluating current systems and making decisions on future development. The Lead NAC Programmer has a large role in determining the direction of technical developments in the NAC project and overseeing its implementation in SAIT.

The Lead NAC Programmer is responsible for overseeing and participating in the development and implementation of new features for the NAC system, finding the cause of and fixing bugs in the NAC system, and providing support for administrators of NAC systems in SAIT and IST. The NAC systems in these two departments support almost all wireless networking at Cal, with over 60,000 unique users each year. The Lead NAC Programmer is expected to conduct system analysis and development, with limited support and direction from career staff, to continually improve the NAC system. The Lead NAC Programmer oversees the maintenance of the SAIT implementation of NAC and educates all SAIT student and career staff in the use of the NAC system.

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 prioritizing tasks and delegating responsibility; extensive experience working with Linux or FreeBSD; previous programming or scripting experience; ability and motivation to learn new technologies quickly and with minimal support and guidance; good problem solver; minimum GPA of 2.0.

Preferred: Proficiency with FreeBSD , knowledge of Linux, Windows XP, and Mac OS X operating systems; understanding of the administration of web servers such as Apache with mod_ssl; working knowledge of networking technologies including DHCP, DNS, Firewalls and NAT; experience writing CGI programs; working knowledge of Bourne shell scripting; experience writing programs in Perl; knowledge of UNIX system and program installation, compilation and configuration; programming in a UNIX environment; experience programming with any of the following languages: Perl, Ruby, Python, and C/C++; system-level security procedures; experience maintaining and de-bugging live software and systems; ability to determine whether a particular problem is caused by hardware, operating systems software, application programs, or network failures; familiarity with cryptography tools (e.g. secure shell, OpenSSL , IPSec); standard development tools (including SVN, GNU make and editors); previous experience teaching or training others; preferred GPA of 2.3 or greater.

Terms of Employment

  1. The period of employment for this position commences upon hire and continues through the end of the 2012-2013 academic year.
  2. The Lead NAC Programmer is paid $21.25 per hour. The position's classification title is Assistant IV. The Lead NAC Programmer must be a currently enrolled university student with a minimum GPA of 2.0 (2.3 preferred).
  3. The Lead NAC 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 training on Wednesday, February 22nd, and other training dates to be determined.
  4. The Lead NAC Programmer is required to work a minimum of 30 hours per week during regular business hours on at least 4 business days during the summer of 2012.
  5. Active participation in Residential Computing Consultant (RCC) training is required. The Lead NAC Programmer must be available for training on the day before residence hall move-in on August 17th, 2012.
  6. The Lead NAC Programmer is required to work 12-19 hours per week during the academic year, and may be expected to begin as early as February 2012. A work schedule will be determined in consultation with the Network Technical Lead of Information Technologies.
  7. The Lead NAC Programmer is required to have and carry a cell phone capable of receiving text messages.
  8. This position is subject to a criminal background check. Driving is preferred. 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.
    • 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.
  9. It is a requirement that anyone in this position work in a safe and responsible manner while not putting him/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.
  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 Network Technical Lead of Information Technologies.

Job Duties

(35%) Lead Responsibilities

Communication and Teamwork
  • Schedule and conduct regular meetings with the NAC Programmer team.
  • Attend and actively participate in SAIT meetings.
  • Maintain close contact with everyone on the NAC Programmer team and be aware of all ongoing projects and provide support, guidance, and resources as necessary.
  • Conduct a written performance evaluation with each NAC Programmer once per semester.
  • Write project proposals, design documents, and extensive documentation in the IT Wiki.
  • Attend regular IT technical committee and cross-functional work team meetings.
  • Facilitate discussion on the NAC Programmer mailing list.
Management
  • Delegate tasks and follow up to make sure they are completed.
  • Build a sense of teamwork and cooperation within the NAC Programmer team and other Information Technologies staff.
  • Work closely with other student lead and senior staff, especially the Unix SysAdmin and Programmer teams, to accomplish SAIT goals.
Hiring and Training
  • In coordination with Network Technical Lead, assist in hiring of new NAC Programmers.
  • Provide structured training for all incoming NAC Programmers, including the incoming Lead NAC Programmer.
  • Update job descriptions, develop selection criteria, and write interview questions.
  • Assist in hiring and training for other positions as needed.

(35%) Technical Duties

Service, Maintenance, and Support
  • Ensure that the NAC team responds promptly and professionally to bug reports and support requests.
  • Work independently to support FreeBSD servers providing NAC services on the SAIT wireless network.
  • Maintain DHCP, Apache, Squid, IPFW, and NAC services for all wireless network users.
  • Ensure secure operation of all servers and services through the use of security and encryption tools such as SSH, OpenSSL, IPSec, and through extensive staff training and documentation.
  • Monitor system logs and activity on all NAC servers.
  • Replace defective hardware on servers as necessary.
  • Review and repair legacy code for more scalable and varying approaches to software development.
  • Development:
    • Draft design documents for all new NAC features.
    • Document code consistently throughout the development process.
    • Document all projects in the project wiki (ongoing status reports and a summary reports).
    • Research new technologies and present recommendations and justifications on major hardware and software purchases.
    • Develop and test new servers and services, including writing scripts and patching existing source code.

(20%) Administrative Duties

  • Update and check online calendar regularly.
  • Ensure that status is updated for all Bugzilla and Request Tracker requests.
  • Review staff timesheets and submit timesheets before deadlines.
  • Independently maintain logs of hours worked and for what purpose.
  • Other duties as assigned.

(10%) Documentation

  • Ensure that all NAC Programmer projects are documented, including design documents, ongoing status reports, and summary reports
  • Document and log all changes to system software and configurations.
  • Edit and revise project justifications, project documentation, and other reports and documents, internal and public.

This job is not currently open for hiring