Full Stack Engineer, Computer Science Department-2013537
The Technology for Effective and Efficient Learning (TEEL) Lab at Carnegie Mellon University developes a portable and interoperable online learning ecosystem that enables effective and efficient learning that demonstrates 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 ways for incorporating social learning as a driver for developing cognitive skills and motivation through reflection, interaction, and cohort building.
The TEEL lab is seeking a full stack developer to join our team in a fast-paced research-based environment. In this role, 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. Senior full stack engineers in the TEEL Lab are encouraged to be heavily involved with the architectural design of the learning systems with an emphasis on portability and interoperability.
Core responsibilities include:
Developing and maintaining the learning infrastructure (LMS, Auto-grading, social interaction) and designing features that enable learning research. New initiatives include further integration with Canvas (gradebooks, quizzing, and technical content) and closer integration with our new workflow-based, interoperable auto-grading system
Developing project-based Online Social Learning platform for workforce training at scale
Owning the effort of developing, incorporating and maintaining the software development, deployment, and monitoring process
Interacting via REST APIs and LTI integrations to support robust learning systems for a broad audience
Designing 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
Productization of the auto-grading service (AGS), a workflow-based (Netflix Conductor) system for scheduling docker containers to programmatically evaluate learners. 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)
Ensuring alignment to learning tool standards and building tools that interoperate with multiple LMSs
Collaborating 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)
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
Bachelor's degree or higher in computer science or related field
At least five (5) years of Systems/Software Engineering and Systems Programming experience required
At least three (3) years of web service development frameworks such as Django experience
Demonstrated skills in building client centered architectures in a production environment
Experience with RESTful web services, 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 solving containerized microservices using Docker, Kubernetes and Helm
Familiarity with CI/CD tools (Jenkins, Travis CI) and experience with Test Driven Development
Are you interested in this opportunity with us? Please apply.
Please visit " Why Carnegie Mellon " to learn more about becoming part of an institution inspiring innovations that change the world.
Carnegie Mellon University is an Equal Opportunity Employer/Disability/Veteran.
Job Function: Engineering
Primary Location: United States-Pennsylvania-Pittsburgh
Time Type: Full Time
Organization: COMPUTER SCIENCE DEPARTMENT
Minimum Education Level: Bachelor's Degree or equivalent
Budgeted Base Pay: Negotiable
Internal Number: 2013537
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.