Storage Programming Developer Job in Nashville, Tennessee US

Storage Programming Developer

Advanced Computing Center for Research and Education Storage Programming Developer Please note:Job Title in the Vanderbilt Payroll system is a Systems Software Specialist II Computing is emerging as a third paradigm for discovery, complementing theory and experiment. To quote from a National Research Council report: "The exploding technology of computers and networks promises profound changes in the fabric of our world... As seekers of knowledge, researchers will be among those whose lives change the most... Researchers themselves will build this New World largely from the bottom up, by following their curiosity down the various paths of investigation that the new tools have opened. It is unexplored territory..." The Advanced Computing Center for Research and Education (ACCRE) is being built and operated by Vanderbilt faculty. Its mission is to allow Vanderbilt researchers to define, benefit from, and explore the "New World" described above. Towards this aim, the center has established the following goals: Low Barriers: provide computational services with low barriers to participation, working with researchers to develop and adapt HPC tools to their avenues of inquiry, Expand the Paradigm: work with members of the Vanderbilt community to find new and innovative ways to use computing in the humanities, arts, and education, Promote Community: foster an interacting community of researchers and develop a campus culture that promotes and supports the use of HPC tools. The center runs a 4000+ core linux cluster, over 2 PB of local disk storage, over 200 TB of storage distributed around the world, and over a petabyte of tape backup. Key Functions and Expected Performances: The ACCRE Storage Application Developer?s primary responsibility will be working as a member of a small team responsible for program design, coding, testing, debugging, installing, customizing, maintaining, and supporting L-Store. L-Store provides a wide area distributed storage file system using the Logistical Networking framework. L-Store is being developed at Vanderbilt and used by researchers to share and archive large research data sets. The core application is written in both C and Java with an emphasis on replacing most Java components with C to overcome Java performance and instability issues. The developer is expected to work in conjunction with other developers at other institutions collaborating on storage grants with Vanderbilt. He/she is expected to adhere to quality and programming standards, and define, document and adhere to internal software installation standards. In addition, the candidate must be able to lift and load a server into a rack on limited occasions. This position requires programming expertise and experience, strong interpersonal and communication skills and previous development experience. This individual needs the ability to adapt complex software programming applications, written mainly in Java and C (with an emphasis on C development), to the needs of users by understanding their research needs. These applications will provide an interface for campus researchers who want to analyze the results of their experiments on the high performance computing cluster at ACCRE as well as researchers who need to share data with collaborators located across campus or across the globe. The position also requires hands-on troubleshooting of hardware, network, and software issues. The ability to replace hardware components, hardware installation, and racking/unracking of hardware is a must. This individual will work in partnership with researchers at other institutions and with vendors, and make recommendations on project direction, hardware, and software for ACCRE. He or she will also be expected to provide advanced technical consultation to other center staff and to expert users of the cluster. For this service to be useful to research groups, this individual must be able to provide L-Store related support and documentation to application programmers in other research areas. He/she must also provide support for all activities of the ACCRE storage team, including L-Store, tape backup, and storage depot hardware. Support responsibility will be shared with other staff during regular business hours, and on a rotating ?on-call? schedule after-hours including weekends. He/She will be a member of ACCRE?s tape backup team with primary responsibility for daily office hour support and after-hours and on-call support on a rotating schedule. ACCRE uses TiBS backup software from Teradactyl and two Neo 8000 tape libraries with LTO-4 and LTO-5 tape drives. This individual must be dedicated to broadening his/her knowledge and must be able to adapt to an ever-changing environment. He/She must be able to rapidly understand, implement, and deploy new technology. Preferred Education, Skills, and Experiences: Experience designing large-scale distributed systems. NoSQL database experience preferred. Prefer experience troubleshooting and configuring LAN and WAN networks. Extensive experience with C using object oriented techniques and interfacing with the Linux kernel and third party applications. Experience with Java. Experience using and/or developing applications utilizing the Linux FUSE tools are a plus. Experience programming Unix systems with end-to-end knowledge of computing systems from system configuration to user analysis and large-scale data analysis. Experience and strength in programming documentation. High-level independent activity and decision-making ability. Strong ability to communicate and share knowledge coherently with others. Strong knowledge and understanding of common software design patterns. Demonstrated ability to plan and finish long-term projects in collaboration with other scientists and programmers. Commitment to continuous improvement. Ability to rapidly adapt to an ever-changing environment. Ability to rapidly adapt to an ever-changing environment. Prefer minimum of 5 years of experience with C used in an object oriented techniques and 3 years of Java experience. Additional Information: This is a full-time, exempt position. Schedule is typically Monday - Friday 9:00 a.m. - 6:00 p.m. but candidate selected will be on a rotating "on-call" schedule after-hours including weekends. Salary commensurate with education and experience.