Full Stack Engineer, Computer Science Department-2013537

Carnegie Mellon University

Pittsburgh, PA

ID: 7063428
Posted: February 7, 2020
Application Deadline: Open Until Filled

Job Description

Description:

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
Qualifications:

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
Full-stack development with HTML, CSS, Javascript, Python, and Java
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



 

Apply Now

Please mention to the employer that you saw this ad on UniversityJobs.com