The University of Southern California (USC), founded in 1880, is in the heart of downtown L.A. and is the largest private employer in the City of Los Angeles. As an employee of USC, you will be a part of a world-class research university and a member of the “Trojan Family,” which is comprised of the faculty, students, and staff that make the university what it is.
The Department of Computer Science and Data Science of the USC Viterbi School of Engineering seeks candidates for a Senior Programmer Analyst to join its outstanding team of faculty, staff, and students. The USC Viterbi School of Engineering is committed to increasing the diversity of its staff and welcomes applications from women, underrepresented groups, veterans, and individuals with disabilities.
Under the supervision of the Director and Project Manager, assists in the design, implementation, and maintenance of technical systems and applications for the Department of Computer Science and Data Science in direct collaboration with Viterbi IT.
- Analyzes business requirements for large multifunctional projects supporting student and academic services. Identifies operational practices and integration issues, suggesting alternative solutions. Interacts with users to determine their software application objectives, scope, and requirements.
- Produces the required analysis and application design, either individually or by actively participating in the development process. Produces design specification documents.
- Designs, develops and implements complex computer systems, programs, and applications. Defines system scope and objectives. Interfaces with users to identify and develop system requirements taking into account desired results, hardware limitations, and operating requirements. Prepares detailed specifications from which programs will be written and/or modified.
- Translates design specifications into programming languages. Develops test data and routines required to test and revise application(s). Ensures application(s) is thoroughly tested before release. Writes reports of test results.
- Develops, tests, and installs new software applications, and enhances the functionality of existing applications. Performs work of moderate complexity, handling most activities individually.
- Prepares system and programming documentation for users and other programmers in accordance with internal and external standards. Trains users and programmers as required.
- Detects, defines, and debugs programs whenever problems arise.
- Prepares developer and end-user documentation for other programmers and users in accordance with internal and external standards. Trains users and programmers as required.
- Provides leadership, guidance, and direction to student programmers, as needed. Reviews the work of others, as requested.
- Networks with professional counterparts inside and outside the university, works closely with Viterbi IT on software application projects. Participates in professional associations to stay informed of new developments and technologies. Makes recommendations to senior management regarding technology changes based on developments in field and business needs.
- Serves as lead webmaster for the department’s two websites, liaising with the Viterbi Web Services team as necessary. Attends Viterbi IT meetings and trainings to stay current with school and university technologies.
- Minimum Education: Bachelor's degree, combined work experience, and education as equivalent
- Minimum Experience: 1 year, combined education/experience as a substitute for minimum experience
- Minimum Field of Expertise: Sound knowledge of programming and documentation procedures, programming methods, program flow charts, and operator instructions. Knowledge of one or more appropriate computer languages.
- 5+ years of full-stack web development experience including front-end, back-end
- Experience with Django and the Django security models is highly preferred
- Experience writing and shipping code with a modern web application framework (preferably: AngularJS, Cassandra, React, NoSQL)
- Experience with an RDBMS (PostgreSQL, MySQL, etc.)
- Experience with version control fundamentals (GIT, HG, SVN, etc.)
- Experience with Agile Project Management Tools (Atlassian – JIRA - Confluence)
- Experience with test-driven development (TDD) and Continuous Integration
- Strong understanding of fundamental web service technologies including XML, SOA, and REST is highly preferred
- Strong software integration experience
- Strong understanding of AWS
- Good taste with respect to code quality
- Passionate about performance, reliability, and scalability
Senior Programmer Analyst