Internals

Unix Programmer for Network Access Control (NAC)

  • Hourly Rate: 19.25
  • Summer Commitment: Required

Position Overview

The Unix Programmer for Network Access Control (NAC), under the supervision of the Network Technical Lead of Student Affairs - Information Technologies (SAIT), 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 RSSP 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 Unix Programmer for NAC is responsible for developing and implementing 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 Unix Programmer for NAC is expected to conduct system analysis and development, with limited support and direction from career staff, to continually improve the NAC system. The Unix Programmer for NAC oversees the maintenance of the SAIT implementation of NAC and educates all SAIT student and career staff in the use of the NAC system.

The Unix Programmer for NAC 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 Unix Programmer for NAC should possess a strong background in any *nix OS, preferably with FreeBSD server administration. As new technologies emerge and impact our systems, the Unix Programmer for NAC is expected to learn these technologies very quickly and resolve any problems involved in integrating new technologies with our systems.

The Unix Programmer for NAC 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 Unix Programmer for NAC works closely with career technical staff in the SAIT and IST management teams in evaluating current systems and making decisions on future development. The Unix Programmer for NAC has a large role in determining the direction of technical developments in the NAC project and overseeing its implementation in SAIT.

Qualifications

Required: Previous leadership 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 and projects; ability to work productively in teams; experience prioritizing tasks; extensive experience working with Linux; experience with at least one version of Windows and at least one version of Mac OS; 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 Unix Programmer for NAC is paid $19.25 per hour. The position's classification title is Assistant IV. The Unix Programmer for NAC must be a currently enrolled university student with a minimum GPA of 2.0.
  3. The Unix Programmer for NAC must be available for training during the Spring 2012 semester, which will entail approximately 4 hours per week with the possibility of more in consultation with the Network Technical Lead, Lead NAC Programmer, and the Systems Supervisor, and includes required orientation on Wednesday, February 22nd.
  4. The Unix Programmer for NAC is required to work at least half-time during the summer of 2012.
  5. Active participation in Senior Staff training and Residential Computing Consultant (RCC) training (the week before Fall Opening) is required. The Unix Programmer for NAC must be available for all day training on the day before residence hall move-in in August 2012. The only exception will be for students taking a final exam.
  6. The Unix Programmer for NAC is required to work 12-19 hours per week during the academic year, with occasional additional hours during busy seasons. A work schedule will be determined in consultation with the Network Technical Lead.
  7. The Unix Programmer for NAC is required to have and carry a cell phone capable of receiving text pages.
  8. 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.
  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 and continued funding for the NAC project.

Job Duties

(40%) Technical Duties

Service, Maintenance, and Support
  • Respond 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 orthogonal 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.

(30%) Senior Responsibilities

Project Management and Mentorship
  • Schedule and conduct regular meetings with project teams and establish milestones and deadlines.
  • Write project proposals, design documents and extensive documentation in the Wiki.
  • Attend regular IT technical committee and cross-functional work team meetings.
  • Participate in discussion on the NAC Programmer mailing list.
  • Build a sense of teamwork and cooperation among Network Infrastructure staff and with other Information Technologies staff.
  • Work closely with other IT Staff, especially the Unix Systems Administrator and Programmer teams, to accomplish SAIT goals.
  • Assist in training of new Unix Programmers for NAC.

(20%) Administrative Duties

  • Update and check calendaring software regularly.
  • Ensure that status is updated for all Traq, Bugzilla and Request Tracker requests.
  • Independently maintain logs of hours worked and for what purpose.
  • Other duties as assigned.

(10%) Documentation

  • Ensure that all NAC work is 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