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.
This position requires the Software Engineer to maintain and continually deliver on the services that support auto-grading capabilities for CMU courses as well as develop features that allow auto-grading capabilities to be provided to a variety of external learning institutions. Additionally, the candidate should be able to extend the existing grading system to support metering of CPU and memory usage during the grading process, so that external clients can be billed per grading execution.
The Auto-Grading Service (AGS) is a cloud-native workflow-based Grading-as-a-Service system that enables course staff to develop custom software to programmatically evaluate student project solutions. AGS is designed to foster portability and interoperability with a variety of learning management systems (LMSs). AGS enables grading strategies far beyond the basic question and answer type evaluation. Examples of our existing grading solutions include web service testing with load generators at a large scale, machine learning inference evaluation, executable evaluation, unit test and integration test of applications using distributed frameworks (e.g., MapReduce, Spark, Kafka & Samza). AGS modernization efforts include migrating the existing grading system to a set of Spring Boot services, modeling the grading process as workflows to enable arbitrarily complex grading scenarios, and deploying grading jobs within a Kubernetes cluster in order to dynamically provision resources (GPU / TPUs, storage, etc.) for grading. AGS will be incorporated with multiple LMSs such as Canvas.
A qualified candidate will be able to work with Java / Spring Boot microservices. Experience working with Docker, Kubernetes, and Helm will prove to be beneficial to an engineers success of delivering backend features in this position.
Another goal is to enable the social learning aspect of this project. An example is an online programming exercise, which consists of multiple learners coming together in a shared online IDE to solve a problem that benefits from having group communication and coordination. The current implementation of the online programming system uses Selenium, AWS Cloud9, and AWS IAM users/roles. Future iterations of this project intend to support other IDEs - including VS Code - and a backend engineer will be responsible for understanding the requirements and implementing a system to support online IDEs; this includes group scheduling, IDE deployment and configuration with base code, and managing user access to shared IDEs.
At least a Bachelor's degree or higher in computer science or related field.
At least 3+ years of industry experience with at least 1 year spent building, deploying, monitoring and troubleshooting containerized microservices using Docker, Kubernetes and Helm
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.
Familiarity with CI/CD tools (Jenkins, Travis CI).
Experience working in an agile development environment.
Exposure to workflow processing and orchestration engines such as Conductor, Apache Airflow or AWS Step Functions.
Knowledge to identify components that would benefit from refactoring and migration.
Experience designing and supporting education platforms.
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: 2012016
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.