Internals

Senior Programmer

  • Hourly Rate: 19.25
  • Summer Commitment: Preferred

Position Overview

The Senior Programmer, under the guidance of the Lead Programmer and the supervision of the Web Applications Manager of Student Affairs - Information Technologies (SAIT), is a senior-level role that helps coordinate and mentor a growing student programmer team. The Senior Programmer works with large databases and develops web-based tools and applications for administering an in-room Internet connection program that serves over 8,000 residential students and 50 staff members who provide residential technical support. The Senior Programmer also develops programs and support systems for six Academic Services Centers running on six FreeBSD UNIX servers and over 200 client machines. The Senior Programmer is expected to conduct system analysis and development, with support from professional staff, to keep our systems current with changing technologies. Programmers work closely with the Residential Computing Senior Staff and other Information Technologies (IT) staff to maintain current applications and develop new applications to meet student and staff needs.

In coordination with the Lead Programmer, the Senior Programmer trains, mentors, and directs the Programmer team. This includes training with the tools and languages used by the team and with the applications developed by the team after hiring, as well as support and technical assistance and development advice for team members throughout the year. In addition, along with the Lead Programmer, the Senior Programmer has elevated access to certain production systems and controls access to logs and debugging information by the Programmer team.

The Senior 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. initial troubleshooting and emergency responses.

The Senior Programmer is an essential member of the Programmer team, coordinating and providing technical assistance for the Lead programmer and other IT Senior staff. This Programmer must possess advanced technical skills, including a strong knowledge of data structures (such as stacks, arrays, hashes, etc.) and the ability to learn new programming languages quickly. As new technologies emerge and impact our systems, the Senior Programmer is expected to learn these technologies very quickly and resolve any problems involved in integrating new technologies with our systems. The Senior Programmer is a key technical resource for Residential Computing Senior Staff, and works closely with professional technical staff in the IT management team in evaluating current systems and making decisions on future development.

Qualifications

Required: Effective communication skills and the ability to interact professionally with a diverse group of clients and staff; experience and ability to teach or instruct others (including persons who do not have a technical background); ability to work productively in a team; 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.0.

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 the 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; GPA of 2.3 or higher.

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 Programmer is paid a wage of $19.25 per hour. The position's classification title is Assistant IV. The Programmer must be a currently enrolled UC Berkeley student with a minimum GPA of 2.0 (2.3 or higher preferred). Students with less than a 2.3 may be asked to limit their work hours.
  3. Incoming Programmers will participate in a required training program of approximately 2-5 hours per week, starting immediately upon hire, and including orientation on Friday, April 6th, 2012.
  4. Active participation in Senior Staff Training (the week of August 1st, 2012) and RCC training (the week starting August 13th, 2012) is required. The Programmer must be available for all day training on Friday, August 17th, 2012. The only exception will be for students taking a final exam. A work schedule during Welcome Week must include 12 hours of in-office work, including phone staffing for staff and residents.
  5. The Senior Programmer is required to work 10-20 hours per week (and occasionally more). A work schedule will be determined in consultation with the Lead Programmer and the Web Applications Manager.
  6. 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.
  7. 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.
  8. The Senior Programmer will sign a Privileged Access Agreement prior to accessing RSSP production systems.
  9. 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.
  10. Continued employment is contingent upon satisfactory job performance evaluation by the Web Applications Manager and by the Lead Programmer.

Job Duties

(20%) Leadership Duties

  • Work closely with the Lead Programmer to provide planning, scheduling, and guidance for responsible projects.
  • Create and maintain a project plan for responsible projects with regular status reports to the Lead Programmer.
  • Build a sense of teamwork and cooperation within a group of Programmers and with other technical staff. Work closely with Lead Staff and Senior Staff in SAIT.
  • Attend weekly cross-functional team meetings, representing Programming Staff in technical decisions.
  • Assist in the development and training of Programmers throughout the year. Conduct training for new Programmer staff and other IT staff.

(25%) Software Development and Documentation

  • Collaborate with Residential Computing and technical staff to support our applications and ensure they are meeting the needs of clients and technical support staff. These applications include:
    • Resident account registration
    • Administrative tools for managing connections
    • Resident bandwidth interface and appointment scheduling
    • Internal event scheduling
    • Employees management
    • Academic services center management
    • Network security issue tracking
  • Draft design documents for all new software applications.
  • Work with the Marketing team to design web-based user interfaces.
  • Document code consistently throughout the development process.
  • Document all projects in an internal wiki (ongoing status reports and a summary reports).

(35%) 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 for more scalable and orthogonal approaches to software development.

(20%) Administrative Duties

  • Update internal calendar (CalAgenda) regularly.
  • Ensure that status is updated for all requests.
  • Assist the Lead Programmer in bi-monthly planning for the Duty Officer rotation and staff coverage planning. Determine the escalation procedures with the help of the Lead Programmer.
  • Add all Programmer projects to the SAIT prioritized project list and keep project status up to date.
  • Report weekly status to the Programmer team, including the Lead Programmer and the Web Applications Manager.

This job is not currently open for hiring