Software Engineer
SCI Computing Science
|

This competition is open to all applicants however internal candidates and applicants who were former employees of the University of Alberta in the past 18 months will be given priority consideration before external candidates. Please indicate your internal status using the "Advertisement" drop down menu when applying.
This one year plus a day position with the possibility of extension offers a comprehensive benefits package which can be viewed at: Faculty & Staff Benefits.
The Chatbot research team lead by Dr. Osmar R. Zaïane at the Alberta Machine Intelligence Institute at the University of Alberta is seeking a full-time software developer to join an exciting project in order to build an end-to-end AI open-ended chatbot system for the elderly. The project titled ANA (Automated Nursing Agent) will require implementing state-of-the-art natural language understanding (NLU), natural language generation (NLG), and rule-based systems to cater to specific tasks the chatbot system is targeting. The successful candidate will mainly work in collaboration with graduate students in the research team implementing and incorporating their algorithms within the chatbot. This project is funded by the Alberta Machine Intelligence Institute (AMII). Our lab has a track record of publishing multiple papers at reputed NLP conferences like ACL, NAACL, and EMNLP.
Job Description
We are looking for a talented and motivated software developer, willing to learn and preferably with an understanding of AI and chatbots to help us build an end-to-end AI chatbot system that will be released in production as a web server and an android application. The successful candidate will be responsible for implementing various machine learning and AI models for NLP response generation and general classification, integrating them in a web-server, and deploying them to production. We are using a Django web framework, MySQL database, python for server-side programming, and Pytorch for NLU and NLG models. Several AI models are needed to be integrated at the back-end that caters to different tasks like natural language understanding and generation, open-ended dialogue systems, and task-oriented rule-based systems. There is a need to efficiently and concurrently run these AI models during inference to improve the response time of the chatbot. Users will speak to the chatbot via a speech-to-text module or type questions, comments, and requests to the chatbot via the web interface. The ideal candidate will be passionate about artificial intelligence and system building and stay up-to-date with the latest developments in the field.
Duties:
- Work with the research team to implement different AI models
- Integrate different AI models together in the back-end
- Improve response time of chatbot system by implementing multiprocessing techniques at the back end
- Improve upon the existing web-interface by implementing user-centered design techniques
- Write high quality, production code adhering to the principles of software design and development
- Build a MySQL database on the server for storing the knowledge base and interactive sessions with users
- Write tests and documentation for different components of the chatbot system and fix bugs wherever necessary
- Improve and optimize server-side processing of the application
- Deploy an application to production via Continuous integration and continuous deployment
- Communicate about issues in the application with the research team
Qualifications:
- Minimum Bachelor’s Degree in Computer Science, Computer Engineering; Master’s Degree Preferred
- Must have experience with Python and Javascript. C++ is a bonus
- Must have experience with web-server frameworks like Django
- Must have experience with Linux servers, and MySQL and SparQL Databases
- Must have experience with Pytorch
- Must have knowledge of Machine learning and NLP concepts
- Must have knowledge of containarization (how to dockerize applications)
- Experience with Chatbots particularly with RASA is a plus
- Experience developing graphical user interfaces (GUI) preferred
- Must have experience with auxiliary development tools such as modern IDEs, code repositories, and Unix command line
Salary: Will be commensurate with experience and based on a standard scale from the University of Alberta.
Please submit a cover letter, CV, and 2-5 references to chenyangh+programmer@ualberta.ca
We are looking for someone to start as soon as possible. The review of applications will continue until a suitable candidate is found.
