Working as a member of the Production Unix Services and Research Computing team and independently, where appropriate, this position is responsible for all aspects of the management of Unix servers and services for production and research computing for OEC customers in academic departments and organized research units in the Jacobs School of Engineering and elsewhere on campus. The duties of this position are to analyze, specify, design, and implement operating system and application software solutions in a medium-sized, heterogeneous computing environment made up of standalone, virtualized, and clustered Unix systems. These systems consist of several Unix/Linux variants, including CentOS, Ubuntu, Debian, Red Hat, Solaris, and FreeBSD.
The qualifications for this position are those typically expected in a seasoned Unix system administrator: Significant experience with multiple Unix/Linux variants including demonstrated expertise in operating system installation, configuration, upgrades, migrations, and maintenance. Specific required skills set includes: authentication and authorization systems (e.g., NIS, Kerberos, and LDAP); local and network-based storage systems (e.g., ext, UFS, ZFS, NFS, Samba); backup systems; knowledge of networking fundamentals from the physical/link layer to the application layer; system integration, including Unix and non-Unix systems; Unix-based application software and services, particularly those used in support of web services, content management systems, and application development frameworks (e.g., Apache, Perl, Python, PHP, Ruby, MySQL, PostgreSQL, Drupal, Zope, ColdFusion, JBoss, Tomcat); hardware-based and virtual operating environments (e.g., VMware, Parallels, VirtualBox); local and network system security; system maintenance, monitoring, troubleshooting, and problem resolution; and Unix desktop system support. Strong skills in multiple scripting languages typically used in Unix system administration are required (e.g., shell, Perl, Python, Tk, etc.). Experience in one or more programming languages (e.g., C, C++, Java) is desirable.
This position requires a demonstrated ability to build complex systems by integrating software and hardware components in interesting ways to meet scalability and robustness requirements, particularly in the face of potentially rapidly changing production and research computing environments. Experience in the interoperability of production and next generation/research systems is essential. Because the duties of this position include interactions with a diverse community including faculty, staff, and students, and ranging among administrative, instructional, and research computing, the incumbent must have excellent problem solving skills, and the ability to describe and document the configuration and operation of software systems in a clear, systematic way for multiple technical and end user communities.
Must be able to work evenings and weekends from time to time as job responsibilities require.
The scheduling of vacation time may be contingent upon meeting the coverage needs in this and other OEC functional units.
In a medium-sized, heterogeneous computing environment, significant demonstrated experience in and in-depth knowledge of all aspects of the administration of multiple Unix server variants, to include, but not limited to specification, planning, installation, upgrading, and maintenance of at least 3 different Unix variants (e.g., Debian, Ubuntu, CentOS, Red Hat, SUSE, FreeBSD, Solaris 8/9/10, OS X, HP-UX, AIX, Tru64, SunOS, etc.). Similar experience with respect to desktop Unix environments is preferred. Experience with the migration of operating system and application support environments from one Unix variant to another. Experience in the use of installation and configuration management tools such as JumpStart, KickStart, and cfengine
Fundamental understanding of all operational components of a standard Unix operating environment, including but not limited to system internals, process scheduling, job control, user/system processes, binary executable file formats (a.out, COFF, ELF), static versus dynamic linking/libraries, 32-bit versus 64-bit operating systems, CPU management, virtual memory (paging and swapping), disk and file system management (inodes, superblocks, hard/soft linking, clustering, physical and logical partitioning, UFS, ext, ZFS, GFS, NFS, PVFS, GPFS, Lustre, Samba, etc.), networking (IPC, IP, TCP, UDP, SSL, SSH, FTP/SFTP, HTTP, DNS/BIND, NTP, SNMP), mail handling systems (MIME, POP, IMAP, SMTP, TLS, and various MTAs/MUAs), distributed systems, client/server frameworks, devices and device drivers, user/account management (authentication and authorization, NIS, LDAP, Kerberos), boot, shutdown, and start up processes (init, rc, run levels), backup/archival mechanisms, syntax and semantics of typical system configuration files, etc.
Demonstrated experience with applications and tools used in the management of Unix-based online and archival storage systems, particularly Linux, Solaris, and FreeBSD. This includes but is not limited to operating system native utilities (cat, cd, chmod, chown, chgrp, cksum, cmp, cp, du, df, fsck, fuser, ln, ls, lsattr, lsof, mkdir, mount, mv, pwd, rm, rmdir, split, touch, umask, cpio, dd, tar, dump, rdump, ufsdump, etc.) as well as open source and commercial servers, services, and applications (Veritas Volume Manager, DiskSuite, Network Appliance, EMC, NetWorker, NetVault, Tivoli, AMANDA, Bacula, etc.). Significant knowledge of storage volume management, file systems, and data replication. Experience in the deployment and administration of RAID, iSCSI, Fibre Channel, NAS, and SAN subsystems. Knowledge of the operation and configuration of the physical devices associated with online and archival storage systems. Experience in the planning and automation of archival data storage.
Demonstrated experience in the installation, configuration, management, and maintenance of open source and commercial application and services software including, but not limited to email and messaging systems (e.g., sendmail, Postfix, qmail, Zimbra, UW and Cyrus IMAP, Dovecot), content management systems (e.g., Drupal, Joomla, Mambo, MediaWiki, TYPO3, Moveable Type, WordPress, Plone, Django), web application/services scripting, frameworks, and servers (HTML, XML, PHP, Python, Drupal, Django, Zope, Ruby on Rails, ColdFusion, JBoss, Tomcat), database systems (e.g., MySQL, PostgreSQL, Sybase, DB2, Oracle), and web servers (principally Apache). Knowledge of the operation of application development and web services environments and their associated languages and frameworks, including compilers, debuggers, and source code control systems (e.g., RCS, CVS, SVN, SCCS). Thorough understanding of load balancing in the support of a web services environment.
Demonstrated experience in the development, modification, maintenance, and debugging of scripts and programs used in the automation of various system management tasks, including installation, configuration, and monitoring. Significant experience in both the interactive and programmatic use of at least two Unix shells (e.g., sh, csh, bash, ksh, tcsh, zsh). Ability to understand, write, debug, and maintain functional and potentially complex scripts in typical administrative languages (e.g., shell, Perl, Python, PHP, Tk). Experience in the use of all commands and utilities commonly used in the course of Unix system administration. Experience in the application of common Unix file/data processing commands, e.g., sed, awk, grep, and related utilities. Significant experience in the use of at least one Unix-based editor (e.g., ed, vi, Emacs, pico). Experience in a common programming langauge (C, C++, Java) is desirable.