
University of Southern California
We are currently seeking a
Machine Learning Engineer
to join the USC Libraries. The Machine Learning Engineer will be responsible for enhancing, implementing, and maintaining machine learning and artificial intelligence applications and services at the USC Libraries. The position will work with USC Libraries employees as well as USC students, staff, and faculty to improve and expand the current machine learning services offered internally and externally at the libraries. The Machine Learning Engineer will play a key role in maintaining and improving the quality and usability of the USC Libraries virtual library assistant and Libraries Conversational Videos service. The position will be instrumental in engaging with and educating colleagues and University members on the fundamentals, benefits, and opportunities on machine learning and artificial intelligence-based services and applications.
The successful candidate should have broad experience building and maintaining machine learning based applications using open-source libraries and proprietary services, tools, and platforms including Hugging Face, OpenAI, AWS, Azure, and Google Cloud. The successful candidate is expected to be able to understand a business need in order to recommend, test, and implement the best tool and service to meet that need.
This is fixed term position that will end three years from the start, with the potential for extension, depending on funding. This is a fulltime role eligible for USC benefits. ( http://benefits.usc.edu/ )
The annual base salary range for this position is $103,506-$120,000. When extending an offer of employment, the University of Southern California considers factors such as (but not limited to) the scope and responsibilities of the position, the candidate’s work experience, education/training, key skills, internal peer equity, federal, state and local laws, contractual stipulations, grant funding, as well as external market and organizational considerations.
The USC Libraries actively support the discovery, creation, and preservation of knowledge. We develop collections and services that support and encourage the academic endeavors of faculty, students, and staff; build a community of critical consumers of information; and help develop engaged world citizens. USC has 23 libraries and information centers and the USC Digital Library.
Qualifications:
- Required:
- Fluency in Python
- 2+ years of experience with Natural Language Processing (NLP)
- 2+ years developing and deploying ML/AI applications into production.
- Experience with chatbots/conversational AI (Avaamo, Dialogflow, Lex, etc.)
- Experience with AI/ML libraries, services and platforms such as OpenAI, AWS, Hugging Face, etc.
- Preferred:
- Experience working with computer vision for images and video.
- Experience working with academic libraries or research libraries.
- Experience managing cloud infrastructure and systems (AWS, Azure, GCP).
- Experience building and deploying web applications and/or APIs.
- Regular contributions to open-source libraries and repositories.
Job Accountabilities:
- Works closely with USC Libraries faculty and staff to design, build and maintain Artificial Intelligence/Machine Learning (AI/ML) based applications and systems.
- Develops systems to automate workflows that leverage AI/ML to extract and populate cataloging and metadata information from various formats such as images, documents, and videos.
- Develops and maintains Natural Language Processing (NLP) applications and systems, including interactive conversational interfaces, virtual assistants, and NLP driven searching.
- Writes, edits and updates production-ready software application code that’s easily testable. Evaluates and applies various algorithms, methodologies and tools to determine available solutions and associated risks and benefits. Analyzes available data and resources to build feasible and scalable software and systems.
- Performs research to identify tools, libraries, and platforms to build and automate workflows.
- Utilizes automation frameworks to design and implement tests of the efficiency, responsiveness, and regulation compliance of web applications. Uses quality metrics to identify gaps, writing and performing unit tests in accordance with testing pyramid, and employing systematic approaches for debugging all issues within designated scope.
- Architects services and systems using design patterns allowing for iterative, autonomous development and future scaling. Anticipates future use cases and makes design decisions that minimize costs for future changes. Utilizes abstractions and code isolation, actively working with relevant security stakeholders to search for vulnerabilities.
- Independently handles risk and change within project teams, following team/project philosophies, operational data, and engineering strategies in uncertain situations.
- Documents all stages of the software development process, ensuring integrity of code by peer review. Builds relationships with colleagues, helping resolve each other’s problems when requested, and seeking mentorship or guiding other staff.
- Drives change efforts, fostering a culture of innovation in alignment with organizational strategy. Ensures expectations are appropriately clarified for continuous integration and incremental delivery. Communicates all research, methodology, and results to leadership and relevant internal/external stakeholders, and research and open-source communities.
- Performs other related duties as assigned or requested. The university reserves the right to add or change duties at any time.
The University of Southern California values diversity and is committed to equal opportunity in employment.
Minimum Education: Bachelor’s degree Addtional Education Requirements Combined experience/education as substitute for minimum education Minimum Experience: 2 years Minimum Skills: Two years’ experience with programming and documentation procedures, methods and operator instructions. Experience conducting unit/performance tests, systems integration and user acceptance. Demonstrated experience with one or more relevant programming languages, able to gain needed contexts for domains. Comprehensive knowledge of architecture, design and development of software solutions. Excellent organization, planning, analytical and problem-solving skills. Ability to provide technical expertise and creative solutions while aligned to organizational objectives and customer needs. Experience weighing economic costs and values objectively, supporting coworkers on a project basis, and contributing to discussions in a civil manner. Excellent written and oral communication skills, able to provide both detailed information as well as summaries to varied audiences. Substantial knowledge of security concepts, familiarity with secure code development techniques, and understanding of scalable and automated solutions. Ability to build strong, positive working relationships and rapport with diverse groups of team members.