Full Stack Engineer, Computer Science Department-2012021
The Technology for Effective and Efficient Learning (TEEL) Lab at CMU is seeking a full stack developer to develop and maintain the learning infrastructure (learning management system (LMS), Auto-grading, social interaction) and to design features that enable learning research. New initiatives include further integration with an LMS (gradebooks, quizzing, and technical content) and closer integration with our new workflow-based, interoperable auto-grading system. The Full Stack Engineer will be a member of our team to develop a project-based Online Social Learning platform for workforce training at scale.
The goal of this project in the TEEL lab is to develop a portable and interoperable online learning ecosystem that enables effective and efficient learning that leverages social interactions between students as a substantial learning resource. Furthermore, in addition to large scale software development, the lab conducts studies of student learning and evaluates innovative approaches for incorporating social learning as a driver for developing cognitive skills and motivation through reflection, interaction, and cohort building.
As a full stack engineer in the TEEL Lab, you will be involved with learning projects that range from backend systems that are responsible for grading to learner facing UIs. This involves developing, deploying and monitoring learning microservices in a Kubernetes based infrastructure.
Backend development for learning management systems (LMSs) will involve interacting via REST APIs and LTI integrations to support robust learning systems for a broad audience. Additionally, a strong candidate will design systems that are extensible in their ability to support a variety of LMSs. LMS related features will include managing users and their accesses and roles across learning tools, enabling research by describing and collecting learning activity logs (to be persisted in a data lake, HDFS, MySQL, parquet, etc.) and metrics (Grafana, time series databases, etc.), and identifying features that should be developed external to the LMS.
The other large effort a full stack engineer will be involved in on the backend is the further productization of the auto-grading service (AGS), a workflow-based (Netflix Conductor) system for scheduling docker containers to programmatically evaluate learners. AGS is designed to foster portability and interoperability with a variety of LMSs. AGS enables grading strategies far beyond the basic question and type evaluation. The auto-grading system is a pluggable architecture that is used to support a generalized grading process, meaning course designers may implement arbitrary workflow steps for their custom grading scenario. Your work will revolve around how clients (course designers) interact with the grading system - by providing their pluggable code for grading - and how the client is billed for their resource usage (metering of CPU, memory, GPU, disk). As an engineer, you will ensure adherence to learning tool standards and build tools that interoperate with multiple LMSs.
From the UI perspective, you will collaborate with the UI engineer to help develop UIs for the LTI tools that integrate with an LMS. These range from dashboards to render learning analytics, sites where students will receive grades and submission feedback, and any other UIs in support of staff and learner interactions. Technologies used for frontend development include Django and node.js (React).
Your work will also include developing tools to support repeatable project development processes. Using common cartridge to deploy projects and project-related artifacts from GitHub is an effort that is key to reducing the manual steps in configuring learning material.
Familiarity with learning standards provided by the IMS - LTI, Common Cartridge, Caliper - will be highly beneficial to your success in this position.
At least a Bachelor's degree or higher in computer science or related field.
At least three (3) years of experience with web service development frameworks such as Django.
Demonstrated skills in building service-oriented architectures in a production environment.
Experience with RESTful web services.
Experience with RESTful API specification and the toolset (OpenAPI, Swagger).
Experience with SQL and NoSQL databases, especially MySQL and MongoDB.
At least one (1) years of experience with commercial cloud services including Amazon Web Services (AWS), Google Cloud Platform (GCP) and Microsoft Azure.
Experience building, deploying, monitoring and troubleshooting containerized microservices using Docker, Kubernetes and Helm.
Familiarity with CI/CD tools (Jenkins, Travis CI).
Experience with Test Driven Development.
Demonstrated skills in verifying scalable, reliable, and maintainable solutions
How we work in the TEEL Lab:
Learner-centered decision making.
Fast-paced research-based environment.
Ability to work independently, take ownership of tasks and deliver high-quality work.
Effective collaboration within a team environment.
Effective project and time management skills.
Ability to respond to urgent requests for deployed services.
Ability to communicate with engineers, researchers, students, and CSP partners.
Internal Number: 2012021
About Carnegie Mellon University
Carnegie Mellon (www.cmu.edu) is a private, internationally ranked research university with programs in areas ranging from science, technology and business, to public policy, the humanities and the arts. More than 12,000 students in the university’s seven schools and colleges benefit from a small student-to-faculty ratio and an education characterized by its focus on creating and implementing solutions for real problems, interdisciplinary collaboration and innovation. A global university, Carnegie Mellon’s main campus in the United States is in Pittsburgh, Pa. It has campuses in California’s Silicon Valley and Qatar, and programs in Africa, Asia, Australia, Europe and Mexico.