In this liveProject, you’ll use Python to create a command-line version of the classic guessing game 20 Questions. In your version of the game, the computer will have up to twenty chances to guess what animal the player is thinking of. You’ll use Jupyter notebooks to code your program and define functions that build a knowledge base in real time. Then, you’ll test and debug your code by playing against the computer.
skills learned: data processing • user input • randomness • data filtering • CRUD operations • modularizing code • debugging
ABC Bikes Inc. is considering launching a bike rental service in your area. As the company’s data analyst, your task is to provide decision-driving insights on bike rental trends. You’ll extract the relevant data from a publicly available dataset into a pandas data frame. Then, using Python plotting library Matplotlib, you’ll create line plots to visualize changes for bike rentals on a single day as well as over a specific time period, create a grouped bar plot to visualize a comparison of renting data for two years, create subplots with different chart types, and create a violin plot to visualize renting patterns over four seasons. When you’re done, you’ll know how to use Matplotlib to create accurate and informative 2D visualizations.
skills learned: use import statement to load required libraries and modules into Jupyter Notebook • use pandas functions to read data from CSV files into a data frame object • use pandas functions to subset required rows and columns for plotting • use Matplotlib API/functions to create, customize, and save plots
In this liveProject, you’ll take on the role of a machine learning engineer at a healthcare imaging company, processing and analyzing magnetic resonance (MR) brain images. Your current medical image analysis pipelines are set up to use two types of MR images, but a new set of customer data has only one of those types! Your challenge is to build a convolutional neural network that can perform an image translation to provide you with your missing data. You’ll do this using the deep learning framework PyTorch and a large preprocessed set of MR brain images. The company also wants to make sure your image translation convolutional neural network reliably produces the desired MR image, so you will need to provide qualitative and quantitative results demonstrating your method’s effectiveness.
skills learned: train a neural network for a regression task • build a CNN • handle and visualize medical imaging data
ABC Bikes Inc. is considering expanding its bike rental service to a new county. Your job, as the company’s data analyst, is to determine factors that impact the demand for rental bikes in that area. You’ll extract the relevant data from a publicly available dataset into a pandas data frame. Then, using Matplotlib’s mplot3d toolkit, you’ll plot 3D graphs to simultaneously visualize more than two data features, enabling you to determine useful patterns including how temperature, time of day, and month of year impact bike rentals. When you’re finished, you’ll know how to use Matplotlib to create, customize, and rotate your 3D plots to gather useful and interesting insights.
skills learned: visualize on 3D scatter plot and 3D surface plot • interactive visualization
In this quick liveProject, you’ll develop a low-resource way to add a background to a green screen video using thresholding. You’ll read the frames of a green screen video, perform thresholding to separate the green screen background, apply the new background image, and write the revised frames to a new video.
skills learned: reading and writing videos • using binary thresholding
Logistica Transport needs to ditch its old desktop app and embrace a new web app solution. They’ve turned to you to help them, and in this liveProject, you’ll utilize Entity Framework Core to set up the vital connections between a MySQL database and the future web app. You’ll need to set up data models that define the structure and relationships of your data, as well as learn how to perform CRUD operations to create, update, and delete data in your database. Finally, you’ll connect your data models and CRUD operations to the Entity Framework for a full and working database solution.
skills learned: NuGet packages specific to Entity Framework and MySQL • Setting up data classes in a database • Data tables (inserting, updating, and deleting information) • Setting up a database connection in code • Working with data stored in database tables
Protect your model by implementing adversarial training, the easiest method of safeguarding against adversarial attacks. You’ll load your dataset, learn its structure, and examine a few random samples using OpenCV or Matplotlib. Using Numpy, you’ll prepare your dataset for training, then you’ll use FGSM to generate malicious input for both untargeted and targeted attacks on a trained DL model. For each type of attack, you’ll evaluate your model before and after you apply adversarial training-based mitigation methods, gauging the success of your defense.
skills learned: basics of adversarial training · iterative retraining with Keras • CleverHans attack generator
Machine learning and the growing availability of diverse financial data has created powerful and exciting new approaches to quantitative investment. In this liveProject, you’ll step into the role of a data scientist for a hedge fund to deliver a machine learning model that can inform a profitable trading strategy.
You’ll go hands-on to build an end-to-end strategy workflow that includes sourcing market data, engineering predictive features, and designing and comparing various ML models. Throughout the liveProject you will work with libraries and tools from the industry-standard Python data ecosystem. You’ll tackle challenges such as training a regularized linear regression model, tuning a gradient boosting ML model, and evaluating the performance of your strategy—all essential skills for success in this highly lucrative area of machine learning.
skills learned: engineer financial features • build and test fundamental and advanced ML models to predict asset returns with scikit-learn and LightGBM • develop a trading strategy by defining rules that translate model predictions into trades
Feature extraction is an essential part of detecting deepfake videos. In this liveProject, you’ll analyze both deepfaked and real video data in order to determine what features are common in faked videos. You’ll then compute those features for faces detected in the videos to determine which are fake and which are real.
skills learned: understand the differences between deepfake faces and real faces • compare images and their histograms
You’re a data scientist at Finative, an environmental, social, and governance (ESG) analytics company that analyzes a high volume of data using advanced natural language processing (NLP) techniques in order to provide its clients insights for sustainable investing. Recently, your CEO has decided that Finative should increase its own financial sustainability. Your task is to classify sustainability reports of a publicly traded company in an efficient and sustainable way.
You’ll learn the fundamental mathematics—including backpropagation, matrix multiplication, and attention mechanisms—of Transformers, empowering you to optimize your model’s performance, improve its efficiency, and handle undesirable model predictions. You’ll use Python’s pdfplumber library to extract text from a sustainability report for quick delivery to your CEO. To further increase efficiency, you’ll save training time by using a language model that’s been pre-trained with ESG data to build a pipeline for the model and classify the sustainability report.
skills learned: understand the attention mechanism (Transformers) • build a model pipeline with Hugging Face • extract and prepare data from PDF files
In this liveProject, you’ll turn your data science skills to analyzing an OTC network dataset scraped from bitcoin users in order to establish the most (and least!) trustworthy users. You’ll analyze a provided graph dataset, visualize it, generate features, and then create user clusters. You’ll start out by reading and examining the trust network dataset in Python, then create and interpret user clusters, and finally visualize the nodes and edges of the network dataset. This fast and engaging data science project will stretch your skills and build your knowledge of clustering.
skills learned: pandas for data operations • scikit-learn for clustering • NetworkX to analyze and visualize network datasets
In this liveProject, you’ll use LynxKite and graph data techniques to identify some of the most important geographic points in the city of Bruges. You’ll start by downloading and processing map data, and then use a simple Python program to convert it into a graph. You’ll use graph centrality metrics to quantify the importance of vertices in your graph, and determine some of Bruges’ important locations. You’ll then use the same structure to figure out the main areas of the city without using actual district data.
skills learned: convert map data to a graph representation • visualize graphs • compute and use common centrality metrics
In this liveProject, you’ll construct event sequence graphs to reveal interesting information about soccer games. You’ll work to find longest pass sequences, most important players, and to understand the spatial structure of the game. You’ll define and visualize these graphs, and use connected components to find interesting event subsequences. You’ll quickly be able to uncover insights such as the most important players and the spatial structuring of the playing pitch.
skills learned: defining graphs based on event sequences • defining a pass graph among players • defining a graph on areas of the pitch
GitHub is stuffed full of free and open-source development tools, all with no guarantee that they’re stable, up-to-date, or even still maintained! Companies need a way to ensure that the GitHub projects they’re adopting come with a clean bill of health — and for that, they turn to you!
You’re the CTO of GitHub Health, a unique startup that provides reports and analysis of GitHub software projects. But your findings aren’t based on gossip, they’re based on data. In this liveProject, you’ll build a serverless data system that can extract meaningful data from GitHub, store it in a database, and display the statistics using Google Cloud. Once you’re done, you’ll generate a report for a new client on which of three open-source projects is the best choice for its new DevOps team.
skills learned: serverless data extraction • storage and presentation within Google Cloud
In this quick liveProject, you’ll develop a selfie enhancement application to build awareness of the importance of mask-wearing during a pandemic. You’ll use a laptop webcam to capture a user’s selfie, load a face mask image with a transparent background, and apply the face mask onto the image at the location selected by the user.
skills learned: tracking mouse events • using bitwise operations • saving images
In this liveProject, you’ll build a machine learning system based on the Arbitrage Pricing Theorem (APT) that can create a diversified investment portfolio designed to avoid risks. APT allows you to model the effects of different scenarios on an investment portfolio, and you’ll test this theorem on a portfolio of social media companies. You’ll run analysis to estimate coefficients, and conduct sensitivity analysis to determine important macroeconomic factors. Finally, you’ll interpret your results to find out what issues your portfolio is the most sensitive to.
skills learned: risk management • multi-factor modeling • multivariate linear regression
In this liveProject, you’ll augment text-based training data for a sentiment analysis algorithm with artificially generated positive reviews. You’ll merge the synthetic positive reviews with an unbalanced dataset focused on negative reviews, thereby creating a balanced dataset for your model to train on. You’ll train your model, then evaluate its metrics using sklearn.
skills learned: merging training and synthetic data • building and training a text classification model • scoring text data with the model
In this liveProject, you’ll step into the boots of an investigator trying to find the anonymous author of a seriously defamatory blog post. You’ve narrowed down your list of suspects, acquired a dataset of writing samples, and now plan to find the culprit using a custom machine learning project. Your challenge is to build an authorship analysis model that will match a sample to the defamatory blogpost and reveal the guilty party. To do this, you’ll need to extract data from a corpus of documents, build a model that can learn authorship style, scale the model to handle hundreds of suspects, and finally develop a user-friendly program that will allow non-technical colleagues to make use of your findings.
skills learned: extract features from text using scikit-learn and spaCy • build a predictive classification model • visualize authorship styles with an interactive plot • incorporate your trained model into a user-friendly program
In this liveProject, you’ll utilize automated machine learning tools to help the data preprocessing and feature engineering for creating an image classification model. You’ll start with the basics of data preprocessing, and then see how useful AutoML solutions can make this process quicker and easier. The rewards are big, as properly preprocessed data can dramatically improve the outcomes of a deep learning project.
skills learned: implementing data preprocessing for image data • training deep learning models adopting the data preprocessing
In this liveProject, you’ll implement an AutoML pipeline using the AutoKeras functional API. You’ll make use of the built-in blocks in AutoKeras to conduct automated hyperparameter tuning and model selection for creating an image classification model. Your challenges will include customizing both a sequential AutoML pipeline, and customizing graph-structured AutoML Pipeline.
skills learned: implementing AutoML using the automated data preprocessing API and AutoKeras Task API • customizing sequential and graph-structured AutoML pipelines
In this liveProject, you’ll learn how to use the Task and Functional API of Keras to build an automated deep learning model for image classification. This AutoML approach will allow you to avoid time spent selecting and tuning your deep learning algorithms. You’ll work with the detailed CIFAR dataset of animal images which is easy to access through the TensorFlow Keras API.
skills learned: task and Functional API of AutoKeras • training deep learning models automatically with AutoKeras
In this liveProject, you’ll learn and apply some of the basics of deep learning in order to build the foundations of an AutoML image classifier. You’ll discover the basic deep learning models for image classification, and then experiment with tuning the hyperparameters of a convolutional neural network to improve your results.
skills learned: constructing deep learning models for image classification • search the hyperparameters of deep models with grid search and random search
In this liveProject, you’ll build a Bayesian dynamic linear model that can take account of sudden state space changes and rapidly react to dramatic trend changes. These trend changes could take many forms—from heightened demand during a major sporting event, to a global pandemic that causes cancellations to skyrocket. You’ll use the PyDLM library to generate forecasts that can dynamically adapt to the unforeseen, and quickly shift to making accurate predictions for a new reality.
skills learned: build a simple DLM model • build Bayesian dynamic linear models with the PyDLM library
In this liveProject, you’ll use PyMC3 to generate a posterior distribution of hotel cancellations. This will allow you to build a predictive model that can update its predicted probabilities by incorporating new information. You’ll master methods for modelling mean and standard deviations based on the selected prior values, generating distributions to determine if data follows an AR(1) process, modeling of stochastic volatility and generalized linear modelling with PyMC3.
skills learned: manipulating a dataset with pandas • probabilistic time series analysis with PyMC3 • generating posterior distributions • modeling autoregressive processes
Help Sneakers to the Max’s customers find the perfect sneakers! As a software engineer at the e-commerce company, your task is to improve its search engine—and hopefully sales—by fine-tuning the order of search results. You’ll adjust the index mapping to import data about sneaker release dates, popularity, and in-stock status. Then, you’ll write extensions to the Elasticsearch queries that boost recent and popular results, forcing out-of-stock sneakers lower. Finally, you’ll use everything you learned to return the most relevant sneakers using a judgment list provided by the product managers. When you’re finished, you’ll have the skills to enhance Elasticsearch queries, while Sneakers to the Max’s customers will easily find the perfect pair.
skills learned: analyze the results of different boosting mechanisms and tune them to work together
You’re a PowerShell developer working for XYZ Services Company, a consulting and outsourcing firm that recently experienced a massive failure in its IT infrastructure. While it’s working on getting the environment back up and running, you’ve been given the critical, time-sensitive task of helping avoid payroll delays. The good news is the company’s employee directory has already been extracted. The bad news is it’s been saved as plain text files, a hard-to-work-with format for payroll purposes. Applying PowerShell best practices, you’ll write scripts that parse text data and convert it into objects that are in a payroll-manageable format.
skills learned: read text files • use delimiter characters • basic regex • extract substrings from text • arrays and array indexes • create custom objects • add properties to objects
In this liveProject, you’ll use machine learning to construct a contact tracing network for COVID-19 using location recordings from smart phone data. You’ll read the location of infected individuals, and generate a contact network of individuals who have been within two meters. Once you’ve established this tracing system, you’ll implement a distributed algorithm that can compute the average infection rate for each connected component of the contact network.
skills learned: reading in location recordings from a CSV file • determining geodesic distances between locations • implement a simple algorithm that computes a summary statistic of networked data
In this liveProject, you’ll create a data pipeline that can enrich source data with currency exchange rates and converted totals. As this pipeline is updated daily, you’ll need to create a scheduled query to enrich your data. You’ll learn to load essential data into BigQuery from both CSVS and JSON, and use it to generate a daily business intelligence report for your colleagues.
skills learned: creating tables from CSV and nested JSON data • scheduling your queries and dataset updates • creating materialized views and aggregated activity tables
In this liveProject, you’ll build a ResNet deep learning model from scratch to analyze medical imagery. A ResNet is a deep neural network model which uses "Residual blocks" and "skip connections" to reduce the need for very deep networks while still achieving high accuracy. You’ll then train your model on X-ray and CT datasets, and plot validation loss, and accuracies vs. epochs. You’ll build an important familiarity with the functional blocks of a DL model, how data must be formatted, and which layers to use to solve your problems.
skills learned: build a ResNet deep learning architecture with basic functional components in Keras • train ResNet model hyperparameters on two different types of medical image datasets (X-ray, CT) • tune ResNet model to improve performance
You’re a consultant working for Messflix Inc., a movie and TV-show streaming platform. Your task is to set up a Python prototype implementation of the data mesh to roll out the technical components of a data mesh. Using Python and pandas, you’ll write a Python function that creates an empty CSV file with the predefined attributes of your data product, builds a data catalog by creating Python functions that write to the CSV file, and sets up standardized access to the CSV datasets. When you’re done, you’ll have hands-on experience building a minimal self-serve data platform using simple techniques.
skills learned: build a self-serve data platform • build a small data catalog • consume data inside a data mesh • store data products
In this liveProject, you’ll build a VGG16 deep learning model from scratch to analyze medical imagery. A VGG16 is a deep convolutional network model which has shown to achieve high accuracy in image based pattern recognition tasks. You’ll then train your model on X-ray and CT datasets, and plot validation loss, and accuracies vs. epochs. You’ll build an important familiarity with the functional blocks of a DL model, how data must be formatted, and which layers to use to solve your problems.
skills learned: build a VGG16 deep learning architecture in Keras • use custom image data generators in Keras • train VGG16 model on two different types of medical image datasets (X-ray, CT) • tune VGG16 model hyperparameters to improve performance
In this liveProject you’ll create a React web application and then integrate TensorFlow.js machine learning functionality into the app. React is highly prized by developers for its ease of building simple and intuitive frontends. Once you’ve set up your development environment and built your React-based UI, you’ll train your TensorFlow.js model with synthetic data.
skills learned: creating a React web app and analyzing app structure • creating a basic UI and event listeners in React • constructing a neural network model with TensorFlow.js
Recommender systems are one of the most popular and lucrative uses of machine learning, allowing businesses and organizations to give personalized suggestions to their customers.
In this liveProject, you’ll use common tools of the Python data ecosystem to design, build, and evaluate a movie recommendation model for the movie website. You’ll kick off your project by building simple genre charts, then work with existing movie rating data to implement personalized recommendations for each customer. When you’ve completed this hands-on and interesting project, you’ll have mastered a cornerstone technique of machine learning that’s in demand across companies and industries.
skills learned: load and analyze a dataset • train a machine learning model • evaluate a machine learning model • use a trained ML model on a website • collaborative filtering
In this liveProject, you’ll step into the role of a natural language processing data scientist working for Stack Exchange. Stack Exchange runs a network of question-and-answer sites on diverse topics ranging from programming to cooking. Your boss wants you to create language models that are tuned to the statistical, probabilistic, and technical jargon present in different Stack Exchange sites.
Language is domain-specific—an insurance company’s documents will use very different terminology than a post on a social media site. Because of this, off-the-shelf NLP models trained on generic text can be inaccurate for specialized domains such as healthcare, legal, clinical, and agricultural language. Your goal is to build a language model capable of query completion and larger text generation for Stack Exchange sites. At the end of this project, you will be able to build the foundations of any domain-specific NLP system by creating a robust and efficient language model using statistical and deep learning techniques.
Updated: March 2022
skills learned: data manipulation with NumPy and pandas • text preprocessing with NLTK • train an RNN with PyTorch • score and evaluate language models
In this liveProject, you’ll bring together multiple tools and models to construct a production-grade smart search engine. You’ll combine off-the-shelf Elasticsearch models for keyword search with your own semantic search API using transformers. Start by setting up and indexing an Elasticsearch Docker container, then quickly move on to boosting search relevance with BERT. Finally, you’ll set up a Flask API to serve a BERT model and look into customizing your search engine for your own particular topics of interest.
skills learned: Packaging and deploying with Docker • search and indexing with Elasticsearch • building APIs with Flask
Putting machine learning into production can often be a complex task. The Kubeflow platform helps streamline this process with simple and scalable ML workflow deployment. In this liveProject, you’ll put Kubeflow into action to help your team roll out their new license plate recognition deep learning system.
You’ll help data scientist colleagues by standardizing their working environment, and automating away many tedious and error-prone tasks. Your challenges will include restructuring a complex deep learning project to make it Kubeflow-friendly, and developing reusable components that can be transferred to other machine learning pipelines.
skills learned: create a machine learning pipeline that is composable and scalable • structure a non-trivial ML project to make it Kubeflow-friendly • view training runs in Tensorboard • use Kubeflow Metadata to capture and locate generated data
In this liveProject, you’ll create a Google Data Studio report that can visualise your datasets for the purpose of business intelligence. You’ll connect up numerous data sources using BigQuery to feed directly into your new BI dashboard. You’ll design and implement revenue and daily spend metrics and line graphs, and scorecards for top users.
skills learned: connect a BigQuery table as a GDS data source • create a table chart in GDS • add bar charts and slider controls to a GDS dashboard
In this liveProject, you’ll build a machine learning system based on the Capital Asset Pricing Model (CAPM) that can determine if certain stocks are over or undervalued, and the risk level of these stocks relative to the market index. CAPM is a powerful tool in finance due to its intuitive and easy-to-apply nature, and in this project you’ll use it to estimate coefficients, determine valuation accuracy, and finally find which stock promises the best risk-return relationship.
skills learned: risk management • valuation • univariate linear regression
In this liveProject, you’ll analyze a data set of customers metrics to uncover patterns and behaviors that indicate customer churn. You’ll determine key details like rate of retention, and analyze your data to determine which metrics are associated with customers leaving and customers staying loyal. You’ll analyze how customer behaviors are related to one another, and see if you can expand on your datasets functionality to find new metrics that indicate churn.
skills learned: create a data set from raw data stored in a database • visualize how different customer metrics relate to the outcome of churn • analyze different customer behaviors
In this liveProject, you’ll develop a simple machine learning algorithm that can determine from data metrics which of your customers are likely to churn out of an online business. You’ll develop an XGBoost machine learning model and explain its predictions, then build a logistic regression statistical forecasting and analysis model to also predict churn. By the time you’re done, you’ll have two reliable and automated tools for spotting when customers are likely to leave so that your marketing team can easily intercede.
skills learned: XGBoost machine learning model churn forecasting • logistic regression model churn forecasting • explain machine learning model results
In this liveProject, you’ll write a Python class to manage network connections to your server. You want your class to track the port number and the connections, but instance data is, by definition, not associated with your class. Your challenge is to explore and determine the best ways to associate data with a class and learn how to use a class method.
skills learned: write a Python class to manage network connections • explore ways to access class variables • create class methods
In this liveProject, you’ll use the Julia language to build a classification-based machine learning model that can predict the salary of a customer based on their sociodemographic data. This model will then be used to serve premium advertising to wealthier customers. You’ll build and evaluate XGBoost models with the dedicated Julia XGBoost.jl package, tune the hyperparameters, and assess your model’s capabilities using ROC curve, and measures such as AUC, accuracy, recall, and precision.
skills learned: comparing distributions of predefined train and test data • building XGBoost model in Julia • evaluating classification model’s quality
In this liveProject, you’ll test the functionality of a TensforFlow.js based fitness assistant and assess its capabilities of pose estimation for workout sessions. You’ll move data from a PoseNet model to a TensorFlow.js inference function that can recognize a workout type and add delays to prevent unnecessary logging duplication. You’ll then utilize TensorFlow.js’s prediction functionalities to get prediction results for your recognized workouts, pick top scores, and return the recognized workout type. Finally, you’ll use Material UI and React.JS to display a complete workout history to the user.
skills learned: reusing code for PoseNet generated human pose data collection • running the inference • updating data stored in local storage
In this liveProject, you’ll clean and analyze data scraped from Reddit to determine customer opinions of your products within a set time period. You’ll utilize common natural language processing techniques such as stemming, tokenization, and latent dirichlet allocation (LDA) to discover patterns in people’s opinions, and then visualize your results and summarize your findings.
skills learned: NLP preprocessing techniques such as stemming, n-gram, and removal of stop words using NLTK • visualize word cloud and top n-grams • perform topic modeling using LDA
In this liveProject you’ll use ReactJS to build an entire user interface for a machine learning-powered exercise app. Your app records its users while they exercise, and so needs to have a short delay between them pressing a button and the start of recording. You’ll use Material-UI for React to implement layout, form elements, buttons, and user messages, and set up the UI logic for your delayed training data capture.
skills learned: adding Material-UI to React project • building grid layout structure • building page elements • building form elements
In this liveProject, you’ll build a movie recommendation system based on movies that your users have previously interacted with. This system is designed to boost engagement and keep your users on your site. You’ll develop a competitive array of similarity functions, and create your own recommender system based on these similarities. Finally, you’ll evaluate your system’s effectiveness and tune its parameters.
skills learned: read, process, and exploit user-item data • define and compute similarities between users and items using interactions • compute similarities between users and items in a recommender system
As a PowerShell developer, your critical mission is to help XYZ Services company, the consulting and outsourcing firm you work for, avoid payroll delays after a massive failure in its IT infrastructure. To meet a requirement in the input process to payroll, the HR department needs an update to the state field in the source file to be changed from the employee’s state of residence to the state of the office they report to. Using PowerShell best practices, you’ll write a script that uses the switch statement, PowerShell cmdlets, and advanced regex expressions to read the input file, return a list of the unique states within the file, replace the state value according to the predefined conditions—and keep those paychecks coming.
skills learned: read text files • edit text using replace operations • regex patterns including lookaround • use of the switch statement to modify text • write to text files
In this liveProject, you’ll build a movie recommendation system based on the content and metadata of movies in your system. This system is intended to maximize the satisfaction of your movie-watching users. You’ll start with an analysis to determine the content of your movies, then use that data to implement content-based similarities for both products and users. You’ll build and evaluate your recommender system based on these connections, till it’s the best it can be!
skills learned: define and compute similarities between users and items using content and metadata • define recommender systems based on the definition of when two users or items are close
In this liveProject, you’ll help find a cure for a (fictional) global pandemic by identifying the origin of the virus. Biologists have already narrowed the list of suspects down to three animal species. Longest Common Subsequences (LCS) can help you measure the similarity between two sequences. You'll use them to compare the animal sequences with the virus’ sequence. You'll get a sense of what percentage of the sequences should be common versus what is actually common between the sequences studied, then you'll be able to identify the virus’ origin based on your findings.
skills learned: make simulations to compute “normal” LCS and identify outliers • determine how much is in common between each of the sequences from the outliers • draw conclusions from plots
In this quick liveProject, you’ll build a custom graphic design tool that can generate a matching RGB color palette for a chosen color. You’ll create a blank canvas using NumPy arrays, display images using OpenCV, track a user’s activity with mouse events and flags, and also handle keyboard input.
skills learned: creating NumPy arrays • displaying images using OpenCV • using mouse events and flags to track user's activity on display window • handling keyboard input
In this liveProject, you’ll close the gap between “data analyst” and “software engineer” by building a working data platform. You’ll join up with AnomalousDex Inc., a startup that specializes in personalized end-to-end data products, and create a working prototype of their anomaly detection platform to showcase to prospective customers. This requires connecting up multiple cross-discipline components, from data science to systems management.
This platform consists of three principal components: a service that serves the anomaly detection data model, the modeling platform, and a dashboard visualization tool. Your challenge is to develop all of these features, going hands-on with software architecture, data engineering, microservices, and dockerizing. You’ll also dive into the essentials of monitoring and metrics, and even train an unsupervised learning anomaly detection model!
skills learned: design a data platform architecture consisting of several Dockerized components • train an anomaly detection model with scikit-learn and deploy it in a web service • monitor the web service and anomaly detection model with Prometheus and Grafana
Logistica Transport has grown, which means they need to replace their outdated desktop app with a brand new web app solution. In this liveProject, you’ll help them kick off this transformation by swapping their current Excel-based storage system for a mySQL database. You’ll need to create and install the database from scratch, as well as set up the necessary tables to handle the input and output streams of data. This database is a vital foundation for how Logistica’s web app will function.
skills learned: MySQL language
In this liveProject, you’ll use Keras to create a deep learning model for predicting basketball scores. Once your model is created, you’ll train it up on sample data and then validate your results to ensure it’s still accurate when applied to data from the real world.
skills learned: manipulate data with pandas • build a neural network with Keras • test and validate a neural network
E-commerce company Sneakers to the Max wants to strengthen its bottom line with an improved search engine that provides better and quicker results to customers. As a software engineer, your task is to create a structure for importing data into the search engine. You’ll write a Python script to import sneaker data into Elasticsearch. Next, you’ll create an index for the sneakers and use aliases to keep the data available while importing a fresh catalog. To verify your import and gauge the quality of your data, you’ll create a Kibana dashboard. Using Elasticsearch Bulk, you’ll improve the indexing performance of the sneaker data you need. When you’re finished, you’ll have created a complete structure for your imports that enables frequent, regular updates without downtime.
skills learned: import JSON objects from a file using standard Python language constructs • use Python built-in file IO mechanisms • interact with your Elasticsearch cluster using the Elasticsearch library for Python • verify if the import was run successfully using Kibana
In this liveProject, you’ll process raw data to make it ready for a machine learning model to diagnose diabetes rates. You’ll use feature engineering techniques to generate ML features from raw data. To make sense of your data, you will undertake data profiling, exploratory data analysis, analyze independent/dependent variables, and visualize data patterns. You’ll evaluate the correlation between dependent and independent variables to identify relevant features. You’ll even generate additional features as needed. Additionally, you will apply feature engineering techniques such as treating missing values and outliers to make your features ready for model training.
skills learned: use feature engineering techniques to generate ML features from raw data • data profiling, exploratory data analysis, analyze independent/dependent variables, and visualize data patterns • generate additional features
In this liveProject, you’ll use Python to build a command-line game that produces a cryptogram to decode. You’ll build a simple web scraper to pull data from a quotation website, then generate an encoded puzzle for the player to decipher. You’ll interact with a web server to create your game, using the Python library BeautifulSoup.
skills learned: web scraping • error handling • basic encryption • modularizing code • requests • BeautifulSoup4 • debugging • exceptions
In this liveProject, you’ll clean and process data from Manning’s liveBook platform and prepare it for investigatory analysis to discover causes of customer churn. You’ll load a raw data dump of customer behavior data into PostgreSQL for analysis, categorize and check the event records for bad data, and calculate a basic set of interpretable customer metrics. Some SQL skills and a little Python is all you need to produce a clean and easy-to-interpret data set of customer behavior.
skills learned: loading data into a database • design and calculate customer metrics • perform quality assurance analytics
In this liveProject, you’ll build an AutoKeras block for image classification to help tune a neural network and customize the search space. You’ll then combine the block you have created with other prebuilt AutoKeras blocks to put together a complete automated machine learning pipeline.
skills learned: customizing an AutoKeras block for CIFAR-10 image classification • designing a hyperblock for model selection
Predict the future! You’re an academic researcher working on a project that predicts what policy areas the U.S. government will prioritize. To achieve your goal, you’ll train three kinds of deep learning neural networks on a legislation dataset (a CSV file containing one row for every bill introduced in the U.S. Congress). With the resulting text classifications, you’ll predict the area of focus for future policy bills.
skills learned: sample datasets for unbiased measures of model performance • feature engineering for text data • fit models using Keras • evaluate classification models using appropriate metrics • tune hyperparameters to maximize model performance • explain how a machine learning model generated specific predictions
As a machine learning engineer in an online recruiting tech company or HR department of a large organization, your task is to address a lack of data, a common problem in data science projects. To solve this, you’ll create multiple tools to augment processed data, increasing its volume and learning essentials about probability distributions, random sampling, and OOP. Completing this project will enhance your data analysis and visualization skills, taking you further down the path to a career in data science.
skills learned: data augmentation for ML • deal with missing data with statistical modeling • build data augmentation tools with OOP
In this liveProject, you’ll develop a detailed dashboard for serving complex data to medical scientists working on a cure for cancer. Using the R language and Shiny framework, you’ll develop a dashboard that allows easy querying of different facets of the dataset using a web-based GUI. You’ll work to preprocess your dataset for efficient access, and refine and deploy the dashboard to your company’s web servers. When you’re done, you’ll have built a working prototype of an in-demand piece of data software.
skills learned: setting up a reproducible environment for an exploratory data project • creating an R dashboard package • deploying an R dashboard application
Imagine you’re a data engineer working at an enterprise. In this liveProject, you’ll set up a Databricks platform, creating clusters and notebooks, interacting with the Databricks File System (DBFS), and leveraging important Databricks features. You’ll also gain first-hand experience with Apache Spark—the world’s most widely used distributed processing framework—on tasks like reading the input data in CSV and JSON format, filtering, and writing the data to the data lake’s curated layer on DBFS.
skills learned: create clusters and notebook • interact with the Databricks File System (DBFS) • use Apache Spark to read input data in CSV and JSON format • understand the characteristics and importance of the first two layers of the widely used three-layer data lake design • use Databricks functionalities
Step into the role of a data engineer working at an enterprise. Your task is to build a data lake’s serving layer and ensure that business queries run on it in a matter of seconds. You’ll start with reading cleansed data that’s already sitting in the curated layer. Then you’ll transform it, enrich it, aggregate it, and denormalize it using Apache Spark. When you’re finished, you’ll have multiple output tables that make up the serving layer of the data lake.
skills learned: perform operations and transformations on data using multiple functions offered by Spark’s SQL module • use Spark’s UDFs to enrich data and process it in a user-defined way • compare the performance of different UDF-implementation approaches • understand the importance of the serving layer
In this liveProject, you’ll investigate seasonality in hotel cancellations by building an ARIMA model that can predict cancellations on a weekly basis. You’ll learn how to manipulate a dataset with pandas in order to form a weekly time series, before going on to make your first predictions.
skills learned: dataset manipulation with pandas • time series forecasting with pmdarima
Congratulations! You’ve just been hired as a data engineer for a mobile game development studio. The company’s modern data platform architecture includes an Amazon Athena data lake and an AWS Redshift data warehouse solution. Your task is to enable batch processing of revenue transaction data by creating an end-to-end data pipeline, connecting various data sources—including user engagement events, stage controls, and public chat messaging—to the lake house solution. Using AWS CloudFormation, you’ll provision the resources required for the data pipeline. You’ll connect a MySQL data source to the AWS S3 Data Lake and transform data in the data lake using Amazon Athena. You’ll wrap up the project by creating a dynamic analytics dashboard with AWS QuickSight. When you’re done, you’ll have built a batch-processing data pipeline, start to finish, using Amazon Athena.
skills learned: create a batch ETL pipeline from RDS (MySQL) to AWS S3 • extract and process data using AWS Lambda • run SQL queries programmatically in the cloud • create data environment configurations using YAML files • test AWS Lambda locally • create an optimized ICEBERG table in Athena
In this liveProject, you’ll design a movie recommendation system step by step, from initial development all the way to a production-ready system. You’ll begin with preparing the data, then you’ll analyze the data, and finally, you’ll preprocess and export it. Along the way, you’ll gain a firm understanding of the data and your users, which is key for developing a system that makes appropriate recommendations. While this liveProject doesn’t contain any machine learning, going through these steps will prepare you for feature engineering and hyperparameter tuning later on.
skills learned: parse and engineer features using built-in and external Python libraries • use NLP to prepare the data and design features’ vocabularies for future embeddings
In this liveProject, you’ll test your data wrangling and data processing skills using the Julia language. You’ll step into the role of a data scientist for a real estate company with a new task from your boss—analyze and clean housing and census data for the marketing and sales teams. You’ll employ the popular Julia package DataFrame.jl as well as powerful statistics related libraries to successfully explore these datasets, and prepare them for machine learning.
skills learned: tabular data ingestion and integrity validation • exploratory data analysis using descriptive and graphical techniques • feature selection and feature engineering
As a data engineer in an online recruiting tech company or a large organization’s HR department, you’ll build a series of practical tools to process and extract useful information from unstructured text data using NumPy. You’ll learn important methods (including trie data structure, TF-IDF, SVD), how to implement them, and their applications in the real world. When you’re finished, you’ll have the know-how to build data processing tools that meet the needs of machine learning engineers, data analysts, and product developers.
skills learned: extract features with NumPy • vectorize text with TF-IDF and SVD • compute similar items with embedded vectors
As a data engineer for a mobile game development studio, your task is to create a data streaming pipeline that collects and processes large streams of data records in real-time for lightning-fast analytics. Your company’s modern data platform architecture includes an Amazon Athena data lake and an AWS Redshift data warehouse solution. To store files, you’ll create an AWS S3 bucket, and you’ll create an AWS Kinesis delivery stream by using the boto3 library to connect to AWS Kinesis endpoints and send event data to the service. You’ll provision AWS Redshift resources and connect them to your AWS Kinesis Data Stream to analyze user behavior data to understand the user's journey inside the app. When you’re done, you’ll have a simple yet reliable data streaming pipeline that prevents resource shortages and transforms data in real-time—while it’s still relevant—ensuring more accurate data.
skills learned: create streaming data pipelines on AWS using Kinesis and Redshift • provision the resources for your data pipeline using AWS Kinesis Data Stream • use AWS Lambda to simulate an event stream • create an AWS Redshift Serverless resource using AWS CloudFormation to transform data in AWS Redshift
Visualize this: you’re a data analyst in an online recruiting tech company or a large organization’s HR department. You’ll use Matplotlib to explore, visualize, and analyze processed data to identify missing data and outliers. You’ll build interactive plots for superior data presentation, analyze the correlation of different features using visualization methods, and create analytics dashboards for two types of users. By the end, you’ll be a better data analyst and have the skills to build storytelling tools that let you answer important business questions.
skills learned: data visualization with Matplotlib • build interactive data dashboards • solve business problems with data insights
In this liveProject, you’ll step into the life of a budding data scientist looking for their first job in the industry. There are thousands of potential roles being advertised online, but only a few that are a good match to your skill set. Your challenge is to use data science tools to automate the process of trawling through job listings, to save time as you optimize your resume, identify the most in-demand skills, and find jobs that are a good fit for you. To do this you’ll use Python to perform Natural Language Processing and text analysis on pre-scraped data from jobs posting websites.
skills learned: process data with pandas DataFrames • K-means clustering • information retrieval with tf-dif • text cluster visualization
You’ve shown your expertise in successfully modeling a time series using classical models: moving average (simple MA and exponential MA), autoregressive (AR), and autoregressive integrated moving average (ARIMA). Your next step is to determine if there’s a way to boost the performance of the time series analysis. You decide you’ll apply an unconventional approach that’s increasingly popular in finance circles: a hybrid model that combines deep learning and classical approaches. For the deep learning models, you choose recurrent neural network (RNN) and long short-term memory (LSTM). In this liveProject, you’ll focus on preparing the data for the deep learning models. The good news is that in deep learning models, you avoid a long and cumbersome preprocessing stage since, unlike in many classical approaches, they are able to detect patterns almost automatically.
skills learned: prepare data for deep learning models • run RNN and LSTM deep learning models • visualize results • evaluate model performance
Have you ever spent too long scrolling through your photos to find that one picture you know you took? In this liveProject, you’ll solve that problem—with the power of deep learning!
Your challenge is to create a working image retrieval system that can search images based on text queries: type in ‘dog’ and you’ll get pictures of dogs. You’ll combine cutting-edge natural language processing and computer vision techniques, exploit semantic word representation methods, and train a neural network on social media data using image captions as annotations. This liveProject will develop your skills with PyTorch, and be an impressive piece for your data science portfolio.
skills learned: train a Word2vec word representation method • train a CNN with PyTorch • compute similarities between words and images
In this liveProject, you’ve taken on the challenge of digitizing the collection of the World Painting Museum, and the head curator wants you to use your machine learning skills to create an index of the art. Your challenges will include classifying your training data, considering pretrained models to help aid categorization, implementing a customized CNN that can identify genre, and applying image semantic segmentation in order to facilitate the classification by identifying the elements present on the art painting.
skills learned: image transformation • build an image classifier-based convolutional neural networks • apply transfer learning for image classification and segmentation • perform image semantic segmentation to increase accuracy of art paintings identification
In this liveProject, you’ll investigate reinforcement learning approaches that will allow autonomous robotic carts to navigate a warehouse floor without any bumps and crashes. Your challenges will include teaching warehouse navigation with tabular Q-learning, leveraging neural networks and Deep Q-Network models to avoid collisions, and putting together a simulation environment to handle custom reinforcement learning problems.
Please note: This project recommends using Colab Pro, which is an additional cost outside this project.
skills learned: implementing Q-learning • improving algorithm performance with deep reinforcement learning • creating a reinforcement learning environment in OpenAI Gym
Make your model less vulnerable to exploitation with defensive distillation, an adversarial training strategy that uses a teacher (larger, more efficient) model to learn the critical features of a student (smaller, less efficient) model, then use the teacher model to improve the accuracy of the student model. In this liveProject, you’ll use a pre-trained model to train your student model without distillation, generate malicious input using FGSM, and evaluate the undefended model. Then, you’ll train a teacher model with a pre-trained dataset, train your student model with the same training set and teacher model using distillation, generate malicious input, and evaluate the defended student model, comparing the results with and without distillation.
skills learned: basics of defensive distillation • basics of logit models • CleverHans attack generator
In this liveProject, you’ll use the Python data ecosystem to explore how demographic data affects American life expectancy. You’ll use pandas and NumPy to clean and merge a newly collected data set Matplotlib, and seaborn to create a variety of plots that showcase the distribution of the data and expose the relationships between the variables.
skills learned: reading, cleaning, and merging data with pandas • exploring data for trends and distributions • doing data visualizations with Matplotlib and Seaborn
In this liveProject, you’ll deploy a completed deep learning model so that it can be easily used by your clients. You’ll use the Flask Python library to build a web page that will host your model, and use HTML, CSS, and JavaScript to build a simple web interface. Finally, you’ll take your model out into the world by using ngrok to make locally-served web pages available anywhere.
skills learned: create a web server with Flask • build a simple interface with HTML and CSS • make locally served web pages available to users on other systems
In this liveProject, you’ll architect a solution to serve predictions from time series forecasting models over a REST API. Once you’ve architected your solution from a high-level perspective, you’ll monitor and assess the performance of the model and potentially undertake retraining to improve accuracy.
skills learned: serve our predictions with a REST API using FastAPI • validate the API query parameters by using Python’s type annotations and pydantic • track our model’s performance with MLflow
In this liveProject, you’ll set up and tune a TensorFlow.js PoseNet model in a React web app. PoseNet allows real-time human pose estimation in your browser, all through the magic of TensorFlow.js. You’ll enable a WebGL backend, set up a system where PoseNet can utilize a webcam stream for its data input, and establish a canvas that can draw on top of an estimated pose.
skills learned: setting up TensorFlow.js PoseNet model in React Web app • enabling a WebGL backend • setting up Webcam live stream processing
In this liveProject, you’ll deploy a machine learning model to production so it can be easily used by colleagues. You’ll create a virtual environment for deploying your application, use Flask to build a local web service that returns predictions, and Heroku for remote deployment.
skills learned: create a virtual environment • GET and POST requests • create a web framework for a prediction app • remotely deploy an app on Heroku
In this liveProject, you’ll create an Android application that can run a pretrained basketball predictor deep learning model for the easy use of your client. Your challenges will include converting the DataFrames into JavaScript arrays, converting your model into a TensorFlow Lite model, and finally packaging the model inside a working Android application.
skills learned: Converting a model to Android use • generating JavaScript usable data sets • simple Android development
In this liveProject, you’ll deploy a pretrained basketball predictor deep learning model onto the web for easy use by clients. You’ll utilize the powerful TensorFlow.js framework to ensure the model works in the browser, as well as converting DataFrames into JavaScript arrays, and building a simple website around the model and data sets.
skills learned: converting a model to web use • generating JavaScript usable data sets • simple web development
In this liveProject, you’ll build an interactive dashboard that will allow the marketing team at your company to monitor any mention of your company’s products on Reddit. You’ll start by visualizing relevant subreddit data, then build a model to monitor your mentions on Reddit. Finally, you’ll deploy the Streamlit dashboard on Heroku. Streamlit offers a simple and easy way to build a highly interactive and beautiful dashboard with just a few lines of codes, whilst Heroku offers free web hosting for data apps.
skills learned: dashboard design • data visualization • integrating API call with a dashboard
In this liveProject, you’ll take on the role of an engineer at AISoft, where you'll be part of two dynamic teams: MLOps and Core-ML. On the MLOps team, you'll utilize software engineering techniques to ensure your models are not only accurate but also scalable, reliable, and maintainable. You’ve been assigned two important support tasks for the Core-ML team.First, you'll utilize the Gradio Python library to create an interactive web user interface that runs MRI classification and segmentation transformer models in the background, and then you'll build a pipeline that provides interpretability to the decisions of a construction vehicle classification model.
skills learned: build a web interface for MRI classification and segmentation using Gradio • run a vision transformer model for MRI classification and a Segformer or Maskformer model for MRI segmentation via the interface • implement Grad-Cam and LIME to explain transformer predictions
In this liveProject, you’ll take on the role of a data engineer working for an app development company. Your boss has a great idea for a new app that can automatically identify what food is shown in an image—perfect for when you want to post your lunch on social media! They have asked you to build it for them.
Your challenge is to train an image classification system using TensorFlow and then deploy that system to production so that it can run in the web browser and as a mobile application. To do this, you’ll make use of the Python and TensorFlow ecosystems to create your model, then package it for deployment using Docker and Expo.
skills learned: train a deep learning model • deploy a deep learning model using TensorFlow.js • create web applications • deploy your application using Docker
In this liveProject, you’ll upgrade facial recognition security to more complex iris recognition. You will read an image, draw bounding boxes around the detected eyes and detect the circular eye area region, then save the output image.
skills learned: reading and writing images • using Haar Cascade Classifier for eye detection • using Hough Circle Transform for circle detection
Face detection has numerous applications across software and is an essential part of the pipeline for detecting deepfake videos. In this liveProject, you’ll implement a component that detects faces in videos, and normalizes them to the same size and visual appearance. This component is a vital foundation for a deepfake detection system.
skills learned: detect and crop faces • normalize and scale faces • align faces according to the eyes locations
Finative, the environmental, social, and governance (ESG) analytics company you work for, analyzes a high volume of data using advanced natural language processing (NLP) techniques to provide its clients with valuable insights about their sustainability. Your CEO has concerns that some of the companies Finative analyzes may be greenwashing: spreading disinformation about their sustainability in order to appear more environmentally conscious than they actually are.
As a data scientist for Finative, your task is to validate your sustainability reports by creating and analyzing them. You’ll compute conditional probability with Bayes’ Theorem, by hand, to better understand your model’s performance through metrics such as recall and precision. You’ll learn an efficient way to prepare your data from different sources and merge it into one dataset, which you’ll use to prepare tweets. To successfully classify the tweets, you’ll use a pre-trained large language model and fine-tune it using the Hugging Face ecosystem as well as hyperopt and Ray Tune. You’ll use TensorBoard and Weights & Biases to analyze and track your experiments, and you’ll analyze the tweets to determine whether enough negative sentiment exists to indicate that the company you analyzed has been greenwashing its data.
skills learned: conditional probability • fine-tuning a large language model • hyperparameter optimization • monitor training experiments
Welcome to the era of digital security! In this quick liveProject, you’ll develop an efficient solution for detecting faces in a live video stream. You’ll need to read an input video from a webcam, detect faces present in the input video stream, draw bounding boxes around the detected faces, and then write the detected faces to a new video.
skills learned: reading and writing videos • using a Haar Cascade Classifier for face detection
In this liveProject, you’ll build your own Python data library that can detect unusual data. This data can affect regression analysis, and so your library will help spot it before it can negatively affect results. You’ll program functions to detect high-leverage points, outliers, and influential observations. Through the analysis of multiple examples, you'll gain a deep understanding of the kind of problems that can arise with real data.
skills learned: detecting unusual observations • visualizing and analyzing data with Matplotlib, seaborn, and statsmodels
In this liveProject, you’ll develop a machine learning solution that can identify the difference between faces in deepfake videos and real faces. You’ll use a support-vector machine (SVM) classifier approach to determine which videos have the artifacts associated with deepfakes, and combine face detection, feature extraction, and your SVM classifier together in one pipeline to create your detection system.
skills learned: Training an SVM classifier resulting in deepfake detection system • Evaluating a system on the test set
As the researcher for venture capital firm Action at a Distance Corporation your job is to evaluate proposals from quantum startups hoping to secure an investment. But first, you need to expand your knowledge of quantum computing.
You’ll build your quantum muscles by investigating and coding key quantum algorithms including the quantum teleportation algorithm, the quantum phase estimation algorithm, the quantum Fourier transform algorithm, and Grover’s algorithm. With your new knowledge, you’ll compose a brief report about whether or not now is the right time to invest in quantum startups.
skills learned: Shor’s algorithm concepts/techniques • quantum superdense coding teleportation • quantum Fourier transforms • quantum phase estimation • quantum oracles
Failure is not an option for Sigma Corp. As a lead data scientist for the large conglomerate of energy production companies, it’s up to you to help ensure interruption-free operations by developing a means for detecting anomalies that signal potential problems. Using metrics, including the receiver operating characteristic (ROC) curve and the area under curve (AUC) score, you’ll evaluate anomaly detection algorithms. You’ll build a z-score anomaly detection algorithm, which focuses on a single feature and provides a simple benchmark, and you’ll apply it to a dataset to establish a reference for comparison. When you’re finished, you’ll have a firm grasp of z-score anomaly detection, classification error categories, and evaluating anomaly detection algorithms.
skills learned: z-score method • evaluate algorithms using ROC AUC metrics • basic synthetic anomalies
In this liveProject, you’ll utilize Python dictionaries to efficiently combine a file of product info and a file of sales entries. You’ll take on the role of a data engineer in a company that has been modernizing its sales systems, and tackle a common data merging task to help generate useful reports. Solve the challenges of this project, and you’ll understand the real power and flexibility of dictionaries and how they are used literally everywhere in Python.
skills learned: basic dictionary manipulation for adding and accessing data, in, get() • ways to handle missing keys
In this liveProject, you’ll use difference-in-differences as an alternative to A/B testing to assess the discounting strategy of an e-commerce company. This approach compares growth between a group that has been experimented on, and data from a control group. You’ll use Python and causal inference to examine the growth trajectory in profits from customers in a high discounts group against customers that didn’t get a discount.
skills learned: when and how to use difference-in-differences • estimate the impact of discount on profits using diff-in-diff
In this liveProject, you’ll build a movie recommendation system that reduces the dimensionality of the spaces involved to enhance its performance so that latent representations are identified, which aim to capture users and items interactions with the system on the same latent vector space. You’ll work to compute clusters on the movies and clients of your site, and utilize latent representations of users and items with a reduced dimensionality to compute similarities. Once you’ve established this data, you’ll build and test your recommendation engine.
skills learned: compute clusters of users and items based on similarities • compute similarities on top of learned latent representations based on user and item interactions • define recommender systems based on similarity clusters
In this liveProject, you’ll use the Julia programming language and dimensionality reduction techniques to visualize housing sales data on a scatter plot. This visualization will allow the marketing team to identify links and demand patterns in sales, and is also a useful tool for noise reduction or variance analysis. You’ll use the popular PCA algorithm to visualize the sales dataset with overlaid clustering assignments from k-means and DBSCAN methods, and then expand Julia’s capabilities by calling Python modules using the PyCall.jl package. This extra flexibility will allow you to explore the t-SNE and UMAP algorithms which have excellent results for high-dimensional datasets.
skills learned: PCA, t-SNE, and UMAP dimensionality reduction techniques • validating and analyzing output of PCA algorithm • calling Python modules from Julia
In this liveProject, you’ll take on the role of a data scientist at the World Health Organization (WHO). The WHO is responsible for responding to international epidemics, a critical component of which involves monitoring global news headlines for signs of disease outbreaks. However, this daily deluge of news data is too huge to manually analyze. Your challenge is to pull geographic information from headlines, and determine where in the world outbreaks are occurring. Problems you will have to solve include extracting information from text using regular expressions, using the Basemap Matplotlib extension to visualize map locations for patterns indicating an epidemic, and reporting your findings to your superiors so resources can be dispatched.
skills learned: text extraction with pandas • clustering with K-means and DBSCAN • visualize clusters
In this liveProject, you’ll utilize machine learning for treatment effect estimation in order to help an e-commerce company deliver targeted discounting to the most profitable customers. You’ll build a model that predicts the effect of a discount on a customer following a causal model, maximizing profits for the business.
skills learned: pandas to manipulate tabular data • linear regression for causal inference • use machine learning to make causal models for personalization
Sigma Corp, a large conglomerate of energy production companies, has recently implemented anomaly detection algorithms and is generally pleased with their performance. However, analysts report that not all anomalies are being identified and the algorithms are too slow at times. As a lead data scientist at Sigma, it’s up to you to address these concerns. To increase the robustness of the algorithms, you’ll implement and optimize the probability-based Empirical Cumulative distribution-based Outlier Detection (ECOD) method, an alternative to statistical methods. You’ll benchmark the ECOD method in order to compare its performance with the statistical MD and PCA methods Sigma is currently using. When you’re finished, you’ll have firsthand experience implementing the highly efficient ECOD method to detect anomalies in multidimensional data.
skills learned: ECOD method
Step into the shoes of an academic researcher tasked with predicting which areas will be the focus of the U.S. government’s policy-related efforts. In this liveProject, you’ll prepare for predictive modeling by exploring the policy areas and text descriptions in legislation data, using statistical visualizations and ggplot2, and identifying notable trends and outliers.
skills learned: import and clean data • generate basic data visualizations for time series datasets • tokenize and clean text data • calculate summary statistics for text data
The development teams at Messflix, a movie and TV-show streaming platform are pushing domain data products through their newly implemented data mesh. Now the CTO has tasked you, their consultant, with striking a balance between the benefits of the data mesh, the freedoms the data products have, their usefulness, their interoperability, and aspects of their security. You’ll use Python and pandas to write policies that check the registration and pushed data, helping users provide all the required registration information. You’ll create tooling to classify data into categories for improved data labeling, and protect sensitive data with pseudonymization functions. When you’re done, you’ll have learned skills for federated computational governance that balance the benefits of data products with the benefits of the data mesh.
skills learned: understand computational governance • implement data policies for data products as well as individual data pieces
In this liveProject, you’ll use Python to build a simple text-based escape room game to help enhance the experience of a real-world escape game. This project involves following all the steps in a software development process, from reviewing your client’s given requirements, to designing, building, and testing your code. You’ll gain experience operating within a set of requirements and refactoring your code to optimize class definitions, tighten up functions, and make sure it’s Pythonic!
skills learned: software design • assertions • exceptions • error handling • refactoring • modularizing code • software quality • fulfilling software requirements
In this liveProject, you’ll utilize causal inference techniques to help an e-commerce company estimate the impact of discounts on profits. You’ll learn how bias gets in our way of inferring the effect of discounts, and how to adjust for it for more accurate results. Leverage adjustment techniques, like linear regression, to adjust for bias and see how linear regression can improve the quality of your data. Your final task is to present a recommendation on whether the company should distribute its discounts or not.
skills learned: how bias gets in the way of causal inference • adjust for bias using a linear regression
Judging the effectiveness of a machine learning model requires in-depth analysis. This quick liveProject builds on the work you have completed in Machine Learning for Classification. You’ll assess your early models and consider better alternatives. You’ll plot the ROC curves of the model and compare it to multiple dummy models, and tune your hyperparameters to deliver the most accurate results possible.
skills learned: evaluate predictions and accuracy • visualize patterns with classes • conduct hyperparameter tuning • prepare a model for production deployment
In this liveProject, you’ll implement model performance metrics that can test the effectiveness of your models. You’ll calculate accuracy, precision, F1 score and recall values from the classification results for an existing model, and then estimate the ROC curve and AUC value. Finally, you’ll create a Gradient Class Activation Map. This map can highlight features and regions in an image that the deep learning model finds important, and manually inspect whether the model is performing in the desired way.
skills learned: make predictions using deep learning models using Keras • implement Grad-CAM visualization • implement deep learning model performance metrics • create a radar plot to display the performance of multiple models
In this liveProject, you’ll explore the unique way that exceptions work in Python. Python makes frequent use of exceptions, but they often function in a very different way than other programming languages. You’ll experiment with the basic try-and-except structure used for handling exceptions, then dive into using inheritance with exceptions, and creating your own hierarchy of exceptions.
skills learned: how Python exceptions are created, raised, and handled • what is in an exception object • how inheritance works for exceptions
In this liveProject, you’ll explore a dataset of movie reviews and prepare it for sentiment analysis. The dataset you've provided is balanced between positive and negative reviews, but is encoded in such a way that you will need to use the dictionary (lookup) in this dataset package to decode the content to plain text. Your challenges will include decoding the data to plain text, and then converting the plain text into tokens in a Pythonic manner.
skills learned: use a dictionary to decode and encode data • learn NumPy array indexing techniques • understand Python dictionary data structure, and how to edit and manipulate it
Imagine you’re an academic researcher working on a project for predicting trends in the U.S. government’s policy-making priorities. Using modern techniques for text data feature engineering, you’ll fit a set of models, subsample the training data to minimize bias, evaluate the models’ performance using a test-set of observations, and leverage a tidy workflow to explain how a model generates specific predictions.
skills learned: resample datasets • generate feature hashes for categorical variables • implement pre-trained word embeddings in a machine learning workflow • subsample an unbalanced dataset • evaluate classification models • explain how a machine learning model generates specific predictions
In this liveProject, you’ll build an extraction pipeline to transfer data from a legacy server-side database in AWS MySQL into your new cloud platform. You’ll learn how to create an integration data layer, and develop a maintainable and flexible data intrastate that is both easy to work with and easy to scale.
skills learned: setting up a AWS Account • create a MySQL database instance • create an AWS Lambda function
In this liveProject, you’ll use the RoBERTa variation of the BERT Transformer to detect occurrences of fake news in a data set. Political news can be tricky to validate for accuracy, as sources report the same events from different biased angles. RoBERTa uses different pre-training methods than traditional BERT and has hyperparameters that are highly optimized, meaning it tends to perform better than its predecessor. You’ll start out by loading the model using the Hugging Face library and training it to your data with PyTorch Lightning. The project will also include the implementation of training a custom tokenizer from scratch and using it to tokenize the data. A successful model will maximize positives, and so model evaluation will be based on your model having a high recall score.
skills learned: loading and configuring pretrained RoBERTa model using Hugging Face • building and training a text classifier using PyTorch Lightning • validating the performance of the model and quantifying the results
In this liveProject, you’ll create a recommendation engine for an online store using the Fast.ai library. You’ll utilize a dot product and a neural network to come up with the latent factors in a rating matrix, and compare and contrast them to determine which is likely to deliver the best recommendations. You’ll need to select and clean your data, pick the right methods, then create the functions that you need to recommend products based on predicted ratings.
skills learned: selecting, cleaning and choosing data for collaborative filtering • matrix collaborative filtering techniques using Fast.ai collab_learner class • learning latent factors for collaborative filtering recommenders
Since recommender systems train and learn over the data they recommended themselves, they will never train over, learn, or recommend items that they didn’t already recommend for some reason, such as insufficient ranking to be seen by the user. It’s important to break this Feedback Loop in order to ensure that suitable recommendations aren’t missed. But you must strike a balance between deviating (just enough) from the system’s predictions through exploration and not defeating the system’s purpose altogether. In this liveProject, you’ll learn three methods of exploration that help you provide better recommendations to your users, as well as the costs and benefits of each.
skills learned: rerank a list of items after a model already predicted their rankings • add noise to the model to affect predictions as they’re made • combine lists with different rankings to increase traffic to lower ranking items • use a Feature Store as part of a prediction pipeline
You’ve set your sights on a collection of prime off-the-market New York City properties whose value is likely to double in the next couple of years. With your excellent sales skills, you’re confident you can get the owners to sell at a fair price, if you can determine who the owners are. You have a knowledge graph—built from tax records, property deeds, and permits—that identifies entities associated with the properties. These entities might not be the true owners, but identifying them could help you determine who the true owners are.
Your task is to transform the knowledge graph into a representation that can be processed by a machine learning model later. Using simple graph and NLP techniques, including node2vec—one of the most influential algorithms in the graph community—you’ll improve the quality of the data by removing the noise from the knowledge graph. You’ll convert the nodes in your graph into embeddings, analyze how well your embeddings represent the underlying knowledge graph, and develop insights on tuning the node2vec hyperparameters. When you’re done, you’ll have learned techniques for analyzing and visualizing embeddings and associating them to the original graph, helping you determine who the “hidden” owners are.
skills learned: intermediate Neo4j (Graph Data Science library) • intermediate graph theory (weakly connected components) • build a node2vec model with Neo4j
XYZ Services Company, a consulting and outsourcing firm, recently experienced a massive failure in its IT infrastructure. While it’s working on getting the environment up and running again, the marketing director wants to email partners a report that includes contact information for all the marketing staff. As a PowerShell developer, your task is to write a PowerShell script that extracts properties from the plain-text employee directory file, uses those properties to build a custom PowerShell object, and exports the object to a CSV file which you’ll use to generate an HTML report that’s formatted for the marketing director’s purpose. As a favor to the HR department, you’ll also write a PowerShell script that corrects values in a specific field within the source file and writes the edited content to a new file.
skills learned: read text and import objects from a CSV file • write to a text file • basic regex • extract substrings from text • index arrays using expressions • create custom objects • export output to CSV and HTML formats • change PowerShell's default HTML output format
In this liveProject, you’ll use deep learning to implement powerful time series forecasting models that can beat the performances of previous models. You’ll work with the Python package “PyTorch Forecasting” and the deep learning models LSTM and N-BEATS. You’ll also get experience with key techniques of cross learning, ensembling, and hyperparameter tuning.
skills learned: perform forecasting with LSTM and N-BEATS models using PyTorch Forecasting and PyTorch Lightning • optimize models with Bayesian optimization using Optuna • implement callbacks for customized model training
Turn an existing data lake into a Lakehouse, using Delta Lake, an open table format (and the cornerstone of Databricks’ Lakehouse design). For data processing and interacting with the Lakehouse, you’ll use Apache Spark. As you transform the existing tables into Delta tables, you’ll explore Delta Lake’s rich features, see firsthand how it handles potential problems, and appreciate the sophistication of the Lakehouse design.
skills learned: leverage Delta Lake capabilities including schema enforcement and time travel • use Delta Lake commands • interact with multiple layers of the three-layer architecture • use Apache Spark for data processing and interacting with the Lakehouse
In this liveProject, you’ll create Python functions for specific data cleaning operations to help import product data from a legacy system into a new pipeline. You’ll work with a delimited text file with unhandy export conventions, and utilize functions to clean and convert fields for cleaner and seamless data transfer. You’ll even break your new operations down into separate functions so that you can easily reuse your code at a later date.
skills learned: functions as dictionary values • mutable objects as default function parameters • how to use and create decorators
In this liveProject, you’ll implement a Graph Neural Network (GNN). This powerful model will allow you to use the document content from the first liveProject combined with the structure of the citation graph from the second liveProject to build an even more powerful model—one that will predict the sub-field of statistics of each of your customers’ papers.
skills learned: node classification by text embedding signals and citation graph structure signals • build a GNN classifier with PyTorch Geometric
In this liveProject, you’ll replicate Google’s Deep Dream algorithm to explore the artistic creations of a neural network. You’ll start by investigating the latent space of a deep neural network and how manipulating its values can affect an input image. You’ll visualize inputs that maximize your filters, and manipulate these filters to produce ‘dream-like’ hallucinations.
skills learned: mathematical operations on images • implementing loss functions • transfer learning
In this liveProject, you’ll build a deep learning model that can generate text in order to create synthetic training data. You’ll establish a data training set of positive movie reviews, and then create a model that can generate text based on the data. This approach is the basis of data augmentation.
skills learned: building and training a deep learning model for text classification • using sklearn module to report model classification metrics • condition based sampling technique for NumPy array
In this liveProject, you’ll utilize unlabeled data and unsupervised machine learning techniques to build and train data generative models. You’ll employ generative modeling, such as a variational autoencoder (VAE) that can generate new images by sampling from the latent distribution. You’ll then use an unsupervised generative adversarial network to generate new images.
skills learned: implement autoencoders to reconstruct images • utilize variational autoencoders for image generation • train an unsupervised deep convolutional GAN
Start building your robotics foundation: You’re a programmer helping create prototype robots for the RoboPrototypes company. You’ll get a brief introduction to ROS 2, set up the programming environment, and onboard robotics building blocks with basic tutorials. Then you’re ready to create launch files, which are integral to every ROS project. As you create packages in ROS 2, you’ll learn to define and use parameters and declare custom messages. When you’re finished, you’ll have a firm foundation for delving deeper into robotics.
The version of Gazebo used in this project reached end of life in January 2025.
skills learned: set up the programming environment for ROS 2 • ROS 2 fundamentals • create a ROS 2 workspace • create ROS 2 launchfiles, services, messages
In this liveProject, you’ll get hands-on experience using the powerful Google Colab tool for machine learning and deep learning. Colab notebooks let you execute your data science code in Google’s cloud, getting all the benefits of Google’s incredible hardware. You’ll see how Colab works for yourself by running through simple machine learning tasks such as data preprocessing, making use of Colab’s free GPU and TPU hardware acceleration capabilities, and combining Colab with scikit-learn and PyTorch to train a classifier.
skills learned: using Colab as a Jupyter Notebook • utilizing Colab hardware acceleration capabilities • combining Colab with PyTorch
In this liveProject, you’ll get hands-on experience using the powerful Google Colab tool for machine learning and deep learning. Colab notebooks let you execute your data science code in Google’s cloud, getting all the benefits of Google’s incredible hardware. You’ll see how Colab works for yourself by running through simple machine learning tasks such as data preprocessing, making use of Colab’s free GPU and TPU hardware acceleration capabilities, and combining Colab with scikit-learn and TensorFlow to train a classifier.
skills learned: using Colab as a Jupyter Notebook • utilizing Colab hardware acceleration capabilities • combining Colab with TensorFlow
In this liveProject, you’ll get hands-on experience using Jupyter Notebook in a real-world data science project. You’ll train a simple KNN classifier and use Jupyter, IPython, and the easy-to-use Markdown markup language to document and share your work. Your challenges will include customizing your notebooks, incorporating your notebooks into a data science project, and sharing your projects with the community on GitHub.
skills learned: collaborate on Jupyter Notebook projects • customize your notebooks • work with Jupyter Notebook extensions
Now that one of the data scientists at your publishing company was able to extract citations from the full text of the representative text corpus, your task is to generate new vector embeddings based on the citation graph, then cluster the documents using these embeddings to gain insight from the graph structure.
skills learned: converting graph nodes to vectors • dimensionality-reduction • clustering
Imagine you work for a company that publishes scientific articles created by its customers—primarily researchers and scientists in the field of statistics—whose volume of research has grown so large that it’s not possible for your company to read every paper nor for the researchers to stay on top of everything happening in the field. Your task is to use automated means to find some structure in the collection of scientific articles so that the company can more easily home in on the researchers’ interests and help them research more effectively. To do that, you’ll generate document embeddings, use them to impute a document graph, and execute graph algorithms against this graph in order to generate insights from it.
skills learned: convert text into graphs • explore centrality algorithms for clustering using Neo4j
New York City real estate is a trillion-dollar market, and you’ve got your eye on a collection of prime NYC properties whose value will likely double in a couple of years. They’re not currently for sale, but with your excellent sales skills, you’re confident you can get the owners to sell at a fair price, if you can only determine who the owners are. To obtain the owners’ contact data, you’ll construct a knowledge graph from publicly available data that contains tax records, property deeds, and permits. You’ll scan the data for the target owners, analyze the datasets for possible relationships, develop a knowledge schema that can extract insights into your use case, and load the data into Neo4j to query and visualize the connections. When you’re done, you’ll have practical experience applying widely used graph tools to real-world data, and you’ll understand how different choices for your graph schema can lead to different insights.
skills learned: intermediate Neo4j (graph query using the Cypher language, loading and viewing graphs via Neo4j Desktop)
In this liveProject, you’ll develop a machine learning model that can make a personalized prediction of whether an individual has COVID-19. You’ll work with a fictional audio dataset of digital footprints from smart phones, applying logistic regression and decision trees to turn this dataset into a COVID-19 predictor. You’ll learn how to formulate a ML problem by identifying data points, and their features and labels, so that you can take advantage of ready-made ML methods.
skills learned: basic flow control in Python • create and manipulate figures in Python • create and manipulate NumPy arrays to represent matrices and vectors
Your real estate developer client has a large sorted dataset and the ability to zoom in on select parts of the data, thanks to the programs you’ve written for them previously. Now they’ve noticed duplicate entries in the dataset, and they’ve asked you to solve this problem. In this liveProject, you’ll create a program that will read in the large CSV data file, leveraging a hash map (which you’ll test and implement) in order to discard duplicate entries as quickly as possible. Though you’ll use the csv and unittest libraries in Python, you’ll write your own unit tests—a fundamental software engineering skill and a practical requirement on most real-world projects. Finally you’ll test your tests against Python’s existing dictionaries.
skills learned: write code manipulating Python dictionaries • write unit tests involving dictionaries • cover a variety of testing scenarios • implement a basic hashmap from scratch • use your hashmap to eliminate duplicate entries
In this liveProject, you’ll use the ALBERT variation of the BERT Transformer to detect occurrences of hate speech in a data set. The ALBERT model uses fewer parameters than BERT, making it more suitable to the unstructured and slang-heavy text of social media. You’ll load this powerful pretrained model using the Hugging Face library and fine-tune it for your specific needs with PyTorch Lightning. As falsely tagging hate speech can be a big problem, the success of your model will involve calculating and optimizing its precision score. Your final product will run as a notebook on a GPU in the Google Colab environment.
skills learned: loading and configuring pretrained ALBERT model using HuggingFace • building and training a text classifier using PyTorch Lightning • validating the performance of the model and quantifying the results
In this quick liveProject, you’ll automate the process of filling out a custom email from a CSV of email addresses and exam scores. You’ll then implement a randomizer to assign a random discussion partner, all using a Python library of your choice.
skills learned: using the smtplib library • reading documentation for Python • parsing a CSV file to store information in a data structure
In this quick liveProject, you’ll use the pandas library to read a table from a Wikipedia page into a DataFrame, clean and arrange the data into columns, and extract useful information quickly to reveal data insights.
skills learned: organizing and visualizing data in a pandas DataFrame • reading, working, and experimenting with new Python libraries
In this quick liveProject, you’ll develop a simple task scheduler app. Your challenges will include coding functionality that will arrange a day’s tasks to either minimize time left over during a day, or to provide the greatest variety of tasks during a day.
skills learned: implementing an optimization algorithm • recursion method to call a function • writing code to fit certain constraints • using brute force to find a solution
In this quick liveProject, you’ll write a UI that simulates water drops on a window during rain. You’ll use nested lists, the random library, and tkinter to increase droplet size with certain probability, and resetting sizes when drops become too big.
skills learned: using the tkinter library • adding widgets to a UI • manipulating shapes in a UI • working with row and column data in a grid
In this quick liveProject, you’ll design and implement an algorithm to solve a simple maze, revealing a path to the exit.
skills learned: implementing a wall-following algorithm • testing and debugging code • appropriate data structures • understanding algorithms, including edge cases
In this liveProject, you’ll take on the role of a machine learning engineer working for a company developing augmented reality apps. These apps include games, virtual shopping assistants, and fitness coaches that need to be able to reliably recognize the shape of a human body. Your challenge is to create an application for human pose estimation: detecting a human body in an image and estimating its key points such as knees and elbows. To do this, you’ll build a convolutional neural network from scratch, training your model using Google Colab and your GPU. At the end of this liveProject, you’ll have completed an interactive demo application that uses a simple webcam to detect and predict human keypoints.
skills learned: object detection and keypoint detection algorithms • transfer learning • training CNNs on images • deploy human pose estimator using webcam
Now that you’ve prepared the data for the deep learning models, you’re ready to apply the hybrid model, which leverages the strengths of both the classical and deep learning models. In this liveProject, you’ll focus on the essential steps for running a time series analysis. You’ll start with ensuring the data you prepared is ready for processing with the deep learning models. Next, you’ll run the RNN and LSTM for the separate datasets. Finally, you’ll evaluate the performance of your models.
skills learned: combine classical and deep learning models • visualize results • evaluate model performance
XYZ Services Company, the consulting and outsourcing firm you work for, recently experienced a massive failure in its IT Infrastructure. While it’s working on getting the environment back up and running, the company urgently needs to identify potential vulnerabilities in the digital signatures used by the employees for two-factor authentication. Applying PowerShell scripting best practices, you’ll write a script that uses the switch statement and its regex parameter to extract a list of digital signatures from an input file, identify matching strings that satisfy specific conditions, classify them as required, and send them to log files. When you’re done, the information security officer will thank you for helping prevent future security issues.
skills learned: read text files • use complex regex patterns including lookaround, regex quantifiers, and ranges • use the switch statement and its regex parameter to extract substrings from text files • arrays and array indexing using expressions • edit text using replace operations • write to text files
In this liveProject, you’ll join BrainAI’s MRI data analysis team. BrainAI needs you to develop a state-of-the-art AI module utilizing vision transformer models to detect brain tumors with exceptional accuracy. Armed with Python tools like Hugging Face Transformers, PyTorch, and more, you'll detect the presence or absence of tumors within human-brain MRI datasets. With Google Colab's GPU computing resources, you'll utilize deep learning to try and achieve a 95%+ accuracy rate.
skills learned: set up training, test, and validation datasets with biomedical (MRI) images • train and evaluate a vision transformer model for brain tumor classification
In this liveProject, you’ll step into the role of a developer working for car rental company CarsUnlimited. You have a bold new idea for an app that can revolutionize your business. You envisage a service where a customer can snap a picture of any car on the street, and instantly find out if CarsUnlimited has that make and model available. Your colleagues have the app UI covered; your challenge is to build the algorithm to classify the cars that were snapped by the user. You decide to develop a machine learning algorithm for solving this problem.
You’ll start with cleaning your data, before experimenting with classical machine learning algorithms such as SVMs, Random Forests, Decision Trees, and assess their performance metrics. With an entire range of parameters to tune and improve, you will learn about how to automate this search. From there, you’ll dive into building a deep neural network and explore different search strategies to finalize your powerful new neural network architecture.
skills learned: identify when to use classical machine learning algorithms or deep learning for classification • build a neural network architecture and automate the search for parameters
In this liveProject, you'll pioneer the development of cutting-edge MRI segmentation algorithms using transformer architecture for computer vision company VisionSys. Manual segmentation is labor-intensive and expensive, so you’ll be developing a custom model that can do it for you. You'll train and evaluate SegFormer and MaskFormer models to identify brain tumor regions with over 90% accuracy. With Python tools like Hugging Face Transformers and Google Colab's GPU computing resources, you'll create pipelines, preprocess data, and showcase sample predictions and quantitative results.
skills learned: set up training, test, and validation datasets with biomedical (MRI) images • train and evaluate Segformer and Maskformer models for brain tumor segmentation
In this liveProject, you’ll apply premade transfer learning models to improve the context understanding of your search. You’ll implement BERT (Bidirectional Encoder Representations from Transformers) to create a semantic search engine. BERT excels in many traditional NLP tasks, like search, summarization and question answering. It will allow your search engine to find documents with terms that are contextually related to what your user is searching for, rather than just exact word occurrence.
skills learned: create an inverted index with Faiss library • encode and search documents with a sentence-transformers library • complete question-answering tasks with pretrained BERT models
In this liveProject, you’ll refactor a legacy module with unpredictable functionality to make it fit for your needs. The module behaves strangely whenever you import it, and so your task is to find the problem by exploring the ways that import in Python works. Your new knowledge will allow you to fix the issues in the test module, and create safer modules and multi-module packages.
skills learned: how the import process works • what importing only one feature of a module really does • how to make sure that code only executes when you want it to
As a software engineer at Sneakers to the Max, it’s your job to create an API that the e-commerce company’s developers can use to improve search results. You’ll write Python code to create Elasticsearch queries that work best for zero, one, or multiple search terms. To enable the application to interact with the search service, you’ll implement a FastAPI endpoint. You’ll add query filters, including colors and price ranges, to narrow down the results, and you’ll add pagination for when the number of sneakers in the narrowed search results is too large to be displayed on one page. When you’re done, you’ll have created an API that empowers your developers to provide the best matches to customers’ searches and leads to increased sneaker sales.
skills learned: use different queries to select sneakers
In this liveProject, you’ll explore how inheritance works in Python through developing classes that might be used in a simple video game. Your game follows animal characters moving through an obstacle course, with different movement styles for wolves, bears, eagles, ducks, frogs, and trout. In order to avoid having to repeat your code between characters, you’ll create some base classes and inherit from them. You’ll see how to inherit from more than one class at a time, and discover use cases for multiple inheritance.
skills learned: using Python’s system of inheritance • developing classes for a video game • using Python's multiple inheritance to create mix-ins
Enter the world of quantum computing and discover how quantum computers solve problems in a fraction of the time. You’re a researcher for Action at a Distance Corporation, a consortium of venture capitalists who believe the time to learn about and invest in quantum computing startups is now. Your task is to learn fundamental quantum computing skills so you can evaluate proposals from quantum startups and brief the consortium’s partners. Get familiar with the Qiskit environment as you create your own Qiskit programming Python imports template, then discover features of the Qiskit ecosystem as you add code to your template. You’ll set up a quantum circuit, getting first-hand experience with amplitudes and probabilities associated with quantum states. With these fundamentals under your belt, you’ll prepare brief notes for your report to the consortium, researching which companies will be the major players in the quantum race, what types of quantum hardware they’re pursuing, and what exactly is the “quantum advantage.”
skills learned: create quantum registers and circuits and begin to program them with Python and Qiskit
In this liveProject you’ll develop a chatbot that can classify a user’s intent, using the Hugging Face NLP library. Your challenges will include building the task with the Bart transformer, and building a specialized task for detecting toxic language. You’ll then develop a Telegram bot and integrate it with your toxicity classification task.
skills learned: use a transformer to create a classification tool • build a chatbot using Hugging Face library to classify user messages • use transformers to create a classifier to identify toxic messages and integrate this classification into a chatbot
Give your end-users what they want! In this liveProject, your challenge is to deliver an infrastructure that allows your end-users to query an existing, fully functioning modern Lakehouse for two different use cases: analyzing data aggregates over a long period of time to identify trends, and analyzing recently ingested data for monitoring purposes. You’ll use Preset, an SaaS platform that offers a managed version of Apache Superset, to run queries on the Lakehouse and build two interactive dashboards for your distinct use cases.
skills learned: use Apache Superset to interact with the data via its SQL editor • build charts, and add them to dashboards • create and configure a workspace on Preset and interact with its managed version of Apache Superset • translate business requirements and requests into SQL queries
Red alert! One of the energy production companies managed by Sigma Corp has suffered an outage. An investigation has led to the conclusion that the facility’s anomaly detection mechanism failed to detect early signals due to a sudden change in the distribution of the analyzed data. As a lead data scientist at Sigma, you’ll build an Isolation Forest algorithm, which is less likely than the Empirical Cumulative distribution-based Outlier Detection (ECOD) method to fail in such scenarios. To gauge how robust your method is, you’ll benchmark your algorithms against adversarial scenarios, synthetic anomalies, and standard datasets. When you’re done, you’ll have practical experience creating, using, and testing the Isolation Forest algorithm as an effective alternative to ECOD in circumstances where the data distribution changes.
skills learned: apply the Isolation Forest method • evaluate algorithms under adversarial distribution change
In this liveProject, you’ll experiment with how iteration works in Python. You’re building a data analysis program that needs to iterate over a given number of Fibonacci numbers. To help out, you’ll construct an object that can be iterated over in a for loop or list comprehension that provides the Fibonacci series.
skills learned: build a data analysis program • use Python iteration protocol in creating iterables and an iterator using a generator function
In this liveProject, you’ll use the Julia language and clustering algorithms to analyze sales data and determine groups of products with similar demand patterns. Clustering is a well-established unsupervised learning technique that’s commonly used to discover patterns and relations in data. You’ll apply k-means and DBSCAN clustering techniques to housing sales data for a retail startup, leveraging your basic Julia skills into mastery of this machine learning task.
skills learned: basic data preparation for clustering methods • clustering data with k-means and DBSCAN algorithms • evaluating and visualizing results
In this liveProject, you’ll use the latent dirichlet allocation (LDA) algorithm from the Gensim library to model topics from a magazine’s article back catalog. Thanks to your work on topic modeling, the new Policy and Ethics editor will be better equipped to strategically commission new articles for under-represented topics. You’ll build your text preprocessing pipeline, use topic coherence to find the number of topics, and visualize and curate the algorithm’s output for your stakeholders to easily read.
skills learned: implementing a simplified version of the LDA algorithm • preprocessing and converting a text corpus into a document-to-word matrix • generating topics using Gensim’s LDA algorithm • evaluating generated topics using Coherence and Diversity metrics • visualizing derived topics with a variety of techniques
At Finative, an ESG analytics company, you’re a data scientist who helps measure the sustainability of publicly traded companies by analyzing environmental, social, and governance (ESG) factors so Finative can report back to its clients. Recently, the CEO has decided that Finative should increase its own sustainability. You’ve been assigned the task of saving digital storage space by storing only relevant data. You’ll test different methods—including keyword retrieval with TD-IDF, computing cosine similarity, and latent semantic analysis—to find relevant keywords in documents and determine whether the documents should be discarded or saved for use in training your ML models.
skills learned: clean data with regular expressions • mathematical concepts and how and when to apply latent semantic analysis and cosine similarity
In this liveProject, you’ll determine what similarities there are between certain movies, and then build a recommendation system based on the similarities you’ve identified. Although you’ll be working with movie data for a streaming website, identifying similarities can help enhance recommendation engines for any item or product. You’ll develop a general technique for spotting similarities, then apply your learned similarities to build a recommendation engine. You’ll then enrich your model with collaborative and content-based data, and evaluate and compare your model.
skills learned: read, process, and exploit user-item data • define recommender systems based on similarities • analyze algorithm output
Create a powerful recommendation engine built from an ensemble of graph-based models that will help you tap into New York City’s real estate market by identifying groups of similar properties. You’ll start by working with transductive graph models (TransE and TransR) that are created specifically for knowledge graphs. Transductive learning takes observations from a specific set of training data and applies it to a specific set of test data. Next you’ll build an inductive model (GraphSAGE), which allows for generalized learning on new data (i.e. predictive modeling on previously unseen properties). Lastly, you’ll build the recommender system by using the k-Nearest Neighbor (kNN) algorithm to identify similar properties. When you’re done, you’ll have hands-on experience applying machine learning techniques to real-world knowledge graphs… and possibly a lucrative side hustle.
skills learned: build transductive graph models (TransE, TransR) with pyKEEN • build an inductive graph model (GraphSAGE) with Stellargraph
In this liveProject, you’ll perform a regression analysis on precleaned data to determine factors relating to American life expectancy. You will learn how to do a comprehensive regression analysis and how to select a model in the presence of multicollinearity. You will use the libraries developed in the second and third projects to check the validity of your final model.
skills learned: detecting multicollinearity with the Variance Inflation Factor • doing a comprehensive regression analysis with Statsmodels • visualizing relationships with seaborn • interpreting "QQ-plots," "Residuals vs. Fitted" plots, and "Scale-Location" plots
Growth means change; for Logistica Transport, that means switching from their old desktop app to a new web app solution. In this liveProject, you’ll put together all of the pieces of this new web app. You’ll learn how to build a React.js app with Visual Studio 2023, set up a form for your users, and master the database magic of CRUD statements like insert, update, and delete to manipulate your database. Finally, you’ll validate your data formats to ensure the application works as expected.
skills learned: NuGet packages • Creating themed React forms • Implementing CRUD features • Implementing form validation
In this liveProject, you’ll utilize Python to create new data reports from a centralized system. You’ll work with raw data about the sales of various products, and massage it into a different format from which subreports can be extracted. To do this, you’ll make use of lists—one of the most common data structures in Python that are at the heart of data processing.
skills learned: list comprehensions • list slicing • ways to sort a list
In this liveProject, you’ll use Google Cloud Platform’s BigQuery tool to transfer data from a legacy data lake to new cloud storage on GCP. You’ll start by setting up your Google Cloud developer account, then utilize Google Web Console to create a Cloud Storage bucket and load data into a BigQuery table. You’ll learn how to handle different file formats, and manage resources with Google Cloud Shell.
skills learned: setting up a Google Cloud Account • loading data into BigQuery • handling file formats
Help your company’s messenger application provide better product recommendations for its customers. As a data engineer at the company, your task is to create a machine learning (ML) pipeline using the Amazon Personalize service. You’ll use CloudFormation templates to create a repository for the required AWS infrastructure resources, and AWS Glue to transform the raw user engagement data. Using Amazon Personalize, you’ll import a dataset and create and train the Amazon Personalize ML model for your users’ recommendations. To complete the project, you’ll create a workflow to train your Amazon Personalize recommendation solution using AWS Step Functions and user engagement events. When you’re done, you’ll have designed an ML pipeline using the Amazon Personalize API that provides product recommendations that suit your users best.
skills learned: create a data lake S3 bucket using an AWS CloudFormation template (Infrastructure as Code) and prepare data using AWS Glue • design a data pipeline to create and train an Amazon Personalize solution • deploy the pipeline using AWS Step Functions and AWS CloudFormation (Infrastructure as Code)
Play the role of an academic researcher preparing a machine learning model to predict the U.S. government’s focus for new policy legislation. You’ll process the legislation dataset with resampling and feature engineering techniques, employ a range of algorithms, including penalized regression and XGBoost, to fit a series of ML models, evaluate the effectiveness of the models, and tune them accordingly.
skills learned: resample datasets for unbiased measures of model performance • feature engineering for text data • fit models using a tidy framework • evaluate classification models using appropriate metrics • tune machine learning models to maximize their effectiveness
As a consultant for Messflix Inc., a movie and TV-show streaming platform, you’ll investigate and discover why Meshflix’s recommender system breaks. You’ll brainstorm options for changes that don’t break the system, explore their pros and cons, and choose and implement one of your options. Then you’ll create an internal versioning strategy to support all the great product changes Messflix has planned for the future.
skills learned: understand product thinking • manage changes in data products • prevent breaks in downstream data products
In this liveProject, you will create an imbalanced dataset from the IMDb movie dataset. Your goal is to make a dataset where positive reviews are the minority. You’ll then test a theory that if you oversample positive reviews, you could rebalance the training data to build and train a text classification model. You finish up by examining the model performance with a confusion table, and basic metrics such as precision, accuracy and recall.
skills learned: building and training a deep learning model for text classification • using sklearn module to report model classification metrics • condition based sampling technique for NumPy array
Action at a Distance Corporation, a consortium of venture capitalists, believes that now is the time to invest in quantum computing startups. As its resident researcher, your job is to get familiar with quantum techniques and applications. You’ll code quantum circuits involving four different quantum gates, the fundamental processing units of quantum. You’ll visualize the effects of the gates, run and measure the circuits, and use IBM Quantum Composer to demonstrate the use of the gates. With a deeper understanding of quantum, you’ll investigate major quantum use cases to help the consortium determine whether or not the startups’ proposals have commercial applications.
skills learned: investigate and program quantum circuits and quantum gates • use IBM Quantum Composer to demonstrate the use of gates • program with Python and Qiskit
In this liveProject, you’ll compute and chart metrics that show the key characteristics in Home Mortgage Disclosure Act (HMDA) dataset, and investigate relationships between key demographics and other features that may lead to a biased machine learning model. You’ll compute and chart “equality of outcome” bias metrics, and produce a report into your insights.
skills learned: setting up a Google Colab environment • preprocessing a dataset using one-hot encoding • charting and visualizing metrics
In this liveProject, you’ll investigate and report on whether your company’s mortgage application classifier is making fair decisions between male and female applicants. You’ll train a logistic regression classifier on the HMDA dataset, compute performance metrics with a logistic regression classifier, and then chart “equality of opportunity” bias metrics.
skills learned: setting up a Google Colab environment • preprocessing a dataset using one-hot encoding • computing bias performance metrics for logistic regression
Preventing operation failures and interruptions is mission-critical at Sigma Corp. The large conglomerate of energy production companies has recently implemented a z-score anomaly detection algorithm that focuses on a single feature. Now that the algorithm has proved its value, members of Sigma have requested additional algorithms that are just as simple to use, but that can handle multidimensional data. As a lead data scientist at Sigma, you’ll implement the Mahalanobis distance (MD) method and the principal component analysis (PCA) method as you build anomaly detection algorithms for multidimensional data. To gauge the performance of your algorithms, you’ll test them against a benchmark dataset as well as synthetic anomalies generated by your own algorithms. When you’re done, you’ll have firsthand experience building anomaly detection algorithms for multidimensional datasets as well as testing anomaly detection algorithms against both benchmark datasets and synthetic anomalies.
skills learned: PCA method • Mahalanobis method • evaluate algorithms using correlated synthetic anomalies
Unexpected bias in machine learning models reduces accuracy, produces negative real-world consequences, and in the worst cases, entrenches existing inequalities for decades. Audits that can detect and mitigate this unwanted bias are an essential part of building and maintaining reliable machine learning systems.
In this liveProject, you’ll take on the role of a data scientist running a bias audit for the World Health Organization’s healthcare models. You’ll get to grips with state-of-the-art tools and best practices for bias detection and mitigation, including interpretability methods, the AIF-360 package, and options for imputing membership of a protected class. These tools and practices are placed in the context of a broad universe of bias where geopolitical awareness and deep understanding of the history and use of your particular data is key.
skills learned: biasing and debiasing ML models • using SHAP to interpret the underlying logic behind a ML model • using AIF360 to detect and mitigate unwanted bias • auditing techniques for unknown at-risk populations
In this liveProject, you’ll use the open source AI Fairness 360 toolkit from IBM and the “equalized odds post-processing” method to post-process your model for the purpose of bias mitigation. “Equalized odds post-processing” seeks to mitigate bias by making modifications to the prediction label after a model has been trained. After charting bias metrics on a basic classifier, you’ll tune the classification threshold to explore the impact on revealed biases.
skills learned: setting up a Google Colab environment • AIF360 open source library • post-processing for fairness with the “equalized odds'' method
In this liveProject, you’ll use the open-source AI Fairness 360 toolkit from IBM to measure and mitigate bias with model preprocessing. You will chart bias metrics on a basic classifier, before preprocessing your training data with the “reweighing” method. Reweighing seeks to mitigate bias by making modifications on the training data by computing and applying a set of weights. The weights are calculated such that the training data, with weights applied, is free of discrimination with respect to a protected attribute. Once your model is preprocessed, you’ll construct a classifier that makes use of the data.
skills learned: setting up a Google Colab environment • AIF360 open-source library • preprocessing for fairness with the reweighing method
In this liveProject, you’ll fill the shoes of a data scientist at UNESCO (United Nations Educational, Scientific and Cultural Organization). Your job involves assessing long-term changes to freshwater deposits, one of humanity’s most important resources. Recently, two European Space Agency satellites have given you a massive amount of new data in the form of satellite imagery. Your task is to build a deep learning algorithm that can process this data and automatically detect water pixels in the imagery of a region. To accomplish this, you will design, implement, and evaluate a convolutional neural network model for image pixel classification, or image segmentation. Your challenges will include compiling your data, training your model, evaluating its performance, and providing a summary of your findings to your superiors. Throughout, you’ll use the Google Collaboratory (“Colab”) coding environment to access free GPU computer resources and speed up your training times.
skills learned: work with times series data • perform image segmentation • merge satellite imagery and perform operations on raster datasets • data augmentation for boosting model training • optimize and understand model performance
In this liveProject you’ll develop a chatbot that can extract entities from user messages using the Hugging Face NLP library. Entity extraction pulls relevant data from chunks of text. Your challenges will include building a Named Entity Recognition task with the BERT transformer, and fine-tuning it to a medical context. You’ll then integrate your tasks into a chatbot.
skills learned: use a transformer to create a named-entity recognition tool • build a chatbot using Hugging Face library to extract entities from user messages like localizations and people
Let your robot drive itself! Your company, RoboPrototypes, is preparing to demo its autonomous beverage delivery robot to investors soon, but the technician who was supposed to drive it has quit. Since there’s no one to take his place, your CEO has tasked you with upgrading the robot with automatic navigation. You’ll set up Nav2 to load your desired parameters, implement navigation planners and controllers, and optimize navigation by tuning costmap parameters. Once you send your waypoint goals to Nav2 telling your robot where to go, it’ll be ready to quench thirsts at a food court near you.
The version of Gazebo used in this project reached end of life in January 2025.
skills learned: planners • controllers • global and local costmaps • waypoint following • tuning Nav2 parameters
In this liveProject, you’ll play the role of a programmer who has been hired by a real estate developer to help determine what a fair market price for rent should be across a number of owned properties. The good news is that the real estate developer has gathered data into a spreadsheet (in a CSV file). The bad news is that the spreadsheet is so large that they can’t even open it in a typical spreadsheet program, let alone do any sort of analysis with it. They’ve asked you to develop an interactive program that will perform some basic exploration of the data. You’ll use highly popular Python to tackle this challenge, and gain valuable experience processing CSV files and sorting lists as well as working with files, strings, and command-line arguments.
skills learned: develop a basic text-based spreadsheet program • read command-line arguments and perform file I/O • perform common string operations in Python • append items to Python lists • sort lists in Python using built-in routines
In this liveProject, you’ll use the neural network-inspired Contextual Topic Model to identify and visualize all of the articles in a scientific magazine’s back catalog. This cutting-edge technique is made easy by the OCTIS (Optimizing and Comparing Topic Models is Simple!) library. Once you’ve established your text-processing pipeline, you’ll use coherence and diversity metrics to evaluate the output of your topic models, tune your neural network’s hyperparameters to improve results, and visualize your results for printing on posters and other media.
skills learned: exploring the vector representations produced by BERT • preprocessing text documents • using the Contextual Topic Model • performing hyperparameter tuning • evaluating topics using Coherence and Diversity and visualizing generated topics
In this liveProject you’ll use scikit-learn’s non-negative matrix factorization algorithm to perform topic modeling on a dataset of Twitter posts. You’ll step into the role of a data scientist tasked with summarizing Twitter discussions for the customer support team of an airline company and use this powerful algorithm to rapidly make sense of a large and complex text corpus. You’ll build a text preprocessing pipeline from scratch, visualize topic models, and finally compile a report of support topics for the customer services team.
skills learned: Implementing a simplified version of the NMF algorithm • preprocessing and converting text corpus into a document-to-word matrix • generating topics using scikit-learn’s NMF algorithm • evaluating generated topics using Coherence and Diversity metrics • visualizing derived topics with a variety of techniques
In this liveProject, you’ll use Python to build a nonogram puzzle generator that creates a printable puzzle pack from the command line. Nonograms are puzzles that reveal an image on a grid, based on numbers along the grid’s edge. Most programmatic implementations solve nonograms, but yours will generate them. To do this, you’ll code your script, relying on two essential data structures: the pandas DataFrame and the NumPy array. You’ll also experiment with image libraries including Pillow and pixelate, and gain a better understanding of basic image processing concepts.
skills learned: image manipulation • NumPy • table styling • file I/O • HTML • CSS • debugging • Pillow • pixelate • regular • expressions
In this liveProject, you'll spearhead the development of AI-aided surveillance software for construction site supervision. You’ll build two computer vision applications capable of detecting construction vehicles and their types across a large worksite and a more powerful model that can detect building defects such as cracks and fissures. Start by working with a pre-trained DETR model, then explore the Roboflow platform to assist you as you create a multi-class object detection dataset from multiple datasets with non-identical classes. With these datasets, you will train different transformer models for object detection to identify construction vehicles and cracks in buildings.
skills learned: import computer vision datasets from other platforms like Roboflow• merge two or more object detection datasets and their annotations on Roboflow • set up training, test, and validation datasets for object detection • train and evaluate three variants of DETR models for construction vehicle detection
In this liveProject, you’ll take on the task of extending a pricing application. You’ve just hit your first speed bump of needing to add functionality to the class that manages prices. However, that class is used elsewhere and you can’t get permission to change it. Your challenge is to implement a “monkey patch”—adding methods to the class at runtime—by experimenting with Python-bound methods.
skills learned: add functionality to a pricing application • create a class using type() • add bound methods to a class • monkey patch a class after creation
In this liveProject, you’ll use graph data optimization to determine improvements that could be made to the water infrastructure of Bruges. You’ll incorporate business data into your visualized Bruges street graph, and translate your graph into a prize collecting Steiner tree problem. You’ll then use the PCST solver in LynxKite to get an exact answer to your business problem.
skills learned: represent a network infrastructure problem as a graph optimization problem • the prize-collecting Steiner-tree problem • convert your business input data into the parameters of an abstract mathematical problem
You’re a software engineer for Sneakers to the Max, an e-commerce company that sells sneakers. Its CEO wants to improve the speed and quality of the company’s search engine in hopes of boosting sales. Your task is to optimize the mappings of the Elasticsearch index. You’ll use the Kibana developer console to analyze the current mapping and create a new custom analyzer. To improve search matches—and customer experience—you’ll use the Elasticsearch field mappings to support multiple uses of the same field. You’ll modify the mappings to help customers find the sneakers they’re looking for, even if their search terms are incomplete or contain typos. To further improve CX, you’ll add synonyms to the Elasticsearch configuration to handle searches that use different terms for the same concept.
skills learned: mapping of different datatype fields in Elasticsearch • evaluating mapped datatype fields using analyzer tools
Master the basic methods for handling most real-world scenarios as you play the role of a data scientist in an online recruiting tech company or a large organization’s HR department. Using pandas, you’ll process, extract, and transform numerical, categorical, time series, and text data into structured features that are ready for data analysis and ML model training. When you’re done, you’ll have hands-on experience working with most data types you’ll find in the real world, as well as useful skills for extracting and engineering features.
skills learned: feature engineering with pandas • cleaning, standardizing, and transforming data with pandas
In this liveProject, you’ll apply the federated learning machine learning paradigm to compute a personalized infection risk diagnosis for COVID-19. Federated learning is an ML paradigm that learns from decentralized data via distributed computing environments. The risk diagnosis will come from a tailored classifier that is trained separately for each individual, by combining gradient descent with a network averaging method. You’ll then develop a federate learning algorithm that can be implemented by scalable passing messages over the contact network.
skills learned: use NetworkX to jointly represent network structured data and models • learn the weights of a linear classifier using gradient descent • implement a Federated Learning algorithm by combining gradient descent with a simple averaging scheme
In this liveProject, you’ll use causal inference to investigate data on randomized discounts and determine if an e-commerce company should offer personalized discounting. You’ll estimate a different treatment effect for each customer in the hopes to see if some are positive, and figure out which customers should get what discounts. You’ll utilize Python and machine learning to build this personalization system, and implement a causal model for personalization.
skills learned: implement causal models for personalization • evaluate the performance of your causal model using experimental data
You’re a data analyst at Global Consensus Bureau, and your manager has asked you to determine how factors like education, hours worked per week, gender, and age relate to citizens’ incomes. Using pandas, you’ll pre-process data from a survey conducted by the U.S. Census Bureau. Then, you’ll create different charts to identify statistical relationships in data, using Python’s seaborn library, which provides custom functions for visual elements. When you’re done, you’ll know how to use seaborn to create visually appealing charts that reveal accurate and useful insights.
skills learned: visualize relations in categorical data • visualize relations in numerical data • visualize pairwise relationships
In this liveProject, you’ll build a model that can predict the age of customers for a telecom company. You’ll take basic profile data and call records for your customers, and build and improve a linear regression model using graph features. Finally, you’ll use a powerful graph neural network that can combine data from both profile features and graph structure to reliably reveal customer age range.
skills learned: using linear regression based on profile data • using linear regression with graph invariants as input features • using graph neural networks
Time series analysis is an essential tool for data forecasting, allowing data analysts to make predictions about the future events and track relationships between data. In this liveProject, you’ll utilize the Python data ecosystem and time series analysis to analyze the spread of the COVID-19 virus in different parts of the globe.
Your goal is to make near-future predictions about virus spread based on your available data. You’ll start with an exploratory data analysis into the types of data you have access to, establishing the kind of questions it can reasonably answer. You’ll then develop an ARIMA model for time-series forecasting. Finally, you’ll develop an interactive Voilà dashboard using ipywidgets that will allow stakeholders to access and understand your analysis.
skills learned: time series forecasting with ARIMA • univariate and bivariate analysis • data visualization
The Python data science ecosystem is a powerful and open-source toolset utilized daily by thousands of data scientists and machine learning engineers. But with so many Python machine learning libraries to choose from, which tool works best for your needs?
In this liveProject, you’ll go hands-on with the scikit-learn and H2O frameworks, using them both to build working machine learning classifiers. You’ll use raw financial data and the tried-and-true random forest model to predict the chance of financial loan defaults. Once you’ve built your models, you'll compare implementations to find out which works best and evaluate your results against existing hard-coded tools.
skills learned: exploratory data analysis • working with pandas DataFrames • feature engineering • machine learning modeling with random forests • optimizing machine learning • model evaluation and comparison • deploying a model in a Python module
A big city receives thousands of daily calls to its emergency services, reporting everything from illegal parking to life-threatening emergencies. In this liveProject, you’ll take on the role of a data scientist called in to advise on how the city can better allocate resources for these safety events. Your challenge is to create a machine learning model that can predict when and where different emergencies will occur. To do this, you’ll analyze data to identify trends, build and enhance a predictive model, and make your model explainable with model interpretability tools. You’ll also perform checks to ensure that the model won’t lead to bias or discrimination, and tweak your model so it can account for major lockdown events such as a pandemic.
skills learned: using machine learning to analyze and visualize location-based and time dependent data to make predictions • interactive data visualization • evaluating risks of bias and discrimination in production models
In this liveProject, you’ll use the Python tools pandas and Folium to prepare the Airbnb dataset for training a deep learning model. You’ll learn Python concepts that ensure the application you build on this data is robust and maintainable, and implement geospatial and visualization techniques to illustrate the geographic distribution of Airbnb rentals.
skills learned: manipulate tabular data • create geospatial visualizations
In this liveProject, you’ll create baseline models with Naive and sNaive methods for time series forecasts that you can use as a point of comparison for other models. Taking on the role of a data scientist for a large retail company, you’ll go hands-on to prepare sales data, create the baseline models, and optimize a Prophet model to compare against your baseline.
skills learned: build baseline models with Naive and sNaive methods • set up and optimize a Prophet model as an alternative model for comparison • evaluate various models using weighted MAE and MAPE
The company you work for, which offers lifestyle products, has enjoyed success for several years, but management has decided it’s not competitive enough. Your task is to identify current market trends and new niche markets for the company’s lifestyle products. Using Python and Ray, you’ll build a web scraper that will load and save multiple web pages concurrently. To preprocess the data, you’ll read each of your locally stored pages, split them into sentences, tokenize each sentence with Hugging Face tokenizers, and store your tokenized documents in a new (pickled) format in your file system. When you’re finished, you’ll have leveraged Ray to preprocess a large amount of data while bypassing Python’s notorious concurrency limitations. The data science team will thank you for helping minimize the data preparation time, and the management team will thank you for helping the company sharpen its competitive edge.
skills learned: make your Python code concurrent or parallel • build a web scraper • pre-process texts for NLP models with Hugging Face transformers
Step into the role of data scientist at Finative, an analytics company that uses environmental, social, and governance (ESG) factors to measure companies’ sustainability, a brand new, eco-focused trend that's changing the way businesses think about investing. To provide its clients with the valuable insights they need in order to develop their investment strategies, Finative analyzes a high volume of data using advanced natural language processing (NLP) techniques.
Recently, your CEO has decided that Finative should increase its own sustainability. Your task is to develop a method to optimize the runtime for the company’s machine learning models. You’ll apply principal component analysis (PCA) to the data in order to speed up the ML models. To classify handwritten digits and prove your theory that PCA speeds up ML algorithms, you’ll implement logistic regression with scikit-learn. You’ll use the explained variance ratio to gain an understanding of the trade-offs between speed and accuracy. When you’re done, you’ll be able to present your CEO with proof of PCA’s efficiency in optimizing runtime.
skills learned: algorithm optimization with principal component analysis (PCA) • matrix manipulation with NumPy • nuances of scikit-learn's PCA library
In this liveProject, you’ll build a Prophet model that can forecast airline passenger numbers using data from the DataSF portal. The hotel you work for believes that analyzing the travel trends of US customers will help them forecast potential travel to Europe, and bookings in the hotel. You’ll enhance your model with "changepoints" that mark a significant change in trends, and make adjustments so your model can account for uncertainty in the trend and seasonality components.
skills learned: implementing prophet models • configuring changepoints • analyzing time series data with uncertainty interval configuration
Messflix Inc., a movie and TV-show streaming platform, wants to build a recommendation system for its movies and shows, but currently, its data landscape is too complex. As a consultant, your task is to implement a data mesh for an improved, accurate flow of its data. Using Python and JSON, you’ll help the data engineering teams sift more easily through Messflix’s data by creating separate, structured data products that can be pushed to the central data platform. From the organized data products, you’ll create a list of recommended movies, tailored to Messflix’s customers’ preferences.
skills learned: understand distributed domain ownership • produce data inside a data mesh • produce derived domain data products
Messflix Inc., a movie and TV-show streaming platform, is implementing a data mesh. So far, it has a self-serve data platform prototype where development teams can register their domain data products. As a consultant, your task is to build on that basic platform prototype with additional functionality: You’ll write a script in Python that will enable the development teams to push fresh data into their existing data products, write a function that adds support for versioned data, and implement a function that automatically calculates specific metadata (like row count and latest timestamp), then prints it to the screen. When you’re finished, you’ll have built a well-functioning, feature-rich, self-serve data platform, and be familiar with the requirements data-producing and data-consuming teams face daily and how to fulfill them.
skills learned: build a self-serve data platform • build a small data catalog • consume data inside a data mesh • store data products
In this liveProject you’ll develop a chatbot that can answer its user’s questions, using the Hugging Face NLP library. Your challenges will include building the task with DistilBERT transformer, and experimenting with other transformer models to improve your results. Once you’ve built an accurate NLP model, you’ll develop a Telegram bot and integrate it with your Question Answer task.
skills learned: use a transformer to create a question-answer tool • build a chatbot using Hugging Face library to answer user questions using Wikipedia data
In this liveProject, you’ll step into the role of a data scientist working for an investment firm. Your company wants to make sure their investments meet European Union guidelines for environmental sustainability. That’s where you come in.
The EU taxonomy for sustainable finance is big, complex, and confusing. Your bosses need a program that saves them from searching through hundreds of pages whenever they have a query. You’ve been tasked with building a machine learning model that can pose certain questions to the EU guidelines, and return reliable answers.
Your challenges will include extracting text data from the EU taxonomy document, and matching environment questions with the corresponding paragraph in the guidelines. You’ll then set up a pretrained transformer Question-Answering model, evaluate its performance, and combine it with your question-paragraph model for an end-to-end solution. When you’re done, you’ll have an interface into which you can type a sustainable finance question and receive the correct answer from the EU guidelines.
skills learned: deep learning for NLP • information retrieval • extracting text from PDFs • working with transformers and auto-encoders • working with word and paragraph embeddings
Behind the scenes on websites like Amazon, Netflix, and Spotify, models make predictions on thousands of items every day. Then, based on what they’ve learned, they choose only the best recommendations to display for every individual user. In the real world, performing thousands of predictions one by one, as in a notebook-only model, would be highly inefficient. In this liveProject, you’ll reconfigure the models you implemented in the previous project to accept a list of items for each user and then evaluate all items at once—choosing the best recommendations much more quickly and efficiently.
skills learned: reconfigure a “notebook-only” recommendation system to a model capable of handling many-items per user • use linear-algebra to combine networks with differing dimensionality
Voice assistants and speech-based applications need a reliable understanding of human commands. Deep learning systems trained on audio data are a great way for models to learn directly from sound and easily classify what humans are telling them.
In this liveProject, you’ll become a data scientist prototyping a speech command system for a medical organization. Your company’s application will allow hospital patients to adjust their room TVs with their voice, and you’ve been tasked with building the core: a machine learning pipeline that can label audio inputs with given command words. You’ll tackle preprocessing and feature engineering methods for audio signals, expand your existing machine learning capabilities with audio data, and get hands-on experience with TensorFlow, Keras, and other powerful Python deep learning tools.
skills learned: performing digital audio processing • extracting spectral features from raw audio data • building deep learning architectures for audio
In this liveProject, you’ll build your own Python data library to check three of the assumptions of the regression model: normality, linearity, and constant variance. Confidence in your regression models depends on how well you have satisfied these assumptions. Once you’ve developed functions and plots that can check these assumptions, you’ll master techniques for correcting them. With this library, you will expand your data science toolbox with important diagnostics tools that will allow you to be confident in your results.
skills learned: checking the assumptions of the regression model • programming "QQ-plots," "Residuals vs. Fitted" plots, and "Scale-Location" plots • visualizing relationships and distributions with seaborn
In this liveProject, you’ll use regression discontinuity design (RDD) as a form of natural experiment that works as an alternative to A/B testing. RDD measures treatment effects at points of discontinuity to get an idea of the effectiveness of a program without needing to rigorously A/B test it. You’ll use this technique to assess the discounting strategy of an e-commerce company, in a way that will allow you to start applying causal inference to other practical problems.
skills learned: spot discontinuities in data • use RDD techniques to estimate the impact of discount on profits
In this liveProject, you’ll use the Julia language to build a regression-based machine learning model that can predict median house value in a neighborhood. You’ll start out with a simple linear regression model to give you a baseline value for quality metrics created with Julia’s package for Generalized Linear Models. You’ll then tune and assess a random forest model, and compare and contrast the two approaches to pick the best results.
skills learned: build linear regression and random forest models • evaluate models and explore their output • save model to the file for further reuse
In this liveProject, you’ll develop an AI driving agent that can simulate independent driving. Your agent should be able to handle changing lanes, navigating roundabouts, and even self-parking. In order to create this complex agent, you’ll use powerful reinforcement learning techniques including model-based learning, model-free learning, and simulation-search/planning algorithms. Go hands-on to train your AI in AI Gym on Google Colab, improve your model’s performance, and provide professional-level documentation of your work for your colleagues.
skills learned: working with OpenAI Gym • developing reward-shaped training agents • using rl-agent and stable-baselines packages to directly train models
XYZ Services Company, the consulting and outsourcing firm you work for, is getting up and running after a massive IT infrastructure failure. In the meantime, the Human Resources department would like a report with basic staff data that it will use to distribute payslips to employees. As a PowerShell developer, you’ll use the switch statement and its file parameter to read and extract information from the source files provided by the company’s Active Directory before the system failed, build PowerShell objects, and export them into CSV format—helping HR provide proof of payment and putting your coworkers’ minds at ease.
skills learned: work with objects with FileInfo type • use the switch statement and its File parameter to process multiple text files • create custom objects • add properties to objects • use methods to modify text strings • export objects to CSV format
Real-world recommendation systems work with millions of users and billions of items. To handle this massive scale, recommendation systems tend to be divided into two types of models (retrieval and ranking), running one after the other, narrowing down the set of items each time. In this liveProject, you’ll implement a retrieval model using TensorFlow Recommenders, combine it with a ranking model, then create a fully functional pipeline going through both models, using a Feature Store. Finally, you’ll explore the scenario where you can’t (or choose not to) run both retrieval and ranking models online in real-time, leveraging the Feature Store once more to use the retrieval model offline.
skills learned: split a single recommendation system to two essential parts, retrieval and ranking, using TensorFlow Recommenders • understand what Feature Stores are and how to use them
Action at a Distance Corporation, a consortium of venture capitalists, believes that the time to invest in quantum computing startups is now. As the consortium’s researcher, your task is to gain knowledge of quantum computing capabilities.
You’ll explore matrix representations—mathematical underpinnings of quantum computing—and examine quantum circuits that use different arrangements of gates to achieve identical functionality. You’ll upgrade your quantum toolbox with phase kickback, an essential component of many quantum algorithms, and you’ll work with Bloch spheres, a way of visually representing qubits. You’ll then use two different methods to run a circuit on IBM quantum hardware, a task that will be commonplace in the not-so-distant future.
skills learned: quantum gates as matrices • circuit identities • phase kickback • Bloch spheres • run programs on IBM quantum hardware systems on quantum computers
Get tangled up in quantum computing! Action at a Distance Corporation, a consortium of venture capitalists, believes the time to invest in quantum computing startups is now. As the consortium’s resident researcher, your task is to understand the power of quantum computing.
You’ll learn to recognize normalized quantum states of two qubits, a key skill in implementing quantum algorithms. You’ll get familiar with the Controlled Not (CNOT) gate, vital to the construction of important, entangled states, and you’ll observe what Einstein called “spooky action at a distance” as you program the (famous!) entangled Bell states. Using the IBM Quantum Composer, you’ll visualize and animate quantum circuits, gaining insight into handling gates and their outcomes.
skills learned: programming circuits involving 2 qubits • quantum gates • Bell states • IBM Quantum Composer
EKKo Inc., the machine learning consultancy you work for, has been building an embedded system to enable deaf or hard of hearing people to participate in online meetings and events on their mobile devices. As a data scientist, your task is to complete the system by enabling it to detect American Sign Language (ASL) in real time. You’ll define a CNN model, train it using the existing ASL dataset, and evaluate the model’s accuracy. To optimize training speed and quality, you’ll fine-tune the model’s hyperparameters using the Keras Tuner. You’ll enable the model to be quantization-aware with the TensorFlow Model Optimization Toolkit (MoT), optimizing size and CPU consumption while maintaining model accuracy. To complete the project, you’ll connect the quantized model with a live video stream and train it on the embedded system. When you’re done, you’ll have a fully functional quantized CNN you can run on an embedded system that successfully detects and transcribes ASL in real time.
skills learned: set up a real-time training algorithm on an embedded board • train, evaluate, and tune hyperparameters on an embedded board • workflow of model tuning from the desktop to the embedded board
The real estate developer you’ve worked with previously is so pleased with your work that they’ve asked you to write a new program that allows them to zero in on specific data in sorted reports. Their ultimate goal is to determine what kinds of homes fall into different ranges of interest. Using Python, the csv library, and a custom ADT (that you’ll design), you’ll implement multiple distinct search algorithms as you create a program that allows your client to run many queries— and be fast and efficient, despite the large size of the dataset.
skills learned: design an ADT that abstracts over a dataset and implement it for sorted and unsorted Python lists as well as balanced and unbalanced binary search trees • implement a routine to search through the data • check the correctness of your code using provided unit tests
In this liveProject, you’ll utilize PyTorch and powerful semi-supervised learning techniques to construct an advanced image classifier that can tell whether a 32x32 pixel photo of a mole is melanoma-positive—despite working with a very small labelled dataset. You’ll set up your image preprocessing pipeline, feed data into your PyTorch model, and then train a semi-supervised GAN model on both labeled and unlabeled datasets.
skills learned: generative modeling with unsupervised GANs • semi-supervised learning with GANs
You’re a programmer at the RoboPrototypes company, and its “dribot”—a prototype of a robot that will serve drinks to customers at a food court—has been running into things (including the CEO’s shin). Using Gazebo 11 and RVIZ2, you’ll add LiDAR (light detection and ranging) and IMU (Inertial Measurement Units) sensors that will provide a view of the environment from the robot’s perspective. To make the most out of the sensor data, you’ll fuse information from multiple sensor sources to better estimate where the robot is in the world.
The version of Gazebo used in this project reached end of life in January 2025.
skills learned: basics of sensors (encoders, IMUs, LiDARs, ultrasonic sensors) • URDF/XACRO • create a robot description • simulate sensors • sensor fusion
In this liveProject, you’ll step into the role of a Natural Language Processing Specialist working in the Growth Hacking Team of a new video game startup. Your team wants to massively accelerate your company’s early growth by acquiring huge numbers of customers at the lowest possible cost. To help tailor marketing messages, your boss has asked you to map the market and find out how customers evaluate your competitors’ products. Your challenge is to create a sentiment analyzer that will give a deeper understanding of customer feedback and opinions. To do this, you’ll need to download and create a dataset from Amazon reviews, build an algorithm that will determine whether a review is positive or negative, evaluate your analyzer's performance against star ratings, and lay out your findings in a report for your manager.
skills learned: perform sampling from imbalanced data • dictionary-based sentiment analysis • analyze reviews with deep learning • compare classifier performance
The company you work for, which provides a news feed aggregator, is plagued with an influx of hoaxes that are putting its reputation in jeopardy. The data science team has already trained a set of complex natural language processing (NLP) models to distinguish real news from fake news. Your task is to build a service, using Ray, that exposes the endpoint that returns the JSON object categorized as either a hoax or news. Then, you’ll optimize the service for performance and speed, enabling it to perform more parallel operations and use as many GPUs as possible. When you’re finished, you’ll have firsthand experience using some of Ray Serve’s advanced features for serving and optimizing a compound model—and you’ll have kept your company’s reputation safe.
skills learned: use Ray Serve • use FastAPI • NLP text preprocessing • use Hugging Face transformers to transform text
Step into the role of a machine learning engineer working for a healthcare company that provides software to hospitals. One of your clients, a national health provider, has asked your company to provide software that predicts heart failure in patients. Using scikit-learn, you’ll develop a model that uses linear regression on a public Kaggle dataset containing heart failure data. Using Ray Serve, you’ll first deploy a function that accepts a wide range of parameters, then serve your model and provide functionality for multiple concurrent requests. When you’re done, you’ll have learned to use the Ray framework to serve your model through a webpage and helped your client save lives by using its patients’ parameters to predict imminent heart failure.
skills learned: use Ray Serve • use FastAPI integration with Ray • deploy a scikit model with Ray Serve
Imagine that you’re a programmer hired by a shop to build a basic digital infrastructure. In this liveProject, you’ll use Julia to create a simple stock tracker that implements the four steps of the shopping process. You’ll start by building a structure for your shop, then you’ll write a function to manage inventory delivery as well as one to keep track of items sold. You’ll wrap up by creating a function to handle cash transactions. When you’re done, you’ll have hands-on experience using basic Julia tools including functions, arrays, and dictionaries, as well as more advanced tools such as multiple dispatch and composite types.
skills learned: basics of Julia • functions • dictionaries • structs • properties
Keep tabs on your robot. RoboPrototype, the company you work for, is preparing to demo its autonomous beverage delivery robot for investors in a food court next month. Your CEO has tasked you with setting up SLAM (Simultaneous Localization and Mapping) on the robot, making it possible to locate the robot at all times. Using the Slam Toolbox, you’ll equip the robot with the ability to create a map of its environment as well as pinpoint its location on the map. You’ll also get firsthand experience mapping on real data captured on a Turtlebot3 Burger, a widely used mobile robot platform.
The version of Gazebo used in this project reached end of life in January 2025.
skills learned: map with slam_toolbox • localization with slam_toolbox • SLAM in the bag
In this liveProject, you’ll build a two-player version of the card game Slap that can be played from the command line. To code this game, you’ll use algorithms, object-oriented programming concepts, and event listeners. You’ll gain hands-on experience importing modules, creating classes, defining methods, and using other principles of object-oriented programming.
skills learned: algorithmic design • software design • event listening • error handling • assertions • exceptions • modularizing code • debugging • pynput
The real estate developer you’re working with wants a program that can non-interactively read, sort, and write out the sorted data to a new file. In this liveProject, you’ll create this new program using the csv, abc, and time libraries. But instead of relying on Python’s built-in lists, you’ll implement the program with your own custom lists and sorting routines—gaining hands-on experience working with commonly used data structures and algorithms, demystifying all the work Python does for us and impressing your client, all at once!
skills learned: define an abstract data type (ADT) • define a linked list • implement sorting algorithms • perform algorithmic time complexity analysis
In this liveProject, you’ll use the DistilBERT variation of the BERT Transformer to detect and block occurrences of spam emails in a data set. You’ll utilize binary classification to determine whether an email is spam, or legitimate. The DistilBERT model uses knowledge distillation to highly reduce the size of the transformer model, thus optimizing time and resources. You’ll learn to use the HuggingFace library to load your data set, and fine-tune it to your task with PyTorch Lightning. You’ll also explore alternative training approaches that utilize novel APIs in the transformers library to fine-tune pre trained DistilBERT models. Every part of an NLP pipeline is covered, from preprocessing your data to remove symbols and numbers, to model training and validation using F1-scoring to assess the robustness of your pipeline.
skills learned: loading and configuring pretrained DistilBERT model using Hugging Face • building and training a text classifier using PyTorch Lightning • validating the performance of the model and quantifying the results
In this liveProject you’ll develop a chatbot that can summarize a longer text, using the HuggingFace NLP library. Your challenges will include building the task with the Bart transformer, and experimenting with other transformer models to improve your results. Once you’ve built an accurate NLP model, you’ll explore other community models and integrate your summarization task with a chatbot.
skills learned: use a transformer to create a summarization tool • experiment with different summarizers models • build a chatbot using the Hugging Face library to summarize Wikipedia articles
Text summarization is a powerful data science technique. It allows vital high-level information to be automatically extracted from reams of text data, without any slow and expensive human analysis.
In this liveProject, you’ll master text summarization techniques for summarizing news data by building a tool that can extract key information about COVID-19 from news articles using the PyTorch deep learning library. Your challenges will include cleaning your data set, building an attention-based deep learning model, and evaluating the success of your model using TensorBoard and ROUGE scores.
skills learned: deep learning for NLP • model visualization with TensorBoard • sequence-to-sequence modeling • text summarization with attention techniques
News Media Corp needs to be quick if they want to get ahead of their competitors. Their current news frontpage is put together manually, in a time consuming process where human editors create flashcards that summarize articles. It’s too slow—so senior management wants to supercharge the process using natural language processing. To get this built, they’ve turned to you. Your challenge in this liveProject is to create an NLP model that can reduce turnaround time for news editors with an automatic text summarizer. To do this, you’ll need to prepare and process your dataset with tokenization and padding, extract meaningful statistics from it, and finally use your dataset to train a deep learning model that can speedily summarize a body text.
skills learned: convert an abstractive text summarization dataset to an extractive one • train a deep learning model to perform extractive text summarization
In this liveProject, you’ll create a product recommendation engine for an online store using collaborative filtering techniques from the Surprise library. You’ll work with Amazon review datasets to create your data corpus, and identify which would be best for a collaborative filtering recommender. You’ll then use two different approaches—neighbourhood-based and matrix factorization—to implement different solutions to the rating matrix completion problem. You’ll learn how to select and clean the necessary data for these different approaches. When you’re finished, you’ll have built a system that can predict the rating for a product a user has not yet purchased.
skills learned: selecting, cleaning and choosing data for collaborative filtering • neighborhood and model based collaborative filtering techniques with the Surprise library
Mount a targeted attack! Your goal is to mislead an existing DL model into predicting a specific incorrect target class. First, you’ll load your dataset, learn its structure, and examine a few random samples using OpenCV or Matplotlib. Next, you’ll prepare your dataset for training using NumPy. Then you’ll generate malicious input using three different classes from the highly popular CleverHans attack library. Finally, you’ll enlist NumPy again to evaluate the success ratio of your attacks.
skills learned: basics of targeted adversarial attacks (PGD, BIM and Carlini & Wagner) • Clever Hans attack generator
Logistica Transport is on the rise—and they need a new web app solution that can do what their old desktop app can’t. That app is almost ready, but it needs a final round of testing to make sure it’s ready to go to its users. That’s where you come in! You’ll learn to utilize mocks and stubs, as well as the Jest and React Testing Library, to spot errors and make sure the app is production-ready. You’ll even test and assess the app’s performance using BenchmarkdotNET.
skills learned: Visual Studio debugging tool • Testing applications • Checking application performance • Entering application accessibility features
In this liveProject, you’ll explore and assess essential methods for unstructured text search in order to identify which is the best for building a search engine. You’ll preprocess the data for this task using the spaCy library, and then experiment with implementing both a TF-IDF search and an inverted index search to find relevant information.
skills learned: apply Python’s spaCy library to perform essential natural language processing steps • compute TF-IDF tables and apply term frequency search to them • build an inverted index
Imagine you’re a consultant with a number of prestigious financial institutions on your client list. One of them has hired you to increase the accuracy of their model for predicting stock prices. You rise to the challenge, deciding on some classical time series models. But before you can propose a reliable model, you must decompose and examine the time series data in order to understand its pattern. Once you have a firm grasp on the data’s peculiarities, you’ll be ready to run the time series modeling.
skills learned: use Alpha Vantage API • explore data using ACF, PACF, and ADF tests • deal with non-stationary data
Forecasting is one of the most useful techniques a data scientist can bring to an organization. By making predictions from complex data, they can guide policy and resource management and allow businesses to plan and prepare for the future.
In this liveProject, you’ll take on the role of a data scientist who’s been tasked with forecasting the future consumption of an energy company’s customers. Energy consumption is seasonal and complex, and so you’ll be using the powerful Python ecosystem to tame your data and make your predictions. Your challenge is to use regression and time series techniques to forecast and visualize hourly energy usage for millions of customers, and present your findings in a clear report to allow your bosses to oversee resource allocation.
skills learned: visualizing complex relationships between variables and across time • build linear regression and time series models (exponential smoothing, ARIMA) with statsmodels • adding intervention terms to time series models
In this liveProject, you’ll combine the power of deep learning with probabilistic modeling. You’ll build a structural time series model that can develop probabilistic forecasts of hotel cancellations, and use this model to identify anomalies across your cancellation data. You’ll perform a similar analysis of an air passenger dataset, and then use Bayesian Switchpoint analysis to determine the approximate time interval in which searches for the term “vacation” declined.
skills learned: structural time series modeling • forecasting and detecting anomalies • conduct Bayesian Switchpoint Analysis
Now that you’ve detected the time series components and obtained the stationary data, you’re ready to move on to time series modeling. In this liveProject, your challenge is to determine which model will perform best for your client’s data. To do this, you’ll apply the classical moving average (simple MA and exponential MA), autoregressive (AR), and autoregressive integrated moving average (ARIMA) models. Then you’ll compare their performance using a visualization and performance metric, root mean square error (RMSE).
skills learned: model time series using moving average (simple MA and exponential MA), autoregressive (AR), and autoregressive moving average (ARIMA) models • visualize and compare performance using root mean square error (RMSE)
Tackle a fundamental step in many AI applications: building a simple image classification model. Using Convolutional Neural Network (CNN) layers, you’ll create this deep learning model for victims of adversarial machine learning attacks, train it on a publicly accessible traffic sign dataset, and implement it using Python.
skills learned: basics of OpenCV • CNN model building with keras
In this liveProject, you’ll explore a pre-made dataset of meteorological records. You’ll learn the shape, size and type of data at hand, and discover factors that affect rainfall. You use scikit-learn and logistics regression to make initial predictions about future rainfall, evaluate their accuracy, and visualize emerging patterns using Seaborn and Matplotlib.
skills learned: manipulate data and conduct exploratory analysis • input missing values • engineer outliers • evaluate predictions
You’re a data scientist at EKKo Inc., a machine learning consultancy that’s working on an embedded system to help deaf or hard of hearing people participate in online meetings and events on their mobile devices. To help the system recognize the hand gestures that represent the letters in American Sign Language (ASL), your task is to classify them using a convolutional neural network (CNN), an algorithm widely used for image processing applications.
You’ll write a Python script that preprocesses the ASL dataset, ensuring the model can interpret it. Using TensorFlow, a popular choice for such tasks, you’ll create and configure the CNN model. You’ll train the model and improve its performance by adding regularization to avoid overfitting, fine-tuning the learning rate (LR) to increase training speed, and introducing callbacks to monitor the training process. When you’re done, you’ll have firsthand experience using TensorFlow tools to configure various CNN hyperparameters, train a CNN onto an embedded board, and generate predictions from the CNN.
skills learned: preprocess the data • create and configure a CNN Model • use regularization to prevent overfitting • use learning rate (LR) to speed up model training• model training and introducing Callbacks
In this liveProject, you’ll create and train your deep learning model to predict where a new Airbnb listing will be priced above or below average pricing. You’ll put pandas, Keras, and scikit-learn into action, and master key deep learning techniques for tracking model performance. You’ll learn to harness callbacks in the Keras deep learning framework to make model training more efficient, and how to ensure consistent results in multiple training runs.
skills learned: use Keras to interface with TensorFlow • utilize Keras callbacks • track and assess model performance
You’re a data scientist at EKKo Inc., a machine learning consultancy that has won a contract to create an embedded system that can be implemented on embedded systems. This system will enable people who are deaf or hard of hearing to participate in online meetings and events. After setting up an environment for running ML programs on an embedded system, you’ll process data from the existing American Sign Language (ASL) dataset and build, train, validate, and analyze the performance of a logistic regression model. By the end of this liveProject, you’ll be able to install, configure, and deploy a basic logistic regression algorithm that’s capable of classifying the letters of the ASL image dataset.
skills learned: hardware and software environment setup • basics of how neural networks function • data preprocessing and splitting for training, validation, and testing
In this liveProject you’ll use human pose data and TensorFlow.JS’s PoseNet to build and train a machine learning model that can recognize workout exercises. This model will record and recognize the workout session of a user, to be logged for future comparison. You’ll need to prepare data structures for the TensorFlow.js Dataset API, and execute one-hot-encoding with a simple mapping function. You’ll also define model architecture using the TensorFlow.js sequential API, and train your model using the fitDataset method. You’ll finish up by saving your trained model in local browser storage to allow for model reuse.
skills learned: creating new modules within a React app • cleaning up the data • preparing data for training
In this liveProject, you’ll use the popular deep learning framework PyTorch to train a supervised learning model on a dataset of melanoma images. Your final product will be a basic image classifier that can spot the difference between cancerous and non-cancerous moles. You’ll create a custom dataset class and data loaders that can handle image preprocessing and data augmentation, and even improve the accuracy of your model with transfer learning.
skills learned: PyTorch for deep learning on the GPU • image classification using deep convolutional neural networks • transfer learning to improve model accuracy
In this liveProject, you’ll train your model and build a scoring pipeline using an ML feature store. You’ll explore a sample data set for diagnosing diabetes, generate new features and store them in a feature store, train and retrain ML models, and build a scoring process. You’ll employ common feature engineering techniques to train the model, then test and retrain it as needed. You’ll also work on setting up a scoring pipeline, and brainstorm ML development using a feature store. In this project, you will learn how to store the features for a machine learning model so they can be reused in other machine learning projects.
skills learned: generate new features and store them in a feature store • train and retrain ML models • build a scoring process
In this liveProject, you’ll train and evaluate a machine learning model for diagnosing diabetes, and set up a pipeline for your model to run effectively. You’ll start by exploring sample data, processing features, and performing common feature engineering techniques for treating outliers or missing data. After dividing your dataset into training and testing data, you’ll train a logistic regression model using scikit-learn. You will then retrain the model with a different set of features. Finally, you’ll pick a model for scoring and build a scoring pipeline. You will test your scoring process on a scoring dataset.
skills learned: classification with logistic regression • ML pipelines with scikit-learn • generating model pickle files with Joblib
EKKo Inc., a machine learning consultancy, is working on an embedded system to enable deaf or hard of hearing people to participate in online meetings and events on their mobile devices. Your task as a data scientist is to optimize this system. Using the model optimization toolkit for TensorFlow, you’ll train a CNN model with an existing American Sign Language (ASL) dataset and convert it to TFLite format to reduce the code footprint. You’ll optimize it further using quantization, drastically reducing size and CPU consumption while maintaining model accuracy. Using batch normalization to decrease the number of training cycles, you’ll significantly speed up the CNN model’s training process. Lastly, you’ll integrate the quantization changes you’ve made by compiling and training the CNN model. When you’re finished, you’ll have a fully functional quantized CNN that can be run successfully on an embedded device.
skills learned: post-training quantization using tf-dataset • quantization awareness training and JIT • batch normalization for quantized model
In this liveProject, you’ll fill the shoes of a developer for an e-commerce company looking to build a machine learning solution to help identify bad product reviews. If one of your company’s products receives too many bad reviews, it’s policy to take it down from the e-commerce store. Until now this process has been manual—but your boss has decided that this is too expensive and time-consuming.
Your mission is to automate this process, dramatically increasing the speed of identifying bad reviews, and decreasing the cost to your company. To complete this project you will have to train a machine learning model to recognize and rank positive and negative reviews, expose this model to an API so your website and partner sites can benefit from automatic rankings, and build a small webpage that can run your model for demonstration.
Updated March 2022
skills learned: use an existent sentiment classification API • create a web API to expose an ML model • build a simple demo website
In this liveProject, you’ll take pretrained VGG16 and ResNet models from the Python Keras library and train them further upon your medical image dataset of X-ray and CT scans. This transfer learning is a highly effective technique for quickly generating reliable machine learning models when you only have a small data set. You’ll experiment with the Keras loss functions to determine which are best for COVID image classification, and check your training and prediction times as a critical parameter of real-world applications.
skills learned: use transfer learning for training VGG16 and ResNet models in Keras • deploy VGG16 and ResNet models for training on DICOM images • train VGG16 and ResNet models on two different types of medical image datasets
In this liveProject, you’ll use transformer-based deep learning models to predict the tag of Reddit subreddits to help your company understand what its customers are saying about them. Transformers are the state of the art, large-scale deep language models pretrained on a huge corpus of text, and are capable of understanding the complexity of grammar really well. You’ll train this model on your own data set, and tune its hyperparameters for the best results.
skills learned: model monitoring • transfer learning using state-of-the-art NLP model • model diagnostics
In this liveProject you’ll develop a chatbot that can translate user messages, using the Hugging Face NLP library. Your challenges will include building the task with the T5 transformer, and build a Translation task considering different languages with mBART. You’ll classify the language of users' messages, and integrate your translation task with a chatbot.
skills learned: using a transformer to create a translation tool • build a chatbot using Hugging Face library to translate user messages from foreign languages to English
Once you’ve handled the data, the real magic can begin! In this liveProject, you’ll implement a basic recommendation system using the TensorFlow Recommenders framework—designed specifically for this purpose. First, you’ll calculate four baselines that your future models will have to beat. Next, you’ll learn the basics of developing a model using TensorFlow Recommenders, then design a simple, two-feature Two Towers model. Lastly, you’ll enhance this simple model by adding all the features you created in the previous liveProject while maintaining model performance that beats your four established baselines.
skills learned: discover useful baselines • compute baselines and set minimum requirements to future models • implement and train a recommendation system using the TensorFlow Recommenders framework
In this liveProject, you’ll use Docker, the Docker compose command line, and Bootstrap to construct an easy-to-use UI for your search engine. You’ll work to set up a single node Elasticsearch cluster, before putting together your Bootstrap UI, and then create a customized Docker image of the Flask API that serves your transformers model and frontend.
skills learned: packaging and deploying with Docker • search and indexing with Elasticsearch • building APIs with Flask
In this liveProject, your task is to help fight a (fictional) global pandemic. You’ll gain hands-on experience plotting in Julia as you estimate new cases per day. You'll understand the affect of several measures through plot-analysis and basic time-series forecasting. Finally, you'll deduce what the best measures are, determine and predict their effects, and report your findings to decision-makers.
skills learned: plot in Julia • visualize data • manipulate data with dataframes
Play the villain! Your goal is to mislead an existing DL model into incorrectly predicting the pattern. First, you’ll load your dataset, learn its structure, and examine a few random samples using OpenCV or Matplotlib. Using NumPy, you’ll prepare your dataset for training. Then, it’s attack time: Using FGSM and PGD, you’ll generate malicious inputs for the model in an effort to predict any class other than the correct one. Finally, you’ll enlist NumPy again to evaluate the success ratio of your attacks.
skills learned: basics of untargeted adversarial attacks (FGSM, PGD) • create an attack generator (Adversarial Robustness Toolbox - ART)
In this liveProject, you’ll take on the role of a data scientist employed by the cybersecurity manager of a large organization. Recently, your colleagues have received multiple fake emails containing links to phishing websites. Phishing attacks are one of the most common—and most effective—online security threats, and your manager is worried that passwords or other information will be given to an attacker. You have been assigned the task of creating a machine learning model that can detect whether a linked website is a phishing site. Your challenges will include loading and understanding a tabular dataset, cleaning your dataset, and building a logistic regression model.
skills learned: work on tabular datasets with pandas and NumPy • build a logistic regression classifier • use machine learning for security
In this liveProject, you’ll jump into the role of a data scientist working for an online bookstore. Your boss wants you to build a new recommendation system to help the marketing team match customers with a book that suits their interests. As the backbone of this new system, you’ve decided to create a graph network that will plot and analyze the relationship data of your platform’s users. To do this, you’ll need to import your data into pandas and transform it into an edge list, then build a network from the list. Once that’s accomplished, you’ll visualize and analyze the list to check its accuracy before you present your results as a web application that’s easy for the non-technical marketing team to use.
For this liveProject, you’ll be provided with real customer data from manning.com!
skills learned: data manipulation and analysis with pandas • building networks with Python • visualizing and analyzing graph networks
Now that you’ve tackled volatility modeling in a traditional way, in this liveProject, your employer has challenged you to uplevel your volatility modeling by taking a more dynamic, data-dependent approach. By the end of this project, you’ll have firsthand experience modeling volatility using support vector machines with different kernels, neural networks, and deep learning models. What’s more, you’ll have the skills to determine if the machine learning-based models outperform the traditional parametric models.
skills learned: volatility modeling usingvolatility modeling using using support vector machines with different kernels, neural networks, and deep learning models using support vector machines with different kernels • neural networks • deep learning models
In this liveProject, you’ll follow research laid out in a groundbreaking paper and work with algorithms that can take the aesthetic style of one image and apply it to another. You’ll use convolutional neural networks and transfer learning to build a simple image classifier and implement a neural style transfer. You’ll use TensorFlow and Keras to build your networks, Matplotlib and keras-vis to visualize them, and scikit-learn to analyze your results.
skills learned: convolutional neural networks with TensorFlow and Keras • analyzing model performance with scikit-learn • visualizing filter and class maximizations with keras-vis
In this liveProject, you’ll go hands-on with supervised learning methods for anomaly detection. You’ll explore an imbalanced dataset of seismic activity. To balance this dataset you will utilize the SMOTE and ADASYN oversampling algorithms to both generate synthetic examples of the minority class and then compare performance using random forest, logistic regression and Naive Bayes binary classification algorithms.
skills learned: run SMOTE using the imblearn library • run ADASYN using the imblearn library • analyze data using scikit-learn
In this liveProject, you’ll use scikit-learn and the PyOD library to build an unsupervised machine learning model for detecting hyperthyroidism. PyOD is a Python toolkit for detecting outlying objects in multivariate data. You’ll compare performance between four different anomaly detection methods on a specialized thyroid dataset: PCA, Clustering-Based Local Outlier Factor (CBLOF), Histogram-Based Outlier Score (HBOS), and KNN algorithms.
skills learned: anomaly detection through PCA • anomaly detection through Clustering-Based Outlier Factor • anomaly detection through Histogram-Based Outlier Detection • anomaly detection through KNN
In this liveProject, you’ll explore a dataset with more variables and use scikit-learn and the PyOD library to build an unsupervised machine learning model for detecting cardiac arrhythmias. You’ll develop an algorithm which will detect arrhythmias from device data like EEG, using the Locally Selective Combination in Parallel Outlier Ensembles (LSCP) algorithm. A LSCP model accepts input as various other algorithms, and can be used to set up detectors with different settings.
skills learned: load MATLAB data in Python • run anomaly detection algorithms in PyOD • use the LSCP algorithm in PyOD in order to detect anomalies
In this liveProject, you’ll play the part of a freelance consultant who’s been hired to assess a company’s financial risk. Using the traditional volatility modeling packages ARCH and GARCH, you’ll model the volatility of S&P-500 stock prices—a good proxy for the entire financial market—and measure model performance. Then, you’ll optimize the model parameters using information criteria such as Bayesian Information Criteria (BIC). When you’ve completed the project, you’ll have a solid understanding of the logic of these traditional models and be ready to apply it to other models.
skills learned: volatility forecasting in financial modeling using ARCH and GARCH • optimizing financial model parameters using BIC
In this liveProject, you’ll utilize undersampling techniques to balance out a seismic activity dataset. To balance this dataset, you will utilize the ClusterCentroids, NearMiss and CondensedNearestNeighbor algorithms to downsample the majority class. Then, the performance is compared using random forest, logistic regression and Naive Bayes binary classification algorithms.
skills learned: run ClusterCentroids using the Imblearn library • run CondensedNearestNeighbor using the Imblearn library • run NearMiss using the imblearn library
In this liveProject, you’ll explore the basics of anomaly detection by analyzing a medical dataset using unsupervised learning. You’ll create a model that can determine whether patients referred to a clinic have abnormal thyroid function. To accomplish this, you’ll download and prepare your dataset, and then utilize scikit-learn to compare different anomaly detection algorithms to find the most effective. You are going to use Isolation Forest, the Local Outlier Factor (LOF), One-Class SVM and Robust Covariance.
skills learned: run robust covariance with scikit-learn • run isolation forest with scikit-learn • run the LOF algorithm with scikit-learn
In this liveProject, you’ll help out a new Python developer with some mysterious bugs in their code. To unravel their issues, you’ll explore two different models for the behavior of Python variables and write some code that will either support or refute those models. This will help you reason about how variables behave in Python in regards to both mutable and immutable objects.
skills learned: understanding variables and whether they are containers or labels • using the id() function
In this liveProject, you’ll harvest customer opinions about your company’s products from the comments left on the subreddit for your company, and store them in a database for future analysis. You’ll connect to the Reddit API, identify and clean up the data fields you need, and store the data into MongoDB.
skills learned: clean and filter for necessary data from JSON • save data into MongoDB in an organized manner • query the database for simple analytic tasks
In this liveProject, you’ll build a fun (and useful!) data analysis tool that can determine which day of the week is the best to Tweet. You’ll test the hypothesis that Friday is the best day for engagement by calculating the p-variables and interpreting the results. You’ll utilize common techniques such as the permutation test and bonferroni correction to see if your hypothesis is accurate—essential skills for any data scientist.
skills learned: using Python fundamentals to set up environments to test hypotheses • using Pandas and NumPy for for data operations • doing permutation test for calculating p-values
In this liveProject, you’ll stretch your Python data science skills by building a simulator for popular Blackjack variant game 21. You’ll design your simulation step-by-step, then use visualization techniques to interpret your findings. By the end of your project, you’ll have a winning strategy for playing card games and new skills with fundamental Python libraries like NumPy and SciPy.
skills learned: simulating real-life game environments in Python • using NumPy and SciPy for mathematical operations • visualizing results with Matplotlib and seaborn
In this liveProject, you’ll use Python to create a command-line version of the classic guessing game 20 Questions. In your version of the game, the computer will have up to twenty chances to guess what animal the player is thinking of. You’ll use Jupyter notebooks to code your program and define functions that build a knowledge base in real time. Then, you’ll test and debug your code by playing against the computer.
skills learned: data processing • user input • randomness • data filtering • CRUD operations • modularizing code • debugging
ABC Bikes Inc. is considering launching a bike rental service in your area. As the company’s data analyst, your task is to provide decision-driving insights on bike rental trends. You’ll extract the relevant data from a publicly available dataset into a pandas data frame. Then, using Python plotting library Matplotlib, you’ll create line plots to visualize changes for bike rentals on a single day as well as over a specific time period, create a grouped bar plot to visualize a comparison of renting data for two years, create subplots with different chart types, and create a violin plot to visualize renting patterns over four seasons. When you’re done, you’ll know how to use Matplotlib to create accurate and informative 2D visualizations.
skills learned: use import statement to load required libraries and modules into Jupyter Notebook • use pandas functions to read data from CSV files into a data frame object • use pandas functions to subset required rows and columns for plotting • use Matplotlib API/functions to create, customize, and save plots
In this liveProject, you’ll take on the role of a machine learning engineer at a healthcare imaging company, processing and analyzing magnetic resonance (MR) brain images. Your current medical image analysis pipelines are set up to use two types of MR images, but a new set of customer data has only one of those types! Your challenge is to build a convolutional neural network that can perform an image translation to provide you with your missing data. You’ll do this using the deep learning framework PyTorch and a large preprocessed set of MR brain images. The company also wants to make sure your image translation convolutional neural network reliably produces the desired MR image, so you will need to provide qualitative and quantitative results demonstrating your method’s effectiveness.
skills learned: train a neural network for a regression task • build a CNN • handle and visualize medical imaging data
ABC Bikes Inc. is considering expanding its bike rental service to a new county. Your job, as the company’s data analyst, is to determine factors that impact the demand for rental bikes in that area. You’ll extract the relevant data from a publicly available dataset into a pandas data frame. Then, using Matplotlib’s mplot3d toolkit, you’ll plot 3D graphs to simultaneously visualize more than two data features, enabling you to determine useful patterns including how temperature, time of day, and month of year impact bike rentals. When you’re finished, you’ll know how to use Matplotlib to create, customize, and rotate your 3D plots to gather useful and interesting insights.
skills learned: visualize on 3D scatter plot and 3D surface plot • interactive visualization
QryptoTremolo, a startup that’s developing a set of next-generation financial services, has hired you to help upgrade its security. The company has set up an organizational AWS CloudTrail, which deposits all the events of QryptoTremolo’s AWS control plane, as well as some data plane, in an S3 bucket within the security account. But the events are stored in a form that doesn’t lend itself well to forensic queries. QryptoTremolo has chosen AWS Athena as a query-friendly solution. Your task is to configure AWS Athena to allow for sending advanced forensic queries to an S3 bucket filled with organizational CloudTrail events. You’ll learn how to create forensic SQL queries and issue them in a performant way across all accounts in the organization.
skills learned: Athena • AWS CloudTrail • Boto
In this quick liveProject, you’ll develop a low-resource way to add a background to a green screen video using thresholding. You’ll read the frames of a green screen video, perform thresholding to separate the green screen background, apply the new background image, and write the revised frames to a new video.
skills learned: reading and writing videos • using binary thresholding
In order for the Llama-based chatbot app to answer chemistry questions reliably and without hallucination, you need to ground and supplement it with facts and knowledge. That’s why your local school district has tasked you with using RAG (Retrieval Augmented Generation) to help improve the capabilities of the chemistry chatbot app. RAG allows an LLM to search a knowledge base to help answer questions, avoiding unfortunate hallucinations. You’ll create a vector database for chemistry textbooks as the knowledge base, establish an RAG API server for the chatbot, and then deploy your new bot to both the web and Discord.
skills learned: Create embeddings from a body of text • store embeddings in a vector database • build a RAG LLM application • create a Discord chatbot
Protect your model by implementing adversarial training, the easiest method of safeguarding against adversarial attacks. You’ll load your dataset, learn its structure, and examine a few random samples using OpenCV or Matplotlib. Using Numpy, you’ll prepare your dataset for training, then you’ll use FGSM to generate malicious input for both untargeted and targeted attacks on a trained DL model. For each type of attack, you’ll evaluate your model before and after you apply adversarial training-based mitigation methods, gauging the success of your defense.
skills learned: basics of adversarial training · iterative retraining with Keras • CleverHans attack generator
Machine learning and the growing availability of diverse financial data has created powerful and exciting new approaches to quantitative investment. In this liveProject, you’ll step into the role of a data scientist for a hedge fund to deliver a machine learning model that can inform a profitable trading strategy.
You’ll go hands-on to build an end-to-end strategy workflow that includes sourcing market data, engineering predictive features, and designing and comparing various ML models. Throughout the liveProject you will work with libraries and tools from the industry-standard Python data ecosystem. You’ll tackle challenges such as training a regularized linear regression model, tuning a gradient boosting ML model, and evaluating the performance of your strategy—all essential skills for success in this highly lucrative area of machine learning.
skills learned: engineer financial features • build and test fundamental and advanced ML models to predict asset returns with scikit-learn and LightGBM • develop a trading strategy by defining rules that translate model predictions into trades
Feature extraction is an essential part of detecting deepfake videos. In this liveProject, you’ll analyze both deepfaked and real video data in order to determine what features are common in faked videos. You’ll then compute those features for faces detected in the videos to determine which are fake and which are real.
skills learned: understand the differences between deepfake faces and real faces • compare images and their histograms
You’re a data scientist at Finative, an environmental, social, and governance (ESG) analytics company that analyzes a high volume of data using advanced natural language processing (NLP) techniques in order to provide its clients insights for sustainable investing. Recently, your CEO has decided that Finative should increase its own financial sustainability. Your task is to classify sustainability reports of a publicly traded company in an efficient and sustainable way.
You’ll learn the fundamental mathematics—including backpropagation, matrix multiplication, and attention mechanisms—of Transformers, empowering you to optimize your model’s performance, improve its efficiency, and handle undesirable model predictions. You’ll use Python’s pdfplumber library to extract text from a sustainability report for quick delivery to your CEO. To further increase efficiency, you’ll save training time by using a language model that’s been pre-trained with ESG data to build a pipeline for the model and classify the sustainability report.
skills learned: understand the attention mechanism (Transformers) • build a model pipeline with Hugging Face • extract and prepare data from PDF files
In this liveProject, you’ll turn your data science skills to analyzing an OTC network dataset scraped from bitcoin users in order to establish the most (and least!) trustworthy users. You’ll analyze a provided graph dataset, visualize it, generate features, and then create user clusters. You’ll start out by reading and examining the trust network dataset in Python, then create and interpret user clusters, and finally visualize the nodes and edges of the network dataset. This fast and engaging data science project will stretch your skills and build your knowledge of clustering.
skills learned: pandas for data operations • scikit-learn for clustering • NetworkX to analyze and visualize network datasets
In this liveProject, you’ll use LynxKite and graph data techniques to identify some of the most important geographic points in the city of Bruges. You’ll start by downloading and processing map data, and then use a simple Python program to convert it into a graph. You’ll use graph centrality metrics to quantify the importance of vertices in your graph, and determine some of Bruges’ important locations. You’ll then use the same structure to figure out the main areas of the city without using actual district data.
skills learned: convert map data to a graph representation • visualize graphs • compute and use common centrality metrics
GitHub is stuffed full of free and open-source development tools, all with no guarantee that they’re stable, up-to-date, or even still maintained! Companies need a way to ensure that the GitHub projects they’re adopting come with a clean bill of health — and for that, they turn to you!
You’re the CTO of GitHub Health, a unique startup that provides reports and analysis of GitHub software projects. But your findings aren’t based on gossip, they’re based on data. In this liveProject, you’ll build a serverless data system that can extract meaningful data from GitHub, store it in a database, and display the statistics using Google Cloud. Once you’re done, you’ll generate a report for a new client on which of three open-source projects is the best choice for its new DevOps team.
skills learned: serverless data extraction • storage and presentation within Google Cloud
In this quick liveProject, you’ll develop a selfie enhancement application to build awareness of the importance of mask-wearing during a pandemic. You’ll use a laptop webcam to capture a user’s selfie, load a face mask image with a transparent background, and apply the face mask onto the image at the location selected by the user.
skills learned: tracking mouse events • using bitwise operations • saving images
In this liveProject, you’ll build a machine learning system based on the Arbitrage Pricing Theorem (APT) that can create a diversified investment portfolio designed to avoid risks. APT allows you to model the effects of different scenarios on an investment portfolio, and you’ll test this theorem on a portfolio of social media companies. You’ll run analysis to estimate coefficients, and conduct sensitivity analysis to determine important macroeconomic factors. Finally, you’ll interpret your results to find out what issues your portfolio is the most sensitive to.
skills learned: risk management • multi-factor modeling • multivariate linear regression
In this liveProject, you’ll augment text-based training data for a sentiment analysis algorithm with artificially generated positive reviews. You’ll merge the synthetic positive reviews with an unbalanced dataset focused on negative reviews, thereby creating a balanced dataset for your model to train on. You’ll train your model, then evaluate its metrics using sklearn.
skills learned: merging training and synthetic data • building and training a text classification model • scoring text data with the model
In this liveProject, you’ll become a software engineer at InfoHub, an up-and-coming AI startup looking to revolutionize how companies interact with their knowledge bases. InfoHub seeks to utilize groundbreaking large language models to deliver a system whereby a user’s questions about company data can be answered through a Q&A-style language interface. You’ll begin by assisting them in creating this tool by processing, tokenizing, and converting data into embeddings with BeautifulSoup and tiktoken.
skills learned: use of embeddings with the OpenAI API for similarity search
In this liveProject, you’ll step into the boots of an investigator trying to find the anonymous author of a seriously defamatory blog post. You’ve narrowed down your list of suspects, acquired a dataset of writing samples, and now plan to find the culprit using a custom machine learning project. Your challenge is to build an authorship analysis model that will match a sample to the defamatory blogpost and reveal the guilty party. To do this, you’ll need to extract data from a corpus of documents, build a model that can learn authorship style, scale the model to handle hundreds of suspects, and finally develop a user-friendly program that will allow non-technical colleagues to make use of your findings.
skills learned: extract features from text using scikit-learn and spaCy • build a predictive classification model • visualize authorship styles with an interactive plot • incorporate your trained model into a user-friendly program
In this liveProject, you’ll utilize automated machine learning tools to help the data preprocessing and feature engineering for creating an image classification model. You’ll start with the basics of data preprocessing, and then see how useful AutoML solutions can make this process quicker and easier. The rewards are big, as properly preprocessed data can dramatically improve the outcomes of a deep learning project.
skills learned: implementing data preprocessing for image data • training deep learning models adopting the data preprocessing
In this liveProject, you’ll implement an AutoML pipeline using the AutoKeras functional API. You’ll make use of the built-in blocks in AutoKeras to conduct automated hyperparameter tuning and model selection for creating an image classification model. Your challenges will include customizing both a sequential AutoML pipeline, and customizing graph-structured AutoML Pipeline.
skills learned: implementing AutoML using the automated data preprocessing API and AutoKeras Task API • customizing sequential and graph-structured AutoML pipelines
As a member of the development team at Piper Data Concepts, you’ll carry out the final steps of a workflow-improvement project: enabling your client’s staff to gather workflow process information in real-time. Several prototypes have been built, and the client’s workflow is more resilient than ever. You’ll write Python code that consumes messages from Kafka and prepares them for storing in the database, create Postgres queries to access the aggregated data, and build reports in CSV files to be read by visualization tools—and ultimately, your client’s staff. When you’re done, your client’s modern system will provide a feedback loop, enable external API access to status updates, and be ready for more specialized services to be plugged in later, with no code changes.
skills learned: end-to-end pipeline • Kafka data into the database • web scraping • creating reports
In this liveProject, you’ll use the flexible Python language and SQLite database to develop a simple-but-useful document tracking tool for a pharmaceutical company. This sort of automation tool is in high demand from businesses that need to keep track of changes to their important documents. Your challenges will include creating and connecting to a local SQLite database, working with file information and MD5 hashes, and applying automation principles to your tool.
skills learned: walking directory trees • identifying files • calculating file MD5 hashes • working with SQLite • creating Excel reports with the openpyxl library
In this liveProject, you’ll take on the role of a cryptography expert evaluating quantum computing for the purpose of key distribution. Key distribution generates a random secret key which is then shared between only two parties, and is a crucial part of many cryptographic algorithms. You’ll work to implement the common BB84 key distribution, simulate using the BB84 protocol to generate a shared key, and then visualize the steps of the BB84 protocol.
skills learned: designing and writing simple Q# code • running simulations of quantum code using a full state quantum simulator • writing classical code in C# or Python that calls quantum code
In this liveProject, you’ll learn how to use the Task and Functional API of Keras to build an automated deep learning model for image classification. This AutoML approach will allow you to avoid time spent selecting and tuning your deep learning algorithms. You’ll work with the detailed CIFAR dataset of animal images which is easy to access through the TensorFlow Keras API.
skills learned: task and Functional API of AutoKeras • training deep learning models automatically with AutoKeras
In this liveProject, you’ll learn and apply some of the basics of deep learning in order to build the foundations of an AutoML image classifier. You’ll discover the basic deep learning models for image classification, and then experiment with tuning the hyperparameters of a convolutional neural network to improve your results.
skills learned: constructing deep learning models for image classification • search the hyperparameters of deep models with grid search and random search
In this liveProject, you’ll build a Bayesian dynamic linear model that can take account of sudden state space changes and rapidly react to dramatic trend changes. These trend changes could take many forms—from heightened demand during a major sporting event, to a global pandemic that causes cancellations to skyrocket. You’ll use the PyDLM library to generate forecasts that can dynamically adapt to the unforeseen, and quickly shift to making accurate predictions for a new reality.
skills learned: build a simple DLM model • build Bayesian dynamic linear models with the PyDLM library
In this liveProject, you’ll use PyMC3 to generate a posterior distribution of hotel cancellations. This will allow you to build a predictive model that can update its predicted probabilities by incorporating new information. You’ll master methods for modelling mean and standard deviations based on the selected prior values, generating distributions to determine if data follows an AR(1) process, modeling of stochastic volatility and generalized linear modelling with PyMC3.
skills learned: manipulating a dataset with pandas • probabilistic time series analysis with PyMC3 • generating posterior distributions • modeling autoregressive processes
Help Sneakers to the Max’s customers find the perfect sneakers! As a software engineer at the e-commerce company, your task is to improve its search engine—and hopefully sales—by fine-tuning the order of search results. You’ll adjust the index mapping to import data about sneaker release dates, popularity, and in-stock status. Then, you’ll write extensions to the Elasticsearch queries that boost recent and popular results, forcing out-of-stock sneakers lower. Finally, you’ll use everything you learned to return the most relevant sneakers using a judgment list provided by the product managers. When you’re finished, you’ll have the skills to enhance Elasticsearch queries, while Sneakers to the Max’s customers will easily find the perfect pair.
skills learned: analyze the results of different boosting mechanisms and tune them to work together
In this liveProject, you’ll use machine learning to construct a contact tracing network for COVID-19 using location recordings from smart phone data. You’ll read the location of infected individuals, and generate a contact network of individuals who have been within two meters. Once you’ve established this tracing system, you’ll implement a distributed algorithm that can compute the average infection rate for each connected component of the contact network.
skills learned: reading in location recordings from a CSV file • determining geodesic distances between locations • implement a simple algorithm that computes a summary statistic of networked data
In this liveProject, you’ll build a ResNet deep learning model from scratch to analyze medical imagery. A ResNet is a deep neural network model which uses "Residual blocks" and "skip connections" to reduce the need for very deep networks while still achieving high accuracy. You’ll then train your model on X-ray and CT datasets, and plot validation loss, and accuracies vs. epochs. You’ll build an important familiarity with the functional blocks of a DL model, how data must be formatted, and which layers to use to solve your problems.
skills learned: build a ResNet deep learning architecture with basic functional components in Keras • train ResNet model hyperparameters on two different types of medical image datasets (X-ray, CT) • tune ResNet model to improve performance
You’re a consultant working for Messflix Inc., a movie and TV-show streaming platform. Your task is to set up a Python prototype implementation of the data mesh to roll out the technical components of a data mesh. Using Python and pandas, you’ll write a Python function that creates an empty CSV file with the predefined attributes of your data product, builds a data catalog by creating Python functions that write to the CSV file, and sets up standardized access to the CSV datasets. When you’re done, you’ll have hands-on experience building a minimal self-serve data platform using simple techniques.
skills learned: build a self-serve data platform • build a small data catalog • consume data inside a data mesh • store data products
In this liveProject, you’ll build a VGG16 deep learning model from scratch to analyze medical imagery. A VGG16 is a deep convolutional network model which has shown to achieve high accuracy in image based pattern recognition tasks. You’ll then train your model on X-ray and CT datasets, and plot validation loss, and accuracies vs. epochs. You’ll build an important familiarity with the functional blocks of a DL model, how data must be formatted, and which layers to use to solve your problems.
skills learned: build a VGG16 deep learning architecture in Keras • use custom image data generators in Keras • train VGG16 model on two different types of medical image datasets (X-ray, CT) • tune VGG16 model hyperparameters to improve performance
In this liveProject, you’ll take on the challenge of designing and building a custom CLI using Python. Command line interface tools automate repetitive tasks and help streamline software development. Companies that use bespoke CLIs can easily manage change, smooth friction between teams, and reduce time spent on red tape.
You’ll join up with KlickBrick, a toy company whose digital expansion is grinding to a halt under mismanagement, and create a CLI framework that helps bring development teams together. You’ll need to assemble the infrastructure for your CLI, then develop functionality for onboarding employees, initializing new software project repositories, and reporting CLI usage metrics to a server.
skills learned: implementing an extensible CLI tool • translating business requirements into Integration Tests using the Behave framework • real-world software engineering practices for building a high-quality and maintainable software project
Recommender systems are one of the most popular and lucrative uses of machine learning, allowing businesses and organizations to give personalized suggestions to their customers.
In this liveProject, you’ll use common tools of the Python data ecosystem to design, build, and evaluate a movie recommendation model for the movie website. You’ll kick off your project by building simple genre charts, then work with existing movie rating data to implement personalized recommendations for each customer. When you’ve completed this hands-on and interesting project, you’ll have mastered a cornerstone technique of machine learning that’s in demand across companies and industries.
skills learned: load and analyze a dataset • train a machine learning model • evaluate a machine learning model • use a trained ML model on a website • collaborative filtering
In this liveProject, you’ll step into the role of a software developer at InfoHub, an AI startup attempting to build a chatbot that can answer queries about a company’s knowledge base. You’ve already built the basics of the chatbot—now it needs to be deployed! To do this, you’ll use the LangChain feature LangServe to create a LangChain server application. You’ll build your chatbot using Streamlit and then deploy it to the Streamlit cloud.
skills learned: create a chatbot using LangServe and Streamlit • deploy to the cloud through Streamlit Cloud
In this liveProject, you’ll step into the role of a natural language processing data scientist working for Stack Exchange. Stack Exchange runs a network of question-and-answer sites on diverse topics ranging from programming to cooking. Your boss wants you to create language models that are tuned to the statistical, probabilistic, and technical jargon present in different Stack Exchange sites.
Language is domain-specific—an insurance company’s documents will use very different terminology than a post on a social media site. Because of this, off-the-shelf NLP models trained on generic text can be inaccurate for specialized domains such as healthcare, legal, clinical, and agricultural language. Your goal is to build a language model capable of query completion and larger text generation for Stack Exchange sites. At the end of this project, you will be able to build the foundations of any domain-specific NLP system by creating a robust and efficient language model using statistical and deep learning techniques.
Updated: March 2022
skills learned: data manipulation with NumPy and pandas • text preprocessing with NLTK • train an RNN with PyTorch • score and evaluate language models
In this liveProject, you’ll bring together multiple tools and models to construct a production-grade smart search engine. You’ll combine off-the-shelf Elasticsearch models for keyword search with your own semantic search API using transformers. Start by setting up and indexing an Elasticsearch Docker container, then quickly move on to boosting search relevance with BERT. Finally, you’ll set up a Flask API to serve a BERT model and look into customizing your search engine for your own particular topics of interest.
skills learned: Packaging and deploying with Docker • search and indexing with Elasticsearch • building APIs with Flask
Putting machine learning into production can often be a complex task. The Kubeflow platform helps streamline this process with simple and scalable ML workflow deployment. In this liveProject, you’ll put Kubeflow into action to help your team roll out their new license plate recognition deep learning system.
You’ll help data scientist colleagues by standardizing their working environment, and automating away many tedious and error-prone tasks. Your challenges will include restructuring a complex deep learning project to make it Kubeflow-friendly, and developing reusable components that can be transferred to other machine learning pipelines.
skills learned: create a machine learning pipeline that is composable and scalable • structure a non-trivial ML project to make it Kubeflow-friendly • view training runs in Tensorboard • use Kubeflow Metadata to capture and locate generated data
Jenkins X helps supercharge your software delivery with both a CI/CD toolkit and isolated preview environments that let you test how your whole platform behaves with new features. In this liveProject, you will implement continuous integration and continuous deployment workflows by adding Jenkins X.
You’ll step into the role of a software engineer at Money FX, a Fintech company whose success rests in its speedy payment processing platform. You’ve been assigned the task of implementing a new strategic way to run platform tests as part of a CI/CD process, and you’ve decided to use Jenkins X to make this task easier. Your challenges will include moving the current service to Kubernetes, introducing Jenkins X to the testing process, validating the new workflow with code addition, and extending Jenkins X with a new pipeline.
skills learned: Jenkins X • CI/CD • Kubernetes • GitOps
You’ve been hired by QryptoTremolo, a startup that’s been developing a set of next-generation financial services, to lower the risk of security breaches. The company has chosen to develop and operate in AWS. Its development teams have had unrestricted access to the AWS accounts, and ad hoc development has evolved organically, increasing the risk for security breaches. To uplevel security in these accounts, you’ll deploy CloudFormation templates and develop a suite of automated pytest tests to verify their configuration. Next, you’ll build a CI/CD CodeBuild pipeline that triggers on infrastructure changes and deploys and tests the changes across the organization. This change control automation will enable you to respond quickly—and confidently—to changing business needs.
skills learned: AWS CodeBuild • AWS CodeCommit • StackSets • AWS CLI • pytest • CloudWatchEvents
In this liveProject, you’ll build a machine learning system based on the Capital Asset Pricing Model (CAPM) that can determine if certain stocks are over or undervalued, and the risk level of these stocks relative to the market index. CAPM is a powerful tool in finance due to its intuitive and easy-to-apply nature, and in this project you’ll use it to estimate coefficients, determine valuation accuracy, and finally find which stock promises the best risk-return relationship.
skills learned: risk management • valuation • univariate linear regression
You’re an enterprise architect for Padre Inc., which has acquired Tiddler Inc., an insurance analytics startup, for its SaaS platform. Since your company runs its cloud operations on AWS and the startup uses Google Cloud Platform, your task is to manage multi-cloud operations. As part of that effort, you’ll implement centralized logging to simplify log analysis across multiple applications. After exploring centralized logging using the ELK stack, you’ll create a centralized logging instance in Google Cloud Platform and stream the logs from AWS to Google Cloud. To signal the need for corrective actions, you’ll use Kibana to run queries against the log data and create an alert based on log events. When you’re done, you’ll have created a centralized logging flow that improves site reliability.
skills learned: Elasticsearch • Logstash • Kibana • AWS Cloudwatch • AWS Lambda
In this liveProject, you’ll take on the role of a full-stack developer working for a school district. Your district wants to further student learning by developing its own large language model (LLM) applications to assist students, parents, and teachers. Your goal is to develop an MVP of this by creating a chatbot that can answer questions and engage in follow-up conversations. You’ll utilize the open source Llama LLM from Meta AI to do this. Your model will need to run with very low resources—it needs to work on the school’s outdated computers—and be equipped with an intuitive user interface. Let’s get started!
skills learned: Quantize an open-source LLM • build and use prompts and prompt templates for a chatbot LLM • build a web UI for the chatbot
In this liveProject, you’ll analyze a data set of customers metrics to uncover patterns and behaviors that indicate customer churn. You’ll determine key details like rate of retention, and analyze your data to determine which metrics are associated with customers leaving and customers staying loyal. You’ll analyze how customer behaviors are related to one another, and see if you can expand on your datasets functionality to find new metrics that indicate churn.
skills learned: create a data set from raw data stored in a database • visualize how different customer metrics relate to the outcome of churn • analyze different customer behaviors
In this liveProject, you’ll develop a simple machine learning algorithm that can determine from data metrics which of your customers are likely to churn out of an online business. You’ll develop an XGBoost machine learning model and explain its predictions, then build a logistic regression statistical forecasting and analysis model to also predict churn. By the time you’re done, you’ll have two reliable and automated tools for spotting when customers are likely to leave so that your marketing team can easily intercede.
skills learned: XGBoost machine learning model churn forecasting • logistic regression model churn forecasting • explain machine learning model results
In this liveProject, you’ll write a Python class to manage network connections to your server. You want your class to track the port number and the connections, but instance data is, by definition, not associated with your class. Your challenge is to explore and determine the best ways to associate data with a class and learn how to use a class method.
skills learned: write a Python class to manage network connections • explore ways to access class variables • create class methods
In this liveProject, you’ll use the Julia language to build a classification-based machine learning model that can predict the salary of a customer based on their sociodemographic data. This model will then be used to serve premium advertising to wealthier customers. You’ll build and evaluate XGBoost models with the dedicated Julia XGBoost.jl package, tune the hyperparameters, and assess your model’s capabilities using ROC curve, and measures such as AUC, accuracy, recall, and precision.
skills learned: comparing distributions of predefined train and test data • building XGBoost model in Julia • evaluating classification model’s quality
In this liveProject, you’ll clean and analyze data scraped from Reddit to determine customer opinions of your products within a set time period. You’ll utilize common natural language processing techniques such as stemming, tokenization, and latent dirichlet allocation (LDA) to discover patterns in people’s opinions, and then visualize your results and summarize your findings.
skills learned: NLP preprocessing techniques such as stemming, n-gram, and removal of stop words using NLTK • visualize word cloud and top n-grams • perform topic modeling using LDA
In this liveProject, you’ll ensure that Qrypto Tremolo’s security team can make incremental, verifiable changes to its AWS CloudTrail configuration. To achieve this, you’ll develop a suite of automated tests and CI/CD CodeBuild pipelines to deploy and test changes across the organization.
skills learned: develop automated tests to verify the AWS CloudTrail configuration • develop a CodeBuild pipeline that will trigger on changes to the infrastructure as code
In this liveProject, you’ll build a movie recommendation system based on movies that your users have previously interacted with. This system is designed to boost engagement and keep your users on your site. You’ll develop a competitive array of similarity functions, and create your own recommender system based on these similarities. Finally, you’ll evaluate your system’s effectiveness and tune its parameters.
skills learned: read, process, and exploit user-item data • define and compute similarities between users and items using interactions • compute similarities between users and items in a recommender system
In this liveProject, you’ll build a movie recommendation system based on the content and metadata of movies in your system. This system is intended to maximize the satisfaction of your movie-watching users. You’ll start with an analysis to determine the content of your movies, then use that data to implement content-based similarities for both products and users. You’ll build and evaluate your recommender system based on these connections, till it’s the best it can be!
skills learned: define and compute similarities between users and items using content and metadata • define recommender systems based on the definition of when two users or items are close
In this quick liveProject, you’ll build a custom graphic design tool that can generate a matching RGB color palette for a chosen color. You’ll create a blank canvas using NumPy arrays, display images using OpenCV, track a user’s activity with mouse events and flags, and also handle keyboard input.
skills learned: creating NumPy arrays • displaying images using OpenCV • using mouse events and flags to track user's activity on display window • handling keyboard input
In this liveProject, you’ll close the gap between “data analyst” and “software engineer” by building a working data platform. You’ll join up with AnomalousDex Inc., a startup that specializes in personalized end-to-end data products, and create a working prototype of their anomaly detection platform to showcase to prospective customers. This requires connecting up multiple cross-discipline components, from data science to systems management.
This platform consists of three principal components: a service that serves the anomaly detection data model, the modeling platform, and a dashboard visualization tool. Your challenge is to develop all of these features, going hands-on with software architecture, data engineering, microservices, and dockerizing. You’ll also dive into the essentials of monitoring and metrics, and even train an unsupervised learning anomaly detection model!
skills learned: design a data platform architecture consisting of several Dockerized components • train an anomaly detection model with scikit-learn and deploy it in a web service • monitor the web service and anomaly detection model with Prometheus and Grafana
In this liveProject, you’ll use Keras to create a deep learning model for predicting basketball scores. Once your model is created, you’ll train it up on sample data and then validate your results to ensure it’s still accurate when applied to data from the real world.
skills learned: manipulate data with pandas • build a neural network with Keras • test and validate a neural network
E-commerce company Sneakers to the Max wants to strengthen its bottom line with an improved search engine that provides better and quicker results to customers. As a software engineer, your task is to create a structure for importing data into the search engine. You’ll write a Python script to import sneaker data into Elasticsearch. Next, you’ll create an index for the sneakers and use aliases to keep the data available while importing a fresh catalog. To verify your import and gauge the quality of your data, you’ll create a Kibana dashboard. Using Elasticsearch Bulk, you’ll improve the indexing performance of the sneaker data you need. When you’re finished, you’ll have created a complete structure for your imports that enables frequent, regular updates without downtime.
skills learned: import JSON objects from a file using standard Python language constructs • use Python built-in file IO mechanisms • interact with your Elasticsearch cluster using the Elasticsearch library for Python • verify if the import was run successfully using Kibana
In this liveProject, you’ll process raw data to make it ready for a machine learning model to diagnose diabetes rates. You’ll use feature engineering techniques to generate ML features from raw data. To make sense of your data, you will undertake data profiling, exploratory data analysis, analyze independent/dependent variables, and visualize data patterns. You’ll evaluate the correlation between dependent and independent variables to identify relevant features. You’ll even generate additional features as needed. Additionally, you will apply feature engineering techniques such as treating missing values and outliers to make your features ready for model training.
skills learned: use feature engineering techniques to generate ML features from raw data • data profiling, exploratory data analysis, analyze independent/dependent variables, and visualize data patterns • generate additional features
In this liveProject, you’ll use Python to build a command-line game that produces a cryptogram to decode. You’ll build a simple web scraper to pull data from a quotation website, then generate an encoded puzzle for the player to decipher. You’ll interact with a web server to create your game, using the Python library BeautifulSoup.
skills learned: web scraping • error handling • basic encryption • modularizing code • requests • BeautifulSoup4 • debugging • exceptions
Enter course descriptionA string of high-profile security breaches has been featured recently on the news, and QryptoTremolo doesn’t want to be the next headline. You’ve been hired by the startup, which is developing a set of next-generation financial services, to lower the risk of breaches and bring security controls to its AWS accounts. Leveraging pytest and Boto, you’ll develop and deploy a custom Config rule to look for peculiar misconfigurations or conditions that aren’t covered by AWS’s off-the-self managed rules.
skills learned: AWS Config rules • pytest • AWS Lambda Functions • Boto
In this liveProject, you’ll clean and process data from Manning’s liveBook platform and prepare it for investigatory analysis to discover causes of customer churn. You’ll load a raw data dump of customer behavior data into PostgreSQL for analysis, categorize and check the event records for bad data, and calculate a basic set of interpretable customer metrics. Some SQL skills and a little Python is all you need to produce a clean and easy-to-interpret data set of customer behavior.
skills learned: loading data into a database • design and calculate customer metrics • perform quality assurance analytics
In this liveProject, you’ll build an AutoKeras block for image classification to help tune a neural network and customize the search space. You’ll then combine the block you have created with other prebuilt AutoKeras blocks to put together a complete automated machine learning pipeline.
skills learned: customizing an AutoKeras block for CIFAR-10 image classification • designing a hyperblock for model selection
As a machine learning engineer in an online recruiting tech company or HR department of a large organization, your task is to address a lack of data, a common problem in data science projects. To solve this, you’ll create multiple tools to augment processed data, increasing its volume and learning essentials about probability distributions, random sampling, and OOP. Completing this project will enhance your data analysis and visualization skills, taking you further down the path to a career in data science.
skills learned: data augmentation for ML • deal with missing data with statistical modeling • build data augmentation tools with OOP
Imagine you’re a data engineer working at an enterprise. In this liveProject, you’ll set up a Databricks platform, creating clusters and notebooks, interacting with the Databricks File System (DBFS), and leveraging important Databricks features. You’ll also gain first-hand experience with Apache Spark—the world’s most widely used distributed processing framework—on tasks like reading the input data in CSV and JSON format, filtering, and writing the data to the data lake’s curated layer on DBFS.
skills learned: create clusters and notebook • interact with the Databricks File System (DBFS) • use Apache Spark to read input data in CSV and JSON format • understand the characteristics and importance of the first two layers of the widely used three-layer data lake design • use Databricks functionalities
Step into the role of a data engineer working at an enterprise. Your task is to build a data lake’s serving layer and ensure that business queries run on it in a matter of seconds. You’ll start with reading cleansed data that’s already sitting in the curated layer. Then you’ll transform it, enrich it, aggregate it, and denormalize it using Apache Spark. When you’re finished, you’ll have multiple output tables that make up the serving layer of the data lake.
skills learned: perform operations and transformations on data using multiple functions offered by Spark’s SQL module • use Spark’s UDFs to enrich data and process it in a user-defined way • compare the performance of different UDF-implementation approaches • understand the importance of the serving layer
In this liveProject, you’ll investigate seasonality in hotel cancellations by building an ARIMA model that can predict cancellations on a weekly basis. You’ll learn how to manipulate a dataset with pandas in order to form a weekly time series, before going on to make your first predictions.
skills learned: dataset manipulation with pandas • time series forecasting with pmdarima
Congratulations! You’ve just been hired as a data engineer for a mobile game development studio. The company’s modern data platform architecture includes an Amazon Athena data lake and an AWS Redshift data warehouse solution. Your task is to enable batch processing of revenue transaction data by creating an end-to-end data pipeline, connecting various data sources—including user engagement events, stage controls, and public chat messaging—to the lake house solution. Using AWS CloudFormation, you’ll provision the resources required for the data pipeline. You’ll connect a MySQL data source to the AWS S3 Data Lake and transform data in the data lake using Amazon Athena. You’ll wrap up the project by creating a dynamic analytics dashboard with AWS QuickSight. When you’re done, you’ll have built a batch-processing data pipeline, start to finish, using Amazon Athena.
skills learned: create a batch ETL pipeline from RDS (MySQL) to AWS S3 • extract and process data using AWS Lambda • run SQL queries programmatically in the cloud • create data environment configurations using YAML files • test AWS Lambda locally • create an optimized ICEBERG table in Athena
In this liveProject, you’ll design a movie recommendation system step by step, from initial development all the way to a production-ready system. You’ll begin with preparing the data, then you’ll analyze the data, and finally, you’ll preprocess and export it. Along the way, you’ll gain a firm understanding of the data and your users, which is key for developing a system that makes appropriate recommendations. While this liveProject doesn’t contain any machine learning, going through these steps will prepare you for feature engineering and hyperparameter tuning later on.
skills learned: parse and engineer features using built-in and external Python libraries • use NLP to prepare the data and design features’ vocabularies for future embeddings
In this liveProject, you’ll test your data wrangling and data processing skills using the Julia language. You’ll step into the role of a data scientist for a real estate company with a new task from your boss—analyze and clean housing and census data for the marketing and sales teams. You’ll employ the popular Julia package DataFrame.jl as well as powerful statistics related libraries to successfully explore these datasets, and prepare them for machine learning.
skills learned: tabular data ingestion and integrity validation • exploratory data analysis using descriptive and graphical techniques • feature selection and feature engineering
As a data engineer in an online recruiting tech company or a large organization’s HR department, you’ll build a series of practical tools to process and extract useful information from unstructured text data using NumPy. You’ll learn important methods (including trie data structure, TF-IDF, SVD), how to implement them, and their applications in the real world. When you’re finished, you’ll have the know-how to build data processing tools that meet the needs of machine learning engineers, data analysts, and product developers.
skills learned: extract features with NumPy • vectorize text with TF-IDF and SVD • compute similar items with embedded vectors
Nextstellar Corp has recently migrated to the cloud, and for the first time, they can analyze 100% of their company’s data. But there’s a problem: your CEO isn’t confident in your data’s quality. He wants to add more data sources and collect more user behavior information, and ensure these new sources are top-notch by utilizing the Python- (or Scala-) based Deequ library. Your task is to utilize Jupyter Notebooks with AWS Glue Studio to experiment with PyDeequ for data quality assessment. Next, you’ll enhance Nextstellar’s assessment capabilities by employing AWS Glue jobs to react and take action on data quality issues. Finally, you’ll monitor data quality using CloudWatch for prompt response and maintenance of data reliability.
skills learned: Implementing Data Quality Jobs on AWS • Automating infrastructure using CloudFormation • Developing Data Quality jobs using PyDeequ and AWS Glue • Observing and monitoring Data Quality jobs.
As a data engineer for a mobile game development studio, your task is to create a data streaming pipeline that collects and processes large streams of data records in real-time for lightning-fast analytics. Your company’s modern data platform architecture includes an Amazon Athena data lake and an AWS Redshift data warehouse solution. To store files, you’ll create an AWS S3 bucket, and you’ll create an AWS Kinesis delivery stream by using the boto3 library to connect to AWS Kinesis endpoints and send event data to the service. You’ll provision AWS Redshift resources and connect them to your AWS Kinesis Data Stream to analyze user behavior data to understand the user's journey inside the app. When you’re done, you’ll have a simple yet reliable data streaming pipeline that prevents resource shortages and transforms data in real-time—while it’s still relevant—ensuring more accurate data.
skills learned: create streaming data pipelines on AWS using Kinesis and Redshift • provision the resources for your data pipeline using AWS Kinesis Data Stream • use AWS Lambda to simulate an event stream • create an AWS Redshift Serverless resource using AWS CloudFormation to transform data in AWS Redshift
Visualize this: you’re a data analyst in an online recruiting tech company or a large organization’s HR department. You’ll use Matplotlib to explore, visualize, and analyze processed data to identify missing data and outliers. You’ll build interactive plots for superior data presentation, analyze the correlation of different features using visualization methods, and create analytics dashboards for two types of users. By the end, you’ll be a better data analyst and have the skills to build storytelling tools that let you answer important business questions.
skills learned: data visualization with Matplotlib • build interactive data dashboards • solve business problems with data insights
In this liveProject, you’ll go hands on with the cross replication of an S3 bucket, and backing up DynamoDB in real time using DynamoDB streams. You’ll set up the source and target region, policies to perform replication, and then test it’s working. Finally, you’ll setup and load data using local provisioners and a solution using DynamoDB streams.
skills learned: perform cross replication with S3 • backup DynamoDB data using event driven architectures • create DynamoDB streams
In this liveProject, you’ll step into the life of a budding data scientist looking for their first job in the industry. There are thousands of potential roles being advertised online, but only a few that are a good match to your skill set. Your challenge is to use data science tools to automate the process of trawling through job listings, to save time as you optimize your resume, identify the most in-demand skills, and find jobs that are a good fit for you. To do this you’ll use Python to perform Natural Language Processing and text analysis on pre-scraped data from jobs posting websites.
skills learned: process data with pandas DataFrames • K-means clustering • information retrieval with tf-dif • text cluster visualization
You’ve shown your expertise in successfully modeling a time series using classical models: moving average (simple MA and exponential MA), autoregressive (AR), and autoregressive integrated moving average (ARIMA). Your next step is to determine if there’s a way to boost the performance of the time series analysis. You decide you’ll apply an unconventional approach that’s increasingly popular in finance circles: a hybrid model that combines deep learning and classical approaches. For the deep learning models, you choose recurrent neural network (RNN) and long short-term memory (LSTM). In this liveProject, you’ll focus on preparing the data for the deep learning models. The good news is that in deep learning models, you avoid a long and cumbersome preprocessing stage since, unlike in many classical approaches, they are able to detect patterns almost automatically.
skills learned: prepare data for deep learning models • run RNN and LSTM deep learning models • visualize results • evaluate model performance
Have you ever spent too long scrolling through your photos to find that one picture you know you took? In this liveProject, you’ll solve that problem—with the power of deep learning!
Your challenge is to create a working image retrieval system that can search images based on text queries: type in ‘dog’ and you’ll get pictures of dogs. You’ll combine cutting-edge natural language processing and computer vision techniques, exploit semantic word representation methods, and train a neural network on social media data using image captions as annotations. This liveProject will develop your skills with PyTorch, and be an impressive piece for your data science portfolio.
skills learned: train a Word2vec word representation method • train a CNN with PyTorch • compute similarities between words and images
In this liveProject, you’ve taken on the challenge of digitizing the collection of the World Painting Museum, and the head curator wants you to use your machine learning skills to create an index of the art. Your challenges will include classifying your training data, considering pretrained models to help aid categorization, implementing a customized CNN that can identify genre, and applying image semantic segmentation in order to facilitate the classification by identifying the elements present on the art painting.
skills learned: image transformation • build an image classifier-based convolutional neural networks • apply transfer learning for image classification and segmentation • perform image semantic segmentation to increase accuracy of art paintings identification
In this liveProject, you’ll investigate reinforcement learning approaches that will allow autonomous robotic carts to navigate a warehouse floor without any bumps and crashes. Your challenges will include teaching warehouse navigation with tabular Q-learning, leveraging neural networks and Deep Q-Network models to avoid collisions, and putting together a simulation environment to handle custom reinforcement learning problems.
Please note: This project recommends using Colab Pro, which is an additional cost outside this project.
skills learned: implementing Q-learning • improving algorithm performance with deep reinforcement learning • creating a reinforcement learning environment in OpenAI Gym
Make your model less vulnerable to exploitation with defensive distillation, an adversarial training strategy that uses a teacher (larger, more efficient) model to learn the critical features of a student (smaller, less efficient) model, then use the teacher model to improve the accuracy of the student model. In this liveProject, you’ll use a pre-trained model to train your student model without distillation, generate malicious input using FGSM, and evaluate the undefended model. Then, you’ll train a teacher model with a pre-trained dataset, train your student model with the same training set and teacher model using distillation, generate malicious input, and evaluate the defended student model, comparing the results with and without distillation.
skills learned: basics of defensive distillation • basics of logit models • CleverHans attack generator
Padre Inc. uses AWS as its cloud provider and has acquired Tiddler Inc., an insurance analytics startup that uses Google Cloud Platform. As an enterprise architect at Padre, your task is to manage multi-cloud operations. Using Countly, you’ll define and implement key performance indicators (KPIs) in order to measure the success of Padre’s SaaS project that runs on AWS and Google. To ensure smooth operation of services and an optimal user experience, you’ll implement site reliability engineering (SRE) practices using Kubernetes, Prometheus, and Grafana. When you’re done, you’ll have experience using business metrics to track the health and value of your software, ensuring it provides value to customers and stakeholders.
skills learned: implement web analytics using open-source Countly
In this liveProject you’ll step into the shoes of a developer at PharmaChain Iberia, a pharmaceutical supply chain company. A big global competitor has recently set up shop in your region and has been steadily gaining market share, thanks to hyper efficient business process automation in its supply lines. This automation service can receive and read delivery notes ten times faster than the admin staff in your company—and you need to innovate fast to keep your status as the regional market leader. You’ve been tasked with implementing your own company-wide automation solution, using Python to automate your processes. To achieve this, you’ll use Python to iterate through subfolders of your current text-based PDFs and PDF form files and extract field keys and values. You’ll write scripts that can identify field IDs on web forms that correspond to the PDF documents, and automatically populate the web forms with information extracted from your PDFs—no manual data entry needed! Finally, you’ll prepare a report detailing your conclusions for your manager at PharmaChain.
skills learned: automate repetitive manual processes in Python • extract data from PDFs • web page resource identification • dynamically assign values to web form fields using autogenerated JavaScript
In this liveProject, you’ll use the Python data ecosystem to explore how demographic data affects American life expectancy. You’ll use pandas and NumPy to clean and merge a newly collected data set Matplotlib, and seaborn to create a variety of plots that showcase the distribution of the data and expose the relationships between the variables.
skills learned: reading, cleaning, and merging data with pandas • exploring data for trends and distributions • doing data visualizations with Matplotlib and Seaborn
In this liveProject, you’ll deploy a completed deep learning model so that it can be easily used by your clients. You’ll use the Flask Python library to build a web page that will host your model, and use HTML, CSS, and JavaScript to build a simple web interface. Finally, you’ll take your model out into the world by using ngrok to make locally-served web pages available anywhere.
skills learned: create a web server with Flask • build a simple interface with HTML and CSS • make locally served web pages available to users on other systems
You’re the lead DevOps engineer in an IT department with about 60 engineers. Your director wants to transition the company from a traditional cloud server to containerization while minimizing operational workload. Impressed with AWS Fargate’s ability to handle containers without managing servers, he’s tasked you with deploying a pilot project using Fargate. You’ll create a proof-of-concept by running an NGINX image on AWS Fargate. To ensure that the infrastructure meets the spec of being reusable as code, you’ll use AWS CDK along with Python as your programming language. When you’re finished, you’ll have investigated, evaluated, and deployed an NGINX container along with all the required resources into AWS Fargate.
skills learned: set up basic network infrastructure with AWS CDK • create a cluster with AWS CDK and other required resources (e.g. Load Balancer, Execution Role) • write a task definition for creating Fargate tasks and Fargate services
Your assignment as lead DevOps engineer is to deploy a REST API Flask application into AWS Fargate. You already have the application code and the docker-compose file to run the API locally. You’ll package the code in CDK, build the images, store them in Elastic Container Registry (ECR), then use them for deployment in Fargate. When you’re finished, you’ll have practical experience deploying a Flask application, as well as a solid understanding of some of the services Fargate requires for deployment.
skills learned: use ECR to host private Docker image • deploy an existing Dockerized service into AWS Fargate Cluster • create the Task Definition file
In this liveProject, you’ll architect a solution to serve predictions from time series forecasting models over a REST API. Once you’ve architected your solution from a high-level perspective, you’ll monitor and assess the performance of the model and potentially undertake retraining to improve accuracy.
skills learned: serve our predictions with a REST API using FastAPI • validate the API query parameters by using Python’s type annotations and pydantic • track our model’s performance with MLflow
In this liveProject, you’ll deploy a machine learning model to production so it can be easily used by colleagues. You’ll create a virtual environment for deploying your application, use Flask to build a local web service that returns predictions, and Heroku for remote deployment.
skills learned: create a virtual environment • GET and POST requests • create a web framework for a prediction app • remotely deploy an app on Heroku
In this liveProject, you’ll create an Android application that can run a pretrained basketball predictor deep learning model for the easy use of your client. Your challenges will include converting the DataFrames into JavaScript arrays, converting your model into a TensorFlow Lite model, and finally packaging the model inside a working Android application.
skills learned: Converting a model to Android use • generating JavaScript usable data sets • simple Android development
In this liveProject, you’ll deploy a pretrained basketball predictor deep learning model onto the web for easy use by clients. You’ll utilize the powerful TensorFlow.js framework to ensure the model works in the browser, as well as converting DataFrames into JavaScript arrays, and building a simple website around the model and data sets.
skills learned: converting a model to web use • generating JavaScript usable data sets • simple web development
In this liveProject, you’ll build an interactive dashboard that will allow the marketing team at your company to monitor any mention of your company’s products on Reddit. You’ll start by visualizing relevant subreddit data, then build a model to monitor your mentions on Reddit. Finally, you’ll deploy the Streamlit dashboard on Heroku. Streamlit offers a simple and easy way to build a highly interactive and beautiful dashboard with just a few lines of codes, whilst Heroku offers free web hosting for data apps.
skills learned: dashboard design • data visualization • integrating API call with a dashboard
In this liveProject, you’ll take on the role of an engineer at AISoft, where you'll be part of two dynamic teams: MLOps and Core-ML. On the MLOps team, you'll utilize software engineering techniques to ensure your models are not only accurate but also scalable, reliable, and maintainable. You’ve been assigned two important support tasks for the Core-ML team.First, you'll utilize the Gradio Python library to create an interactive web user interface that runs MRI classification and segmentation transformer models in the background, and then you'll build a pipeline that provides interpretability to the decisions of a construction vehicle classification model.
skills learned: build a web interface for MRI classification and segmentation using Gradio • run a vision transformer model for MRI classification and a Segformer or Maskformer model for MRI segmentation via the interface • implement Grad-Cam and LIME to explain transformer predictions
In this liveProject, you’ll take on the role of a data engineer working for an app development company. Your boss has a great idea for a new app that can automatically identify what food is shown in an image—perfect for when you want to post your lunch on social media! They have asked you to build it for them.
Your challenge is to train an image classification system using TensorFlow and then deploy that system to production so that it can run in the web browser and as a mobile application. To do this, you’ll make use of the Python and TensorFlow ecosystems to create your model, then package it for deployment using Docker and Expo.
skills learned: train a deep learning model • deploy a deep learning model using TensorFlow.js • create web applications • deploy your application using Docker
In this liveProject, you’ll upgrade facial recognition security to more complex iris recognition. You will read an image, draw bounding boxes around the detected eyes and detect the circular eye area region, then save the output image.
skills learned: reading and writing images • using Haar Cascade Classifier for eye detection • using Hough Circle Transform for circle detection
Face detection has numerous applications across software and is an essential part of the pipeline for detecting deepfake videos. In this liveProject, you’ll implement a component that detects faces in videos, and normalizes them to the same size and visual appearance. This component is a vital foundation for a deepfake detection system.
skills learned: detect and crop faces • normalize and scale faces • align faces according to the eyes locations
Finative, the environmental, social, and governance (ESG) analytics company you work for, analyzes a high volume of data using advanced natural language processing (NLP) techniques to provide its clients with valuable insights about their sustainability. Your CEO has concerns that some of the companies Finative analyzes may be greenwashing: spreading disinformation about their sustainability in order to appear more environmentally conscious than they actually are.
As a data scientist for Finative, your task is to validate your sustainability reports by creating and analyzing them. You’ll compute conditional probability with Bayes’ Theorem, by hand, to better understand your model’s performance through metrics such as recall and precision. You’ll learn an efficient way to prepare your data from different sources and merge it into one dataset, which you’ll use to prepare tweets. To successfully classify the tweets, you’ll use a pre-trained large language model and fine-tune it using the Hugging Face ecosystem as well as hyperopt and Ray Tune. You’ll use TensorBoard and Weights & Biases to analyze and track your experiments, and you’ll analyze the tweets to determine whether enough negative sentiment exists to indicate that the company you analyzed has been greenwashing its data.
skills learned: conditional probability • fine-tuning a large language model • hyperparameter optimization • monitor training experiments
Welcome to the era of digital security! In this quick liveProject, you’ll develop an efficient solution for detecting faces in a live video stream. You’ll need to read an input video from a webcam, detect faces present in the input video stream, draw bounding boxes around the detected faces, and then write the detected faces to a new video.
skills learned: reading and writing videos • using a Haar Cascade Classifier for face detection
In this liveProject, you’ll build your own Python data library that can detect unusual data. This data can affect regression analysis, and so your library will help spot it before it can negatively affect results. You’ll program functions to detect high-leverage points, outliers, and influential observations. Through the analysis of multiple examples, you'll gain a deep understanding of the kind of problems that can arise with real data.
skills learned: detecting unusual observations • visualizing and analyzing data with Matplotlib, seaborn, and statsmodels
In this liveProject, you’ll develop a machine learning solution that can identify the difference between faces in deepfake videos and real faces. You’ll use a support-vector machine (SVM) classifier approach to determine which videos have the artifacts associated with deepfakes, and combine face detection, feature extraction, and your SVM classifier together in one pipeline to create your detection system.
skills learned: Training an SVM classifier resulting in deepfake detection system • Evaluating a system on the test set
In this liveProject, you’ll create and utilize quantum oracles to determine whether a given function is balanced or constant. You’ll utilize unique quantum superposition to determine algorithmic accuracy over just a single pass of the outcome, potentially massively speeding up systems.
skills learned: write a quantum algorithm with Amazon Braket SDK • implement a quantum circuit to determine whether a given function is balanced or constant • use oracles with a quantum circuit • implement input and output qubit registers
As the researcher for venture capital firm Action at a Distance Corporation your job is to evaluate proposals from quantum startups hoping to secure an investment. But first, you need to expand your knowledge of quantum computing.
You’ll build your quantum muscles by investigating and coding key quantum algorithms including the quantum teleportation algorithm, the quantum phase estimation algorithm, the quantum Fourier transform algorithm, and Grover’s algorithm. With your new knowledge, you’ll compose a brief report about whether or not now is the right time to invest in quantum startups.
skills learned: Shor’s algorithm concepts/techniques • quantum superdense coding teleportation • quantum Fourier transforms • quantum phase estimation • quantum oracles
Failure is not an option for Sigma Corp. As a lead data scientist for the large conglomerate of energy production companies, it’s up to you to help ensure interruption-free operations by developing a means for detecting anomalies that signal potential problems. Using metrics, including the receiver operating characteristic (ROC) curve and the area under curve (AUC) score, you’ll evaluate anomaly detection algorithms. You’ll build a z-score anomaly detection algorithm, which focuses on a single feature and provides a simple benchmark, and you’ll apply it to a dataset to establish a reference for comparison. When you’re finished, you’ll have a firm grasp of z-score anomaly detection, classification error categories, and evaluating anomaly detection algorithms.
skills learned: z-score method • evaluate algorithms using ROC AUC metrics • basic synthetic anomalies
In this liveProject, you’ll utilize Python dictionaries to efficiently combine a file of product info and a file of sales entries. You’ll take on the role of a data engineer in a company that has been modernizing its sales systems, and tackle a common data merging task to help generate useful reports. Solve the challenges of this project, and you’ll understand the real power and flexibility of dictionaries and how they are used literally everywhere in Python.
skills learned: basic dictionary manipulation for adding and accessing data, in, get() • ways to handle missing keys
In this liveProject, you’ll use difference-in-differences as an alternative to A/B testing to assess the discounting strategy of an e-commerce company. This approach compares growth between a group that has been experimented on, and data from a control group. You’ll use Python and causal inference to examine the growth trajectory in profits from customers in a high discounts group against customers that didn’t get a discount.
skills learned: when and how to use difference-in-differences • estimate the impact of discount on profits using diff-in-diff
In this liveProject, you’ll build a movie recommendation system that reduces the dimensionality of the spaces involved to enhance its performance so that latent representations are identified, which aim to capture users and items interactions with the system on the same latent vector space. You’ll work to compute clusters on the movies and clients of your site, and utilize latent representations of users and items with a reduced dimensionality to compute similarities. Once you’ve established this data, you’ll build and test your recommendation engine.
skills learned: compute clusters of users and items based on similarities • compute similarities on top of learned latent representations based on user and item interactions • define recommender systems based on similarity clusters
In this liveProject, you’ll use the Julia programming language and dimensionality reduction techniques to visualize housing sales data on a scatter plot. This visualization will allow the marketing team to identify links and demand patterns in sales, and is also a useful tool for noise reduction or variance analysis. You’ll use the popular PCA algorithm to visualize the sales dataset with overlaid clustering assignments from k-means and DBSCAN methods, and then expand Julia’s capabilities by calling Python modules using the PyCall.jl package. This extra flexibility will allow you to explore the t-SNE and UMAP algorithms which have excellent results for high-dimensional datasets.
skills learned: PCA, t-SNE, and UMAP dimensionality reduction techniques • validating and analyzing output of PCA algorithm • calling Python modules from Julia
In this liveProject, you’ll take on the role of a data scientist at the World Health Organization (WHO). The WHO is responsible for responding to international epidemics, a critical component of which involves monitoring global news headlines for signs of disease outbreaks. However, this daily deluge of news data is too huge to manually analyze. Your challenge is to pull geographic information from headlines, and determine where in the world outbreaks are occurring. Problems you will have to solve include extracting information from text using regular expressions, using the Basemap Matplotlib extension to visualize map locations for patterns indicating an epidemic, and reporting your findings to your superiors so resources can be dispatched.
skills learned: text extraction with pandas • clustering with K-means and DBSCAN • visualize clusters
In this liveProject, you’ll utilize machine learning for treatment effect estimation in order to help an e-commerce company deliver targeted discounting to the most profitable customers. You’ll build a model that predicts the effect of a discount on a customer following a causal model, maximizing profits for the business.
skills learned: pandas to manipulate tabular data • linear regression for causal inference • use machine learning to make causal models for personalization
Sigma Corp, a large conglomerate of energy production companies, has recently implemented anomaly detection algorithms and is generally pleased with their performance. However, analysts report that not all anomalies are being identified and the algorithms are too slow at times. As a lead data scientist at Sigma, it’s up to you to address these concerns. To increase the robustness of the algorithms, you’ll implement and optimize the probability-based Empirical Cumulative distribution-based Outlier Detection (ECOD) method, an alternative to statistical methods. You’ll benchmark the ECOD method in order to compare its performance with the statistical MD and PCA methods Sigma is currently using. When you’re finished, you’ll have firsthand experience implementing the highly efficient ECOD method to detect anomalies in multidimensional data.
skills learned: ECOD method
The development teams at Messflix, a movie and TV-show streaming platform are pushing domain data products through their newly implemented data mesh. Now the CTO has tasked you, their consultant, with striking a balance between the benefits of the data mesh, the freedoms the data products have, their usefulness, their interoperability, and aspects of their security. You’ll use Python and pandas to write policies that check the registration and pushed data, helping users provide all the required registration information. You’ll create tooling to classify data into categories for improved data labeling, and protect sensitive data with pseudonymization functions. When you’re done, you’ll have learned skills for federated computational governance that balance the benefits of data products with the benefits of the data mesh.
skills learned: understand computational governance • implement data policies for data products as well as individual data pieces
In this liveProject, you’ll use Python to build a simple text-based escape room game to help enhance the experience of a real-world escape game. This project involves following all the steps in a software development process, from reviewing your client’s given requirements, to designing, building, and testing your code. You’ll gain experience operating within a set of requirements and refactoring your code to optimize class definitions, tighten up functions, and make sure it’s Pythonic!
skills learned: software design • assertions • exceptions • error handling • refactoring • modularizing code • software quality • fulfilling software requirements
In this liveProject, you’ll utilize causal inference techniques to help an e-commerce company estimate the impact of discounts on profits. You’ll learn how bias gets in our way of inferring the effect of discounts, and how to adjust for it for more accurate results. Leverage adjustment techniques, like linear regression, to adjust for bias and see how linear regression can improve the quality of your data. Your final task is to present a recommendation on whether the company should distribute its discounts or not.
skills learned: how bias gets in the way of causal inference • adjust for bias using a linear regression
Judging the effectiveness of a machine learning model requires in-depth analysis. This quick liveProject builds on the work you have completed in Machine Learning for Classification. You’ll assess your early models and consider better alternatives. You’ll plot the ROC curves of the model and compare it to multiple dummy models, and tune your hyperparameters to deliver the most accurate results possible.
skills learned: evaluate predictions and accuracy • visualize patterns with classes • conduct hyperparameter tuning • prepare a model for production deployment
In this liveProject, you’ll implement model performance metrics that can test the effectiveness of your models. You’ll calculate accuracy, precision, F1 score and recall values from the classification results for an existing model, and then estimate the ROC curve and AUC value. Finally, you’ll create a Gradient Class Activation Map. This map can highlight features and regions in an image that the deep learning model finds important, and manually inspect whether the model is performing in the desired way.
skills learned: make predictions using deep learning models using Keras • implement Grad-CAM visualization • implement deep learning model performance metrics • create a radar plot to display the performance of multiple models
In this liveProject, you’ll explore the unique way that exceptions work in Python. Python makes frequent use of exceptions, but they often function in a very different way than other programming languages. You’ll experiment with the basic try-and-except structure used for handling exceptions, then dive into using inheritance with exceptions, and creating your own hierarchy of exceptions.
skills learned: how Python exceptions are created, raised, and handled • what is in an exception object • how inheritance works for exceptions
In this liveProject, you'll take over administering a zoo automatically by crafting three different kinds of expert systems to help customers determine what animal they’re looking at. An expert system captures an expert's know-how by encoding it in a knowledge base. You’ll create a prototype 20-Questions-style game expert system, then expand it with logical rules and Boolean statements to build more powerful and realistic expert systems.
skills learned: expert system concepts • the Animal Game
In this liveProject, you’ll explore a dataset of movie reviews and prepare it for sentiment analysis. The dataset you've provided is balanced between positive and negative reviews, but is encoded in such a way that you will need to use the dictionary (lookup) in this dataset package to decode the content to plain text. Your challenges will include decoding the data to plain text, and then converting the plain text into tokens in a Pythonic manner.
skills learned: use a dictionary to decode and encode data • learn NumPy array indexing techniques • understand Python dictionary data structure, and how to edit and manipulate it
In this liveProject, you’ll use the RoBERTa variation of the BERT Transformer to detect occurrences of fake news in a data set. Political news can be tricky to validate for accuracy, as sources report the same events from different biased angles. RoBERTa uses different pre-training methods than traditional BERT and has hyperparameters that are highly optimized, meaning it tends to perform better than its predecessor. You’ll start out by loading the model using the Hugging Face library and training it to your data with PyTorch Lightning. The project will also include the implementation of training a custom tokenizer from scratch and using it to tokenize the data. A successful model will maximize positives, and so model evaluation will be based on your model having a high recall score.
skills learned: loading and configuring pretrained RoBERTa model using Hugging Face • building and training a text classifier using PyTorch Lightning • validating the performance of the model and quantifying the results
In this liveProject, you’ll create a recommendation engine for an online store using the Fast.ai library. You’ll utilize a dot product and a neural network to come up with the latent factors in a rating matrix, and compare and contrast them to determine which is likely to deliver the best recommendations. You’ll need to select and clean your data, pick the right methods, then create the functions that you need to recommend products based on predicted ratings.
skills learned: selecting, cleaning and choosing data for collaborative filtering • matrix collaborative filtering techniques using Fast.ai collab_learner class • learning latent factors for collaborative filtering recommenders
Since recommender systems train and learn over the data they recommended themselves, they will never train over, learn, or recommend items that they didn’t already recommend for some reason, such as insufficient ranking to be seen by the user. It’s important to break this Feedback Loop in order to ensure that suitable recommendations aren’t missed. But you must strike a balance between deviating (just enough) from the system’s predictions through exploration and not defeating the system’s purpose altogether. In this liveProject, you’ll learn three methods of exploration that help you provide better recommendations to your users, as well as the costs and benefits of each.
skills learned: rerank a list of items after a model already predicted their rankings • add noise to the model to affect predictions as they’re made • combine lists with different rankings to increase traffic to lower ranking items • use a Feature Store as part of a prediction pipeline
You’ve set your sights on a collection of prime off-the-market New York City properties whose value is likely to double in the next couple of years. With your excellent sales skills, you’re confident you can get the owners to sell at a fair price, if you can determine who the owners are. You have a knowledge graph—built from tax records, property deeds, and permits—that identifies entities associated with the properties. These entities might not be the true owners, but identifying them could help you determine who the true owners are.
Your task is to transform the knowledge graph into a representation that can be processed by a machine learning model later. Using simple graph and NLP techniques, including node2vec—one of the most influential algorithms in the graph community—you’ll improve the quality of the data by removing the noise from the knowledge graph. You’ll convert the nodes in your graph into embeddings, analyze how well your embeddings represent the underlying knowledge graph, and develop insights on tuning the node2vec hyperparameters. When you’re done, you’ll have learned techniques for analyzing and visualizing embeddings and associating them to the original graph, helping you determine who the “hidden” owners are.
skills learned: intermediate Neo4j (Graph Data Science library) • intermediate graph theory (weakly connected components) • build a node2vec model with Neo4j
Your local school district has an LLM chatbot specialized in chemistry. But it sometimes answers questions entirely unrelated to chemistry! To improve the safety of this LLM application, you are asked to come up with a new LLM that would classify student questions and return machine-readable (JSON) messages to the application frontend so that the application can decide whether to answer this question. To accomplish that, you need fine-tuning to "teach" the model how to classify questions through many examples, which themselves are generated by a Llama-based LLM, and to always respond with JSON.
skills learned: Develop data set of finetuning • Finetune an LLM
In this liveProject, you’ll use deep learning to implement powerful time series forecasting models that can beat the performances of previous models. You’ll work with the Python package “PyTorch Forecasting” and the deep learning models LSTM and N-BEATS. You’ll also get experience with key techniques of cross learning, ensembling, and hyperparameter tuning.
skills learned: perform forecasting with LSTM and N-BEATS models using PyTorch Forecasting and PyTorch Lightning • optimize models with Bayesian optimization using Optuna • implement callbacks for customized model training
In this liveProject, you’ll use recursive and non-recursive algorithms to generate fractals for graphic design. Fractals are shapes that have fractional dimensions and can produce very beautiful and interesting visualizations. You’ll start by exploring recursive line-drawing fractals, move on to strange attractors, and finish up with escape-time fractals.
skills learned: using tkinter • drawing in the Canvas widget • using mouse events to let the user select part of an image
Turn an existing data lake into a Lakehouse, using Delta Lake, an open table format (and the cornerstone of Databricks’ Lakehouse design). For data processing and interacting with the Lakehouse, you’ll use Apache Spark. As you transform the existing tables into Delta tables, you’ll explore Delta Lake’s rich features, see firsthand how it handles potential problems, and appreciate the sophistication of the Lakehouse design.
skills learned: leverage Delta Lake capabilities including schema enforcement and time travel • use Delta Lake commands • interact with multiple layers of the three-layer architecture • use Apache Spark for data processing and interacting with the Lakehouse
In this liveProject, you’ll create Python functions for specific data cleaning operations to help import product data from a legacy system into a new pipeline. You’ll work with a delimited text file with unhandy export conventions, and utilize functions to clean and convert fields for cleaner and seamless data transfer. You’ll even break your new operations down into separate functions so that you can easily reuse your code at a later date.
skills learned: functions as dictionary values • mutable objects as default function parameters • how to use and create decorators
In this liveProject, you’ll implement a Graph Neural Network (GNN). This powerful model will allow you to use the document content from the first liveProject combined with the structure of the citation graph from the second liveProject to build an even more powerful model—one that will predict the sub-field of statistics of each of your customers’ papers.
skills learned: node classification by text embedding signals and citation graph structure signals • build a GNN classifier with PyTorch Geometric
In this liveProject, you’ll replicate Google’s Deep Dream algorithm to explore the artistic creations of a neural network. You’ll start by investigating the latent space of a deep neural network and how manipulating its values can affect an input image. You’ll visualize inputs that maximize your filters, and manipulate these filters to produce ‘dream-like’ hallucinations.
skills learned: mathematical operations on images • implementing loss functions • transfer learning
In this liveProject, you’ll build a deep learning model that can generate text in order to create synthetic training data. You’ll establish a data training set of positive movie reviews, and then create a model that can generate text based on the data. This approach is the basis of data augmentation.
skills learned: building and training a deep learning model for text classification • using sklearn module to report model classification metrics • condition based sampling technique for NumPy array
In this liveProject, you’ll utilize unlabeled data and unsupervised machine learning techniques to build and train data generative models. You’ll employ generative modeling, such as a variational autoencoder (VAE) that can generate new images by sampling from the latent distribution. You’ll then use an unsupervised generative adversarial network to generate new images.
skills learned: implement autoencoders to reconstruct images • utilize variational autoencoders for image generation • train an unsupervised deep convolutional GAN
Start building your robotics foundation: You’re a programmer helping create prototype robots for the RoboPrototypes company. You’ll get a brief introduction to ROS 2, set up the programming environment, and onboard robotics building blocks with basic tutorials. Then you’re ready to create launch files, which are integral to every ROS project. As you create packages in ROS 2, you’ll learn to define and use parameters and declare custom messages. When you’re finished, you’ll have a firm foundation for delving deeper into robotics.
The version of Gazebo used in this project reached end of life in January 2025.
skills learned: set up the programming environment for ROS 2 • ROS 2 fundamentals • create a ROS 2 workspace • create ROS 2 launchfiles, services, messages
In this liveProject, you’ll get hands-on experience using the powerful Google Colab tool for machine learning and deep learning. Colab notebooks let you execute your data science code in Google’s cloud, getting all the benefits of Google’s incredible hardware. You’ll see how Colab works for yourself by running through simple machine learning tasks such as data preprocessing, making use of Colab’s free GPU and TPU hardware acceleration capabilities, and combining Colab with scikit-learn and PyTorch to train a classifier.
skills learned: using Colab as a Jupyter Notebook • utilizing Colab hardware acceleration capabilities • combining Colab with PyTorch
In this liveProject, you’ll get hands-on experience using the powerful Google Colab tool for machine learning and deep learning. Colab notebooks let you execute your data science code in Google’s cloud, getting all the benefits of Google’s incredible hardware. You’ll see how Colab works for yourself by running through simple machine learning tasks such as data preprocessing, making use of Colab’s free GPU and TPU hardware acceleration capabilities, and combining Colab with scikit-learn and TensorFlow to train a classifier.
skills learned: using Colab as a Jupyter Notebook • utilizing Colab hardware acceleration capabilities • combining Colab with TensorFlow
In this liveProject, you’ll get hands-on experience using Jupyter Notebook in a real-world data science project. You’ll train a simple KNN classifier and use Jupyter, IPython, and the easy-to-use Markdown markup language to document and share your work. Your challenges will include customizing your notebooks, incorporating your notebooks into a data science project, and sharing your projects with the community on GitHub.
skills learned: collaborate on Jupyter Notebook projects • customize your notebooks • work with Jupyter Notebook extensions
Now that one of the data scientists at your publishing company was able to extract citations from the full text of the representative text corpus, your task is to generate new vector embeddings based on the citation graph, then cluster the documents using these embeddings to gain insight from the graph structure.
skills learned: converting graph nodes to vectors • dimensionality-reduction • clustering
Imagine you work for a company that publishes scientific articles created by its customers—primarily researchers and scientists in the field of statistics—whose volume of research has grown so large that it’s not possible for your company to read every paper nor for the researchers to stay on top of everything happening in the field. Your task is to use automated means to find some structure in the collection of scientific articles so that the company can more easily home in on the researchers’ interests and help them research more effectively. To do that, you’ll generate document embeddings, use them to impute a document graph, and execute graph algorithms against this graph in order to generate insights from it.
skills learned: convert text into graphs • explore centrality algorithms for clustering using Neo4j
New York City real estate is a trillion-dollar market, and you’ve got your eye on a collection of prime NYC properties whose value will likely double in a couple of years. They’re not currently for sale, but with your excellent sales skills, you’re confident you can get the owners to sell at a fair price, if you can only determine who the owners are. To obtain the owners’ contact data, you’ll construct a knowledge graph from publicly available data that contains tax records, property deeds, and permits. You’ll scan the data for the target owners, analyze the datasets for possible relationships, develop a knowledge schema that can extract insights into your use case, and load the data into Neo4j to query and visualize the connections. When you’re done, you’ll have practical experience applying widely used graph tools to real-world data, and you’ll understand how different choices for your graph schema can lead to different insights.
skills learned: intermediate Neo4j (graph query using the Cypher language, loading and viewing graphs via Neo4j Desktop)
In this liveProject, you’ll use the powerful Quantum SDK from Microsoft to develop a simple quantum application using Grover's search algorithm. This algorithm will be able to generate missing data, such as by taking a query in the form of an ISBN with one or several missing digits, and recovering those digits to return the information about the book with this ISBN. You’ll start simple by implementing the algorithm to recover only a single missing digit, then expand to recovering several missing digits. Finally, you’ll set up a classical query of an online ISBN database to find relevant book information.
skills learned: designing and writing simple Q# code • integrating quantum code with classical pre- and post-processing routines
In this liveProject, you’ll use quantum computing to solve a cryptarithm—a mathematical equation in which digits are replaced by alphabet letters. Your challenges will include figuring out how to represent the problem in a way suitable for Grover’s search algorithm, then implementing the algorithm and writing unit tests to validate your solution.
skills learned: formulating problems in terms of quantum oracles • designing and writing Q# code based on algorithm descriptions • integrating quantum code with classical pre- and post-processing routines
In this liveProject, you’ll set up the intrusion detection service Amazon GuardDuty to help catch any hackers who may be trying to break in—or who already have and are up to no good! To achieve this goal, you’ll iteratively develop infrastructure as code in the form of AWS CloudFormation templates, then learn to address cross-account automation issues.
skills learned: develop automation to configure Amazon GuardDuty across accounts • develop Python code to retrieve a threat intelligence set from AlienVault OTX • deploy to a scheduled AWS Lambda Function to keep the threat intelligence set up to date • configure Amazon GuardDuty to use the intelligence set
In this liveProject, you’ll ensure that the security team can make incremental, verifiable changes to its Amazon GuardDuty intrusion detection configuration. You’ll develop a suite of automated tests and CI/CD AWS CodeBuild pipelines to deploy and test changes across the organization.
skills learned: develop automated tests to verify the configuration of the Amazon GuardDuty service and AWS Lambda function • develop a CodeBuild pipeline that will trigger on changes to the code of the AWS Lambda Function • develop a CodeBuild pipeline that will trigger on changes to the infrastructure as code
In this liveProject, you’ll develop a machine learning model that can make a personalized prediction of whether an individual has COVID-19. You’ll work with a fictional audio dataset of digital footprints from smart phones, applying logistic regression and decision trees to turn this dataset into a COVID-19 predictor. You’ll learn how to formulate a ML problem by identifying data points, and their features and labels, so that you can take advantage of ready-made ML methods.
skills learned: basic flow control in Python • create and manipulate figures in Python • create and manipulate NumPy arrays to represent matrices and vectors
Your real estate developer client has a large sorted dataset and the ability to zoom in on select parts of the data, thanks to the programs you’ve written for them previously. Now they’ve noticed duplicate entries in the dataset, and they’ve asked you to solve this problem. In this liveProject, you’ll create a program that will read in the large CSV data file, leveraging a hash map (which you’ll test and implement) in order to discard duplicate entries as quickly as possible. Though you’ll use the csv and unittest libraries in Python, you’ll write your own unit tests—a fundamental software engineering skill and a practical requirement on most real-world projects. Finally you’ll test your tests against Python’s existing dictionaries.
skills learned: write code manipulating Python dictionaries • write unit tests involving dictionaries • cover a variety of testing scenarios • implement a basic hashmap from scratch • use your hashmap to eliminate duplicate entries
In this liveProject, you’ll use the ALBERT variation of the BERT Transformer to detect occurrences of hate speech in a data set. The ALBERT model uses fewer parameters than BERT, making it more suitable to the unstructured and slang-heavy text of social media. You’ll load this powerful pretrained model using the Hugging Face library and fine-tune it for your specific needs with PyTorch Lightning. As falsely tagging hate speech can be a big problem, the success of your model will involve calculating and optimizing its precision score. Your final product will run as a notebook on a GPU in the Google Colab environment.
skills learned: loading and configuring pretrained ALBERT model using HuggingFace • building and training a text classifier using PyTorch Lightning • validating the performance of the model and quantifying the results
In this quick liveProject, you’ll automate the process of filling out a custom email from a CSV of email addresses and exam scores. You’ll then implement a randomizer to assign a random discussion partner, all using a Python library of your choice.
skills learned: using the smtplib library • reading documentation for Python • parsing a CSV file to store information in a data structure
In this quick liveProject, you’ll use the pandas library to read a table from a Wikipedia page into a DataFrame, clean and arrange the data into columns, and extract useful information quickly to reveal data insights.
skills learned: organizing and visualizing data in a pandas DataFrame • reading, working, and experimenting with new Python libraries
In this quick liveProject, you’ll develop a simple task scheduler app. Your challenges will include coding functionality that will arrange a day’s tasks to either minimize time left over during a day, or to provide the greatest variety of tasks during a day.
skills learned: implementing an optimization algorithm • recursion method to call a function • writing code to fit certain constraints • using brute force to find a solution
In this quick liveProject, you’ll write a UI that simulates water drops on a window during rain. You’ll use nested lists, the random library, and tkinter to increase droplet size with certain probability, and resetting sizes when drops become too big.
skills learned: using the tkinter library • adding widgets to a UI • manipulating shapes in a UI • working with row and column data in a grid
In this quick liveProject, you’ll design and implement an algorithm to solve a simple maze, revealing a path to the exit.
skills learned: implementing a wall-following algorithm • testing and debugging code • appropriate data structures • understanding algorithms, including edge cases
In this liveProject, you’ll take on the role of a machine learning engineer working for a company developing augmented reality apps. These apps include games, virtual shopping assistants, and fitness coaches that need to be able to reliably recognize the shape of a human body. Your challenge is to create an application for human pose estimation: detecting a human body in an image and estimating its key points such as knees and elbows. To do this, you’ll build a convolutional neural network from scratch, training your model using Google Colab and your GPU. At the end of this liveProject, you’ll have completed an interactive demo application that uses a simple webcam to detect and predict human keypoints.
skills learned: object detection and keypoint detection algorithms • transfer learning • training CNNs on images • deploy human pose estimator using webcam
Now that you’ve prepared the data for the deep learning models, you’re ready to apply the hybrid model, which leverages the strengths of both the classical and deep learning models. In this liveProject, you’ll focus on the essential steps for running a time series analysis. You’ll start with ensuring the data you prepared is ready for processing with the deep learning models. Next, you’ll run the RNN and LSTM for the separate datasets. Finally, you’ll evaluate the performance of your models.
skills learned: combine classical and deep learning models • visualize results • evaluate model performance
In this liveProject, you’ll join BrainAI’s MRI data analysis team. BrainAI needs you to develop a state-of-the-art AI module utilizing vision transformer models to detect brain tumors with exceptional accuracy. Armed with Python tools like Hugging Face Transformers, PyTorch, and more, you'll detect the presence or absence of tumors within human-brain MRI datasets. With Google Colab's GPU computing resources, you'll utilize deep learning to try and achieve a 95%+ accuracy rate.
skills learned: set up training, test, and validation datasets with biomedical (MRI) images • train and evaluate a vision transformer model for brain tumor classification
In this liveProject, you’ll step into the role of a developer working for car rental company CarsUnlimited. You have a bold new idea for an app that can revolutionize your business. You envisage a service where a customer can snap a picture of any car on the street, and instantly find out if CarsUnlimited has that make and model available. Your colleagues have the app UI covered; your challenge is to build the algorithm to classify the cars that were snapped by the user. You decide to develop a machine learning algorithm for solving this problem.
You’ll start with cleaning your data, before experimenting with classical machine learning algorithms such as SVMs, Random Forests, Decision Trees, and assess their performance metrics. With an entire range of parameters to tune and improve, you will learn about how to automate this search. From there, you’ll dive into building a deep neural network and explore different search strategies to finalize your powerful new neural network architecture.
skills learned: identify when to use classical machine learning algorithms or deep learning for classification • build a neural network architecture and automate the search for parameters
In this liveProject, you’ll use the Python Imaging Library (PIL) to tackle common image processing tasks. You’ll learn about some of the algorithms that let you apply filters to images, and you’ll use PIL to adjust image brightness, contrast, and color tone. You’ll crop, rotate, reflect, and perform other geometric operations on images.
skills learned: loading an image file into a PIL image • displaying a tkinter PhotoImage • making tkinter dialogs • applying various PIL image transformations to enhance and modify images
In this liveProject, you'll pioneer the development of cutting-edge MRI segmentation algorithms using transformer architecture for computer vision company VisionSys. Manual segmentation is labor-intensive and expensive, so you’ll be developing a custom model that can do it for you. You'll train and evaluate SegFormer and MaskFormer models to identify brain tumor regions with over 90% accuracy. With Python tools like Hugging Face Transformers and Google Colab's GPU computing resources, you'll create pipelines, preprocess data, and showcase sample predictions and quantitative results.
skills learned: set up training, test, and validation datasets with biomedical (MRI) images • train and evaluate Segformer and Maskformer models for brain tumor segmentation
In this liveProject, you’ll apply premade transfer learning models to improve the context understanding of your search. You’ll implement BERT (Bidirectional Encoder Representations from Transformers) to create a semantic search engine. BERT excels in many traditional NLP tasks, like search, summarization and question answering. It will allow your search engine to find documents with terms that are contextually related to what your user is searching for, rather than just exact word occurrence.
skills learned: create an inverted index with Faiss library • encode and search documents with a sentence-transformers library • complete question-answering tasks with pretrained BERT models
In this liveProject, you’ll refactor a legacy module with unpredictable functionality to make it fit for your needs. The module behaves strangely whenever you import it, and so your task is to find the problem by exploring the ways that import in Python works. Your new knowledge will allow you to fix the issues in the test module, and create safer modules and multi-module packages.
skills learned: how the import process works • what importing only one feature of a module really does • how to make sure that code only executes when you want it to
As a software engineer at Sneakers to the Max, it’s your job to create an API that the e-commerce company’s developers can use to improve search results. You’ll write Python code to create Elasticsearch queries that work best for zero, one, or multiple search terms. To enable the application to interact with the search service, you’ll implement a FastAPI endpoint. You’ll add query filters, including colors and price ranges, to narrow down the results, and you’ll add pagination for when the number of sneakers in the narrowed search results is too large to be displayed on one page. When you’re done, you’ll have created an API that empowers your developers to provide the best matches to customers’ searches and leads to increased sneaker sales.
skills learned: use different queries to select sneakers
In this liveProject, you’ll explore how inheritance works in Python through developing classes that might be used in a simple video game. Your game follows animal characters moving through an obstacle course, with different movement styles for wolves, bears, eagles, ducks, frogs, and trout. In order to avoid having to repeat your code between characters, you’ll create some base classes and inherit from them. You’ll see how to inherit from more than one class at a time, and discover use cases for multiple inheritance.
skills learned: using Python’s system of inheritance • developing classes for a video game • using Python's multiple inheritance to create mix-ins
Enter the world of quantum computing and discover how quantum computers solve problems in a fraction of the time. You’re a researcher for Action at a Distance Corporation, a consortium of venture capitalists who believe the time to learn about and invest in quantum computing startups is now. Your task is to learn fundamental quantum computing skills so you can evaluate proposals from quantum startups and brief the consortium’s partners. Get familiar with the Qiskit environment as you create your own Qiskit programming Python imports template, then discover features of the Qiskit ecosystem as you add code to your template. You’ll set up a quantum circuit, getting first-hand experience with amplitudes and probabilities associated with quantum states. With these fundamentals under your belt, you’ll prepare brief notes for your report to the consortium, researching which companies will be the major players in the quantum race, what types of quantum hardware they’re pursuing, and what exactly is the “quantum advantage.”
skills learned: create quantum registers and circuits and begin to program them with Python and Qiskit
Nextstellar Corp is a media company with huge amounts of data to analyze. Some of that data is sitting in a PostgreSQL database, which is used for both authentication management and decision-making, as well as maintaining user preferences and feedback. Your boss doesn’t want that data sitting in the database—he wants it in the cloud! Moving it is exactly what you’ll be doing in this liveProject. You’ll use AWS Database Migration Service to enrich Nextstellar’s data lake with the PostgreSQL database so it can take full advantage of both modern data architecture and the AWS ecosystem.
skills learned: Using AWS Database Migration Service to move transactional data from on-premise to the cloud • Automating infrastructure using CloudFormation • Enabling on-premise to cloud connectivity • Setting up Database Migration Service replication instances and tasks • Configuring Change Data Capture (CDC) on Amazon RDS for Postgres • Using the Schema Conversion Tool • Validating a migration
Media company Nextstellar Corp has completed the migration of their data to the cloud—now they need to analyze it! That’s where you come in. You’ll take on the challenge of processing and integrating file and transactional data into a new cloud database solution that uses modern data architecture. You’ll use the AWS Glue tool to automate the whole process, from creating your crawlers and database to building your repository, Glue jobs, triggers, and establishing monitoring, troubleshooting, and scaling.
skills learned: Transforming raw data into standardized data using AWS Glue • Automating infrastructure using CloudFormation • Populating the AWS Glue catalog and creating Hive partitions • Creating ETL jobs using AWS Glue, including AWS Glue DynamicFrames and Spark DataFrames • Utilizing AWS Glue job observability and monitoring with AWS CloudWatch • Understanding AWS Glue job scaling concepts and configurations
In this liveProject you’ll develop a chatbot that can classify a user’s intent, using the Hugging Face NLP library. Your challenges will include building the task with the Bart transformer, and building a specialized task for detecting toxic language. You’ll then develop a Telegram bot and integrate it with your toxicity classification task.
skills learned: use a transformer to create a classification tool • build a chatbot using Hugging Face library to classify user messages • use transformers to create a classifier to identify toxic messages and integrate this classification into a chatbot
In this liveProject, you’ll go hands-on with the basics of quantum theory to prepare yourself for building your first quantum applications. You’ll use familiar Python tools to work through the basic building blocks for constructing quantum circuits, as well as exploring quantum gates and how they transform qubits, the basic units of quantum information.
skills learned: create quantum bits (qubits) and quantum gates with NumPy • create quantum circuits with Amazon Braket SDK
Red alert! One of the energy production companies managed by Sigma Corp has suffered an outage. An investigation has led to the conclusion that the facility’s anomaly detection mechanism failed to detect early signals due to a sudden change in the distribution of the analyzed data. As a lead data scientist at Sigma, you’ll build an Isolation Forest algorithm, which is less likely than the Empirical Cumulative distribution-based Outlier Detection (ECOD) method to fail in such scenarios. To gauge how robust your method is, you’ll benchmark your algorithms against adversarial scenarios, synthetic anomalies, and standard datasets. When you’re done, you’ll have practical experience creating, using, and testing the Isolation Forest algorithm as an effective alternative to ECOD in circumstances where the data distribution changes.
skills learned: apply the Isolation Forest method • evaluate algorithms under adversarial distribution change
In this liveProject, you’ll experiment with how iteration works in Python. You’re building a data analysis program that needs to iterate over a given number of Fibonacci numbers. To help out, you’ll construct an object that can be iterated over in a for loop or list comprehension that provides the Fibonacci series.
skills learned: build a data analysis program • use Python iteration protocol in creating iterables and an iterator using a generator function
In this liveProject, you’ll use the Julia language and clustering algorithms to analyze sales data and determine groups of products with similar demand patterns. Clustering is a well-established unsupervised learning technique that’s commonly used to discover patterns and relations in data. You’ll apply k-means and DBSCAN clustering techniques to housing sales data for a retail startup, leveraging your basic Julia skills into mastery of this machine learning task.
skills learned: basic data preparation for clustering methods • clustering data with k-means and DBSCAN algorithms • evaluating and visualizing results
In this liveProject, you’ll use the latent dirichlet allocation (LDA) algorithm from the Gensim library to model topics from a magazine’s article back catalog. Thanks to your work on topic modeling, the new Policy and Ethics editor will be better equipped to strategically commission new articles for under-represented topics. You’ll build your text preprocessing pipeline, use topic coherence to find the number of topics, and visualize and curate the algorithm’s output for your stakeholders to easily read.
skills learned: implementing a simplified version of the LDA algorithm • preprocessing and converting a text corpus into a document-to-word matrix • generating topics using Gensim’s LDA algorithm • evaluating generated topics using Coherence and Diversity metrics • visualizing derived topics with a variety of techniques
At Finative, an ESG analytics company, you’re a data scientist who helps measure the sustainability of publicly traded companies by analyzing environmental, social, and governance (ESG) factors so Finative can report back to its clients. Recently, the CEO has decided that Finative should increase its own sustainability. You’ve been assigned the task of saving digital storage space by storing only relevant data. You’ll test different methods—including keyword retrieval with TD-IDF, computing cosine similarity, and latent semantic analysis—to find relevant keywords in documents and determine whether the documents should be discarded or saved for use in training your ML models.
skills learned: clean data with regular expressions • mathematical concepts and how and when to apply latent semantic analysis and cosine similarity
In this liveProject, you’ll determine what similarities there are between certain movies, and then build a recommendation system based on the similarities you’ve identified. Although you’ll be working with movie data for a streaming website, identifying similarities can help enhance recommendation engines for any item or product. You’ll develop a general technique for spotting similarities, then apply your learned similarities to build a recommendation engine. You’ll then enrich your model with collaborative and content-based data, and evaluate and compare your model.
skills learned: read, process, and exploit user-item data • define recommender systems based on similarities • analyze algorithm output
Create a powerful recommendation engine built from an ensemble of graph-based models that will help you tap into New York City’s real estate market by identifying groups of similar properties. You’ll start by working with transductive graph models (TransE and TransR) that are created specifically for knowledge graphs. Transductive learning takes observations from a specific set of training data and applies it to a specific set of test data. Next you’ll build an inductive model (GraphSAGE), which allows for generalized learning on new data (i.e. predictive modeling on previously unseen properties). Lastly, you’ll build the recommender system by using the k-Nearest Neighbor (kNN) algorithm to identify similar properties. When you’re done, you’ll have hands-on experience applying machine learning techniques to real-world knowledge graphs… and possibly a lucrative side hustle.
skills learned: build transductive graph models (TransE, TransR) with pyKEEN • build an inductive graph model (GraphSAGE) with Stellargraph
In this liveProject, you’ll perform a regression analysis on precleaned data to determine factors relating to American life expectancy. You will learn how to do a comprehensive regression analysis and how to select a model in the presence of multicollinearity. You will use the libraries developed in the second and third projects to check the validity of your final model.
skills learned: detecting multicollinearity with the Variance Inflation Factor • doing a comprehensive regression analysis with Statsmodels • visualizing relationships with seaborn • interpreting "QQ-plots," "Residuals vs. Fitted" plots, and "Scale-Location" plots
In this liveProject, you’ll utilize Python to create new data reports from a centralized system. You’ll work with raw data about the sales of various products, and massage it into a different format from which subreports can be extracted. To do this, you’ll make use of lists—one of the most common data structures in Python that are at the heart of data processing.
skills learned: list comprehensions • list slicing • ways to sort a list
Help your company’s messenger application provide better product recommendations for its customers. As a data engineer at the company, your task is to create a machine learning (ML) pipeline using the Amazon Personalize service. You’ll use CloudFormation templates to create a repository for the required AWS infrastructure resources, and AWS Glue to transform the raw user engagement data. Using Amazon Personalize, you’ll import a dataset and create and train the Amazon Personalize ML model for your users’ recommendations. To complete the project, you’ll create a workflow to train your Amazon Personalize recommendation solution using AWS Step Functions and user engagement events. When you’re done, you’ll have designed an ML pipeline using the Amazon Personalize API that provides product recommendations that suit your users best.
skills learned: create a data lake S3 bucket using an AWS CloudFormation template (Infrastructure as Code) and prepare data using AWS Glue • design a data pipeline to create and train an Amazon Personalize solution • deploy the pipeline using AWS Step Functions and AWS CloudFormation (Infrastructure as Code)
Build a better defense! As a developer at ShareSafe, a company that provides online file-sharing-as-a-service, your task is to uplevel the security of its REST API file-transfer service by adding functionality for checking uploaded files for malware. You’ll set up a robust infrastructure for malware analysis of files stored in AWS S3 buckets, integrate the infrastructure with the REST API service, and implement VirusTotal, a threat intelligence service that provides dynamic and behavioral analysis to shared files. When you’re finished, you’ll have built a solid line of defense against known malware and provided users with a secure file-sharing experience.
skills learned: set up robust malware analysis infrastructure • integrate with third-party services
As a consultant for Messflix Inc., a movie and TV-show streaming platform, you’ll investigate and discover why Meshflix’s recommender system breaks. You’ll brainstorm options for changes that don’t break the system, explore their pros and cons, and choose and implement one of your options. Then you’ll create an internal versioning strategy to support all the great product changes Messflix has planned for the future.
skills learned: understand product thinking • manage changes in data products • prevent breaks in downstream data products
In this liveProject, you will create an imbalanced dataset from the IMDb movie dataset. Your goal is to make a dataset where positive reviews are the minority. You’ll then test a theory that if you oversample positive reviews, you could rebalance the training data to build and train a text classification model. You finish up by examining the model performance with a confusion table, and basic metrics such as precision, accuracy and recall.
skills learned: building and training a deep learning model for text classification • using sklearn module to report model classification metrics • condition based sampling technique for NumPy array
Action at a Distance Corporation, a consortium of venture capitalists, believes that now is the time to invest in quantum computing startups. As its resident researcher, your job is to get familiar with quantum techniques and applications. You’ll code quantum circuits involving four different quantum gates, the fundamental processing units of quantum. You’ll visualize the effects of the gates, run and measure the circuits, and use IBM Quantum Composer to demonstrate the use of the gates. With a deeper understanding of quantum, you’ll investigate major quantum use cases to help the consortium determine whether or not the startups’ proposals have commercial applications.
skills learned: investigate and program quantum circuits and quantum gates • use IBM Quantum Composer to demonstrate the use of gates • program with Python and Qiskit
In this liveProject, you’ll compute and chart metrics that show the key characteristics in Home Mortgage Disclosure Act (HMDA) dataset, and investigate relationships between key demographics and other features that may lead to a biased machine learning model. You’ll compute and chart “equality of outcome” bias metrics, and produce a report into your insights.
skills learned: setting up a Google Colab environment • preprocessing a dataset using one-hot encoding • charting and visualizing metrics
In this liveProject, you’ll investigate and report on whether your company’s mortgage application classifier is making fair decisions between male and female applicants. You’ll train a logistic regression classifier on the HMDA dataset, compute performance metrics with a logistic regression classifier, and then chart “equality of opportunity” bias metrics.
skills learned: setting up a Google Colab environment • preprocessing a dataset using one-hot encoding • computing bias performance metrics for logistic regression
Preventing operation failures and interruptions is mission-critical at Sigma Corp. The large conglomerate of energy production companies has recently implemented a z-score anomaly detection algorithm that focuses on a single feature. Now that the algorithm has proved its value, members of Sigma have requested additional algorithms that are just as simple to use, but that can handle multidimensional data. As a lead data scientist at Sigma, you’ll implement the Mahalanobis distance (MD) method and the principal component analysis (PCA) method as you build anomaly detection algorithms for multidimensional data. To gauge the performance of your algorithms, you’ll test them against a benchmark dataset as well as synthetic anomalies generated by your own algorithms. When you’re done, you’ll have firsthand experience building anomaly detection algorithms for multidimensional datasets as well as testing anomaly detection algorithms against both benchmark datasets and synthetic anomalies.
skills learned: PCA method • Mahalanobis method • evaluate algorithms using correlated synthetic anomalies
The Nextstellar Corp media service has a lot of data—too much data to handle on prem! In order to properly analyze all the data generated by their streaming customers, they’re migrating to the cloud. In this liveProject, you’ll be helping them. You’ll tackle the common challenge of transferring on-prem data to AWS using the handy AWS DataSync tool. You’ll use Infrastructure-as-Code to create Landing Zone Amazon S3 buckets, automate data migration, and finally prepare a summary of likely infrastructure costs for your boss to review.
skills learned: Using AWS DataSync to move files from on-premises to the cloud • Automating infrastructure using CloudFormation • Organizing and managing data in a data lake • Creating data lifecycle policies • Setting up sources and destinations for data files • Starting AWS DataSync migration tasks
Unexpected bias in machine learning models reduces accuracy, produces negative real-world consequences, and in the worst cases, entrenches existing inequalities for decades. Audits that can detect and mitigate this unwanted bias are an essential part of building and maintaining reliable machine learning systems.
In this liveProject, you’ll take on the role of a data scientist running a bias audit for the World Health Organization’s healthcare models. You’ll get to grips with state-of-the-art tools and best practices for bias detection and mitigation, including interpretability methods, the AIF-360 package, and options for imputing membership of a protected class. These tools and practices are placed in the context of a broad universe of bias where geopolitical awareness and deep understanding of the history and use of your particular data is key.
skills learned: biasing and debiasing ML models • using SHAP to interpret the underlying logic behind a ML model • using AIF360 to detect and mitigate unwanted bias • auditing techniques for unknown at-risk populations
In this liveProject, you’ll use the open source AI Fairness 360 toolkit from IBM and the “equalized odds post-processing” method to post-process your model for the purpose of bias mitigation. “Equalized odds post-processing” seeks to mitigate bias by making modifications to the prediction label after a model has been trained. After charting bias metrics on a basic classifier, you’ll tune the classification threshold to explore the impact on revealed biases.
skills learned: setting up a Google Colab environment • AIF360 open source library • post-processing for fairness with the “equalized odds'' method
In this liveProject, you’ll use the open-source AI Fairness 360 toolkit from IBM to measure and mitigate bias with model preprocessing. You will chart bias metrics on a basic classifier, before preprocessing your training data with the “reweighing” method. Reweighing seeks to mitigate bias by making modifications on the training data by computing and applying a set of weights. The weights are calculated such that the training data, with weights applied, is free of discrimination with respect to a protected attribute. Once your model is preprocessed, you’ll construct a classifier that makes use of the data.
skills learned: setting up a Google Colab environment • AIF360 open-source library • preprocessing for fairness with the reweighing method
In this liveProject, you’ll fill the shoes of a data scientist at UNESCO (United Nations Educational, Scientific and Cultural Organization). Your job involves assessing long-term changes to freshwater deposits, one of humanity’s most important resources. Recently, two European Space Agency satellites have given you a massive amount of new data in the form of satellite imagery. Your task is to build a deep learning algorithm that can process this data and automatically detect water pixels in the imagery of a region. To accomplish this, you will design, implement, and evaluate a convolutional neural network model for image pixel classification, or image segmentation. Your challenges will include compiling your data, training your model, evaluating its performance, and providing a summary of your findings to your superiors. Throughout, you’ll use the Google Collaboratory (“Colab”) coding environment to access free GPU computer resources and speed up your training times.
skills learned: work with times series data • perform image segmentation • merge satellite imagery and perform operations on raster datasets • data augmentation for boosting model training • optimize and understand model performance
As a lead DevOps engineer, you’ve learned that using Fargate to host a database is not ideal. Your task is to solve that problem by attaching permanent storage to the container and adding important maintenance features. To deliver this solution, you’ll set up an AWS Aurora PostgreSQL with CDK, integrate it with a Fargate service, and keep the connection between the service and the database secure with AWS Secret Manager. When you’re done, you’ll have a working end-to-end solution ready to be deployed with CDK.
skills learned: use AWS RDS Aurora with AWS Fargate • control permissions on the container • store secrets and pass them to the container without human intervention
In this liveProject you’ll develop a chatbot that can extract entities from user messages using the Hugging Face NLP library. Entity extraction pulls relevant data from chunks of text. Your challenges will include building a Named Entity Recognition task with the BERT transformer, and fine-tuning it to a medical context. You’ll then integrate your tasks into a chatbot.
skills learned: use a transformer to create a named-entity recognition tool • build a chatbot using Hugging Face library to extract entities from user messages like localizations and people
Let your robot drive itself! Your company, RoboPrototypes, is preparing to demo its autonomous beverage delivery robot to investors soon, but the technician who was supposed to drive it has quit. Since there’s no one to take his place, your CEO has tasked you with upgrading the robot with automatic navigation. You’ll set up Nav2 to load your desired parameters, implement navigation planners and controllers, and optimize navigation by tuning costmap parameters. Once you send your waypoint goals to Nav2 telling your robot where to go, it’ll be ready to quench thirsts at a food court near you.
The version of Gazebo used in this project reached end of life in January 2025.
skills learned: planners • controllers • global and local costmaps • waypoint following • tuning Nav2 parameters
In this liveProject, you’ll play the role of a programmer who has been hired by a real estate developer to help determine what a fair market price for rent should be across a number of owned properties. The good news is that the real estate developer has gathered data into a spreadsheet (in a CSV file). The bad news is that the spreadsheet is so large that they can’t even open it in a typical spreadsheet program, let alone do any sort of analysis with it. They’ve asked you to develop an interactive program that will perform some basic exploration of the data. You’ll use highly popular Python to tackle this challenge, and gain valuable experience processing CSV files and sorting lists as well as working with files, strings, and command-line arguments.
skills learned: develop a basic text-based spreadsheet program • read command-line arguments and perform file I/O • perform common string operations in Python • append items to Python lists • sort lists in Python using built-in routines
In this liveProject, you’ll build neural nets for a bank that are capable of classifying the numbers written on deposit slips. Customers often write out their important account details by hand, and you need to create a model capable of effectively reading their handwriting. You’ll use a feedforward network trained with backpropagation to identify hand-drawn digits with a high percentage of accuracy. Plus, this project contains an optional bonus milestone! Further your knowledge of neural networks by using the TensorFlow and Keras libraries to create an alternative and more flexible version of your first model. You’ll get hands-on experience with these tools' standard libraries, and with your new model you will be able to easily analyze the network's success rate and experiment with different activation functions.
skills learned: neural network concepts • feed-forward neural networks • backpropagation
In this liveProject, you’ll use the neural network-inspired Contextual Topic Model to identify and visualize all of the articles in a scientific magazine’s back catalog. This cutting-edge technique is made easy by the OCTIS (Optimizing and Comparing Topic Models is Simple!) library. Once you’ve established your text-processing pipeline, you’ll use coherence and diversity metrics to evaluate the output of your topic models, tune your neural network’s hyperparameters to improve results, and visualize your results for printing on posters and other media.
skills learned: exploring the vector representations produced by BERT • preprocessing text documents • using the Contextual Topic Model • performing hyperparameter tuning • evaluating topics using Coherence and Diversity and visualizing generated topics
In this liveProject you’ll use scikit-learn’s non-negative matrix factorization algorithm to perform topic modeling on a dataset of Twitter posts. You’ll step into the role of a data scientist tasked with summarizing Twitter discussions for the customer support team of an airline company and use this powerful algorithm to rapidly make sense of a large and complex text corpus. You’ll build a text preprocessing pipeline from scratch, visualize topic models, and finally compile a report of support topics for the customer services team.
skills learned: Implementing a simplified version of the NMF algorithm • preprocessing and converting text corpus into a document-to-word matrix • generating topics using scikit-learn’s NMF algorithm • evaluating generated topics using Coherence and Diversity metrics • visualizing derived topics with a variety of techniques
In this liveProject, you’ll use Python to build a nonogram puzzle generator that creates a printable puzzle pack from the command line. Nonograms are puzzles that reveal an image on a grid, based on numbers along the grid’s edge. Most programmatic implementations solve nonograms, but yours will generate them. To do this, you’ll code your script, relying on two essential data structures: the pandas DataFrame and the NumPy array. You’ll also experiment with image libraries including Pillow and pixelate, and gain a better understanding of basic image processing concepts.
skills learned: image manipulation • NumPy • table styling • file I/O • HTML • CSS • debugging • Pillow • pixelate • regular • expressions
In this liveProject, you'll spearhead the development of AI-aided surveillance software for construction site supervision. You’ll build two computer vision applications capable of detecting construction vehicles and their types across a large worksite and a more powerful model that can detect building defects such as cracks and fissures. Start by working with a pre-trained DETR model, then explore the Roboflow platform to assist you as you create a multi-class object detection dataset from multiple datasets with non-identical classes. With these datasets, you will train different transformer models for object detection to identify construction vehicles and cracks in buildings.
skills learned: import computer vision datasets from other platforms like Roboflow• merge two or more object detection datasets and their annotations on Roboflow • set up training, test, and validation datasets for object detection • train and evaluate three variants of DETR models for construction vehicle detection
In this liveProject, you’ll take on the task of extending a pricing application. You’ve just hit your first speed bump of needing to add functionality to the class that manages prices. However, that class is used elsewhere and you can’t get permission to change it. Your challenge is to implement a “monkey patch”—adding methods to the class at runtime—by experimenting with Python-bound methods.
skills learned: add functionality to a pricing application • create a class using type() • add bound methods to a class • monkey patch a class after creation
Put on your platform architect hat! You’re a member of the development team at Piper Data Concepts (PDC), and your client is looking to modernize its workflow. An existing benchmarked development environment, made up of Kafka, Python, and Postgres, is at your disposal. Now it’s time to start conceptualizing the new and improved workflow. You’ll use Kafka to create an event-driven data pipeline, review and understand business requirements, use Python Poetry to package the project, write Python code using the Faust library to communicate with Kafka, and store the consumed data in a PostgreSQL database.
skills learned: Faust • architecture • Kafka topics • writing to a database
You’re a software engineer for Sneakers to the Max, an e-commerce company that sells sneakers. Its CEO wants to improve the speed and quality of the company’s search engine in hopes of boosting sales. Your task is to optimize the mappings of the Elasticsearch index. You’ll use the Kibana developer console to analyze the current mapping and create a new custom analyzer. To improve search matches—and customer experience—you’ll use the Elasticsearch field mappings to support multiple uses of the same field. You’ll modify the mappings to help customers find the sneakers they’re looking for, even if their search terms are incomplete or contain typos. To further improve CX, you’ll add synonyms to the Elasticsearch configuration to handle searches that use different terms for the same concept.
skills learned: mapping of different datatype fields in Elasticsearch • evaluating mapped datatype fields using analyzer tools
Nextstellar Corp needs you to tackle a big challenge: completing their cloud migration by rebuilding their historical data lake as a data layer in the cloud. You’ll implement an effective and automated data orchestration framework for the ingestion and transform and curate layers, using best practices for Infrastructure-as-Code to automate your data layer. Finally, you’ll establish a monitoring system that will automatically alert you to any issues or problems that might crop up.
skills learned: Using AWS Step Functions and AWS Glue workflows to orchestrate data pipelines • Automating infrastructure using CloudFormation • Monitoring data in a data pipeline.
In this liveProject, you’ll leverage organizations service control policies to protect administrative and security resources in the accounts used by development teams where these teams have privileged access. Specifically, you will add automation to restrict access of local administrators (and intruders!) to any AWS CloudTrail and Amazon GuardDuty resources located in the accounts. Without these protections, the security controls we have put in place for audit, forensic analysis, and intrusion detection can be interfered with by the local administrators.
skills learned: develop Security Control Policies • develop and test boto code • invoke the IAM Policy Simulator
Master the basic methods for handling most real-world scenarios as you play the role of a data scientist in an online recruiting tech company or a large organization’s HR department. Using pandas, you’ll process, extract, and transform numerical, categorical, time series, and text data into structured features that are ready for data analysis and ML model training. When you’re done, you’ll have hands-on experience working with most data types you’ll find in the real world, as well as useful skills for extracting and engineering features.
skills learned: feature engineering with pandas • cleaning, standardizing, and transforming data with pandas
In this liveProject, you’ll apply the federated learning machine learning paradigm to compute a personalized infection risk diagnosis for COVID-19. Federated learning is an ML paradigm that learns from decentralized data via distributed computing environments. The risk diagnosis will come from a tailored classifier that is trained separately for each individual, by combining gradient descent with a network averaging method. You’ll then develop a federate learning algorithm that can be implemented by scalable passing messages over the contact network.
skills learned: use NetworkX to jointly represent network structured data and models • learn the weights of a linear classifier using gradient descent • implement a Federated Learning algorithm by combining gradient descent with a simple averaging scheme
In this liveProject, you’ll use causal inference to investigate data on randomized discounts and determine if an e-commerce company should offer personalized discounting. You’ll estimate a different treatment effect for each customer in the hopes to see if some are positive, and figure out which customers should get what discounts. You’ll utilize Python and machine learning to build this personalization system, and implement a causal model for personalization.
skills learned: implement causal models for personalization • evaluate the performance of your causal model using experimental data
You’re a data analyst at Global Consensus Bureau, and your manager has asked you to determine how factors like education, hours worked per week, gender, and age relate to citizens’ incomes. Using pandas, you’ll pre-process data from a survey conducted by the U.S. Census Bureau. Then, you’ll create different charts to identify statistical relationships in data, using Python’s seaborn library, which provides custom functions for visual elements. When you’re done, you’ll know how to use seaborn to create visually appealing charts that reveal accurate and useful insights.
skills learned: visualize relations in categorical data • visualize relations in numerical data • visualize pairwise relationships
Time series analysis is an essential tool for data forecasting, allowing data analysts to make predictions about the future events and track relationships between data. In this liveProject, you’ll utilize the Python data ecosystem and time series analysis to analyze the spread of the COVID-19 virus in different parts of the globe.
Your goal is to make near-future predictions about virus spread based on your available data. You’ll start with an exploratory data analysis into the types of data you have access to, establishing the kind of questions it can reasonably answer. You’ll then develop an ARIMA model for time-series forecasting. Finally, you’ll develop an interactive Voilà dashboard using ipywidgets that will allow stakeholders to access and understand your analysis.
skills learned: time series forecasting with ARIMA • univariate and bivariate analysis • data visualization
The Python data science ecosystem is a powerful and open-source toolset utilized daily by thousands of data scientists and machine learning engineers. But with so many Python machine learning libraries to choose from, which tool works best for your needs?
In this liveProject, you’ll go hands-on with the scikit-learn and H2O frameworks, using them both to build working machine learning classifiers. You’ll use raw financial data and the tried-and-true random forest model to predict the chance of financial loan defaults. Once you’ve built your models, you'll compare implementations to find out which works best and evaluate your results against existing hard-coded tools.
skills learned: exploratory data analysis • working with pandas DataFrames • feature engineering • machine learning modeling with random forests • optimizing machine learning • model evaluation and comparison • deploying a model in a Python module
A big city receives thousands of daily calls to its emergency services, reporting everything from illegal parking to life-threatening emergencies. In this liveProject, you’ll take on the role of a data scientist called in to advise on how the city can better allocate resources for these safety events. Your challenge is to create a machine learning model that can predict when and where different emergencies will occur. To do this, you’ll analyze data to identify trends, build and enhance a predictive model, and make your model explainable with model interpretability tools. You’ll also perform checks to ensure that the model won’t lead to bias or discrimination, and tweak your model so it can account for major lockdown events such as a pandemic.
skills learned: using machine learning to analyze and visualize location-based and time dependent data to make predictions • interactive data visualization • evaluating risks of bias and discrimination in production models
In this liveProject, you’ll use the Python tools pandas and Folium to prepare the Airbnb dataset for training a deep learning model. You’ll learn Python concepts that ensure the application you build on this data is robust and maintainable, and implement geospatial and visualization techniques to illustrate the geographic distribution of Airbnb rentals.
skills learned: manipulate tabular data • create geospatial visualizations
In this liveProject, you’ll create baseline models with Naive and sNaive methods for time series forecasts that you can use as a point of comparison for other models. Taking on the role of a data scientist for a large retail company, you’ll go hands-on to prepare sales data, create the baseline models, and optimize a Prophet model to compare against your baseline.
skills learned: build baseline models with Naive and sNaive methods • set up and optimize a Prophet model as an alternative model for comparison • evaluate various models using weighted MAE and MAPE
In this liveProject, you’ll step into the shoes of a quantum software engineer and develop a library for state preparation routines. Preparing quantum systems in arbitrary superposition states is a vital step of quantum algorithms. Luckily, the Microsoft Quantum Development Kit libraries offer multiple state preparation routines. You’ll implement a single-qubit state preparation routine and a recursive multi-qubit state preparation routine, before implementing the complete multi-qubit state preparation routine. Finally, you’ll write unit tests for your implementation.
skills learned: developing quantum algorithms to match specified tasks • simplifying code development with the Microsoft Quantum Development Kit • running quantum code simulations
The company you work for, which offers lifestyle products, has enjoyed success for several years, but management has decided it’s not competitive enough. Your task is to identify current market trends and new niche markets for the company’s lifestyle products. Using Python and Ray, you’ll build a web scraper that will load and save multiple web pages concurrently. To preprocess the data, you’ll read each of your locally stored pages, split them into sentences, tokenize each sentence with Hugging Face tokenizers, and store your tokenized documents in a new (pickled) format in your file system. When you’re finished, you’ll have leveraged Ray to preprocess a large amount of data while bypassing Python’s notorious concurrency limitations. The data science team will thank you for helping minimize the data preparation time, and the management team will thank you for helping the company sharpen its competitive edge.
skills learned: make your Python code concurrent or parallel • build a web scraper • pre-process texts for NLP models with Hugging Face transformers
Step into the role of data scientist at Finative, an analytics company that uses environmental, social, and governance (ESG) factors to measure companies’ sustainability, a brand new, eco-focused trend that's changing the way businesses think about investing. To provide its clients with the valuable insights they need in order to develop their investment strategies, Finative analyzes a high volume of data using advanced natural language processing (NLP) techniques.
Recently, your CEO has decided that Finative should increase its own sustainability. Your task is to develop a method to optimize the runtime for the company’s machine learning models. You’ll apply principal component analysis (PCA) to the data in order to speed up the ML models. To classify handwritten digits and prove your theory that PCA speeds up ML algorithms, you’ll implement logistic regression with scikit-learn. You’ll use the explained variance ratio to gain an understanding of the trade-offs between speed and accuracy. When you’re done, you’ll be able to present your CEO with proof of PCA’s efficiency in optimizing runtime.
skills learned: algorithm optimization with principal component analysis (PCA) • matrix manipulation with NumPy • nuances of scikit-learn's PCA library
In this liveProject, you’ll build a Prophet model that can forecast airline passenger numbers using data from the DataSF portal. The hotel you work for believes that analyzing the travel trends of US customers will help them forecast potential travel to Europe, and bookings in the hotel. You’ll enhance your model with "changepoints" that mark a significant change in trends, and make adjustments so your model can account for uncertainty in the trend and seasonality components.
skills learned: implementing prophet models • configuring changepoints • analyzing time series data with uncertainty interval configuration
Messflix Inc., a movie and TV-show streaming platform, wants to build a recommendation system for its movies and shows, but currently, its data landscape is too complex. As a consultant, your task is to implement a data mesh for an improved, accurate flow of its data. Using Python and JSON, you’ll help the data engineering teams sift more easily through Messflix’s data by creating separate, structured data products that can be pushed to the central data platform. From the organized data products, you’ll create a list of recommended movies, tailored to Messflix’s customers’ preferences.
skills learned: understand distributed domain ownership • produce data inside a data mesh • produce derived domain data products
Messflix Inc., a movie and TV-show streaming platform, is implementing a data mesh. So far, it has a self-serve data platform prototype where development teams can register their domain data products. As a consultant, your task is to build on that basic platform prototype with additional functionality: You’ll write a script in Python that will enable the development teams to push fresh data into their existing data products, write a function that adds support for versioned data, and implement a function that automatically calculates specific metadata (like row count and latest timestamp), then prints it to the screen. When you’re finished, you’ll have built a well-functioning, feature-rich, self-serve data platform, and be familiar with the requirements data-producing and data-consuming teams face daily and how to fulfill them.
skills learned: build a self-serve data platform • build a small data catalog • consume data inside a data mesh • store data products
Step into the role of a developer at Piper Data Concepts (PDC), a company that specializes in helping Fortune 1000 companies improve their workflows. Your task is to review the 15-year-old workflow architecture of one of your clients, Trade Data Systems. You’ll identify issues and bottlenecks, then determine what’s needed to transform its workflow into a more modern, responsive architecture. To accomplish this, you’ll set up a development environment with Docker using Kafka, Python, and Postgres. As you go, you’ll deploy a Kafka cluster and write Python code using the Faust library to seamlessly process pre-defined business events.
skills learned: Python packaging • messaging • containers
In this liveProject, you'll join InfoHub, an AI startup disrupting corporate knowledge management. They aim to unlock a company’s knowledge base through conversational Q&A-style user interfaces that use breakthrough language models. You'll leverage LangChain, a framework optimized for integrating LLMs into apps, to integrate InfoHub's data, vector stores, and language models into a single solution. You’ll prepare your data, create a vector store to embed your documents, and then use LangChain to combine it with an LLM.
skills learned: use LangChain for questions answering • create and populate a vector store with your own data
In this liveProject, you’ll implement superdense encoding and use the unique properties of qubits to build a communication system between two friends—Alice and Bob. You’ll prepare qubits into a Bell pair, and then utilize quantum gates to implement a messaging system. You’ll then prepare the quantum circuits that allow Bob to receive and read Alice’s messages.
skills learned: create a quantum circuit to communicate information between two parties using the Amazon Braket SDK • prepare two qubits and make them into a Bell pair • implement a messaging scheme with quantum gates • send messages using qubits
In this liveProject, you’ll use the Amazon Braket quantum simulator to generate a quantum random number generator. Generating truly random numbers is an essential aspect of cryptography, and the seed generation process in a public/private key infrastructure. These random numbers can be used as the basis for further cryptographic work that easily outpaces the pseudo-random capabilities of traditional computing.
skills learned: create a quantum circuit that solves a problem by creating a truly random number with Amazon Braket SDK
In this liveProject you’ll develop a chatbot that can answer its user’s questions, using the Hugging Face NLP library. Your challenges will include building the task with DistilBERT transformer, and experimenting with other transformer models to improve your results. Once you’ve built an accurate NLP model, you’ll develop a Telegram bot and integrate it with your Question Answer task.
skills learned: use a transformer to create a question-answer tool • build a chatbot using Hugging Face library to answer user questions using Wikipedia data
In this liveProject, you’ll step into the role of a data scientist working for an investment firm. Your company wants to make sure their investments meet European Union guidelines for environmental sustainability. That’s where you come in.
The EU taxonomy for sustainable finance is big, complex, and confusing. Your bosses need a program that saves them from searching through hundreds of pages whenever they have a query. You’ve been tasked with building a machine learning model that can pose certain questions to the EU guidelines, and return reliable answers.
Your challenges will include extracting text data from the EU taxonomy document, and matching environment questions with the corresponding paragraph in the guidelines. You’ll then set up a pretrained transformer Question-Answering model, evaluate its performance, and combine it with your question-paragraph model for an end-to-end solution. When you’re done, you’ll have an interface into which you can type a sustainable finance question and receive the correct answer from the EU guidelines.
skills learned: deep learning for NLP • information retrieval • extracting text from PDFs • working with transformers and auto-encoders • working with word and paragraph embeddings
Behind the scenes on websites like Amazon, Netflix, and Spotify, models make predictions on thousands of items every day. Then, based on what they’ve learned, they choose only the best recommendations to display for every individual user. In the real world, performing thousands of predictions one by one, as in a notebook-only model, would be highly inefficient. In this liveProject, you’ll reconfigure the models you implemented in the previous project to accept a list of items for each user and then evaluate all items at once—choosing the best recommendations much more quickly and efficiently.
skills learned: reconfigure a “notebook-only” recommendation system to a model capable of handling many-items per user • use linear-algebra to combine networks with differing dimensionality
Voice assistants and speech-based applications need a reliable understanding of human commands. Deep learning systems trained on audio data are a great way for models to learn directly from sound and easily classify what humans are telling them.
In this liveProject, you’ll become a data scientist prototyping a speech command system for a medical organization. Your company’s application will allow hospital patients to adjust their room TVs with their voice, and you’ve been tasked with building the core: a machine learning pipeline that can label audio inputs with given command words. You’ll tackle preprocessing and feature engineering methods for audio signals, expand your existing machine learning capabilities with audio data, and get hands-on experience with TensorFlow, Keras, and other powerful Python deep learning tools.
skills learned: performing digital audio processing • extracting spectral features from raw audio data • building deep learning architectures for audio
In this liveProject, you’ll build your own Python data library to check three of the assumptions of the regression model: normality, linearity, and constant variance. Confidence in your regression models depends on how well you have satisfied these assumptions. Once you’ve developed functions and plots that can check these assumptions, you’ll master techniques for correcting them. With this library, you will expand your data science toolbox with important diagnostics tools that will allow you to be confident in your results.
skills learned: checking the assumptions of the regression model • programming "QQ-plots," "Residuals vs. Fitted" plots, and "Scale-Location" plots • visualizing relationships and distributions with seaborn
In this liveProject, you’ll use regression discontinuity design (RDD) as a form of natural experiment that works as an alternative to A/B testing. RDD measures treatment effects at points of discontinuity to get an idea of the effectiveness of a program without needing to rigorously A/B test it. You’ll use this technique to assess the discounting strategy of an e-commerce company, in a way that will allow you to start applying causal inference to other practical problems.
skills learned: spot discontinuities in data • use RDD techniques to estimate the impact of discount on profits
In this liveProject, you’ll use the Julia language to build a regression-based machine learning model that can predict median house value in a neighborhood. You’ll start out with a simple linear regression model to give you a baseline value for quality metrics created with Julia’s package for Generalized Linear Models. You’ll then tune and assess a random forest model, and compare and contrast the two approaches to pick the best results.
skills learned: build linear regression and random forest models • evaluate models and explore their output • save model to the file for further reuse
In this liveProject, you’ll develop an AI driving agent that can simulate independent driving. Your agent should be able to handle changing lanes, navigating roundabouts, and even self-parking. In order to create this complex agent, you’ll use powerful reinforcement learning techniques including model-based learning, model-free learning, and simulation-search/planning algorithms. Go hands-on to train your AI in AI Gym on Google Colab, improve your model’s performance, and provide professional-level documentation of your work for your colleagues.
skills learned: working with OpenAI Gym • developing reward-shaped training agents • using rl-agent and stable-baselines packages to directly train models
Real-world recommendation systems work with millions of users and billions of items. To handle this massive scale, recommendation systems tend to be divided into two types of models (retrieval and ranking), running one after the other, narrowing down the set of items each time. In this liveProject, you’ll implement a retrieval model using TensorFlow Recommenders, combine it with a ranking model, then create a fully functional pipeline going through both models, using a Feature Store. Finally, you’ll explore the scenario where you can’t (or choose not to) run both retrieval and ranking models online in real-time, leveraging the Feature Store once more to use the retrieval model offline.
skills learned: split a single recommendation system to two essential parts, retrieval and ranking, using TensorFlow Recommenders • understand what Feature Stores are and how to use them
Action at a Distance Corporation, a consortium of venture capitalists, believes that the time to invest in quantum computing startups is now. As the consortium’s researcher, your task is to gain knowledge of quantum computing capabilities.
You’ll explore matrix representations—mathematical underpinnings of quantum computing—and examine quantum circuits that use different arrangements of gates to achieve identical functionality. You’ll upgrade your quantum toolbox with phase kickback, an essential component of many quantum algorithms, and you’ll work with Bloch spheres, a way of visually representing qubits. You’ll then use two different methods to run a circuit on IBM quantum hardware, a task that will be commonplace in the not-so-distant future.
skills learned: quantum gates as matrices • circuit identities • phase kickback • Bloch spheres • run programs on IBM quantum hardware systems on quantum computers
Get tangled up in quantum computing! Action at a Distance Corporation, a consortium of venture capitalists, believes the time to invest in quantum computing startups is now. As the consortium’s resident researcher, your task is to understand the power of quantum computing.
You’ll learn to recognize normalized quantum states of two qubits, a key skill in implementing quantum algorithms. You’ll get familiar with the Controlled Not (CNOT) gate, vital to the construction of important, entangled states, and you’ll observe what Einstein called “spooky action at a distance” as you program the (famous!) entangled Bell states. Using the IBM Quantum Composer, you’ll visualize and animate quantum circuits, gaining insight into handling gates and their outcomes.
skills learned: programming circuits involving 2 qubits • quantum gates • Bell states • IBM Quantum Composer
EKKo Inc., the machine learning consultancy you work for, has been building an embedded system to enable deaf or hard of hearing people to participate in online meetings and events on their mobile devices. As a data scientist, your task is to complete the system by enabling it to detect American Sign Language (ASL) in real time. You’ll define a CNN model, train it using the existing ASL dataset, and evaluate the model’s accuracy. To optimize training speed and quality, you’ll fine-tune the model’s hyperparameters using the Keras Tuner. You’ll enable the model to be quantization-aware with the TensorFlow Model Optimization Toolkit (MoT), optimizing size and CPU consumption while maintaining model accuracy. To complete the project, you’ll connect the quantized model with a live video stream and train it on the embedded system. When you’re done, you’ll have a fully functional quantized CNN you can run on an embedded system that successfully detects and transcribes ASL in real time.
skills learned: set up a real-time training algorithm on an embedded board • train, evaluate, and tune hyperparameters on an embedded board • workflow of model tuning from the desktop to the embedded board
You and your DevOps team have successfully built an application and an automated deployment pipeline for it. But before you can launch you’ll need a solid operating plan that addresses how you’ll monitor and troubleshoot your new service in production. In this liveProject, you’ll add metrics and a CloudWatch Container Insight dashboard to your Fargate service. You’ll also enable autoscaling to adjust according to CPU usage, and you’ll structure logging to be easily searched. Lastly, you’ll use Python to set up alarms so you’ll know when something goes wrong.
skills learned: use AWS RDS Aurora with AWS Fargate • control permissions on the container • pass parameters and secrets to the container
In this liveProject, you’ll take on the role of a project manager for a construction company and utilize Python to help schedule your construction’s tasks. You’ll utilize tried and tested methods like topological sorting, PERT charts, and Gantt charts to create a task scheduling tool that can both track deadlines and automatically update delivery dates for when deadlines are missed.
skills learned: using Python to parse data in files • finding critical paths • drawing with tkinter
The real estate developer you’ve worked with previously is so pleased with your work that they’ve asked you to write a new program that allows them to zero in on specific data in sorted reports. Their ultimate goal is to determine what kinds of homes fall into different ranges of interest. Using Python, the csv library, and a custom ADT (that you’ll design), you’ll implement multiple distinct search algorithms as you create a program that allows your client to run many queries— and be fast and efficient, despite the large size of the dataset.
skills learned: design an ADT that abstracts over a dataset and implement it for sorted and unsorted Python lists as well as balanced and unbalanced binary search trees • implement a routine to search through the data • check the correctness of your code using provided unit tests
In this liveProject, you’ll utilize PyTorch and powerful semi-supervised learning techniques to construct an advanced image classifier that can tell whether a 32x32 pixel photo of a mole is melanoma-positive—despite working with a very small labelled dataset. You’ll set up your image preprocessing pipeline, feed data into your PyTorch model, and then train a semi-supervised GAN model on both labeled and unlabeled datasets.
skills learned: generative modeling with unsupervised GANs • semi-supervised learning with GANs
You’re a programmer at the RoboPrototypes company, and its “dribot”—a prototype of a robot that will serve drinks to customers at a food court—has been running into things (including the CEO’s shin). Using Gazebo 11 and RVIZ2, you’ll add LiDAR (light detection and ranging) and IMU (Inertial Measurement Units) sensors that will provide a view of the environment from the robot’s perspective. To make the most out of the sensor data, you’ll fuse information from multiple sensor sources to better estimate where the robot is in the world.
The version of Gazebo used in this project reached end of life in January 2025.
skills learned: basics of sensors (encoders, IMUs, LiDARs, ultrasonic sensors) • URDF/XACRO • create a robot description • simulate sensors • sensor fusion
In this liveProject, you’ll step into the role of a Natural Language Processing Specialist working in the Growth Hacking Team of a new video game startup. Your team wants to massively accelerate your company’s early growth by acquiring huge numbers of customers at the lowest possible cost. To help tailor marketing messages, your boss has asked you to map the market and find out how customers evaluate your competitors’ products. Your challenge is to create a sentiment analyzer that will give a deeper understanding of customer feedback and opinions. To do this, you’ll need to download and create a dataset from Amazon reviews, build an algorithm that will determine whether a review is positive or negative, evaluate your analyzer's performance against star ratings, and lay out your findings in a report for your manager.
skills learned: perform sampling from imbalanced data • dictionary-based sentiment analysis • analyze reviews with deep learning • compare classifier performance
In this liveProject, you’ll make use of Amazon Web Services tools to convert customer review videos to text for sentiment analysis. You’ll step into the role of a developer at a startup that offers a video alternative to feedback surveys, and help scale up your current platform so that it can handle thousands of incoming videos.
You’ll start creating your highly scalable solution with secure uploading, then build a video processing pipeline using event-based architectures. You use AWS Elastic Transcoder and Amazon Transcribe to transcribe video to text, and Amazon Comprehend to run sentiment analysis to determine whether feedback is positive or negative.
skills learned: create a serverless project and event-driven architecture with AWS Chalice • video manipulation with AWS Transcoder and Amazon Transcribe • sentiment analysis with Amazon Comprehend
The company you work for, which provides a news feed aggregator, is plagued with an influx of hoaxes that are putting its reputation in jeopardy. The data science team has already trained a set of complex natural language processing (NLP) models to distinguish real news from fake news. Your task is to build a service, using Ray, that exposes the endpoint that returns the JSON object categorized as either a hoax or news. Then, you’ll optimize the service for performance and speed, enabling it to perform more parallel operations and use as many GPUs as possible. When you’re finished, you’ll have firsthand experience using some of Ray Serve’s advanced features for serving and optimizing a compound model—and you’ll have kept your company’s reputation safe.
skills learned: use Ray Serve • use FastAPI • NLP text preprocessing • use Hugging Face transformers to transform text
Step into the role of a machine learning engineer working for a healthcare company that provides software to hospitals. One of your clients, a national health provider, has asked your company to provide software that predicts heart failure in patients. Using scikit-learn, you’ll develop a model that uses linear regression on a public Kaggle dataset containing heart failure data. Using Ray Serve, you’ll first deploy a function that accepts a wide range of parameters, then serve your model and provide functionality for multiple concurrent requests. When you’re done, you’ll have learned to use the Ray framework to serve your model through a webpage and helped your client save lives by using its patients’ parameters to predict imminent heart failure.
skills learned: use Ray Serve • use FastAPI integration with Ray • deploy a scikit model with Ray Serve
Nextstellar Corp is very excited—they’re taking all their data to the cloud! They’ve recently migrated and have an early-defined data lake solution. The CEO has approached you to deliver the next step of their cloud data process: using AWS Glue to apply the transformation logic and store the curated data in Amazon S3. You’ll utilize Jupyter Notebooks to curate and standardize your data sets—crafting, organizing, and managing datasets to ensure they are easily accessible and usable—then design a CI/CD pipeline to test and deploy code with a single push after completion.
skills learned: Transforming standardized data into curated data using PySpark • Automating infrastructure using CloudFormation • Developing ETL jobs using AWS Glue Jupyter Notebook • Implementing CI/CD for code release in AWS Glue Jobs • Refactoring Jupyter code and deploying through the CI/CD pipeline
QryptoTremolo, a startup that’s been developing a set of next-generation financial services, has already taken steps to provide visibility into its AWS accounts and set up AWS GuardDuty to detect intruders. But managers of the development teams have administrator access to these accounts, and despite being a dangerous anti-pattern, that’s not going to change anytime soon. Your task is to automate the configuration of organizational service control policies that restrict access of local administrators (and intruders) to any AWS Config and EventBridge resources located in the AWS accounts. You’ll write code to query the IAM (Identity and Access Management) policy simulator in order to gauge API calls’ ability to tamper with resources. You’ll also develop end-to-end tests that prove whether an SCP change will behave as expected, and build a pipeline to codify the change control process for the SCP.
skills learned: organizations service control policies • AWS CodeBuild • AWS CodeCommit • pytest • CloudWatchEvents • Boto
A working application is good; an automatically deployable application is great! In this liveProject, you’ll create a continuous delivery (CD) pipeline for your application using CDK. Then, you’ll deploy your application in a single account as well as in multiple accounts using CDK’s pipeline module. Along the way, you’ll learn to spot and evade possible pitfalls.
skills learned: create a pipeline to automate application building and deployment to AWS Fargate • use AWS CDK to automate deployment of a CD pipeline
In this liveProject, you’ll use Python algorithms to help find the shortest path between stops for a fleet management company. With trucks driving over 10 million miles per year, even slight time saving can be a huge cost reduction. You’ll build network classes, save, restore, and draw networks, use network algorithms to find shortest paths between locations, and lay the groundwork for future network applications.
skills learned: defining classes that represent network nodes and links • saving and restoring networks • automatically building test networks • finding shortest paths in a network
This liveProject puts you on the front lines at an indie bookstore, where poorly scrawled notes threaten to bring sales to a standstill. Learning classification algorithms from the ground up, you'll use four different and surprisingly simple classifiers to develop an AI solution that turns illegible scribbles into recognizable numbers.
skills learned: simple classification algorithms • K-nearest neighbors (KNN) • K-means • Naïve Bayes • hierarchical clustering
The future of the RoboPrototypes company is in your hands. It’s your first day at the company, which specializes in bespoke robotic solutions. The CEO has asked you to develop a prototype of a mobile robot that will serve drinks to mall food court customers. An important client will decide whether they’ll provide follow-up funding after they see your prototype in simulation. Working with Gazebo 11 and employing ROS best practices, you’ll create a model for a differential drive robot that meets the provided specifications. Next, you’ll simulate the robot, implement a basic teleoperation node for controlling it, and add velocity multiplexing for safety purposes.
The version of Gazebo used in this project reached end of life in January 2025.
skills learned: basics of URDF and XACRO modeling • load a robot model in RVIZ2 and Gazebo 11 • send Twist messages to the robot (and some of the safety implications involved)
Keep tabs on your robot. RoboPrototype, the company you work for, is preparing to demo its autonomous beverage delivery robot for investors in a food court next month. Your CEO has tasked you with setting up SLAM (Simultaneous Localization and Mapping) on the robot, making it possible to locate the robot at all times. Using the Slam Toolbox, you’ll equip the robot with the ability to create a map of its environment as well as pinpoint its location on the map. You’ll also get firsthand experience mapping on real data captured on a Turtlebot3 Burger, a widely used mobile robot platform.
The version of Gazebo used in this project reached end of life in January 2025.
skills learned: map with slam_toolbox • localization with slam_toolbox • SLAM in the bag
As an enterprise architect at Padre Inc., which runs its cloud operations on AWS, it’s up to you to manage multi-cloud operations for Tiddler Inc., a startup using Google Cloud that Padre has acquired for its SaaS project. Your task is to implement error budgeting to achieve a predefined service-level objective (SLO) and balance the deployment of new features with the reliability of the services in production. Using tools including Elasticsearch, Kibana, and Logstash, you’ll create an error budget policy and you’ll calculate burn rate, which indicates how quickly the budget is expended. You’ll use Kibana to implement a dashboard that uses burn rate data when creating the alerts product owners rely on for ensuring that service reliability meets service-level agreements (SLAs) when releasing new features. When you’re finished, you’ll have hands-on experience with valuable site reliability engineering (SRE) skills and concepts that you can apply to real-world projects.
skills learned: implement Server Reliability Engineering (SRE) with SLIs, SLOs, and SLAs
In this liveProject, you’ll build a two-player version of the card game Slap that can be played from the command line. To code this game, you’ll use algorithms, object-oriented programming concepts, and event listeners. You’ll gain hands-on experience importing modules, creating classes, defining methods, and using other principles of object-oriented programming.
skills learned: algorithmic design • software design • event listening • error handling • assertions • exceptions • modularizing code • debugging • pynput
The real estate developer you’re working with wants a program that can non-interactively read, sort, and write out the sorted data to a new file. In this liveProject, you’ll create this new program using the csv, abc, and time libraries. But instead of relying on Python’s built-in lists, you’ll implement the program with your own custom lists and sorting routines—gaining hands-on experience working with commonly used data structures and algorithms, demystifying all the work Python does for us and impressing your client, all at once!
skills learned: define an abstract data type (ADT) • define a linked list • implement sorting algorithms • perform algorithmic time complexity analysis
In this liveProject, you’ll use the DistilBERT variation of the BERT Transformer to detect and block occurrences of spam emails in a data set. You’ll utilize binary classification to determine whether an email is spam, or legitimate. The DistilBERT model uses knowledge distillation to highly reduce the size of the transformer model, thus optimizing time and resources. You’ll learn to use the HuggingFace library to load your data set, and fine-tune it to your task with PyTorch Lightning. You’ll also explore alternative training approaches that utilize novel APIs in the transformers library to fine-tune pre trained DistilBERT models. Every part of an NLP pipeline is covered, from preprocessing your data to remove symbols and numbers, to model training and validation using F1-scoring to assess the robustness of your pipeline.
skills learned: loading and configuring pretrained DistilBERT model using Hugging Face • building and training a text classifier using PyTorch Lightning • validating the performance of the model and quantifying the results
In this liveProject you’ll develop a chatbot that can summarize a longer text, using the HuggingFace NLP library. Your challenges will include building the task with the Bart transformer, and experimenting with other transformer models to improve your results. Once you’ve built an accurate NLP model, you’ll explore other community models and integrate your summarization task with a chatbot.
skills learned: use a transformer to create a summarization tool • experiment with different summarizers models • build a chatbot using the Hugging Face library to summarize Wikipedia articles
Text summarization is a powerful data science technique. It allows vital high-level information to be automatically extracted from reams of text data, without any slow and expensive human analysis.
In this liveProject, you’ll master text summarization techniques for summarizing news data by building a tool that can extract key information about COVID-19 from news articles using the PyTorch deep learning library. Your challenges will include cleaning your data set, building an attention-based deep learning model, and evaluating the success of your model using TensorBoard and ROUGE scores.
skills learned: deep learning for NLP • model visualization with TensorBoard • sequence-to-sequence modeling • text summarization with attention techniques
News Media Corp needs to be quick if they want to get ahead of their competitors. Their current news frontpage is put together manually, in a time consuming process where human editors create flashcards that summarize articles. It’s too slow—so senior management wants to supercharge the process using natural language processing. To get this built, they’ve turned to you. Your challenge in this liveProject is to create an NLP model that can reduce turnaround time for news editors with an automatic text summarizer. To do this, you’ll need to prepare and process your dataset with tokenization and padding, extract meaningful statistics from it, and finally use your dataset to train a deep learning model that can speedily summarize a body text.
skills learned: convert an abstractive text summarization dataset to an extractive one • train a deep learning model to perform extractive text summarization
In this liveProject, you’ll create a product recommendation engine for an online store using collaborative filtering techniques from the Surprise library. You’ll work with Amazon review datasets to create your data corpus, and identify which would be best for a collaborative filtering recommender. You’ll then use two different approaches—neighbourhood-based and matrix factorization—to implement different solutions to the rating matrix completion problem. You’ll learn how to select and clean the necessary data for these different approaches. When you’re finished, you’ll have built a system that can predict the rating for a product a user has not yet purchased.
skills learned: selecting, cleaning and choosing data for collaborative filtering • neighborhood and model based collaborative filtering techniques with the Surprise library
In this liveProject, you'll implement particle swarm optimization and the Boids algorithm to develop computational models to track flocks of finches. You’ll start with a simple flock simulator, then modify it to adapt to obstacles, take a different approach with Gravity Boids, and finally use a swarm-inspired algorithm to find the highest point on a complex mathematical surface. You’ll soon have an algorithm that can predict the movements of everything from flocks of finches to swaying concertgoers!
skills learned: swarms • modeling complex systems • particle swarm optimization (PSO)
Mount a targeted attack! Your goal is to mislead an existing DL model into predicting a specific incorrect target class. First, you’ll load your dataset, learn its structure, and examine a few random samples using OpenCV or Matplotlib. Next, you’ll prepare your dataset for training using NumPy. Then you’ll generate malicious input using three different classes from the highly popular CleverHans attack library. Finally, you’ll enlist NumPy again to evaluate the success ratio of your attacks.
skills learned: basics of targeted adversarial attacks (PGD, BIM and Carlini & Wagner) • Clever Hans attack generator
In this liveProject, you’ll explore quantum mechanical phenomena for information transmission. You’ll go hands on with two quantum communication protocols—quantum teleportation and superdense coding. You’ll implement each protocol using Q# and simulate it running, before visualizing the intermediary states of the quantum system.
skills learned: designing and writing simple Q# code • running simulations of quantum code using a full state quantum simulator • inspecting quantum states during a simulation
In this liveProject, you’ll explore and assess essential methods for unstructured text search in order to identify which is the best for building a search engine. You’ll preprocess the data for this task using the spaCy library, and then experiment with implementing both a TF-IDF search and an inverted index search to find relevant information.
skills learned: apply Python’s spaCy library to perform essential natural language processing steps • compute TF-IDF tables and apply term frequency search to them • build an inverted index
Imagine you’re a consultant with a number of prestigious financial institutions on your client list. One of them has hired you to increase the accuracy of their model for predicting stock prices. You rise to the challenge, deciding on some classical time series models. But before you can propose a reliable model, you must decompose and examine the time series data in order to understand its pattern. Once you have a firm grasp on the data’s peculiarities, you’ll be ready to run the time series modeling.
skills learned: use Alpha Vantage API • explore data using ACF, PACF, and ADF tests • deal with non-stationary data
Forecasting is one of the most useful techniques a data scientist can bring to an organization. By making predictions from complex data, they can guide policy and resource management and allow businesses to plan and prepare for the future.
In this liveProject, you’ll take on the role of a data scientist who’s been tasked with forecasting the future consumption of an energy company’s customers. Energy consumption is seasonal and complex, and so you’ll be using the powerful Python ecosystem to tame your data and make your predictions. Your challenge is to use regression and time series techniques to forecast and visualize hourly energy usage for millions of customers, and present your findings in a clear report to allow your bosses to oversee resource allocation.
skills learned: visualizing complex relationships between variables and across time • build linear regression and time series models (exponential smoothing, ARIMA) with statsmodels • adding intervention terms to time series models
In this liveProject, you’ll combine the power of deep learning with probabilistic modeling. You’ll build a structural time series model that can develop probabilistic forecasts of hotel cancellations, and use this model to identify anomalies across your cancellation data. You’ll perform a similar analysis of an air passenger dataset, and then use Bayesian Switchpoint analysis to determine the approximate time interval in which searches for the term “vacation” declined.
skills learned: structural time series modeling • forecasting and detecting anomalies • conduct Bayesian Switchpoint Analysis
Now that you’ve detected the time series components and obtained the stationary data, you’re ready to move on to time series modeling. In this liveProject, your challenge is to determine which model will perform best for your client’s data. To do this, you’ll apply the classical moving average (simple MA and exponential MA), autoregressive (AR), and autoregressive integrated moving average (ARIMA) models. Then you’ll compare their performance using a visualization and performance metric, root mean square error (RMSE).
skills learned: model time series using moving average (simple MA and exponential MA), autoregressive (AR), and autoregressive moving average (ARIMA) models • visualize and compare performance using root mean square error (RMSE)
Tackle a fundamental step in many AI applications: building a simple image classification model. Using Convolutional Neural Network (CNN) layers, you’ll create this deep learning model for victims of adversarial machine learning attacks, train it on a publicly accessible traffic sign dataset, and implement it using Python.
skills learned: basics of OpenCV • CNN model building with keras
In this liveProject, you’ll explore a pre-made dataset of meteorological records. You’ll learn the shape, size and type of data at hand, and discover factors that affect rainfall. You use scikit-learn and logistics regression to make initial predictions about future rainfall, evaluate their accuracy, and visualize emerging patterns using Seaborn and Matplotlib.
skills learned: manipulate data and conduct exploratory analysis • input missing values • engineer outliers • evaluate predictions
You’re a data scientist at EKKo Inc., a machine learning consultancy that’s working on an embedded system to help deaf or hard of hearing people participate in online meetings and events on their mobile devices. To help the system recognize the hand gestures that represent the letters in American Sign Language (ASL), your task is to classify them using a convolutional neural network (CNN), an algorithm widely used for image processing applications.
You’ll write a Python script that preprocesses the ASL dataset, ensuring the model can interpret it. Using TensorFlow, a popular choice for such tasks, you’ll create and configure the CNN model. You’ll train the model and improve its performance by adding regularization to avoid overfitting, fine-tuning the learning rate (LR) to increase training speed, and introducing callbacks to monitor the training process. When you’re done, you’ll have firsthand experience using TensorFlow tools to configure various CNN hyperparameters, train a CNN onto an embedded board, and generate predictions from the CNN.
skills learned: preprocess the data • create and configure a CNN Model • use regularization to prevent overfitting • use learning rate (LR) to speed up model training• model training and introducing Callbacks
In this liveProject, you’ll create and train your deep learning model to predict where a new Airbnb listing will be priced above or below average pricing. You’ll put pandas, Keras, and scikit-learn into action, and master key deep learning techniques for tracking model performance. You’ll learn to harness callbacks in the Keras deep learning framework to make model training more efficient, and how to ensure consistent results in multiple training runs.
skills learned: use Keras to interface with TensorFlow • utilize Keras callbacks • track and assess model performance
You’re a data scientist at EKKo Inc., a machine learning consultancy that has won a contract to create an embedded system that can be implemented on embedded systems. This system will enable people who are deaf or hard of hearing to participate in online meetings and events. After setting up an environment for running ML programs on an embedded system, you’ll process data from the existing American Sign Language (ASL) dataset and build, train, validate, and analyze the performance of a logistic regression model. By the end of this liveProject, you’ll be able to install, configure, and deploy a basic logistic regression algorithm that’s capable of classifying the letters of the ASL image dataset.
skills learned: hardware and software environment setup • basics of how neural networks function • data preprocessing and splitting for training, validation, and testing
In this liveProject, you’ll use the popular deep learning framework PyTorch to train a supervised learning model on a dataset of melanoma images. Your final product will be a basic image classifier that can spot the difference between cancerous and non-cancerous moles. You’ll create a custom dataset class and data loaders that can handle image preprocessing and data augmentation, and even improve the accuracy of your model with transfer learning.
skills learned: PyTorch for deep learning on the GPU • image classification using deep convolutional neural networks • transfer learning to improve model accuracy
In this liveProject, you’ll train your model and build a scoring pipeline using an ML feature store. You’ll explore a sample data set for diagnosing diabetes, generate new features and store them in a feature store, train and retrain ML models, and build a scoring process. You’ll employ common feature engineering techniques to train the model, then test and retrain it as needed. You’ll also work on setting up a scoring pipeline, and brainstorm ML development using a feature store. In this project, you will learn how to store the features for a machine learning model so they can be reused in other machine learning projects.
skills learned: generate new features and store them in a feature store • train and retrain ML models • build a scoring process
In this liveProject, you’ll train and evaluate a machine learning model for diagnosing diabetes, and set up a pipeline for your model to run effectively. You’ll start by exploring sample data, processing features, and performing common feature engineering techniques for treating outliers or missing data. After dividing your dataset into training and testing data, you’ll train a logistic regression model using scikit-learn. You will then retrain the model with a different set of features. Finally, you’ll pick a model for scoring and build a scoring pipeline. You will test your scoring process on a scoring dataset.
skills learned: classification with logistic regression • ML pipelines with scikit-learn • generating model pickle files with Joblib
EKKo Inc., a machine learning consultancy, is working on an embedded system to enable deaf or hard of hearing people to participate in online meetings and events on their mobile devices. Your task as a data scientist is to optimize this system. Using the model optimization toolkit for TensorFlow, you’ll train a CNN model with an existing American Sign Language (ASL) dataset and convert it to TFLite format to reduce the code footprint. You’ll optimize it further using quantization, drastically reducing size and CPU consumption while maintaining model accuracy. Using batch normalization to decrease the number of training cycles, you’ll significantly speed up the CNN model’s training process. Lastly, you’ll integrate the quantization changes you’ve made by compiling and training the CNN model. When you’re finished, you’ll have a fully functional quantized CNN that can be run successfully on an embedded device.
skills learned: post-training quantization using tf-dataset • quantization awareness training and JIT • batch normalization for quantized model
In this liveProject, you’ll fill the shoes of a developer for an e-commerce company looking to build a machine learning solution to help identify bad product reviews. If one of your company’s products receives too many bad reviews, it’s policy to take it down from the e-commerce store. Until now this process has been manual—but your boss has decided that this is too expensive and time-consuming.
Your mission is to automate this process, dramatically increasing the speed of identifying bad reviews, and decreasing the cost to your company. To complete this project you will have to train a machine learning model to recognize and rank positive and negative reviews, expose this model to an API so your website and partner sites can benefit from automatic rankings, and build a small webpage that can run your model for demonstration.
Updated March 2022
skills learned: use an existent sentiment classification API • create a web API to expose an ML model • build a simple demo website
In this liveProject, you’ll take pretrained VGG16 and ResNet models from the Python Keras library and train them further upon your medical image dataset of X-ray and CT scans. This transfer learning is a highly effective technique for quickly generating reliable machine learning models when you only have a small data set. You’ll experiment with the Keras loss functions to determine which are best for COVID image classification, and check your training and prediction times as a critical parameter of real-world applications.
skills learned: use transfer learning for training VGG16 and ResNet models in Keras • deploy VGG16 and ResNet models for training on DICOM images • train VGG16 and ResNet models on two different types of medical image datasets
In this liveProject, you’ll use transformer-based deep learning models to predict the tag of Reddit subreddits to help your company understand what its customers are saying about them. Transformers are the state of the art, large-scale deep language models pretrained on a huge corpus of text, and are capable of understanding the complexity of grammar really well. You’ll train this model on your own data set, and tune its hyperparameters for the best results.
skills learned: model monitoring • transfer learning using state-of-the-art NLP model • model diagnostics
In this liveProject you’ll develop a chatbot that can translate user messages, using the Hugging Face NLP library. Your challenges will include building the task with the T5 transformer, and build a Translation task considering different languages with mBART. You’ll classify the language of users' messages, and integrate your translation task with a chatbot.
skills learned: using a transformer to create a translation tool • build a chatbot using Hugging Face library to translate user messages from foreign languages to English
In this liveProject, you’ll use Python and algorithms that work on binary and N-ary trees to sort data and draw organizational charts. You’ll store, find, and remove data in sorted trees, and you’ll experiment with different layout approaches for organizational charts.
skills learned: understanding recursion • searching and traversing trees • adding and removing values from sorted binary trees
Exciting things are happening at Generigloop, and the senior vice executive’s undersecretary needs help keeping things organized. They’ve asked you, their junior assistant, to create a tool for drawing organizational charts. Seizing the opportunity to impress—and learn valuable skills while getting paid—you volunteer to research what it will take to create a chart-drawing tool using Python and C#. You’ll learn techniques for drawing family trees, hierarchical component diagrams, document hierarchies, and other tree structures.
skills learned: tree data structures • tree terminology · recursion • tree traversals • sorted trees • drawing in WPF
Once you’ve handled the data, the real magic can begin! In this liveProject, you’ll implement a basic recommendation system using the TensorFlow Recommenders framework—designed specifically for this purpose. First, you’ll calculate four baselines that your future models will have to beat. Next, you’ll learn the basics of developing a model using TensorFlow Recommenders, then design a simple, two-feature Two Towers model. Lastly, you’ll enhance this simple model by adding all the features you created in the previous liveProject while maintaining model performance that beats your four established baselines.
skills learned: discover useful baselines • compute baselines and set minimum requirements to future models • implement and train a recommendation system using the TensorFlow Recommenders framework
In this liveProject, you’ll use Docker, the Docker compose command line, and Bootstrap to construct an easy-to-use UI for your search engine. You’ll work to set up a single node Elasticsearch cluster, before putting together your Bootstrap UI, and then create a customized Docker image of the Flask API that serves your transformers model and frontend.
skills learned: packaging and deploying with Docker • search and indexing with Elasticsearch • building APIs with Flask
Play the villain! Your goal is to mislead an existing DL model into incorrectly predicting the pattern. First, you’ll load your dataset, learn its structure, and examine a few random samples using OpenCV or Matplotlib. Using NumPy, you’ll prepare your dataset for training. Then, it’s attack time: Using FGSM and PGD, you’ll generate malicious inputs for the model in an effort to predict any class other than the correct one. Finally, you’ll enlist NumPy again to evaluate the success ratio of your attacks.
skills learned: basics of untargeted adversarial attacks (FGSM, PGD) • create an attack generator (Adversarial Robustness Toolbox - ART)
In this liveProject, you’ll take on the role of a data scientist employed by the cybersecurity manager of a large organization. Recently, your colleagues have received multiple fake emails containing links to phishing websites. Phishing attacks are one of the most common—and most effective—online security threats, and your manager is worried that passwords or other information will be given to an attacker. You have been assigned the task of creating a machine learning model that can detect whether a linked website is a phishing site. Your challenges will include loading and understanding a tabular dataset, cleaning your dataset, and building a logistic regression model.
skills learned: work on tabular datasets with pandas and NumPy • build a logistic regression classifier • use machine learning for security
In this liveProject, you’ll jump into the role of a data scientist working for an online bookstore. Your boss wants you to build a new recommendation system to help the marketing team match customers with a book that suits their interests. As the backbone of this new system, you’ve decided to create a graph network that will plot and analyze the relationship data of your platform’s users. To do this, you’ll need to import your data into pandas and transform it into an edge list, then build a network from the list. Once that’s accomplished, you’ll visualize and analyze the list to check its accuracy before you present your results as a web application that’s easy for the non-technical marketing team to use.
For this liveProject, you’ll be provided with real customer data from manning.com!
skills learned: data manipulation and analysis with pandas • building networks with Python • visualizing and analyzing graph networks
Now that you’ve tackled volatility modeling in a traditional way, in this liveProject, your employer has challenged you to uplevel your volatility modeling by taking a more dynamic, data-dependent approach. By the end of this project, you’ll have firsthand experience modeling volatility using support vector machines with different kernels, neural networks, and deep learning models. What’s more, you’ll have the skills to determine if the machine learning-based models outperform the traditional parametric models.
skills learned: volatility modeling usingvolatility modeling using using support vector machines with different kernels, neural networks, and deep learning models using support vector machines with different kernels • neural networks • deep learning models
In this liveProject, you’ll follow research laid out in a groundbreaking paper and work with algorithms that can take the aesthetic style of one image and apply it to another. You’ll use convolutional neural networks and transfer learning to build a simple image classifier and implement a neural style transfer. You’ll use TensorFlow and Keras to build your networks, Matplotlib and keras-vis to visualize them, and scikit-learn to analyze your results.
skills learned: convolutional neural networks with TensorFlow and Keras • analyzing model performance with scikit-learn • visualizing filter and class maximizations with keras-vis
In this liveProject, you’ll go hands-on with supervised learning methods for anomaly detection. You’ll explore an imbalanced dataset of seismic activity. To balance this dataset you will utilize the SMOTE and ADASYN oversampling algorithms to both generate synthetic examples of the minority class and then compare performance using random forest, logistic regression and Naive Bayes binary classification algorithms.
skills learned: run SMOTE using the imblearn library • run ADASYN using the imblearn library • analyze data using scikit-learn
In this liveProject, you’ll use scikit-learn and the PyOD library to build an unsupervised machine learning model for detecting hyperthyroidism. PyOD is a Python toolkit for detecting outlying objects in multivariate data. You’ll compare performance between four different anomaly detection methods on a specialized thyroid dataset: PCA, Clustering-Based Local Outlier Factor (CBLOF), Histogram-Based Outlier Score (HBOS), and KNN algorithms.
skills learned: anomaly detection through PCA • anomaly detection through Clustering-Based Outlier Factor • anomaly detection through Histogram-Based Outlier Detection • anomaly detection through KNN
In this liveProject, you’ll explore a dataset with more variables and use scikit-learn and the PyOD library to build an unsupervised machine learning model for detecting cardiac arrhythmias. You’ll develop an algorithm which will detect arrhythmias from device data like EEG, using the Locally Selective Combination in Parallel Outlier Ensembles (LSCP) algorithm. A LSCP model accepts input as various other algorithms, and can be used to set up detectors with different settings.
skills learned: load MATLAB data in Python • run anomaly detection algorithms in PyOD • use the LSCP algorithm in PyOD in order to detect anomalies
In this liveProject, you’ll play the part of a freelance consultant who’s been hired to assess a company’s financial risk. Using the traditional volatility modeling packages ARCH and GARCH, you’ll model the volatility of S&P-500 stock prices—a good proxy for the entire financial market—and measure model performance. Then, you’ll optimize the model parameters using information criteria such as Bayesian Information Criteria (BIC). When you’ve completed the project, you’ll have a solid understanding of the logic of these traditional models and be ready to apply it to other models.
skills learned: volatility forecasting in financial modeling using ARCH and GARCH • optimizing financial model parameters using BIC
In this liveProject, you’ll utilize undersampling techniques to balance out a seismic activity dataset. To balance this dataset, you will utilize the ClusterCentroids, NearMiss and CondensedNearestNeighbor algorithms to downsample the majority class. Then, the performance is compared using random forest, logistic regression and Naive Bayes binary classification algorithms.
skills learned: run ClusterCentroids using the Imblearn library • run CondensedNearestNeighbor using the Imblearn library • run NearMiss using the imblearn library
In this liveProject, you’ll explore the basics of anomaly detection by analyzing a medical dataset using unsupervised learning. You’ll create a model that can determine whether patients referred to a clinic have abnormal thyroid function. To accomplish this, you’ll download and prepare your dataset, and then utilize scikit-learn to compare different anomaly detection algorithms to find the most effective. You are going to use Isolation Forest, the Local Outlier Factor (LOF), One-Class SVM and Robust Covariance.
skills learned: run robust covariance with scikit-learn • run isolation forest with scikit-learn • run the LOF algorithm with scikit-learn
In this liveProject, you’ll help out a new Python developer with some mysterious bugs in their code. To unravel their issues, you’ll explore two different models for the behavior of Python variables and write some code that will either support or refute those models. This will help you reason about how variables behave in Python in regards to both mutable and immutable objects.
skills learned: understanding variables and whether they are containers or labels • using the id() function
In this liveProject, you’ll harvest customer opinions about your company’s products from the comments left on the subreddit for your company, and store them in a database for future analysis. You’ll connect to the Reddit API, identify and clean up the data fields you need, and store the data into MongoDB.
skills learned: clean and filter for necessary data from JSON • save data into MongoDB in an organized manner • query the database for simple analytic tasks
In this liveProject, you’ll build a fun (and useful!) data analysis tool that can determine which day of the week is the best to Tweet. You’ll test the hypothesis that Friday is the best day for engagement by calculating the p-variables and interpreting the results. You’ll utilize common techniques such as the permutation test and bonferroni correction to see if your hypothesis is accurate—essential skills for any data scientist.
skills learned: using Python fundamentals to set up environments to test hypotheses • using Pandas and NumPy for for data operations • doing permutation test for calculating p-values
In this liveProject, you’ll stretch your Python data science skills by building a simulator for popular Blackjack variant game 21. You’ll design your simulation step-by-step, then use visualization techniques to interpret your findings. By the end of your project, you’ll have a winning strategy for playing card games and new skills with fundamental Python libraries like NumPy and SciPy.
skills learned: simulating real-life game environments in Python • using NumPy and SciPy for mathematical operations • visualizing results with Matplotlib and seaborn
In this liveProject, you’ll utilize Python and maximal flow algorithms to create an application that can match jobs with the correct workers. Running all the possible combinations of jobs and workers with the correct skills would be impossible to scale manually, but is easy to do with Python. You’ll start by finding the maximal flows in your network, then quickly move on to creating a program that assigns jobs based on your algorithm.
skills learned: working with files • defining classes • using lists, loops, methods, and other basic techniques
You’re a new developer at UMET Inc., an e-commerce platform that’s modernizing its backend technology stack with Rust. Your task is to create a simple HTTP service that looks up sales tax rates for U.S. ZIP codes and then deploy it in a lightweight container. To build the service, you’ll use Rust Tokio and hyper crates. You’ll compile, run, and test it in a lightweight WasmEdge container and use GitHub Actions to automatically test and validate any changes that you make. When you’re finished, you’ll have hands-on experience building, updating, and testing a minimally viable microservice using Rust and WebAssembly.
skills learned: Rust application framework for HTTP server applications
To support its rapid growth, e-commerce company UMET Inc. relies on lightweight, interdependent, cloud-native microservices written in Rust that can compute sales tax rates and e-commerce order totals. As a developer at UMET, it’s up to you to integrate these microservices with existing order systems. To do that, you’ll need to turn the order total microservice into a database-backed stateful service. You’ll build and test the microservice in Docker and model the application data into relational database records. You’ll connect the microservice application to a MySQL database server, and you’ll use Docker to compose and manage all components of the microservice. When you’re done, you’ll have built an order management microservice in Rust that can read and save data from UMET’s MySQL relational databases and later serve as a template for other UMET microservices.
skills learned: MySQL driver for Rust
In this liveProject, you’ll build an API that can integrate your customer’s transaction data from a third party. You’ll construct a robust client with OpenAPI and WebClient, and make HTTP requests with Spring Boot. You’ll then develop a pipeline of enrichment for the merchant data you acquire through your API.
skills learned: code generation from OpenAPI • calling third-party applications using WebClient • circuit breaker pattern for Spring applications
Logistica Transport needs to ditch its old desktop app and embrace a new web app solution. They’ve turned to you to help them, and in this liveProject, you’ll utilize Entity Framework Core to set up the vital connections between a MySQL database and the future web app. You’ll need to set up data models that define the structure and relationships of your data, as well as learn how to perform CRUD operations to create, update, and delete data in your database. Finally, you’ll connect your data models and CRUD operations to the Entity Framework for a full and working database solution.
skills learned: NuGet packages specific to Entity Framework and MySQL • Setting up data classes in a database • Data tables (inserting, updating, and deleting information) • Setting up a database connection in code • Working with data stored in database tables
In this liveProject, you’ll build a shopping basket that stores data in a user session. You will learn how to use sessions in Spring MVC, handle HTML forms, and use different bean scopes in Spring Framework. At the end, you will have a basket feature added to the website, so users can add items from the catalog.
UPDATED: July 2023 to use the latest versions of Java, Gradle, and Spring Boot; and updated instructional text throughout all the projects.
skills learned: front-end development using Spring MVC • configuring bean scopes • submitting forms in Spring MVC
skills learned: Implement queries and Filters with Spring Data JPA Query Methods • Query by Examples and Specification and JPQL
You’re the star data engineer at Free Power Corporation Limited (FPCL). The London-based power company is interested in gaining insight into its customers’ energy usage patterns, and it’s up to you to deliver a data-rich solution that satisfies the requirements of FPCL’s various teams. You’ll create a streaming Spark application to read the consumer event stream from Kafka, you’ll add information that helps the teams determine when data was generated, ingested, and processed, and you’ll write logic to reorder any late or out-of-order data. To provide vital household energy consumption statistics to the sales and electrical engineering teams, you’ll join Kafka data streams and perform complex computations on the resulting stream. To be sure your solution is ready for the teams to use, you’ll test it on the local Spark cluster. When you’ve finished, you’ll have learned advanced stream processing skills that empower you to meet the different business requirements of various enterprise departments.
skills learned: perform complex arbitrary stateful computation on streams (such as handling out-of-order data and custom computation) • set up a Spark cluster • test your solution on the local cluster
In this liveProject, you’ll become a software engineer at InfoHub, an up-and-coming AI startup looking to revolutionize how companies interact with their knowledge bases. InfoHub seeks to utilize groundbreaking large language models to deliver a system whereby a user’s questions about company data can be answered through a Q&A-style language interface. You’ll begin by assisting them in creating this tool by processing, tokenizing, and converting data into embeddings with BeautifulSoup and tiktoken.
skills learned: use of embeddings with the OpenAI API for similarity search
Boutique, a software development company, is working on a project that will automate a client’s inspection process. As a software engineer for Boutique, your task is to implement authentication and authorization in the existing ASP.NET Core HTTP API for the project according to the client’s requirements. You’ll register your application to use Google as an identity provider, configure Swashbuckle to support authentication through Google, and activate the authentication and authorization middleware of ASP.NET Core. To take advantage of ASP.NET Core’s authorization features, you’ll add additional claims to the authenticated identity per the client’s specs, and you’ll implement role- and policy-based authorization as needed. When you’re done, employees will be able to use all of the API’s functionality, and customers will have read access to their own data.
skills learned: interpret an OpenAPI specification • set up and configure authentication and authorization • how to gain insight into using different mechanisms to implement authorization • dissect a JWT
In this liveProject, you’ll dive into the software engineer role at Echorand Corp., a leading analytics company. Echorand Corp wants to offer its customers the opportunity to host images, so they’ve turned to you. You’ll build an impressive web application using the Go programming language using GitHub as the OAuth provider. You’ll implement secure authentication, providing users with a seamless login experience, and manage application state effortlessly using SQLite.
skills learned: Writing a web application to sign in using GitHub credentials • Storing user session data in an SQLite database • Rendering HTML templates
BestInsurance has a rapidly growing customer base and happy front-office employees, thanks to a newly built API that lets customers subscribe to policies and lets front-office employees narrow their searches with custom filters. But the back-office staff is unhappy with the high latency of the user interface. As a backend developer, you’ll solve this problem by adding pagination with Spring Data JPA, preventing the page from loading all the customer data at once. You’ll use JPQL to add aggregate functions that return information the back office needs, such as revenue and customer count by state. You’ll implement a REST service for uploading policy subscription data provided in CSV format and importing it into your database. You’ll also leverage domain events for sending messages when subscriptions are saved, updated, or deleted. When you’re done, you’ll know how to add REST API services, and the back-office employees will thank you for making their jobs easier!
skills learned: Add query result pagination • Implement queries with JPQL aggregate functions. Import csv files into a database in a transaction, use domain events to send messages to a JMS Queue.
In this liveProject, you’ll build a product catalog for an ecommerce application. You’ll learn how to load data from a database and display it on an HTML page, and use integration tests to properly understand your model and ensure its accuracy. At the end, you’ll have a fully functional Spring application that loads data from the database using Spring Data JPA and displays it using Spring MVC.
UPDATED: July 2023 to use the latest versions of Java, Gradle, and Spring Boot; and updated instructional text throughout all the projects.
skills learned: front-end development using Spring MVC • accessing relation data in Postgres using Spring Data • creating database migrations using Flyway
Apache Camel is a lightweight and easy to use integration framework that forms the backbone of numerous distributed systems. In this liveProject, you’ll go hands-on with Apache Camel to build a working medical registration system from scratch.
Your system will help a busy hospital unite laboratory information systems, patient records, and practice management systems that track appointments and finance. Your challenges will include developing API and integration challenges for a new patient portal, and integrating it into your records system. This kind of IT portal is in high demand from any industry that wants to streamline its information, and automate costly human-fronted customer services.
skills learned: integrate heterogeneous systems with Camel • implement Camel Routes using Java DSL • expose a REST API, messaging, and other kinds of endpoints • deploy Camel routes to cloud environments
In this liveProject, you’ll step into the role of a software developer at InfoHub, an AI startup attempting to build a chatbot that can answer queries about a company’s knowledge base. You’ve already built the basics of the chatbot—now it needs to be deployed! To do this, you’ll use the LangChain feature LangServe to create a LangChain server application. You’ll build your chatbot using Streamlit and then deploy it to the Streamlit cloud.
skills learned: create a chatbot using LangServe and Streamlit • deploy to the cloud through Streamlit Cloud
You’re a senior developer at Travel World Agency (TWA), which has grown to become the largest travel agency in the world. The company has built a next-generation system that uses a microservice architecture running on Amazon Web Services (AWS). But while TWA’s success is rocketing higher, the performance of its reservations microservice is crashing and burning. As a solution, the company has replaced the microservice with a new one, using Kotlin and Spring Boot to improve performance and maintainability. Your job is to improve the performance of the new API.
With the help of the Maven Enforcer plugin, you’ll deal with dependencies that slow the microservice. You’ll use ktlint to format the source code according to a single standard, thereby increasing efficiency. You’ll create a Docker image using GraalVM and optimize it to decrease resource consumption. When you’re finished, your API will start up quicker and be more reactive, even on high-traffic days like Black Friday and Cyber Monday!
skills learned: format the source code • reduce the conflicts with dependencies • reduce the use of resources of the microservices
You’re a TypeScript developer for a large company that sells stock photography. You’re responsible for the service that ingests images, and a recent database change has broken the service, despite successful unit testing. Working in IntelliJ WebStorm, you’ll build an integration test that replicates the problem, find the cause, fix the problem, and build the infrastructure to develop more integration tests in the future.
skills learned: reproduce problems in hard-to-reach parts of a system with tests • use tests to drive bug fixes
BestInsurance has an online portal with a newly built application for providing features it hopes will attract new customers. As a backend developer for the insurance company, it’s your job to implement create, read, update, and delete (CRUD) services that allow front-office staff to manage and query data as needed to perform their daily tasks. You’ll define your CRUD API, using Spring Web and the DTO pattern, and observe your components in action. Leveraging inheritance and generic types in Java, you’ll refactor the code as necessary and complete the implementation of your RESTful APIs. To ensure your solution meets BestInsurance’s high standards, you’ll test the services with Spring Test and MockMvc.
skills learned: RESTful API implementation with Spring Web and DTO pattern, Generate a SwaggerUI and OpenApi documentation with SpringDoc
In this liveProject, you’ll set up everything needed for reliable ecommerce checkout. You’ll integrate one-click payment options, create a PayPal developer account and user accounts for testing, and integrate with the official PayPal SDK.
UPDATED: July 2023 to use the latest versions of Java, Gradle, and Spring Boot; and updated instructional text throughout all the projects.
skills learned: use third-party SDKs in web development • maintain state between multiple requests • support different configurations for production and testing
In this liveProject, you’ll take on the role of a Java/Kotlin developer tasked with implementing the service template’s observability-related features—key aspects of production-readiness—including a health check API, application metrics, and distributed tracing. Work will be done in Kotlin.
skills learned: health check API • application metrics • distributed tracing
You’re a TypeScript developer for a large company that sells stock photography. You’re responsible for the service that ingests images, and this service depends on another subservice: the pricing microservice. As proven by their individual unit tests, each service works as specified. But when the services are combined, new customers are locked into one pricing table—even those that should have access to pricing that fluctuates depending on factors like promotions, flash sales, and price-tuning. Working in IntelliJ WebStorm, you’ll solve this problem by writing an integration test that connects and runs the two services together, letting you reproduce the problem locally.
skills learned: reproduce “ghost in the machine”-type problems with integration tests • create in-memory Nest.js applications
BestInsurance, an insurance company, has an online portal with a newly built application for providing features it hopes will attract new customers. As a backend developer, it’s your job to create the persistence layer for the application. You’ll define the database tables and configure a Liquibase changelog to automatically create the tables using SQL. This will allow you to track and manage database versions in order to avoid data loss in production when you change the model. To persist your data, you’ll map Java classes to the database tables using Spring JPA, then implement the basic create, read, update, and delete (CRUD) operations through the JPA repositories for the persistent entities. To verify your mapping is correct, you’ll implement unit testing with JUnit 5 tests, TestContainers, and a PostgreSQL database.
skills learned: Implement Spring Data JPA CRUD Repositories, Define the database DDL with Liquibase and SQL, Implement ORM (Object Relational Mapping) with Entity Classes, Implement JUnit Test cases with Spring Test and TestContainers
Logistica Transport has grown, which means they need to replace their outdated desktop app with a brand new web app solution. In this liveProject, you’ll help them kick off this transformation by swapping their current Excel-based storage system for a mySQL database. You’ll need to create and install the database from scratch, as well as set up the necessary tables to handle the input and output streams of data. This database is a vital foundation for how Logistica’s web app will function.
skills learned: MySQL language
Make your Java/Kotlin developer colleagues’ lives easier by enabling them—and you!—to quickly maintain services that were cloned from the service template. In this liveProject, you’ll extract a microservice chassis from the service template project, create Gradle plugins, and publish chassis artifacts and template source code. When you’re done, you’ll have a small service template project that uses a much larger microservice chassis framework. (Your colleagues will thank you!) Work will be done in Kotlin.
skills learned: refactor a service template to extract common logic and build logic into a reusable service chassis framework
You’re a senior developer at Travel World Agency (TWA), which has grown to become the largest travel agency in the world. The company has built a next-generation system that uses a microservice architecture running on Amazon Web Services (AWS). But as TWA’s success has soared, the performance of its reservations microservice has taken a nosedive. TWA has decided to replace the reservation microservice with a new one, using Kotlin and Spring Boot to improve performance and maintainability. Your task is to review the architecture of the existing microservice and create a new one that has the same endpoints as the old one, saves all relevant information, has a default error handler, and communicates with other microservices to access other vital information.
skills learned: create the basic structure of a microservice • persist the information and interact with other microservices • transform the exceptions in a common structure of error
Welcome to Boutique, a software development company that’s working on a project to automate a client’s inspection process. As a software engineer, your task is to create an HTTP API for the project. You’ll set up an ASP.NET Core web host, implementing the first endpoint according to the OpenAPI specification. To verify the endpoint works as intended, you’ll add integration tests, and you’ll use Swashbuckle and API versioning middleware to enable future functionality. When you’re done, you’ll have firsthand experience with important tools—including Postman and Swagger UI—and an API that’s ready for further development.
skills learned: configure and use Microsoft DI • set up an HTTP API host with ASP.NET Core • implement integration tests • set up API versioning • set up Swagger UI using Swashbuckle • use Postman for manual testing of the API
Nextstellar Corp has recently migrated to the cloud, and for the first time, they can analyze 100% of their company’s data. But there’s a problem: your CEO isn’t confident in your data’s quality. He wants to add more data sources and collect more user behavior information, and ensure these new sources are top-notch by utilizing the Python- (or Scala-) based Deequ library. Your task is to utilize Jupyter Notebooks with AWS Glue Studio to experiment with PyDeequ for data quality assessment. Next, you’ll enhance Nextstellar’s assessment capabilities by employing AWS Glue jobs to react and take action on data quality issues. Finally, you’ll monitor data quality using CloudWatch for prompt response and maintenance of data reliability.
skills learned: Implementing Data Quality Jobs on AWS • Automating infrastructure using CloudFormation • Developing Data Quality jobs using PyDeequ and AWS Glue • Observing and monitoring Data Quality jobs.
In this liveProject, you’ll use Spring Boot and Gradle to create the basic mobile banking application. You’ll begin by creating the domain object, REST Controller, and supporting service to present the data, then test your application to ensure it’s working properly. You’ll add JPA to store your users’ transactions, then finish up with end-to-end testing of your whole app.
skills learned: basics of Spring Boot • create a REST Controller with Spring Web • JPA to persist state to a database • using RestAssured to perform integration tests on Spring applications • use Testcontainers to perform tests on your JPA code
You’re the lead DevOps engineer in an IT department with about 60 engineers. Your director wants to transition the company from a traditional cloud server to containerization while minimizing operational workload. Impressed with AWS Fargate’s ability to handle containers without managing servers, he’s tasked you with deploying a pilot project using Fargate. You’ll create a proof-of-concept by running an NGINX image on AWS Fargate. To ensure that the infrastructure meets the spec of being reusable as code, you’ll use AWS CDK along with Python as your programming language. When you’re finished, you’ll have investigated, evaluated, and deployed an NGINX container along with all the required resources into AWS Fargate.
skills learned: set up basic network infrastructure with AWS CDK • create a cluster with AWS CDK and other required resources (e.g. Load Balancer, Execution Role) • write a task definition for creating Fargate tasks and Fargate services
Your assignment as lead DevOps engineer is to deploy a REST API Flask application into AWS Fargate. You already have the application code and the docker-compose file to run the API locally. You’ll package the code in CDK, build the images, store them in Elastic Container Registry (ECR), then use them for deployment in Fargate. When you’re finished, you’ll have practical experience deploying a Flask application, as well as a solid understanding of some of the services Fargate requires for deployment.
skills learned: use ECR to host private Docker image • deploy an existing Dockerized service into AWS Fargate Cluster • create the Task Definition file
BestInsurance, an insurance company, wants to attract new customers. As a backend developer, your task is to extend the features of the company’s portal to let customers subscribe to new policies. You’ll use Spring Initializr to create the project structure for a basic Spring Boot application, and you’ll configure the necessary dependencies. You’ll build Docker images for running the application, using both Maven and Gradle plugins, and you’ll create Docker compose services for running the application using your Docker images. When you’re done, you’ll have built a basic Spring Boot application that’s ready to connect to a database.
skills learned: define a Spring Boot application with Spring Initializr, Configure build with Maven and Gradle, run the defined application in a Container with Docker, and Docker Compose
You’re a senior developer at Travel World Agency (TWA), which has grown to become the largest travel agency in the world. The company has built a next-generation system that uses a microservice architecture running on Amazon Web Services (AWS). But while TWA’s success is on the right track, the performance of its reservation microservice is off the rails. As a solution, TWA has replaced the microservice with a new one, using Kotlin and Spring Boot to improve performance and maintainability. Your job is to document the API endpoints for this new microservice—following the Open API 3 standard—to reduce the risk of someone invoking the endpoints incorrectly. You’ll also create custom rules for validating the documentation in an external library, allowing for reuse in other projects across the company.
skills learned: document the different endpoints using Open API 3 • determine whether the documentation follows the standard format
In this liveProject, you’ll secure a financial application using the out-of-the-box security features of Spring. You’ll set up authentication servers, add users, and configure rules for your application.
skills learned: client credentials in an OAuth 2 workflow • securely grab data from a third-party with Spring WebClient • periodically poll data from a third party with the Spring scheduler
Ensure your system can accommodate even unstable dependency services. You’re a TypeScript developer for a large company that sells stock photography. You’re responsible for the service that ingests images. Unfortunately, the ingestion process is being negatively affected by a flaky external web service that the ingestion engine uses, and the problem is not reproducible in unit testing since there’s no connection to the external service at that time. Working in IntelliJ WebStorm, you’ll establish an in-memory HTTP service, configure it to simulate a dependency service, write a test to reproduce the error, and use the test to build robustness into your system.
skills learned: dynamically configure Nest.js containers • mock an HTTPservice dependency
In this liveProject, you’ll tackle an important job for Echorand Corp, a data processing company that offers image-hosting services. Echorand’s image-hosting app needs the capability to produce thumbnails for all the uploaded images, so they’ve turned to you. Your challenge is using Go to implement the thumbnail creation features. You’ll need to create a new table to store the association between the original image and their thumbnail, then set up functionality so the original image will be downloaded when users click the thumbnail.
skills learned: Executing an external program to create a thumbnail of an uploaded image • Storing images in an object storage service • Store image and thumbnail associations in an SQLite database • Rendering HTML templates
Takeout e-commerce company FTGO currently manages their Kubernetes microservices deployments from the command line. So there’s no record of who has deployed what, and it’s very difficult to reproduce past states. Your goal in this liveProject is to help them with a GitOps-based continuous deployment pipeline for their platform. You’ll utilize Flux to establish and build your pipeline and configure the Flagger tool to use the traffic management features of the Linkerd service mesh.
skills learned: Using Flux • Flagger • and SOPS to implement GitOps
UMET Inc. is growing! To support its increasingly complex features and services, the CTO has decided to refactor its backend technology stack, and the dev team has chosen the memory-safe, high-performance Rust programming language for this important investment in the company’s future. As a new developer at UMET, your task is to build proof-of-concept (PoC) Rust applications using Cargo or Docker tools, then securely run the applications in portable WasmEdge runtime containers to validate that the new backend stack meets all the necessary requirements. When you’re done, you’ll have mastered Rust basics for application development, including working with strings, managing complex data structures, and creating an HTTP web server.
skills learned: code in Rust • and its HTTP networking APIs
The development team at Boutique, a software company, is working on a project for automating the inspection process of a client that builds industrial robots. An ASP.NET Core HTTP API has already been set up, and the team has started implementing the domain model entities and persisting them to a SQL database. As part of the team, your task is to implement CRUD (create, read, update, and delete) endpoints for all the entities according to the OpenAPI specification. To achieve persistence, you’ll configure Entity Framework Core and register it in the dependency injection container. You’ll implement a custom JSON converter to support polymorph endpoints in order to handle different types of robots. To verify that your implementation is correct, you’ll write and perform integration tests.
skills learned: interpret an OpenAPI specification • configure and use Microsoft DI • configure routing for endpoints in the HTTP API • use Postman for manual testing of the API • set up and configure validation for incoming data
In this liveProject, you’ll add security-related features to the service template. In your role as a Java/Kotlin developer, you’ll gain hands-on Kotlin experience implementing authentication and authorization of a service’s REST API using JSON Web Tokens (JWTs) as well as a Security Token Service, such as Keycloak, to issue and authenticate JWTs.
skills learned: implement authentication and authorization of a service’s REST API using JSON Web Tokens (JWTs) • use a Security Token Service to issue and authenticate JWTs
As a first step in dealing with surging energy prices, Free Power Corporation Limited (FPCL) has installed Smart Meters, which generate energy readings every thirty minutes, in households across London in order to analyze consumers’ energy usage. As a new data engineer for the power company, your task is to ingest the data from the Smart Meter readings and stream it to FPCL data centers for processing. Using the Kafka command-line tool, you’ll create topics in a Kafka cluster for storing the data, and you’ll create partitions for distributing the load within the topics. You’ll add logic to deal with potential problems such as data loss and duplicate records, and you’ll add a method to convert the energy readings to the widely used, easy-to-parse JSON format before the final step of ingesting the data. When you’re finished, FPCL will have pertinent data for analyzing energy consumption patterns, and you’ll have practical experience using Kafka to ingest large amounts of data.
skills learned: set up Kafka Cluster • write a Kafka Producer • add real-life complexities to data • ingest the data into the Kafka cluster
Nextstellar Corp is a media company with huge amounts of data to analyze. Some of that data is sitting in a PostgreSQL database, which is used for both authentication management and decision-making, as well as maintaining user preferences and feedback. Your boss doesn’t want that data sitting in the database—he wants it in the cloud! Moving it is exactly what you’ll be doing in this liveProject. You’ll use AWS Database Migration Service to enrich Nextstellar’s data lake with the PostgreSQL database so it can take full advantage of both modern data architecture and the AWS ecosystem.
skills learned: Using AWS Database Migration Service to move transactional data from on-premise to the cloud • Automating infrastructure using CloudFormation • Enabling on-premise to cloud connectivity • Setting up Database Migration Service replication instances and tasks • Configuring Change Data Capture (CDC) on Amazon RDS for Postgres • Using the Schema Conversion Tool • Validating a migration
Media company Nextstellar Corp has completed the migration of their data to the cloud—now they need to analyze it! That’s where you come in. You’ll take on the challenge of processing and integrating file and transactional data into a new cloud database solution that uses modern data architecture. You’ll use the AWS Glue tool to automate the whole process, from creating your crawlers and database to building your repository, Glue jobs, triggers, and establishing monitoring, troubleshooting, and scaling.
skills learned: Transforming raw data into standardized data using AWS Glue • Automating infrastructure using CloudFormation • Populating the AWS Glue catalog and creating Hive partitions • Creating ETL jobs using AWS Glue, including AWS Glue DynamicFrames and Spark DataFrames • Utilizing AWS Glue job observability and monitoring with AWS CloudWatch • Understanding AWS Glue job scaling concepts and configurations
Your company sells stock photography products to the general public, as well as to news and other media markets. As the resident TypeScript developer, you’ve been tasked with maintaining and extending a class library for optimizing search results. You’ll set up tests to support refactoring of this legacy library, use “pinning tests” to extract a specification from the existing code, and generate a wide range of test coverage. You’ll learn to spot when and where to improve code maintainability, and set up mutation testing to ensure your tests catch unintended changes. By the end, you’ll have generated test coverage that supports refactoring, making future updates easy and painless.
skills learned: derive tests from existing code • use mutation testing results to guide test efforts
Growth means change; for Logistica Transport, that means switching from their old desktop app to a new web app solution. In this liveProject, you’ll put together all of the pieces of this new web app. You’ll learn how to build a React.js app with Visual Studio 2023, set up a form for your users, and master the database magic of CRUD statements like insert, update, and delete to manipulate your database. Finally, you’ll validate your data formats to ensure the application works as expected.
skills learned: NuGet packages • Creating themed React forms • Implementing CRUD features • Implementing form validation
In this liveProject, you’ll use the Rust programming language to develop a two-step verification system for authentication service. You’ve decided to work in Rust because it runs without memory issues, it’s data race free, and provides safe concurrency.
Your client’s employees work on different operating systems, so your verification system needs to function on Mac, Linux, and Windows. To complete this system, you’ll need to develop a RESTful service as its core backend, and then write a Rust client that is going to be called by Linux as part of its authentication process. Finally, you’ll use Rust to develop Admin and verification clients, write a thin layer of C code as a PAM module, and configure Linux to use the PAM module in its authentication pipeline.
skills learned: implement a RESTful web service in Rust • write a secure Rust program
In this liveProject, you’ll set up a Facebook and social media sign on option for your eCommerce store using the Spring Security OAuth2 module. You’ll configure Spring Security for login using the OpenID authentication protocol, and fully create the functionality to login using a Facebook account and manage a profile without needing a new username and password.
UPDATED: July 2023 to use the latest versions of Java, Gradle, and Spring Boot; and updated instructional text throughout all the projects.
skills learned: form login with Spring Security • password encryption with Spring Security • front-end development using Spring MVC, HTML and CSS
The Nextstellar Corp media service has a lot of data—too much data to handle on prem! In order to properly analyze all the data generated by their streaming customers, they’re migrating to the cloud. In this liveProject, you’ll be helping them. You’ll tackle the common challenge of transferring on-prem data to AWS using the handy AWS DataSync tool. You’ll use Infrastructure-as-Code to create Landing Zone Amazon S3 buckets, automate data migration, and finally prepare a summary of likely infrastructure costs for your boss to review.
skills learned: Using AWS DataSync to move files from on-premises to the cloud • Automating infrastructure using CloudFormation • Organizing and managing data in a data lake • Creating data lifecycle policies • Setting up sources and destinations for data files • Starting AWS DataSync migration tasks
Create an alarm system that warns you before your system breaks. You’re a TypeScript developer for a large company that sells stock photography. You’re responsible for the service that ingests images. A recent upgrade to the image-scaling library has caused a problem with the aspect ratio of thumbnail images. Working in IntelliJ WebStorm, you’ll build a layer of integration tests that replicates the problem and also tests the assumptions that your unit tests rely on. When you’re done, you’ll have an alarm system that warns you when the assumptions your unit tests rely on are no longer valid, preventing problems in the future.
skills learned: use SQLite and an in-memory database to inspect the results of service execution • mock S3 containers
As a lead DevOps engineer, you’ve learned that using Fargate to host a database is not ideal. Your task is to solve that problem by attaching permanent storage to the container and adding important maintenance features. To deliver this solution, you’ll set up an AWS Aurora PostgreSQL with CDK, integrate it with a Fargate service, and keep the connection between the service and the database secure with AWS Secret Manager. When you’re done, you’ll have a working end-to-end solution ready to be deployed with CDK.
skills learned: use AWS RDS Aurora with AWS Fargate • control permissions on the container • store secrets and pass them to the container without human intervention
UMET Inc. is off to a great start in its efforts to refactor its backend to a modern technology stack using the popular, high-performance Rust programming language. As a new developer for the e-commerce platform, your task is to create a microservice for calculating order totals that depends on another microservice that looks up sales tax rates. Using HTML and JavaScript, you’ll create a web user interface for the microservices so that UMET product managers can test them in a browser. You’ll build and test your new application using Rust reqwest and Serde crates to make web service calls and also use Docker Compose to manage multiple Wasm and Linux containers in a single application. When you’re finished, you’ll have firsthand experience using WasmEdge command-line interface (CLI) tools to build a cloud-native application with interdependent microservices.
skills learned: Docker + Wasm • Docker Compose • WasmEdge CLI tools
Nextstellar Corp needs you to tackle a big challenge: completing their cloud migration by rebuilding their historical data lake as a data layer in the cloud. You’ll implement an effective and automated data orchestration framework for the ingestion and transform and curate layers, using best practices for Infrastructure-as-Code to automate your data layer. Finally, you’ll establish a monitoring system that will automatically alert you to any issues or problems that might crop up.
skills learned: Using AWS Step Functions and AWS Glue workflows to orchestrate data pipelines • Automating infrastructure using CloudFormation • Monitoring data in a data pipeline.
Takeout company FTGO has a problem with its Kubernetes-based application—its services are still deployed using vanilla Kubernetes manifests. This makes it hard to tailor services to environments and automatically declare a service’s dependencies. You’ve stepped in to help them—by utilizing Helm, a Kubernetes package manager. You’ll get hands-on experience creating Helm charts for services, configuring deployment pipelines to seamlessly publish them to Helm repositories, and mastering the art of deploying and upgrading services packaged as Helm charts.
skills learned: writing • testing • and publishing Helm charts
In this liveProject, you’ll package your application as a Docker image that’s ready for easy deployment. You’ll use Spring Boot to package your app to Docker, and then deploy to AWS with Amazon RDS and Beanstalk. Finally, you’ll reimplement functionalities for a Facebook login and configure HTTPs.
UPDATED: July 2023 to use the latest versions of Java, Gradle, and Spring Boot; and updated instructional text throughout all the projects.
skills learned: configuring Amazon Relational Database Service (RDS) • deploying Spring Boot app into Amazon Elastic Beanstalk • reconfiguring an application database connection in production
In this liveProject, you’ll progressively enhance a service template, starting with packaging it as a container image. Next, you’ll build and run a service template container with Docker Compose, write component tests for a service, and finally build and test a container image. When you’re finished, you’ll have a Github repository that automatically pushes a tested container image to a Docker registry. This project focuses on Kotlin.
skills learned: package a Spring Boot application as a Docker container image • run and test a container image • configure a Github Actions-based deployment pipeline to build and test a container image and push it to a registry
In this liveProject, you’ll ready your service for production. You’ll use the Spring caching API to add caching functionalities to a financial application, and compose your application for deployment. You’ll use Redis as your caching server.
skills learned: adding caching to any Spring application using the Spring caching framework • employ Redis to cache frequently accessed data • bundle your related services using Docker Compose
In this liveProject, you'll join InfoHub, an AI startup disrupting corporate knowledge management. They aim to unlock a company’s knowledge base through conversational Q&A-style user interfaces that use breakthrough language models. You'll leverage LangChain, a framework optimized for integrating LLMs into apps, to integrate InfoHub's data, vector stores, and language models into a single solution. You’ll prepare your data, create a vector store to embed your documents, and then use LangChain to combine it with an LLM.
skills learned: use LangChain for questions answering • create and populate a vector store with your own data
As part of an endeavor to better handle surging energy prices, Free Power Corporation Limited (FPCL) has a Kafka cluster that ingests large amounts of consumer energy data. As a data engineer for FPCL, you’re already familiar with the data, so the London-based power company has tasked you with building a streaming solution that processes the data as soon as it’s available. Using Apache Spark, you’ll create an application to read the data from the Kafka streams, and you’ll save the streams to a data lake. Using a Spark API, you’ll prepare the data for analysis by performing aggregation on the fly. You’ll join the real-time stream with the static data, enriching it with customer details and enabling FPCL’s research team to gain insights about customer energy consumption patterns. When you’re done, FPCL will be better equipped to deal with rising energy costs, and you’ll have hands-on experience building a real-time data processing solution using Apache Spark and Kafka.
skills learned: connect Spark to Kafka • read the data Stream • build a streaming pipeline to perform various tasks (such as cleansing and filtering aggregation)
The company you work for wants to improve its system by adding functionality that maximizes the profitability of any given search. As the resident TypeScript developer, your task is to apply a battery of tests to support changing the design of legacy code in preparation for adding this new functionality. You’ll refactor your production code based on advice from your architecture team. Thanks to a broad test suite, you’ll be able to change your design with no worries about accidentally breaking a required behavior. The result will be a system you can test with smaller, more meaningful tests and that easily withstands future requirement changes.
skills learned: change the design of existing code while supported by tests • change test suites to take advantage of better designs
You're a TypeScript developer at an organization that sells stock photography products to the general public, as well as to news and other media markets. The company wants to add functionality to its system that maximizes the profitability of any given search. It’s up to you to improve the test suite by adding high-quality requirements-based tests. You’ll use mocks to isolate requirements, ensuring that each test focuses on a single behavior in your code. When you’re done, you’ll have a more resilient codebase.
skills learned: change the design of existing code with the support of tests • change test suites to take advantage of better designs
In this liveProject, you’ll help takeout delivery company FTGO Inc. take their first steps in moving to a microservices-based architecture. You’ll begin by creating Kubernetes manifests that enable you to deploy your services and their required infrastructures, such as databases, within a cluster environment. You'll use the package manager Helm to seamlessly install and manage infrastructure services like Postgres and Apache Kafka and use kind (Kubernetes in Docker) to create a local Kubernetes cluster that runs on your machine. Finally, you’ll see how GitHub Actions can automate your testing process.
skills learned: Writing Kubernetes manifests to deploy applications and publishing Docker images to a container registry
FGTO is almost ready to deploy their Kubernetes application—they just need you to help them create a Kubernetes cluster for their production environment. The simplest and most reliable way to do this is to use a managed Kubernetes service, and for this liveProject, you’ll use AWS EKS. You’ll work with various tools, including Terraform and Crossplane, to create and configure the cluster. Terraform helps you configure your cluster with just a small amount of code, while Crossplane ensures you can provision the service and its infrastructure using only Kubernetes manifests. Once the application is deployed, you’ll work to encrypt secrets in Git using SOPS and AWS KMS and promote changes from development to production on EKS. When you’re done, FGTO will have a complete working Kubernetes deployment!
skills learned: Using Terraform • Crossplane • and AWS services to deploy an application on AWS EKS
You and your DevOps team have successfully built an application and an automated deployment pipeline for it. But before you can launch you’ll need a solid operating plan that addresses how you’ll monitor and troubleshoot your new service in production. In this liveProject, you’ll add metrics and a CloudWatch Container Insight dashboard to your Fargate service. You’ll also enable autoscaling to adjust according to CPU usage, and you’ll structure logging to be easily searched. Lastly, you’ll use Python to set up alarms so you’ll know when something goes wrong.
skills learned: use AWS RDS Aurora with AWS Fargate • control permissions on the container • pass parameters and secrets to the container
As a software engineer for Boutique, a software development company, you're tasked with adding search, upload, and download functionality to an ASP.NET Core HTTP API that Boutique is building for its client, RobotsInc. To enable the frontend to navigate through existing data structures, you’ll add several child endpoints, as well as an endpoint for criteria-based searches. You’ll also implement endpoints for binary photo uploads and downloads according to the OpenAPI specification, and you’ll verify your implementations are correct by testing manually with Swagger UI as well as with automated integration tests. When you’re finished, RobotInc’s employees will be able to upload photos and notes to document and report on their robot inspections.
skills learned: interpret an OpenAPI specification • configure and use Microsoft DI • configure routing for endpoints in the HTTP API • use Postman for manual testing of the API • set up and configure validation for incoming data • implement binary file upload and download
In this liveProject, you’ll secure a financial application using the out-of-the-box security features of Spring. You’ll set up authentication servers, add users, and configure rules for your application.
skills learned: basics of Keycloak administration • OAuth 2 workflows and when to use them • securing an application with Spring Security • how Docker makes running applications easier
You’re a senior developer at Travel World Agency (TWA), which has grown to become the largest travel agency in the world. The company has built a next-generation system that uses a microservice architecture running on Amazon Web Services (AWS). But while TWA’s success is flying high, the performance of its reservation microservice has taken an unfortunate detour. As a solution, TWA has replaced the microservice with a new one, using Kotlin and Spring Boot to improve performance and maintainability. Your job is to secure the API against possible attacks. You’ll configure a Keycloak authentication server to keep track of valid users. Using Spring Security, you’ll add security mechanisms on the microservice to ensure that only valid users can access it and that those users can only access their own reservations.
skills learned: validate whether the user has permissions
In this liveProject, you’ll make use of Amazon Web Services tools to convert customer review videos to text for sentiment analysis. You’ll step into the role of a developer at a startup that offers a video alternative to feedback surveys, and help scale up your current platform so that it can handle thousands of incoming videos.
You’ll start creating your highly scalable solution with secure uploading, then build a video processing pipeline using event-based architectures. You use AWS Elastic Transcoder and Amazon Transcribe to transcribe video to text, and Amazon Comprehend to run sentiment analysis to determine whether feedback is positive or negative.
skills learned: create a serverless project and event-driven architecture with AWS Chalice • video manipulation with AWS Transcoder and Amazon Transcribe • sentiment analysis with Amazon Comprehend
Nextstellar Corp is very excited—they’re taking all their data to the cloud! They’ve recently migrated and have an early-defined data lake solution. The CEO has approached you to deliver the next step of their cloud data process: using AWS Glue to apply the transformation logic and store the curated data in Amazon S3. You’ll utilize Jupyter Notebooks to curate and standardize your data sets—crafting, organizing, and managing datasets to ensure they are easily accessible and usable—then design a CI/CD pipeline to test and deploy code with a single push after completion.
skills learned: Transforming standardized data into curated data using PySpark • Automating infrastructure using CloudFormation • Developing ETL jobs using AWS Glue Jupyter Notebook • Implementing CI/CD for code release in AWS Glue Jobs • Refactoring Jupyter code and deploying through the CI/CD pipeline
A working application is good; an automatically deployable application is great! In this liveProject, you’ll create a continuous delivery (CD) pipeline for your application using CDK. Then, you’ll deploy your application in a single account as well as in multiple accounts using CDK’s pipeline module. Along the way, you’ll learn to spot and evade possible pitfalls.
skills learned: create a pipeline to automate application building and deployment to AWS Fargate • use AWS CDK to automate deployment of a CD pipeline
As a backend developer for BestInsurance, your task is to secure its RESTful API using Spring Security. The insurance company is running the API in a server that supports OAuth 2.0 authentication. Using the server’s specs, you’ll reproduce the behavior of the authorization server with Spring Security in order to have a local server that is easily configurable for testing purposes. You’ll implement role-based authorization based on the content of JSON Web Tokens (JWT), from the authorization server point of view. This authorization will impact API security, so you will implement a resource server with Spring Security. You’ll also implement unit testing with Spring Security Test, and configure SwaggerUI to make requests that are authorized according to OAuth 2.0, using SpringDocs. When you’re finished you’ll have highly useful Spring Security skills—and confidence that your API is secure!
skills learned: Spring Security OAuth 2 authentication and role-based authorization
Boutique, a software development company, has a fully functional ASP.NET Core HTTP API for a client’s project. As a software engineer for Boutique, it’s your job to improve the API’s code and prepare it for production. Using Serilog, you’ll add logging functionality to help determine the causes of issues that may arise in production. To allow the web UI to be hosted someplace other than your HTTP API, you’ll enable cross-origin resource sharing (CORS) middleware. You’ll create custom middleware for handling the cross-cutting concern of database transactions. To further improve the quality of the codebase, you’ll create a custom filter that handles business exceptions in a general, consistent way. When you’re done, the API will be robust, easy to maintain, and production-ready.
skills learned: set up and configure logging with Serilog • understand how the ASP.NET Core processing pipeline works • create middleware for cross-cutting concerns • set up and configure CORS
Logistica Transport is on the rise—and they need a new web app solution that can do what their old desktop app can’t. That app is almost ready, but it needs a final round of testing to make sure it’s ready to go to its users. That’s where you come in! You’ll learn to utilize mocks and stubs, as well as the Jest and React Testing Library, to spot errors and make sure the app is production-ready. You’ll even test and assess the app’s performance using BenchmarkdotNET.
skills learned: Visual Studio debugging tool • Testing applications • Checking application performance • Entering application accessibility features
You’re a senior developer at Travel World Agency (TWA), which has grown to become the largest travel agency in the world. The company has built a next-generation system that uses a microservice architecture running on Amazon Web Services (AWS). But while the company’s success is moving quickly in the right direction, the performance of its reservations microservice has taken a wrong turn. As a solution, TWA has replaced this microservice with a new one, using Kotlin and Spring Boot to improve performance and maintainability. Your job is to reduce the risk of deploying the application with bugs—a common problem for the previous API—by implementing robust testing.
Following business-driven development (BDD) practices, you’ll create a series of unit tests that validate the code’s logic in a number of plausible scenarios. To test the behavior of the code itself without affecting or being influenced by external classes, you’ll create a series of mocks. Using several libraries, you’ll test to ensure database queries work as expected.
skills learned: create a unit test to check the logic of the application • create a unit test that checks access to the database
You’re a TypeScript developer for a large company that sells stock photography products to the general public, as well as to news and other media markets. Your task is to find and fix some long-term bugs in a legacy library. You’ll write a test to characterize a bug in code that controls how certain assets are selected for a special display. After you’ve determined the source of the problem, you’ll modify the test, transforming it into a bug fix. Once you’ve squashed that bug, you’ll repeat the process to tackle two additional common bugs in TypeScript applications.
skills learned: derive tests from existing bugs • use tests to drive bug fixes
UMET Inc.’s mission to modernize its software infrastructure has been a great success. The e-commerce company now uses Rust microservices that run in lightweight Wasm containers so that they can be deployed anywhere in the cloud. However, as more microservices are created, the overhead for managing them is becoming a problem. Using the Distributed Application Runtime (Dapr) sidecar, a commonly used design pattern, you’ll create a proof of concept (PoC) that demonstrates the pattern’s benefits, including reducing the complexity of connecting multiple microservices and infrastructure services (e.g. databases and web proxies). When you’re finished, you’ll have refactored UMET’s microservices to work with Dapr, reducing the overhead required to manage them.
skills learned: use Dapr to construct complex microservices
As a TypeScript developer, you’ve recently created a high-quality test suite as part of your company’s goal of adding functionality to its system. Now, using test-driven development (TDD) techniques, it’s time to analyze new requirements, reconcile them with what is currently documented by your test suite, and use the test-first technique to ensure changes to your library are justified, specified, and protected by tests.
skills learned: write granular tests for individual requirements • use larger-grain tests to drive the integration of individual components • change the design of existing code with the support of tests
You’re a senior developer at Travel World Agency (TWA), which has grown to become the largest travel agency in the world. The company has built a next-generation system that uses a microservice architecture running on Amazon Web Services (AWS). But while TWA’s success has been steadily climbing, the performance of its reservation microservice has been losing altitude. As a solution, TWA has replaced the microservice with a new one. Your job is to improve performance by leveraging cache mechanisms, including the Caffeine, Varnish, and Redis libraries, that will reduce traffic between APIs.
skills learned: understand the different mechanisms of cache • determine where to use one mechanism of cache instead another one
In this liveProject, you’ll create a user registration form that allows users to specify their delivery address and use that address at checkout. You’ll use Spring Security to configure a form-based user registration and login, set up password controls, and store user details in PostgreSQL.
UPDATED: July 2023 to use the latest versions of Java, Gradle, and Spring Boot; and updated instructional text throughout all the projects.
skills learned: form login with Spring Security • password encryption with Spring Security • front-end development using Spring MVC, HTML and CSS
In this liveProject, you’ll take on the role of a software engineer for Echorand Corp tasked with implementing image-hosting capabilities for their new platform. You’ll make full use of the Go standard library to write a web UI that can upload images once they are authenticated, then add SQLite support for storing image metadata. Finally, you’ll update the web app so your users can see their newly uploaded images in all their glory.
skills learned: Rendering HTML templates • Handling form uploads in your web application backend • Upload binary data to another external object storage service using the Go Cloud Development Kit • Manage data related to users and their uploaded images by storing them in an SQLite database
You’re a new developer at UMET Inc., an e-commerce platform that’s modernizing its backend technology stack with Rust. Your task is to create a simple HTTP service that looks up sales tax rates for U.S. ZIP codes and then deploy it in a lightweight container. To build the service, you’ll use Rust Tokio and hyper crates. You’ll compile, run, and test it in a lightweight WasmEdge container and use GitHub Actions to automatically test and validate any changes that you make. When you’re finished, you’ll have hands-on experience building, updating, and testing a minimally viable microservice using Rust and WebAssembly.
skills learned: Rust application framework for HTTP server applications
To support its rapid growth, e-commerce company UMET Inc. relies on lightweight, interdependent, cloud-native microservices written in Rust that can compute sales tax rates and e-commerce order totals. As a developer at UMET, it’s up to you to integrate these microservices with existing order systems. To do that, you’ll need to turn the order total microservice into a database-backed stateful service. You’ll build and test the microservice in Docker and model the application data into relational database records. You’ll connect the microservice application to a MySQL database server, and you’ll use Docker to compose and manage all components of the microservice. When you’re done, you’ll have built an order management microservice in Rust that can read and save data from UMET’s MySQL relational databases and later serve as a template for other UMET microservices.
skills learned: MySQL driver for Rust
In this liveProject, you’ll build an API that can integrate your customer’s transaction data from a third party. You’ll construct a robust client with OpenAPI and WebClient, and make HTTP requests with Spring Boot. You’ll then develop a pipeline of enrichment for the merchant data you acquire through your API.
skills learned: code generation from OpenAPI • calling third-party applications using WebClient • circuit breaker pattern for Spring applications
Logistica Transport needs to ditch its old desktop app and embrace a new web app solution. They’ve turned to you to help them, and in this liveProject, you’ll utilize Entity Framework Core to set up the vital connections between a MySQL database and the future web app. You’ll need to set up data models that define the structure and relationships of your data, as well as learn how to perform CRUD operations to create, update, and delete data in your database. Finally, you’ll connect your data models and CRUD operations to the Entity Framework for a full and working database solution.
skills learned: NuGet packages specific to Entity Framework and MySQL • Setting up data classes in a database • Data tables (inserting, updating, and deleting information) • Setting up a database connection in code • Working with data stored in database tables
Acme Widgets, a manufacturing company, uses an AI-powered Google Workspace add-on to automatically extract information from supplier invoices. Your task is to extend the add-on’s functionality so it can handle expense claim receipts, as well. You’ll add a Document AI processor designed for processing expenses, and you’ll enable additional fields in order to group related receipts. To increase user convenience, you’ll enable the uploading of local files and add a tab to re-pick recently selected files. Lastly, you’ll create unit tests that will help you update the add-on with more complex changes in the future.
skills learned: implement Expense Document AI processors • add CardService add-on fields • implement unit testing
In this liveProject, you’ll build a shopping basket that stores data in a user session. You will learn how to use sessions in Spring MVC, handle HTML forms, and use different bean scopes in Spring Framework. At the end, you will have a basket feature added to the website, so users can add items from the catalog.
UPDATED: July 2023 to use the latest versions of Java, Gradle, and Spring Boot; and updated instructional text throughout all the projects.
skills learned: front-end development using Spring MVC • configuring bean scopes • submitting forms in Spring MVC
skills learned: Implement queries and Filters with Spring Data JPA Query Methods • Query by Examples and Specification and JPQL
You’re the star data engineer at Free Power Corporation Limited (FPCL). The London-based power company is interested in gaining insight into its customers’ energy usage patterns, and it’s up to you to deliver a data-rich solution that satisfies the requirements of FPCL’s various teams. You’ll create a streaming Spark application to read the consumer event stream from Kafka, you’ll add information that helps the teams determine when data was generated, ingested, and processed, and you’ll write logic to reorder any late or out-of-order data. To provide vital household energy consumption statistics to the sales and electrical engineering teams, you’ll join Kafka data streams and perform complex computations on the resulting stream. To be sure your solution is ready for the teams to use, you’ll test it on the local Spark cluster. When you’ve finished, you’ll have learned advanced stream processing skills that empower you to meet the different business requirements of various enterprise departments.
skills learned: perform complex arbitrary stateful computation on streams (such as handling out-of-order data and custom computation) • set up a Spark cluster • test your solution on the local cluster
In this liveProject, you’ll use the Kafka distributed streaming data platform to help convert a legacy order fulfillment system to a sleek new asynchronous event-driven architecture. This architecture needs to deliver services that can scale and evolve independently, to speed up your clients eCommerce app. You’ll use the Go language to build a microservice, an event publisher, and multiple event consumers; and work with Kafka’s command-line tools to create, alter, and test topics.
skills learned: interacting with Kafka using the command line • Kafka events • leveraging asynchronous communication patterns across independent services and consumers • evaluating the performance of the system with KPIs
Boutique, a software development company, is working on a project that will automate a client’s inspection process. As a software engineer for Boutique, your task is to implement authentication and authorization in the existing ASP.NET Core HTTP API for the project according to the client’s requirements. You’ll register your application to use Google as an identity provider, configure Swashbuckle to support authentication through Google, and activate the authentication and authorization middleware of ASP.NET Core. To take advantage of ASP.NET Core’s authorization features, you’ll add additional claims to the authenticated identity per the client’s specs, and you’ll implement role- and policy-based authorization as needed. When you’re done, employees will be able to use all of the API’s functionality, and customers will have read access to their own data.
skills learned: interpret an OpenAPI specification • set up and configure authentication and authorization • how to gain insight into using different mechanisms to implement authorization • dissect a JWT
In this liveProject, you’ll dive into the software engineer role at Echorand Corp., a leading analytics company. Echorand Corp wants to offer its customers the opportunity to host images, so they’ve turned to you. You’ll build an impressive web application using the Go programming language using GitHub as the OAuth provider. You’ll implement secure authentication, providing users with a seamless login experience, and manage application state effortlessly using SQLite.
skills learned: Writing a web application to sign in using GitHub credentials • Storing user session data in an SQLite database • Rendering HTML templates
In this liveProject, you’ll use the flexible Python language and SQLite database to develop a simple-but-useful document tracking tool for a pharmaceutical company. This sort of automation tool is in high demand from businesses that need to keep track of changes to their important documents. Your challenges will include creating and connecting to a local SQLite database, working with file information and MD5 hashes, and applying automation principles to your tool.
skills learned: walking directory trees • identifying files • calculating file MD5 hashes • working with SQLite • creating Excel reports with the openpyxl library
BestInsurance has a rapidly growing customer base and happy front-office employees, thanks to a newly built API that lets customers subscribe to policies and lets front-office employees narrow their searches with custom filters. But the back-office staff is unhappy with the high latency of the user interface. As a backend developer, you’ll solve this problem by adding pagination with Spring Data JPA, preventing the page from loading all the customer data at once. You’ll use JPQL to add aggregate functions that return information the back office needs, such as revenue and customer count by state. You’ll implement a REST service for uploading policy subscription data provided in CSV format and importing it into your database. You’ll also leverage domain events for sending messages when subscriptions are saved, updated, or deleted. When you’re done, you’ll know how to add REST API services, and the back-office employees will thank you for making their jobs easier!
skills learned: Add query result pagination • Implement queries with JPQL aggregate functions. Import csv files into a database in a transaction, use domain events to send messages to a JMS Queue.
Acme Widgets, a manufacturing company, manually logs its supplier invoices on spreadsheets in Google Workspace. Your task is to free the staff from this tedious task by creating an add-on that automatically extracts and records useful information from invoices. You’ll set up a Google Cloud Platform (GCP) account, implement and deploy the add-on, and create Document AI processors for processing invoices from multiple regions. You’ll add a CardService that improves the user experience by letting them select which files to process. You’ll use the Document AI REST API to process the invoices’ image data and write the processed data to a spreadsheet, enhancing the user interface. When you're done, you’ll have created a basic, easy-to-use Google Workspace add-on that extracts and records invoices in multiple formats, leaving the Acme Widgets staff free to focus on more productive tasks.
skills learned: create a project in Cloud platform • deploy a Workspace add-on • implement Invoice Document AI processors • update spreadsheets
In this liveProject, you’ll build a product catalog for an ecommerce application. You’ll learn how to load data from a database and display it on an HTML page, and use integration tests to properly understand your model and ensure its accuracy. At the end, you’ll have a fully functional Spring application that loads data from the database using Spring Data JPA and displays it using Spring MVC.
UPDATED: July 2023 to use the latest versions of Java, Gradle, and Spring Boot; and updated instructional text throughout all the projects.
skills learned: front-end development using Spring MVC • accessing relation data in Postgres using Spring Data • creating database migrations using Flyway
Hit the ground running with C# by rapidly prototyping a data retrieval app. As a new developer at Ground Truth Consulting, you'll build a proof of concept to streamline legislative monitoring. Tap into .NET's capabilities and set up a data access layer leveraging api.data.gov. Focus on productivity and type safety with C#'s top-level statements, and get hands-on experience querying web APIs and iterating quickly.
skills learned: Structure apps with namespaces and classes • Use HttpClient to make API requests
You’re the IT Developer for Rocinante, a company looking to unite its scattered IT scripts and tools into one GitHub platform. To make this easier, you’ll build a GitHub management module with PowerShell, with automatic building implemented as a GitHub action. You’ll first build your module locally, then implement a CI/CD pipeline using GitHub’s built-in DevOps tools.
skills learned: organizing module’s source code • using module manifest • using ModuleBuilder • creating build pipeline with GitHub Actions
Apache Camel is a lightweight and easy to use integration framework that forms the backbone of numerous distributed systems. In this liveProject, you’ll go hands-on with Apache Camel to build a working medical registration system from scratch.
Your system will help a busy hospital unite laboratory information systems, patient records, and practice management systems that track appointments and finance. Your challenges will include developing API and integration challenges for a new patient portal, and integrating it into your records system. This kind of IT portal is in high demand from any industry that wants to streamline its information, and automate costly human-fronted customer services.
skills learned: integrate heterogeneous systems with Camel • implement Camel Routes using Java DSL • expose a REST API, messaging, and other kinds of endpoints • deploy Camel routes to cloud environments
In this liveProject, you’ll take on the challenge of designing and building a custom CLI using Python. Command line interface tools automate repetitive tasks and help streamline software development. Companies that use bespoke CLIs can easily manage change, smooth friction between teams, and reduce time spent on red tape.
You’ll join up with KlickBrick, a toy company whose digital expansion is grinding to a halt under mismanagement, and create a CLI framework that helps bring development teams together. You’ll need to assemble the infrastructure for your CLI, then develop functionality for onboarding employees, initializing new software project repositories, and reporting CLI usage metrics to a server.
skills learned: implementing an extensible CLI tool • translating business requirements into Integration Tests using the Behave framework • real-world software engineering practices for building a high-quality and maintainable software project
In this liveProject, you’ll help travel company SimpleTravel transition their booking app from a JavaScript codebase to TypeScript. SimpleTravel is experiencing problems with its development flow due to typing errors not being caught at development time. You’ll work to fix this problem by taking an existing Node.js application and rewriting it using TypeScript features like classes and interfaces. Finally, you'll implement a new building mechanism to compile your TypeScript code and run it on AWS Lambda.
skills learned: OOP with Lambda functions • TypeScript coding
You’re a senior developer at Travel World Agency (TWA), which has grown to become the largest travel agency in the world. The company has built a next-generation system that uses a microservice architecture running on Amazon Web Services (AWS). But while TWA’s success is rocketing higher, the performance of its reservations microservice is crashing and burning. As a solution, the company has replaced the microservice with a new one, using Kotlin and Spring Boot to improve performance and maintainability. Your job is to improve the performance of the new API.
With the help of the Maven Enforcer plugin, you’ll deal with dependencies that slow the microservice. You’ll use ktlint to format the source code according to a single standard, thereby increasing efficiency. You’ll create a Docker image using GraalVM and optimize it to decrease resource consumption. When you’re finished, your API will start up quicker and be more reactive, even on high-traffic days like Black Friday and Cyber Monday!
skills learned: format the source code • reduce the conflicts with dependencies • reduce the use of resources of the microservices
You’re a TypeScript developer for a large company that sells stock photography. You’re responsible for the service that ingests images, and a recent database change has broken the service, despite successful unit testing. Working in IntelliJ WebStorm, you’ll build an integration test that replicates the problem, find the cause, fix the problem, and build the infrastructure to develop more integration tests in the future.
skills learned: reproduce problems in hard-to-reach parts of a system with tests • use tests to drive bug fixes
SignalR is an ASP.NET Core library that adds real-time web functionality to your apps, enabling server-side code to instantly communicate with your client. It’s an ideal library for facilitating the lightning-fast communication needed for a real-world Internet of Things project.
In this liveProject, you’ll put SignalR into action to build and implement an airport PA system across the Internet of Things. Your challenge will include creating both the server-side web application using ASP.NET Core with JavaScript front-end and the distributed application that will be deployed on the IoT devices on the ground using .NET Core and Docker. You’ll establish your SignalR setup, enable the transfer of real-time audio data, and enable your IoT applications to both run as a single cluster and deploy on Docker.
skills learned: hosting a SignalR application on a cluster of servers • hosting a server-side SignalIR class
Micro frontends take a vertical approach to web development, splitting an application into standalone components that encompass everything from user interfaces to backend logic. In this liveProject, you’ll use the micro frontends approach to help solve a tricky issue for music streaming service Red Records.
Red Records has two separate development teams working in two separate time zones, and they are currently arguing over whether to use React or Vue.js for their frontend. Your challenge is to set up a new micro frontends architecture that will allow them to work independently, in parallel, with separate stacks, and no need to talk to each other! You’ll build two micro frontends using Vue.js and React respectively, and set up a Bootstrap client-side orchestrator to handle loading, persist authentication, and routing. Better be fast—your new app launches in just a few months.
skills learned: creating vertical micro frontend architectures • writing micro frontends as single page applications • multi-framework micro frontend architecture • user session authentication
SimpleTravel Co has just established IaC—now they’re ready to start automating all the steps of their deployment pipeline! In this liveProject, you’ll help them do just that. You’ll utilize the Amazon CodePipeline and CodeBuild services to build a multi-step deployment pipeline, automating dull manual tasks and carefully deploying your application while checking for bugs and errors.
skills learned: Automating deployment with CI/CD • progressive deployments • error mitigation
BestInsurance has an online portal with a newly built application for providing features it hopes will attract new customers. As a backend developer for the insurance company, it’s your job to implement create, read, update, and delete (CRUD) services that allow front-office staff to manage and query data as needed to perform their daily tasks. You’ll define your CRUD API, using Spring Web and the DTO pattern, and observe your components in action. Leveraging inheritance and generic types in Java, you’ll refactor the code as necessary and complete the implementation of your RESTful APIs. To ensure your solution meets BestInsurance’s high standards, you’ll test the services with Spring Test and MockMvc.
skills learned: RESTful API implementation with Spring Web and DTO pattern, Generate a SwaggerUI and OpenApi documentation with SpringDoc
You’re an enterprise architect for Padre Inc., which has acquired Tiddler Inc., an insurance analytics startup, for its SaaS platform. Since your company runs its cloud operations on AWS and the startup uses Google Cloud Platform, your task is to manage multi-cloud operations. As part of that effort, you’ll implement centralized logging to simplify log analysis across multiple applications. After exploring centralized logging using the ELK stack, you’ll create a centralized logging instance in Google Cloud Platform and stream the logs from AWS to Google Cloud. To signal the need for corrective actions, you’ll use Kibana to run queries against the log data and create an alert based on log events. When you’re done, you’ll have created a centralized logging flow that improves site reliability.
skills learned: Elasticsearch • Logstash • Kibana • AWS Cloudwatch • AWS Lambda
In this liveProject, you’ll set up everything needed for reliable ecommerce checkout. You’ll integrate one-click payment options, create a PayPal developer account and user accounts for testing, and integrate with the official PayPal SDK.
UPDATED: July 2023 to use the latest versions of Java, Gradle, and Spring Boot; and updated instructional text throughout all the projects.
skills learned: use third-party SDKs in web development • maintain state between multiple requests • support different configurations for production and testing
Take your C# skills to the next level by implementing smart change detection on a data retrieval app. As a developer at Ground Truth Consulting, you'll enable an application to automatically check for updates across legislative APIs. Store responses to disk and compare new results to spot differences, send alerts to stakeholders when fresh bills are introduced, and build reusable comparison logic to support future data sources. You’ll then add unit tests to validate critical flows, prevent regressions, and refactor with dependency injection for modular and testable code. Whether you're new to C# or a .NET veteran, this project is ideal for leveling up your skills.
skills learned: Error-handling techniques • File-handling techniques
Acme Widgets has an AI-powered Google Workspace add-on that interprets data from invoices and receipts. Add-ons have a processing time limit that keeps them from processing many documents at once. It’s up to you to solve this problem! You’ll create one delegate web app that archives files to centralized Google Cloud Storage (GCS) and another that batches the documents—allowing processing to be done in a way that bypasses the standard add-on response time limit. As you develop, you’ll implement incremental unit testing to detect code errors. When you’re done, you’ll have a powerful add-on that isn’t constrained by processing time limits and automatically archives documents to secure cloud storage.
skills learned: set up cloud storage and archiving • implement document batch processing
Svalbard is quickly becoming a household name as customers all over the world bring the online store’s furniture into their homes. But Svalbard’s backend applications run on legacy mainframes that are increasingly expensive to scale. That’s why the store has adopted a more flexible modern deployment model. As a Rust programmer, your task is to provide its developers and operators with a load-testing CLI tool that simulates a multitude of real-world scenarios.
Using Tokio, Serde, and clap, you’ll add functionality for users to configure the number of connections and requests, as well as other parameters. You’ll gather and display immediate feedback, empowering users to spot and correct misconfiguration early on. You’ll calculate statistics on latencies in your application and display them in human- and machine-readable output, providing the maximum benefit from the gathered data. When you’re done, you’ll have a CLI that delivers users high configurability, reliable signal handling, and a means of providing immediate feedback for more nimble, cost-effective results.
skills learned: design CLI applications • parse user input
In this liveProject, you’ll take on the role of a Java/Kotlin developer tasked with implementing the service template’s observability-related features—key aspects of production-readiness—including a health check API, application metrics, and distributed tracing. Work will be done in Kotlin.
skills learned: health check API • application metrics • distributed tracing
You’re a TypeScript developer for a large company that sells stock photography. You’re responsible for the service that ingests images, and this service depends on another subservice: the pricing microservice. As proven by their individual unit tests, each service works as specified. But when the services are combined, new customers are locked into one pricing table—even those that should have access to pricing that fluctuates depending on factors like promotions, flash sales, and price-tuning. Working in IntelliJ WebStorm, you’ll solve this problem by writing an integration test that connects and runs the two services together, letting you reproduce the problem locally.
skills learned: reproduce “ghost in the machine”-type problems with integration tests • create in-memory Nest.js applications
BestInsurance, an insurance company, has an online portal with a newly built application for providing features it hopes will attract new customers. As a backend developer, it’s your job to create the persistence layer for the application. You’ll define the database tables and configure a Liquibase changelog to automatically create the tables using SQL. This will allow you to track and manage database versions in order to avoid data loss in production when you change the model. To persist your data, you’ll map Java classes to the database tables using Spring JPA, then implement the basic create, read, update, and delete (CRUD) operations through the JPA repositories for the persistent entities. To verify your mapping is correct, you’ll implement unit testing with JUnit 5 tests, TestContainers, and a PostgreSQL database.
skills learned: Implement Spring Data JPA CRUD Repositories, Define the database DDL with Liquibase and SQL, Implement ORM (Object Relational Mapping) with Entity Classes, Implement JUnit Test cases with Spring Test and TestContainers
You’ve just been hired as a software programmer for SongRiver, a music-streaming startup whose success is skyrocketing. With so many new employees, it’s hard to keep everyone straight, so the internal tools team has asked you to add a page for each employee as the first step toward building an employee directory app. You’ll set up a React Router to provide access to employee information. Using React Query, you’ll fetch employee data from the server so that it can be added to the employee page. Finally, you’ll use Chakra UI to display the employee data according to the provided specifications. When you’re finished, you’ll have created a page that accepts and provides access to employee data—and your manager will be humming a happy tune.
Some sections may contain information that is now outdated due to the rapid advancements in the technology field, notably the initial libraries, Docker setup, and some documentation links. Regardless, this liveProject remains an invaluable resource for intermediate users.
skills learned: React Router routes and URL params • React Query data fetching • Chakra UI design system
Level up your C# skills by evolving an API data retrieval prototype into a robust application. As a developer at Ground Truth Consulting, you'll expand the initial Federal Register API demo into a versatile tool to streamline legislative monitoring. This project lets you flex your C# muscles on real-world APIs while prepping for enterprise development. You’ll refactor with classes, tuples, and records for more maintainable code, cache API responses in memory to optimize performance, and integrate the Congress API to showcase multi-source data aggregation.
skills learned: C# data structures like lists and dictionaries • Error-handling techniques
In this liveProject, you’ll close the gap between “data analyst” and “software engineer” by building a working data platform. You’ll join up with AnomalousDex Inc., a startup that specializes in personalized end-to-end data products, and create a working prototype of their anomaly detection platform to showcase to prospective customers. This requires connecting up multiple cross-discipline components, from data science to systems management.
This platform consists of three principal components: a service that serves the anomaly detection data model, the modeling platform, and a dashboard visualization tool. Your challenge is to develop all of these features, going hands-on with software architecture, data engineering, microservices, and dockerizing. You’ll also dive into the essentials of monitoring and metrics, and even train an unsupervised learning anomaly detection model!
skills learned: design a data platform architecture consisting of several Dockerized components • train an anomaly detection model with scikit-learn and deploy it in a web service • monitor the web service and anomaly detection model with Prometheus and Grafana
Logistica Transport has grown, which means they need to replace their outdated desktop app with a brand new web app solution. In this liveProject, you’ll help them kick off this transformation by swapping their current Excel-based storage system for a mySQL database. You’ll need to create and install the database from scratch, as well as set up the necessary tables to handle the input and output streams of data. This database is a vital foundation for how Logistica’s web app will function.
skills learned: MySQL language
Make your Java/Kotlin developer colleagues’ lives easier by enabling them—and you!—to quickly maintain services that were cloned from the service template. In this liveProject, you’ll extract a microservice chassis from the service template project, create Gradle plugins, and publish chassis artifacts and template source code. When you’re done, you’ll have a small service template project that uses a much larger microservice chassis framework. (Your colleagues will thank you!) Work will be done in Kotlin.
skills learned: refactor a service template to extract common logic and build logic into a reusable service chassis framework
You’re a senior developer at Travel World Agency (TWA), which has grown to become the largest travel agency in the world. The company has built a next-generation system that uses a microservice architecture running on Amazon Web Services (AWS). But as TWA’s success has soared, the performance of its reservations microservice has taken a nosedive. TWA has decided to replace the reservation microservice with a new one, using Kotlin and Spring Boot to improve performance and maintainability. Your task is to review the architecture of the existing microservice and create a new one that has the same endpoints as the old one, saves all relevant information, has a default error handler, and communicates with other microservices to access other vital information.
skills learned: create the basic structure of a microservice • persist the information and interact with other microservices • transform the exceptions in a common structure of error
In this liveProject, you’ll step into the role of a Platform Engineer and build a command-line application for generating a web application scaffold using Go. This incredibly useful tool will ensure that all the services across your company follow standard practices and match a preset source code structure. Your colleagues are excited—with this new tool they can bootstrap their projects more quickly and ship features faster. Your challenges will include using the Go standard library package to implement a command-line application, creating web application templates, and writing end-to-end tests.
skills learned: set up a standard command line interface • embed data within an application • use templates to generate and render customized web application scaffolds • write tests
Welcome to Boutique, a software development company that’s working on a project to automate a client’s inspection process. As a software engineer, your task is to create an HTTP API for the project. You’ll set up an ASP.NET Core web host, implementing the first endpoint according to the OpenAPI specification. To verify the endpoint works as intended, you’ll add integration tests, and you’ll use Swashbuckle and API versioning middleware to enable future functionality. When you’re done, you’ll have firsthand experience with important tools—including Postman and Swagger UI—and an API that’s ready for further development.
skills learned: configure and use Microsoft DI • set up an HTTP API host with ASP.NET Core • implement integration tests • set up API versioning • set up Swagger UI using Swashbuckle • use Postman for manual testing of the API
Svalbard Inc.’s Scandinavian furniture is quickly becoming a living room staple in homes across the globe. To tame the cost of its success, the company has decided to migrate from expensive-to-scale legacy mainframes to a more flexible, modern deployment model. Your task is to implement continuous load testing and reporting. Using hyper and Tokio, you’ll send HTTP requests as you create a proof of concept. You’ll drive multiple concurrent connections using Tokio, gather and improve metrics from these connections by designing an asynchronous execution flow, and add robust error handling. When you’re finished, you’ll have a fully functioning, scalable HTTP load-test application.
skills learned: concurrent programming • async with Tokio • use hyper
Acme Widgets, a manufacturing company, processes its supplier invoices with an AI-powered Google Workspace add-on that automatically extracts and records invoice data. But the add-on has limited functionality, such as only being able to interpret single image files, which makes tasks like picking files difficult. It’s up to you to make basic tasks like these easier. You’ll enable the Google Picker API to add the ability to navigate and customize files. You’ll create and publish a file picker as a web app, and publish the add-on with the attached file picker. To further enhance the user interface, you’ll add image thumbnails and links to the picked files, as well as support for interpreting PDFs and images to accommodate a larger variety of documents. When you’re done, you’ll have helped ensure Acme Widgets’ accounts are accurate and made the staff’s lives easier—all while learning Google add-on customization skills.
skills learned: implement Google Drive Picker • publish popup web apps • detect duplication digitally
Nextstellar Corp has recently migrated to the cloud, and for the first time, they can analyze 100% of their company’s data. But there’s a problem: your CEO isn’t confident in your data’s quality. He wants to add more data sources and collect more user behavior information, and ensure these new sources are top-notch by utilizing the Python- (or Scala-) based Deequ library. Your task is to utilize Jupyter Notebooks with AWS Glue Studio to experiment with PyDeequ for data quality assessment. Next, you’ll enhance Nextstellar’s assessment capabilities by employing AWS Glue jobs to react and take action on data quality issues. Finally, you’ll monitor data quality using CloudWatch for prompt response and maintenance of data reliability.
skills learned: Implementing Data Quality Jobs on AWS • Automating infrastructure using CloudFormation • Developing Data Quality jobs using PyDeequ and AWS Glue • Observing and monitoring Data Quality jobs.
In this liveProject, you’ll use the “dark magic” of secure multiparty computation (MPC) to create a dating game app. MPC lets a group of participants run a joint computation over their inputs while keeping these inputs private, and this dating game will stand as proof-of-concept for other uses for the technique. You’ll develop a game that matches participants if they both like each other, and use privacy-enhancing cryptography to make sure sensitive information cannot leak. Your project will be created using Rust, which is a perfect choice for cryptography thanks to its guaranteed memory safety and other low-level language features.
skills learned: build a simple application that interacts with the command line • use the Rust standard library to build logic and tests for the application
Padre Inc. uses AWS as its cloud provider and has acquired Tiddler Inc., an insurance analytics startup that uses Google Cloud Platform. As an enterprise architect at Padre, your task is to manage multi-cloud operations. Using Countly, you’ll define and implement key performance indicators (KPIs) in order to measure the success of Padre’s SaaS project that runs on AWS and Google. To ensure smooth operation of services and an optimal user experience, you’ll implement site reliability engineering (SRE) practices using Kubernetes, Prometheus, and Grafana. When you’re done, you’ll have experience using business metrics to track the health and value of your software, ensuring it provides value to customers and stakeholders.
skills learned: implement web analytics using open-source Countly
In this liveProject, you’ll use Spring Boot and Gradle to create the basic mobile banking application. You’ll begin by creating the domain object, REST Controller, and supporting service to present the data, then test your application to ensure it’s working properly. You’ll add JPA to store your users’ transactions, then finish up with end-to-end testing of your whole app.
skills learned: basics of Spring Boot • create a REST Controller with Spring Web • JPA to persist state to a database • using RestAssured to perform integration tests on Spring applications • use Testcontainers to perform tests on your JPA code
In this liveProject you’ll step into the shoes of a developer at PharmaChain Iberia, a pharmaceutical supply chain company. A big global competitor has recently set up shop in your region and has been steadily gaining market share, thanks to hyper efficient business process automation in its supply lines. This automation service can receive and read delivery notes ten times faster than the admin staff in your company—and you need to innovate fast to keep your status as the regional market leader. You’ve been tasked with implementing your own company-wide automation solution, using Python to automate your processes. To achieve this, you’ll use Python to iterate through subfolders of your current text-based PDFs and PDF form files and extract field keys and values. You’ll write scripts that can identify field IDs on web forms that correspond to the PDF documents, and automatically populate the web forms with information extracted from your PDFs—no manual data entry needed! Finally, you’ll prepare a report detailing your conclusions for your manager at PharmaChain.
skills learned: automate repetitive manual processes in Python • extract data from PDFs • web page resource identification • dynamically assign values to web form fields using autogenerated JavaScript
In this liveProject, you’ll take on the role of an engineer at AISoft, where you'll be part of two dynamic teams: MLOps and Core-ML. On the MLOps team, you'll utilize software engineering techniques to ensure your models are not only accurate but also scalable, reliable, and maintainable. You’ve been assigned two important support tasks for the Core-ML team.First, you'll utilize the Gradio Python library to create an interactive web user interface that runs MRI classification and segmentation transformer models in the background, and then you'll build a pipeline that provides interpretability to the decisions of a construction vehicle classification model.
skills learned: build a web interface for MRI classification and segmentation using Gradio • run a vision transformer model for MRI classification and a Segformer or Maskformer model for MRI segmentation via the interface • implement Grad-Cam and LIME to explain transformer predictions
You’re a software engineer at TechPower, a consulting company that wants to expand its reach in the tech market by incorporating more programming languages and technologies. This will help it create products while hiring from a more diverse pool of engineers. For TechPower’s latest project, your task is to design an independent music-sharing platform where new artists can upload their music, putting it in front of new eyes (and ears!) for free. Using Simple Build Tool (SBT) and IntelliJ IDEA, you’ll set up your environment to prepare for running a project in Scala, a language that combines object-oriented programming and the functional paradigm. Keeping in mind the platform's users and the kinds of content it will host, you’ll define the main entities and dependencies as part of a Unified Modeling Language (UML) diagram. You’ll implement your design with Scala classes and traits, preparing the utility for function additions later on.
skills learned: system design with UML diagrams and Scala code • software engineering with Scala (immutable data structures, pattern matching, higher-order functions, partial functions) • unit testing with Scala
As the researcher for venture capital firm Action at a Distance Corporation your job is to evaluate proposals from quantum startups hoping to secure an investment. But first, you need to expand your knowledge of quantum computing.
You’ll build your quantum muscles by investigating and coding key quantum algorithms including the quantum teleportation algorithm, the quantum phase estimation algorithm, the quantum Fourier transform algorithm, and Grover’s algorithm. With your new knowledge, you’ll compose a brief report about whether or not now is the right time to invest in quantum startups.
skills learned: Shor’s algorithm concepts/techniques • quantum superdense coding teleportation • quantum Fourier transforms • quantum phase estimation • quantum oracles
Failure is not an option for Sigma Corp. As a lead data scientist for the large conglomerate of energy production companies, it’s up to you to help ensure interruption-free operations by developing a means for detecting anomalies that signal potential problems. Using metrics, including the receiver operating characteristic (ROC) curve and the area under curve (AUC) score, you’ll evaluate anomaly detection algorithms. You’ll build a z-score anomaly detection algorithm, which focuses on a single feature and provides a simple benchmark, and you’ll apply it to a dataset to establish a reference for comparison. When you’re finished, you’ll have a firm grasp of z-score anomaly detection, classification error categories, and evaluating anomaly detection algorithms.
skills learned: z-score method • evaluate algorithms using ROC AUC metrics • basic synthetic anomalies
You’ve been striking a chord at SongRiver, the popular music-streaming platform where you’ve been working for the last two weeks. Feedback for the employee directory app you’ve been building is mostly favorable, but it also suggests that the user experience (UX) could be improved if the page were more informational and visually appealing, especially at specific times. You’ll use React Query and Chakra UI tools to indicate when the app is fetching new data or refetching data, and when there’s been an error fetching data. When you’re done, your app will display loading and error indicators that are both useful and easy on the eyes.
Some sections may contain information that is now outdated due to the rapid advancements in the technology field, notably the initial libraries, Docker setup, and some documentation links. Regardless, this liveProject remains an invaluable resource for intermediate users.
skills learned: UI indicators that display loading and error states of React Query
BestInsurance, an insurance company, wants to attract new customers. As a backend developer, your task is to extend the features of the company’s portal to let customers subscribe to new policies. You’ll use Spring Initializr to create the project structure for a basic Spring Boot application, and you’ll configure the necessary dependencies. You’ll build Docker images for running the application, using both Maven and Gradle plugins, and you’ll create Docker compose services for running the application using your Docker images. When you’re done, you’ll have built a basic Spring Boot application that’s ready to connect to a database.
skills learned: define a Spring Boot application with Spring Initializr, Configure build with Maven and Gradle, run the defined application in a Container with Docker, and Docker Compose
You’re a senior developer at Travel World Agency (TWA), which has grown to become the largest travel agency in the world. The company has built a next-generation system that uses a microservice architecture running on Amazon Web Services (AWS). But while TWA’s success is on the right track, the performance of its reservation microservice is off the rails. As a solution, TWA has replaced the microservice with a new one, using Kotlin and Spring Boot to improve performance and maintainability. Your job is to document the API endpoints for this new microservice—following the Open API 3 standard—to reduce the risk of someone invoking the endpoints incorrectly. You’ll also create custom rules for validating the documentation in an external library, allowing for reuse in other projects across the company.
skills learned: document the different endpoints using Open API 3 • determine whether the documentation follows the standard format
When your house is on fire, and you need to save your priceless art in a panic room, what are you going to do? Write a Rust program to solve the “knapsack problem” of course! In this liveProject, you’ll tackle this problem—one of the more challenging ones in computer science. The knapsack problem is known for its difficulty, as its possible solutions grow exponentially as the number of items increases. You’ll work with different methods to solve the problem, including recursion and dynamic programming techniques.
skills learned: exhaustive search • backtracking • branch and bound • complex dynamic programming
Sigma Corp, a large conglomerate of energy production companies, has recently implemented anomaly detection algorithms and is generally pleased with their performance. However, analysts report that not all anomalies are being identified and the algorithms are too slow at times. As a lead data scientist at Sigma, it’s up to you to address these concerns. To increase the robustness of the algorithms, you’ll implement and optimize the probability-based Empirical Cumulative distribution-based Outlier Detection (ECOD) method, an alternative to statistical methods. You’ll benchmark the ECOD method in order to compare its performance with the statistical MD and PCA methods Sigma is currently using. When you’re finished, you’ll have firsthand experience implementing the highly efficient ECOD method to detect anomalies in multidimensional data.
skills learned: ECOD method
SimpleTravel has grown—and now your boss wants multiple teams to handle different microservices that all interconnect and communicate through the exchange of domain events. You’ll be overseeing this by developing a prototype event-driven application that’s fully serverless. Your system will be built on three core principles: automation, decoupling, and type safety. You’ll begin by setting up shared infrastructure for your team, then implement microservices for the site’s checkout and shipping. Your new system will be poised for success, combining efficiency, flexibility, and reliability.
skills learned: Event-driven applications using Amazon EventBridge • Microservices
In this liveProject, you’ll secure a financial application using the out-of-the-box security features of Spring. You’ll set up authentication servers, add users, and configure rules for your application.
skills learned: client credentials in an OAuth 2 workflow • securely grab data from a third-party with Spring WebClient • periodically poll data from a third party with the Spring scheduler
In this liveProject, you'll take over administering a zoo automatically by crafting three different kinds of expert systems to help customers determine what animal they’re looking at. An expert system captures an expert's know-how by encoding it in a knowledge base. You’ll create a prototype 20-Questions-style game expert system, then expand it with logical rules and Boolean statements to build more powerful and realistic expert systems.
skills learned: expert system concepts • the Animal Game
Ensure your system can accommodate even unstable dependency services. You’re a TypeScript developer for a large company that sells stock photography. You’re responsible for the service that ingests images. Unfortunately, the ingestion process is being negatively affected by a flaky external web service that the ingestion engine uses, and the problem is not reproducible in unit testing since there’s no connection to the external service at that time. Working in IntelliJ WebStorm, you’ll establish an in-memory HTTP service, configure it to simulate a dependency service, write a test to reproduce the error, and use the test to build robustness into your system.
skills learned: dynamically configure Nest.js containers • mock an HTTPservice dependency
In this liveProject, you’ll find and fix some long-term bugs in a legacy library. You’ll write a test to characterize a bug in how certain assets are selected for a special display, then modify the test to turn it into a bugfix. Once you’ve squashed that bug, you’ll repeat the process to tackle two more common bugs for Java applications.
skills learned: using IntelliJ IDEA to write and execute tests • deriving tests from existing bugs • codifying current behavior as a test • using tests to drive bug fixes • changing tests so they fail until a bug is fixed
In this liveProject, you’ll tackle an important job for Echorand Corp, a data processing company that offers image-hosting services. Echorand’s image-hosting app needs the capability to produce thumbnails for all the uploaded images, so they’ve turned to you. Your challenge is using Go to implement the thumbnail creation features. You’ll need to create a new table to store the association between the original image and their thumbnail, then set up functionality so the original image will be downloaded when users click the thumbnail.
skills learned: Executing an external program to create a thumbnail of an uploaded image • Storing images in an object storage service • Store image and thumbnail associations in an SQLite database • Rendering HTML templates
Start building your robotics foundation: You’re a programmer helping create prototype robots for the RoboPrototypes company. You’ll get a brief introduction to ROS 2, set up the programming environment, and onboard robotics building blocks with basic tutorials. Then you’re ready to create launch files, which are integral to every ROS project. As you create packages in ROS 2, you’ll learn to define and use parameters and declare custom messages. When you’re finished, you’ll have a firm foundation for delving deeper into robotics.
The version of Gazebo used in this project reached end of life in January 2025.
skills learned: set up the programming environment for ROS 2 • ROS 2 fundamentals • create a ROS 2 workspace • create ROS 2 launchfiles, services, messages
Processing is a creative and exciting Java program that lets you flex your creative skills with code. In this liveProject, you’ll use Processing and its graphic creation capabilities to explore and expand your drawing, animating, and interactive art skills. You’ll create drawings, animate them, and make them interactive. The skills you develop will expand your coding creativity, and give you a solid foundation for advancing with graphic design.
skills learned: drawing on the Processing canvas • moving pixels to animate objects • keyboard and mouse inputs • math and animation techniques
p5.js is a fun and creative JavaScript framework that lets you create graphics and flex your artistic skills—all while using code! In this liveProject, you’ll explore and expand your drawing, animating, and interactive art skills with the p5.js framework. You’ll use the p5.js canvas and JavaScript code to create drawings, animate them, and make them interactive. The skills you develop will expand your coding creativity, and give you a solid foundation for advancing with graphic design.
skills learned: drawing on the p5.js canvas • moving pixels to animate objects • keyboard and mouse inputs • math and animation techniques
You’re a software engineer for Echorand Corp., a growing analytics company that wants to address the lack of backup functionality provided by the GitHub software hosting service it uses. The company has a web application that allows users to log in using their GitHub credentials. Your task is to add functionality to that app that lets users download their data whenever they like. Using Go, HTML, JavaScript, and the GitHub Go SDK, you’ll implement support that enables users to export their data on GitHub, view their exports, and download them—a win for Echorand Corp. and for you!
skills learned: work with Go standard library packages and the GitHub Go SDK • access the GitHub API
Echorand Corp., a growing analytics company, uses the GitHub hosting service for its software hosting and collaboration needs. But the company has received feedback voicing concerns about the service’s lack of backup functionality. As a software engineer, it’s up to you to solve this problem. You’ll use Go to build a web application that allows users to log in using their GitHub credentials and access the GitHub API using OAuth authorization. You’ll create HTTP client middleware for writing and performing tests with no need to interact with Github.com, and you’ll write automated tests that enable you to update the application while speeding up the development cycle. When you’re done, you’ll have built an easy-to-update application that allows users to log in with their GitHub credentials.
skills learned: work with Go standard library packages, GitHub OAuth, HTTP cookies in Go, and HTTP cookies in Go
Takeout e-commerce company FTGO currently manages their Kubernetes microservices deployments from the command line. So there’s no record of who has deployed what, and it’s very difficult to reproduce past states. Your goal in this liveProject is to help them with a GitOps-based continuous deployment pipeline for their platform. You’ll utilize Flux to establish and build your pipeline and configure the Flagger tool to use the traffic management features of the Linkerd service mesh.
skills learned: Using Flux • Flagger • and SOPS to implement GitOps
UMET Inc. is growing! To support its increasingly complex features and services, the CTO has decided to refactor its backend technology stack, and the dev team has chosen the memory-safe, high-performance Rust programming language for this important investment in the company’s future. As a new developer at UMET, your task is to build proof-of-concept (PoC) Rust applications using Cargo or Docker tools, then securely run the applications in portable WasmEdge runtime containers to validate that the new backend stack meets all the necessary requirements. When you’re done, you’ll have mastered Rust basics for application development, including working with strings, managing complex data structures, and creating an HTTP web server.
skills learned: code in Rust • and its HTTP networking APIs
In this liveProject, you’ll explore the new features of C++20 by upgrading BOSS—the “Bread Optimized Shipping System” of a large national baker. The main logic of BOSS is written in C++, and your team prides itself on keeping it up to date with the latest C++ standards. Your job is to enhance BOSS using different parts of C++20.
You’ll move an existing codebase to the latest C++ features to enhance your team’s productivity, and make it possible to move faster in the future. Unlock new C++20 features such as modules to organize your code, coroutines to optimize the service response times and resource usage, ranges to support dealing with a range of elements in a collection, and concepts to manage template classes. By the time you’re done, you’ll have gotten your hands dirty with some of the most exciting new features of C++20.
skills learned: modules • coroutines • concepts • ranges
In this liveProject, you’ll join BrainAI’s MRI data analysis team. BrainAI needs you to develop a state-of-the-art AI module utilizing vision transformer models to detect brain tumors with exceptional accuracy. Armed with Python tools like Hugging Face Transformers, PyTorch, and more, you'll detect the presence or absence of tumors within human-brain MRI datasets. With Google Colab's GPU computing resources, you'll utilize deep learning to try and achieve a 95%+ accuracy rate.
skills learned: set up training, test, and validation datasets with biomedical (MRI) images • train and evaluate a vision transformer model for brain tumor classification
In this liveProject, you'll pioneer the development of cutting-edge MRI segmentation algorithms using transformer architecture for computer vision company VisionSys. Manual segmentation is labor-intensive and expensive, so you’ll be developing a custom model that can do it for you. You'll train and evaluate SegFormer and MaskFormer models to identify brain tumor regions with over 90% accuracy. With Python tools like Hugging Face Transformers and Google Colab's GPU computing resources, you'll create pipelines, preprocess data, and showcase sample predictions and quantitative results.
skills learned: set up training, test, and validation datasets with biomedical (MRI) images • train and evaluate Segformer and Maskformer models for brain tumor segmentation
The development team at Boutique, a software company, is working on a project for automating the inspection process of a client that builds industrial robots. An ASP.NET Core HTTP API has already been set up, and the team has started implementing the domain model entities and persisting them to a SQL database. As part of the team, your task is to implement CRUD (create, read, update, and delete) endpoints for all the entities according to the OpenAPI specification. To achieve persistence, you’ll configure Entity Framework Core and register it in the dependency injection container. You’ll implement a custom JSON converter to support polymorph endpoints in order to handle different types of robots. To verify that your implementation is correct, you’ll write and perform integration tests.
skills learned: interpret an OpenAPI specification • configure and use Microsoft DI • configure routing for endpoints in the HTTP API • use Postman for manual testing of the API • set up and configure validation for incoming data
Welcome to your second week at SongRiver, a music-streaming startup whose success is skyrocketing. You’ve been working on a directory app to help keep track of the company’s growing number of employees, and your task for this week is to add search functionality to employee pages in the directory. Using Chakra UI, you'll create the user interface for the search input box. Then you'll fetch the results from the server via React Query and display the data. You’ll end the project on a high note by using React Router tools to create links that enable navigation between individual employee pages and the search interface.
Some sections may contain information that is now outdated due to the rapid advancements in the technology field, notably the initial libraries, Docker setup, and some documentation links. Regardless, this liveProject remains an invaluable resource for intermediate users.
skills learned: state-controlled input field • React Router search params • array of React components from array of server data
TechPower wants to grow in the tech market and enhance its presence by adding new technologies to its toolbox. Scala is a good option as it combines functional and object-oriented programming paradigms. As a software engineer, your task is to add features and functionality to the consulting company’s current project: a music-sharing platform where artists can share their music with the world. Using Scala, Simple Build Tool (SBT), and IntelliJ IDEA, you’ll design and implement functions for previously defined entities, then improve them by refactoring. When you’re done, you’ll know how to apply functional programming concepts to designing and implementing system functionality in a Scala project.
skills learned: basic Scala (immutable data structures, pattern matching, higher-order functions, partial functions) • refactoring
In this liveProject, you’ll add security-related features to the service template. In your role as a Java/Kotlin developer, you’ll gain hands-on Kotlin experience implementing authentication and authorization of a service’s REST API using JSON Web Tokens (JWTs) as well as a Security Token Service, such as Keycloak, to issue and authenticate JWTs.
skills learned: implement authentication and authorization of a service’s REST API using JSON Web Tokens (JWTs) • use a Security Token Service to issue and authenticate JWTs
SimpleTravel Co has scaled too fast! Their travel booking app has proven wildly successful, but now they’re facing a lack of accountability, inconsistencies in their infrastructure, and issues rolling back problematic deployments. Luckily, the CTO has an idea—one he’s given you the job of implementing. Your task in this liveProject is to investigate and establish Infrastructure as Code (IAC) for SimpleTravel, so that they can describe their infrastructure using friendly YAML or JSON syntax and sidestep all the issues of manual deployments. Let’s get started!
skills learned: writing predictable serverless resources with IaC
As a first step in dealing with surging energy prices, Free Power Corporation Limited (FPCL) has installed Smart Meters, which generate energy readings every thirty minutes, in households across London in order to analyze consumers’ energy usage. As a new data engineer for the power company, your task is to ingest the data from the Smart Meter readings and stream it to FPCL data centers for processing. Using the Kafka command-line tool, you’ll create topics in a Kafka cluster for storing the data, and you’ll create partitions for distributing the load within the topics. You’ll add logic to deal with potential problems such as data loss and duplicate records, and you’ll add a method to convert the energy readings to the widely used, easy-to-parse JSON format before the final step of ingesting the data. When you’re finished, FPCL will have pertinent data for analyzing energy consumption patterns, and you’ll have practical experience using Kafka to ingest large amounts of data.
skills learned: set up Kafka Cluster • write a Kafka Producer • add real-life complexities to data • ingest the data into the Kafka cluster
Enter the world of quantum computing and discover how quantum computers solve problems in a fraction of the time. You’re a researcher for Action at a Distance Corporation, a consortium of venture capitalists who believe the time to learn about and invest in quantum computing startups is now. Your task is to learn fundamental quantum computing skills so you can evaluate proposals from quantum startups and brief the consortium’s partners. Get familiar with the Qiskit environment as you create your own Qiskit programming Python imports template, then discover features of the Qiskit ecosystem as you add code to your template. You’ll set up a quantum circuit, getting first-hand experience with amplitudes and probabilities associated with quantum states. With these fundamentals under your belt, you’ll prepare brief notes for your report to the consortium, researching which companies will be the major players in the quantum race, what types of quantum hardware they’re pursuing, and what exactly is the “quantum advantage.”
skills learned: create quantum registers and circuits and begin to program them with Python and Qiskit
Nextstellar Corp is a media company with huge amounts of data to analyze. Some of that data is sitting in a PostgreSQL database, which is used for both authentication management and decision-making, as well as maintaining user preferences and feedback. Your boss doesn’t want that data sitting in the database—he wants it in the cloud! Moving it is exactly what you’ll be doing in this liveProject. You’ll use AWS Database Migration Service to enrich Nextstellar’s data lake with the PostgreSQL database so it can take full advantage of both modern data architecture and the AWS ecosystem.
skills learned: Using AWS Database Migration Service to move transactional data from on-premise to the cloud • Automating infrastructure using CloudFormation • Enabling on-premise to cloud connectivity • Setting up Database Migration Service replication instances and tasks • Configuring Change Data Capture (CDC) on Amazon RDS for Postgres • Using the Schema Conversion Tool • Validating a migration
Media company Nextstellar Corp has completed the migration of their data to the cloud—now they need to analyze it! That’s where you come in. You’ll take on the challenge of processing and integrating file and transactional data into a new cloud database solution that uses modern data architecture. You’ll use the AWS Glue tool to automate the whole process, from creating your crawlers and database to building your repository, Glue jobs, triggers, and establishing monitoring, troubleshooting, and scaling.
skills learned: Transforming raw data into standardized data using AWS Glue • Automating infrastructure using CloudFormation • Populating the AWS Glue catalog and creating Hive partitions • Creating ETL jobs using AWS Glue, including AWS Glue DynamicFrames and Spark DataFrames • Utilizing AWS Glue job observability and monitoring with AWS CloudWatch • Understanding AWS Glue job scaling concepts and configurations
Red alert! One of the energy production companies managed by Sigma Corp has suffered an outage. An investigation has led to the conclusion that the facility’s anomaly detection mechanism failed to detect early signals due to a sudden change in the distribution of the analyzed data. As a lead data scientist at Sigma, you’ll build an Isolation Forest algorithm, which is less likely than the Empirical Cumulative distribution-based Outlier Detection (ECOD) method to fail in such scenarios. To gauge how robust your method is, you’ll benchmark your algorithms against adversarial scenarios, synthetic anomalies, and standard datasets. When you’re done, you’ll have practical experience creating, using, and testing the Isolation Forest algorithm as an effective alternative to ECOD in circumstances where the data distribution changes.
skills learned: apply the Isolation Forest method • evaluate algorithms under adversarial distribution change
Your company sells stock photography products to the general public, as well as to news and other media markets. As the resident TypeScript developer, you’ve been tasked with maintaining and extending a class library for optimizing search results. You’ll set up tests to support refactoring of this legacy library, use “pinning tests” to extract a specification from the existing code, and generate a wide range of test coverage. You’ll learn to spot when and where to improve code maintainability, and set up mutation testing to ensure your tests catch unintended changes. By the end, you’ll have generated test coverage that supports refactoring, making future updates easy and painless.
skills learned: derive tests from existing code • use mutation testing results to guide test efforts
Growth means change; for Logistica Transport, that means switching from their old desktop app to a new web app solution. In this liveProject, you’ll put together all of the pieces of this new web app. You’ll learn how to build a React.js app with Visual Studio 2023, set up a form for your users, and master the database magic of CRUD statements like insert, update, and delete to manipulate your database. Finally, you’ll validate your data formats to ensure the application works as expected.
skills learned: NuGet packages • Creating themed React forms • Implementing CRUD features • Implementing form validation
Play the role of chief guest engagement officer at an amusement park. You’ve decided to model the visitor experience by using a queue data structure to simulate guests waiting in line for a ride. The park’s sales and marketing department would also like you to study what might happen if VIP (very important pocketbook!) visitors are allowed to jump to the front of various park attraction lines using a special pass. As you carry out these tasks, you’ll experiment with different types of queues, write a function to detect loops in a linked list, build a queue using a doubly linked list, and create trees, fundamental data structures in many algorithms. When you’re done, you’ll have the experience and skills you need to build a complete waiting-customer model and other programs using linked data structures in Go.
skills learned: sentinels • singly linked lists • doubly linked lists • deques • tree traversal • sorted binary trees • recursion
In this liveProject, you’ll use the Rust programming language to develop a two-step verification system for authentication service. You’ve decided to work in Rust because it runs without memory issues, it’s data race free, and provides safe concurrency.
Your client’s employees work on different operating systems, so your verification system needs to function on Mac, Linux, and Windows. To complete this system, you’ll need to develop a RESTful service as its core backend, and then write a Rust client that is going to be called by Linux as part of its authentication process. Finally, you’ll use Rust to develop Admin and verification clients, write a thin layer of C code as a PAM module, and configure Linux to use the PAM module in its authentication pipeline.
skills learned: implement a RESTful web service in Rust • write a secure Rust program
In this liveProject, you’ll set up a Facebook and social media sign on option for your eCommerce store using the Spring Security OAuth2 module. You’ll configure Spring Security for login using the OpenID authentication protocol, and fully create the functionality to login using a Facebook account and manage a profile without needing a new username and password.
UPDATED: July 2023 to use the latest versions of Java, Gradle, and Spring Boot; and updated instructional text throughout all the projects.
skills learned: form login with Spring Security • password encryption with Spring Security • front-end development using Spring MVC, HTML and CSS
As a summer intern at Ginormous Megadata Inc, you’ve been tasked with building a phone directory of the company’s 130,000 employees. The catch? Your boss won’t spring for an off-the-shelf database, the company’s firewall prevents you from searching for what you need online, and the summer isn’t long enough for you to build a full-fledged database from scratch. To complete your task, you decide to create a hash table, a data structure that enables you to use keys to store and retrieve items. You’ll experiment with different hash tables methods, including chaining, open addressing, and quadratic probing. When you’re finished, you’ll have hands-on experience creating a functional hash table you can use to build Ginormous Megadata’s phone directory, as well as a solid understanding of the trade-offs between different kinds of hash tables.
skills learned: chaining • linear probing • quadratic probing • double hashing
In this liveProject, you'll take on the role of a backend data engineer working for a rapidly growing startup. Your company installs battery packs for solar panels, as well as IoT devices monitor energy usage. These devices can help users and utilities companies better manage their energy, saving your customers money and providing clean power to the wider grid. You’ve been given a big task: build the infrastructure from the ground up that can handle the streaming events of thousands of these IoT devices. This infrastructure will be expected to scale as your company grows, and so your team has chosen to work with Apache Kafka for stream processing of all the data. Your challenges will include efficiently ingesting IoT events, managing corner cases in IoT data processing, developing fleet-wide monitoring, and providing REST services to answer questions about battery energy capacity.
A percentage of every sale of this liveProject will be donated to the Rocky Mountain Institute to support their good work towards a zero-carbon future.
skills learned: fundamentals of IoT stream processing with Kafka Streams • schema management & evolution with Apache Avro • building distributed query engine to support real-time energy grids
Action at a Distance Corporation, a consortium of venture capitalists, believes that now is the time to invest in quantum computing startups. As its resident researcher, your job is to get familiar with quantum techniques and applications. You’ll code quantum circuits involving four different quantum gates, the fundamental processing units of quantum. You’ll visualize the effects of the gates, run and measure the circuits, and use IBM Quantum Composer to demonstrate the use of the gates. With a deeper understanding of quantum, you’ll investigate major quantum use cases to help the consortium determine whether or not the startups’ proposals have commercial applications.
skills learned: investigate and program quantum circuits and quantum gates • use IBM Quantum Composer to demonstrate the use of gates • program with Python and Qiskit
Preventing operation failures and interruptions is mission-critical at Sigma Corp. The large conglomerate of energy production companies has recently implemented a z-score anomaly detection algorithm that focuses on a single feature. Now that the algorithm has proved its value, members of Sigma have requested additional algorithms that are just as simple to use, but that can handle multidimensional data. As a lead data scientist at Sigma, you’ll implement the Mahalanobis distance (MD) method and the principal component analysis (PCA) method as you build anomaly detection algorithms for multidimensional data. To gauge the performance of your algorithms, you’ll test them against a benchmark dataset as well as synthetic anomalies generated by your own algorithms. When you’re done, you’ll have firsthand experience building anomaly detection algorithms for multidimensional datasets as well as testing anomaly detection algorithms against both benchmark datasets and synthetic anomalies.
skills learned: PCA method • Mahalanobis method • evaluate algorithms using correlated synthetic anomalies
The Nextstellar Corp media service has a lot of data—too much data to handle on prem! In order to properly analyze all the data generated by their streaming customers, they’re migrating to the cloud. In this liveProject, you’ll be helping them. You’ll tackle the common challenge of transferring on-prem data to AWS using the handy AWS DataSync tool. You’ll use Infrastructure-as-Code to create Landing Zone Amazon S3 buckets, automate data migration, and finally prepare a summary of likely infrastructure costs for your boss to review.
skills learned: Using AWS DataSync to move files from on-premises to the cloud • Automating infrastructure using CloudFormation • Organizing and managing data in a data lake • Creating data lifecycle policies • Setting up sources and destinations for data files • Starting AWS DataSync migration tasks
Create an alarm system that warns you before your system breaks. You’re a TypeScript developer for a large company that sells stock photography. You’re responsible for the service that ingests images. A recent upgrade to the image-scaling library has caused a problem with the aspect ratio of thumbnail images. Working in IntelliJ WebStorm, you’ll build a layer of integration tests that replicates the problem and also tests the assumptions that your unit tests rely on. When you’re done, you’ll have an alarm system that warns you when the assumptions your unit tests rely on are no longer valid, preventing problems in the future.
skills learned: use SQLite and an in-memory database to inspect the results of service execution • mock S3 containers
UMET Inc. is off to a great start in its efforts to refactor its backend to a modern technology stack using the popular, high-performance Rust programming language. As a new developer for the e-commerce platform, your task is to create a microservice for calculating order totals that depends on another microservice that looks up sales tax rates. Using HTML and JavaScript, you’ll create a web user interface for the microservices so that UMET product managers can test them in a browser. You’ll build and test your new application using Rust reqwest and Serde crates to make web service calls and also use Docker Compose to manage multiple Wasm and Linux containers in a single application. When you’re finished, you’ll have firsthand experience using WasmEdge command-line interface (CLI) tools to build a cloud-native application with interdependent microservices.
skills learned: Docker + Wasm • Docker Compose • WasmEdge CLI tools
Let your robot drive itself! Your company, RoboPrototypes, is preparing to demo its autonomous beverage delivery robot to investors soon, but the technician who was supposed to drive it has quit. Since there’s no one to take his place, your CEO has tasked you with upgrading the robot with automatic navigation. You’ll set up Nav2 to load your desired parameters, implement navigation planners and controllers, and optimize navigation by tuning costmap parameters. Once you send your waypoint goals to Nav2 telling your robot where to go, it’ll be ready to quench thirsts at a food court near you.
The version of Gazebo used in this project reached end of life in January 2025.
skills learned: planners • controllers • global and local costmaps • waypoint following • tuning Nav2 parameters
In this liveProject, you’ll build neural nets for a bank that are capable of classifying the numbers written on deposit slips. Customers often write out their important account details by hand, and you need to create a model capable of effectively reading their handwriting. You’ll use a feedforward network trained with backpropagation to identify hand-drawn digits with a high percentage of accuracy. Plus, this project contains an optional bonus milestone! Further your knowledge of neural networks by using the TensorFlow and Keras libraries to create an alternative and more flexible version of your first model. You’ll get hands-on experience with these tools' standard libraries, and with your new model you will be able to easily analyze the network's success rate and experiment with different activation functions.
skills learned: neural network concepts • feed-forward neural networks • backpropagation
In this liveProject, you'll spearhead the development of AI-aided surveillance software for construction site supervision. You’ll build two computer vision applications capable of detecting construction vehicles and their types across a large worksite and a more powerful model that can detect building defects such as cracks and fissures. Start by working with a pre-trained DETR model, then explore the Roboflow platform to assist you as you create a multi-class object detection dataset from multiple datasets with non-identical classes. With these datasets, you will train different transformer models for object detection to identify construction vehicles and cracks in buildings.
skills learned: import computer vision datasets from other platforms like Roboflow• merge two or more object detection datasets and their annotations on Roboflow • set up training, test, and validation datasets for object detection • train and evaluate three variants of DETR models for construction vehicle detection
Nextstellar Corp needs you to tackle a big challenge: completing their cloud migration by rebuilding their historical data lake as a data layer in the cloud. You’ll implement an effective and automated data orchestration framework for the ingestion and transform and curate layers, using best practices for Infrastructure-as-Code to automate your data layer. Finally, you’ll establish a monitoring system that will automatically alert you to any issues or problems that might crop up.
skills learned: Using AWS Step Functions and AWS Glue workflows to orchestrate data pipelines • Automating infrastructure using CloudFormation • Monitoring data in a data pipeline.
Takeout company FTGO has a problem with its Kubernetes-based application—its services are still deployed using vanilla Kubernetes manifests. This makes it hard to tailor services to environments and automatically declare a service’s dependencies. You’ve stepped in to help them—by utilizing Helm, a Kubernetes package manager. You’ll get hands-on experience creating Helm charts for services, configuring deployment pipelines to seamlessly publish them to Helm repositories, and mastering the art of deploying and upgrading services packaged as Helm charts.
skills learned: writing • testing • and publishing Helm charts
In this liveProject, you’ll package your application as a Docker image that’s ready for easy deployment. You’ll use Spring Boot to package your app to Docker, and then deploy to AWS with Amazon RDS and Beanstalk. Finally, you’ll reimplement functionalities for a Facebook login and configure HTTPs.
UPDATED: July 2023 to use the latest versions of Java, Gradle, and Spring Boot; and updated instructional text throughout all the projects.
skills learned: configuring Amazon Relational Database Service (RDS) • deploying Spring Boot app into Amazon Elastic Beanstalk • reconfiguring an application database connection in production
In this liveProject, you’ll progressively enhance a service template, starting with packaging it as a container image. Next, you’ll build and run a service template container with Docker Compose, write component tests for a service, and finally build and test a container image. When you’re finished, you’ll have a Github repository that automatically pushes a tested container image to a Docker registry. This project focuses on Kotlin.
skills learned: package a Spring Boot application as a Docker container image • run and test a container image • configure a Github Actions-based deployment pipeline to build and test a container image and push it to a registry
As the IT Developer for Rocinante, your primary objective is to streamline and centralize the company's scattered IT scripts and tools. By leveraging the power of a unified GitHub platform, you will bring together these resources, empowering your team with a consolidated and efficient solution. The GitHub management module has been meticulously crafted, adhering to community standards and fortified with automated tests and linting—now you need to prepare the module for packaging and publication, enabling effortless sharing with others through the Install-Module cmdlet. Additionally, you’ll tackle the crucial task of testing the modules across Linux and Windows environments, culminating in creating an official release on GitHub.
skills learned: creating packages with NuGet • running a pipeline on multiple systems with GitHub • GitHub releases with Git tags
Svalbard Inc.’s customers are reveling in the comfort of the global online store’s Scandinavian furniture. But, for Svalbard, the cost to scale its backend applications is less than comfortable. To ease its pain, the store has begun migrating its legacy mainframes to a more flexible, modern deployment model. Svalbard has already implemented a CLI tool that internal developers and operators can easily configure to their needs. As a Rust programmer, it’s up to you to improve this tool. You’ll track down potential performance bottlenecks with the help of flame graphs, then implement solutions to tackle them using hyper. You’ll verify the performance improvements, then create a tool for guarding against regressions with the Criterion suite. When you’re done, you’ll be comfortable evaluating and improving an asynchronous Rust application.
skills learned: performance analysis • profiling • optimization
In this liveProject, you’ll use the private set-intersection (PSI) protocol to develop a tool which can compare cancer patients for a blind trial without revealing their private details. PSI is a two-party protocol where each party holds a private set that it inputs to the protocol, and outputs a new set that contains only the elements in the intersection. You’ll implement PSI using three different techniques: the oblivious transfer (OT) cryptographic primitive, a standard Bloom filter, and a more complex garbled version of a Bloom filter.
skills learned: implement the computational steps needed for OT and extended OT protocols • implement a Bloom filter and the more advanced garbled Bloom filter
You’re an avid chess player who’s asked by Alexis, a fellow chess club member, “How many queens can you place on a chessboard without any of them being able to attack any of the others?” To discover the answer, you’ll write a recursive program that will enable you to examine all of the possible queen arrangements. You’ll start with simpler functions, including calculating factorials and Fibonacci numbers, to warm up your recursive brain muscles. Then, you’ll advance to solving the knight’s tour problem, the Tower of Hanoi puzzle, and finally, the N-queens problem—the one that will satisfy Alexis’s curiosity. When you’re finished, you’ll have elevated your recursive function game by solving well-known problems and learning important techniques along the way.
skills learned: recursion • simple dynamic programming • memoization • backtracking • restructuring problems • calculating factorials and Fibonacci numbers • finding knight's tours • solving the N-queens problem • solving the Tower of Hanoi puzzle
The Tower of Hanoi is one of the most famous (and fun!) mathematical puzzles you can tackle. In this liveProject, you’ll set out to solve this tricky challenge using recursive functions in the Rust programming language. Kickstart your journey with factorials, then calculate Fibonacci numbers and solve the Knight’s Tour and N-Queens problems. Then, you’ll be ready to take on the Tower of Hanoi—and transfer your new recursion skills to multiple other problems.
skills learned: recursion • simple dynamic programming • memoization • backtracking • restructuring problems • calculating factorials and Fibonacci numbers • finding knight's tours • solving the n-queens problem • solving the Tower of Hanoi puzzle
Acme Widgets has a Google Workspace invoice processing add-on that uses Google Document AI to interpret data from PDFs and image formats. To make the tool more valuable, your task is to add the ability to accept documents in other formats. You’ll start by enabling a pop-up web app that displays the expanded list of newly supported file types. You’ll add functionality for picking additional file types and automatically converting them to a Document AI-supported format, then archiving them. You’ll also enable sorting and duplicate removal as you create a summarized view of invoices and expenses, making the company’s employees’ tasks easier and less time-consuming.
skills learned: use the Google Drive API to create conversion routes • convert a range of documents to native • summarize, sort, and deduplicate converted documents
In this liveProject, you’ll ready your service for production. You’ll use the Spring caching API to add caching functionalities to a financial application, and compose your application for deployment. You’ll use Redis as your caching server.
skills learned: adding caching to any Spring application using the Spring caching framework • employ Redis to cache frequently accessed data • bundle your related services using Docker Compose
Svalbard’s Scandinavian furniture is quickly becoming a living room staple in homes across the globe. But the cost of scaling up the online store’s application is growing as fast as its customer base. As a Rust programmer, you’ve been helping Svalbard migrate its legacy mainframes to a more flexible, modern deployment model to manage the cost. Your application is fast and reliable, but you’re not done yet! As more people use your tool, the number of use cases it needs to support is increasing, too.
Your task is to refactor your application from a locally executed CLI tool to an always-on service. You’ll scale up observability by adding logging and metrics collection using industry-standard tools, including Prometheus, and you’ll deploy your application as a Docker container alongside a reference service. When you’re done, you’ll have built a production-ready application that supports a wide range of real-world scenarios.
skills learned: logging • deploy rust with Docker • collect and expose metrics
In this liveProject, you’ll use Rust and RSA encryption to secure the emails of your antique marble collection business. You’ll steadily build up different parts of the RSA encryption process before bringing each together in a working RSA example that can both encrypt and decrypt your email messages. Throughout the journey, you will acquire knowledge about prime number identification, factoring, probabilistic generation of random primes, and rapid exponentiation techniques.
skills learned: randomization • GCD and LCM • fast exponentiation • working with prime numbers • factoring • primality testing • RSA encryption
You’re the new head of IT at The Fright Stuff, a small Halloween store, and it’s up to you to prevent a scary security breach! To ensure your customers’ sensitive data is secure, you’ll build an RSA public key encryption program. Along the way, you’ll learn interesting mathematical techniques such as calculating greatest common divisors and least common multiples, performing fast exponentiation, building a sieve of Eratosthenes, testing for primality, and other vital encryption skills. When you’re done, your customers’ data will be safer than ever before, and you’ll have learned essential skills for RSA encryption.
skills learned: randomization • GCD and LCM • fast exponentiation • working with prime numbers • factoring • primality testing • RSA encryption
It’s your fourth week with SongRiver, a music-streaming web platform whose success is climbing the charts. Beta testers for the employee directory app you’ve been building are singing your praises, and they have a new request: they’d like to celebrate employees with badges that spotlight their contributions. You’ll use Chakra UI to create a grid of employee badges and add badge information to the employee page. Using React Query, you’ll add functionality for sending badge data to the server, then display a “toast” (pop-up) message that communicates whether or not the badge submission was successful. When you’re done, you’ll have a people-pleasing, connection-boosting feature that adds and displays employees’ badges, and you’ll have earned a “Rock Star” badge of your own.
Some sections may contain information that is now outdated due to the rapid advancements in the technology field, notably the initial libraries, Docker setup, and some documentation links. Regardless, this liveProject remains an invaluable resource for intermediate users.
skills learned: display employees’ existing badges • provide a button to add a new badge • send an update to the server when a new badge is added • refresh the data on the page to show the new badge
As part of an endeavor to better handle surging energy prices, Free Power Corporation Limited (FPCL) has a Kafka cluster that ingests large amounts of consumer energy data. As a data engineer for FPCL, you’re already familiar with the data, so the London-based power company has tasked you with building a streaming solution that processes the data as soon as it’s available. Using Apache Spark, you’ll create an application to read the data from the Kafka streams, and you’ll save the streams to a data lake. Using a Spark API, you’ll prepare the data for analysis by performing aggregation on the fly. You’ll join the real-time stream with the static data, enriching it with customer details and enabling FPCL’s research team to gain insights about customer energy consumption patterns. When you’re done, FPCL will be better equipped to deal with rising energy costs, and you’ll have hands-on experience building a real-time data processing solution using Apache Spark and Kafka.
skills learned: connect Spark to Kafka • read the data Stream • build a streaming pipeline to perform various tasks (such as cleansing and filtering aggregation)
The company you work for wants to improve its system by adding functionality that maximizes the profitability of any given search. As the resident TypeScript developer, your task is to apply a battery of tests to support changing the design of legacy code in preparation for adding this new functionality. You’ll refactor your production code based on advice from your architecture team. Thanks to a broad test suite, you’ll be able to change your design with no worries about accidentally breaking a required behavior. The result will be a system you can test with smaller, more meaningful tests and that easily withstands future requirement changes.
skills learned: change the design of existing code while supported by tests • change test suites to take advantage of better designs
In this liveProject, you’ll learn to use a battery of tests to support changing the design of some legacy code in preparation for adding new functionality. You’ll refactor your production code based on advice from your architecture team. Because you have a broad test suite, you will be able to change your design without fear of accidentally breaking a required behavior. The output will be a system that can more easily withstand incoming requirements changes and against which you can write smaller, more meaningful tests.
skills learned: Changing the design of existing code while supported by tests, Changing test suites to take advantage of better designs
You're a TypeScript developer at an organization that sells stock photography products to the general public, as well as to news and other media markets. The company wants to add functionality to its system that maximizes the profitability of any given search. It’s up to you to improve the test suite by adding high-quality requirements-based tests. You’ll use mocks to isolate requirements, ensuring that each test focuses on a single behavior in your code. When you’re done, you’ll have a more resilient codebase.
skills learned: change the design of existing code with the support of tests • change test suites to take advantage of better designs
In this liveProject, you’ll explore writing high-quality, requirements-based tests against code with a solid design.You will take great care to ensure that each test focuses on a single, isolated behavior within the code. To that end, you’ll use techniques such as mocking to isolate requirements from one another for the purpose of testing. The output of the project is a codebase with a far more resilient test suite that will be able to stand the test of time.
skills learned: changing the design of existing code while supported by tests • changing test suites to take advantage of better designs
In the modern world, web traffic is mobile traffic. That’s why your sites need to be responsive and easily adaptable to any screen size! In this liveProject, you’ll create a responsive layout for your portfolio site so it looks good on mobile. You’ll need to constrain your profile picture, utilize column-based layouts, use grid and flex to align items, and utilize flexbox to lay out your footer.
skills learned: Using the multi-column layout module to lay out a list of items into multiple columns • Using subgrid to lay out elements inside of a grid layout • Using flexbox to display a list of elements horizontally • How to prevent image distortion using object-fit • Using pseudo-classes in selectors
Action at a Distance Corporation, a consortium of venture capitalists, believes that the time to invest in quantum computing startups is now. As the consortium’s researcher, your task is to gain knowledge of quantum computing capabilities.
You’ll explore matrix representations—mathematical underpinnings of quantum computing—and examine quantum circuits that use different arrangements of gates to achieve identical functionality. You’ll upgrade your quantum toolbox with phase kickback, an essential component of many quantum algorithms, and you’ll work with Bloch spheres, a way of visually representing qubits. You’ll then use two different methods to run a circuit on IBM quantum hardware, a task that will be commonplace in the not-so-distant future.
skills learned: quantum gates as matrices • circuit identities • phase kickback • Bloch spheres • run programs on IBM quantum hardware systems on quantum computers
In this liveProject, you’ll help takeout delivery company FTGO Inc. take their first steps in moving to a microservices-based architecture. You’ll begin by creating Kubernetes manifests that enable you to deploy your services and their required infrastructures, such as databases, within a cluster environment. You'll use the package manager Helm to seamlessly install and manage infrastructure services like Postgres and Apache Kafka and use kind (Kubernetes in Docker) to create a local Kubernetes cluster that runs on your machine. Finally, you’ll see how GitHub Actions can automate your testing process.
skills learned: Writing Kubernetes manifests to deploy applications and publishing Docker images to a container registry
FGTO is almost ready to deploy their Kubernetes application—they just need you to help them create a Kubernetes cluster for their production environment. The simplest and most reliable way to do this is to use a managed Kubernetes service, and for this liveProject, you’ll use AWS EKS. You’ll work with various tools, including Terraform and Crossplane, to create and configure the cluster. Terraform helps you configure your cluster with just a small amount of code, while Crossplane ensures you can provision the service and its infrastructure using only Kubernetes manifests. Once the application is deployed, you’ll work to encrypt secrets in Git using SOPS and AWS KMS and promote changes from development to production on EKS. When you’re done, FGTO will have a complete working Kubernetes deployment!
skills learned: Using Terraform • Crossplane • and AWS services to deploy an application on AWS EKS
Get tangled up in quantum computing! Action at a Distance Corporation, a consortium of venture capitalists, believes the time to invest in quantum computing startups is now. As the consortium’s resident researcher, your task is to understand the power of quantum computing.
You’ll learn to recognize normalized quantum states of two qubits, a key skill in implementing quantum algorithms. You’ll get familiar with the Controlled Not (CNOT) gate, vital to the construction of important, entangled states, and you’ll observe what Einstein called “spooky action at a distance” as you program the (famous!) entangled Bell states. Using the IBM Quantum Composer, you’ll visualize and animate quantum circuits, gaining insight into handling gates and their outcomes.
skills learned: programming circuits involving 2 qubits • quantum gates • Bell states • IBM Quantum Composer
Smooth scrolling is one of the most important features of any portfolio page! In this liveProject, you’ll utilize CSS—including animation timelines—to set up different features for when a user scrolls your page. You’ll lock your header to stay visible on screen at all times, ensure that the top of different sections snap to the top of the window as users scroll, establish a progress bar in the header to show how far you’ve scrolled, and more. When you’ve finished this final polish, your portfolio page will look great!
skills learned: Using the position property to create a sticky header • Using scroll-snap-type and scroll-snap-align to control scroll behavior between sections • Adjusting the scroll snap position using scroll-padding • Using animation timelines to create an on-scroll progress indicator • Using the ::backdrop pseudo-element to style the dialog's backdrop
As a software engineer for Boutique, a software development company, you're tasked with adding search, upload, and download functionality to an ASP.NET Core HTTP API that Boutique is building for its client, RobotsInc. To enable the frontend to navigate through existing data structures, you’ll add several child endpoints, as well as an endpoint for criteria-based searches. You’ll also implement endpoints for binary photo uploads and downloads according to the OpenAPI specification, and you’ll verify your implementations are correct by testing manually with Swagger UI as well as with automated integration tests. When you’re finished, RobotInc’s employees will be able to upload photos and notes to document and report on their robot inspections.
skills learned: interpret an OpenAPI specification • configure and use Microsoft DI • configure routing for endpoints in the HTTP API • use Postman for manual testing of the API • set up and configure validation for incoming data • implement binary file upload and download
In this liveProject, your challenge is to plan a festive Secret Santa gift exchange for your co-workers, keeping their identities private. The catch is: They’re all working remotely thanks to the COVID-19 pandemic. Luckily, you’re no stranger to providing innovative solutions to “impossible” problems. You’ll implement MPC as you program in Rust, which is well-suited for cryptography applications thanks to its guaranteed memory safety. When you’re done, you’ll have developed a private mix method and randomly assigned each “gifter” exactly one “giftee” while keeping the identity of the “Santa” a secret!
skills learned: define relevant data structures (specifically structs and enums) · build a simple application that interacts with the command line · use the standard library to build logic and tests for the application
The Istio service mesh gives you complete visibility over your large scale microservices applications, making it easy to enforce security, manage traffic, spot and debug errors, and improve user experience.
In this liveProject, you’ll get hands-on experience of safely and securely exposing an e-commerce microservices-based store using Istio. You’ll iteratively build in new security features step-by-step, mastering Istio as you go. You’ll handle deploying your application with Istio and Kubernetes, encrypting traffic to your application via self-managed TLS certificate, understanding application behavior by using Istio telemetry, and finish up with an efficient debug of your app using the Istio service mesh. By the time you’re done, you’ll have the skills to ensure the security of your app, and start making the move away from error-prone manual management of microservices.
skills learned: using Istio service mesh • exposing the application to users securely via HTTPS • protecting sensitive user information using Istio Auth policies • understanding application behavior by using Istio telemetry • efficiently debugging your Istio service mesh
In this liveProject, you’ll use cryptography to create a fair and secure coin tossing application. This simple-sounding task is surprisingly complex, and so you’ll implement a multi-step classical protocol to create a coin flipper where neither player can cheat or bias the result. You’ll use Rust to implement the computational steps of a coin toss construction, as this powerful low-level language has great features for cryptography.
skills learned: using RSA encryption • practical algorithms from number theory
In this liveProject, you’ll secure a financial application using the out-of-the-box security features of Spring. You’ll set up authentication servers, add users, and configure rules for your application.
skills learned: basics of Keycloak administration • OAuth 2 workflows and when to use them • securing an application with Spring Security • how Docker makes running applications easier
You’re a senior developer at Travel World Agency (TWA), which has grown to become the largest travel agency in the world. The company has built a next-generation system that uses a microservice architecture running on Amazon Web Services (AWS). But while TWA’s success is flying high, the performance of its reservation microservice has taken an unfortunate detour. As a solution, TWA has replaced the microservice with a new one, using Kotlin and Spring Boot to improve performance and maintainability. Your job is to secure the API against possible attacks. You’ll configure a Keycloak authentication server to keep track of valid users. Using Spring Security, you’ll add security mechanisms on the microservice to ensure that only valid users can access it and that those users can only access their own reservations.
skills learned: validate whether the user has permissions
You’re a programmer at the RoboPrototypes company, and its “dribot”—a prototype of a robot that will serve drinks to customers at a food court—has been running into things (including the CEO’s shin). Using Gazebo 11 and RVIZ2, you’ll add LiDAR (light detection and ranging) and IMU (Inertial Measurement Units) sensors that will provide a view of the environment from the robot’s perspective. To make the most out of the sensor data, you’ll fuse information from multiple sensor sources to better estimate where the robot is in the world.
The version of Gazebo used in this project reached end of life in January 2025.
skills learned: basics of sensors (encoders, IMUs, LiDARs, ultrasonic sensors) • URDF/XACRO • create a robot description • simulate sensors • sensor fusion
In this liveProject, you’ll make use of Amazon Web Services tools to convert customer review videos to text for sentiment analysis. You’ll step into the role of a developer at a startup that offers a video alternative to feedback surveys, and help scale up your current platform so that it can handle thousands of incoming videos.
You’ll start creating your highly scalable solution with secure uploading, then build a video processing pipeline using event-based architectures. You use AWS Elastic Transcoder and Amazon Transcribe to transcribe video to text, and Amazon Comprehend to run sentiment analysis to determine whether feedback is positive or negative.
skills learned: create a serverless project and event-driven architecture with AWS Chalice • video manipulation with AWS Transcoder and Amazon Transcribe • sentiment analysis with Amazon Comprehend
Nextstellar Corp is very excited—they’re taking all their data to the cloud! They’ve recently migrated and have an early-defined data lake solution. The CEO has approached you to deliver the next step of their cloud data process: using AWS Glue to apply the transformation logic and store the curated data in Amazon S3. You’ll utilize Jupyter Notebooks to curate and standardize your data sets—crafting, organizing, and managing datasets to ensure they are easily accessible and usable—then design a CI/CD pipeline to test and deploy code with a single push after completion.
skills learned: Transforming standardized data into curated data using PySpark • Automating infrastructure using CloudFormation • Developing ETL jobs using AWS Glue Jupyter Notebook • Implementing CI/CD for code release in AWS Glue Jobs • Refactoring Jupyter code and deploying through the CI/CD pipeline
This liveProject puts you on the front lines at an indie bookstore, where poorly scrawled notes threaten to bring sales to a standstill. Learning classification algorithms from the ground up, you'll use four different and surprisingly simple classifiers to develop an AI solution that turns illegible scribbles into recognizable numbers.
skills learned: simple classification algorithms • K-nearest neighbors (KNN) • K-means • Naïve Bayes • hierarchical clustering
The future of the RoboPrototypes company is in your hands. It’s your first day at the company, which specializes in bespoke robotic solutions. The CEO has asked you to develop a prototype of a mobile robot that will serve drinks to mall food court customers. An important client will decide whether they’ll provide follow-up funding after they see your prototype in simulation. Working with Gazebo 11 and employing ROS best practices, you’ll create a model for a differential drive robot that meets the provided specifications. Next, you’ll simulate the robot, implement a basic teleoperation node for controlling it, and add velocity multiplexing for safety purposes.
The version of Gazebo used in this project reached end of life in January 2025.
skills learned: basics of URDF and XACRO modeling • load a robot model in RVIZ2 and Gazebo 11 • send Twist messages to the robot (and some of the safety implications involved)
Keep tabs on your robot. RoboPrototype, the company you work for, is preparing to demo its autonomous beverage delivery robot for investors in a food court next month. Your CEO has tasked you with setting up SLAM (Simultaneous Localization and Mapping) on the robot, making it possible to locate the robot at all times. Using the Slam Toolbox, you’ll equip the robot with the ability to create a map of its environment as well as pinpoint its location on the map. You’ll also get firsthand experience mapping on real data captured on a Turtlebot3 Burger, a widely used mobile robot platform.
The version of Gazebo used in this project reached end of life in January 2025.
skills learned: map with slam_toolbox • localization with slam_toolbox • SLAM in the bag
As an enterprise architect at Padre Inc., which runs its cloud operations on AWS, it’s up to you to manage multi-cloud operations for Tiddler Inc., a startup using Google Cloud that Padre has acquired for its SaaS project. Your task is to implement error budgeting to achieve a predefined service-level objective (SLO) and balance the deployment of new features with the reliability of the services in production. Using tools including Elasticsearch, Kibana, and Logstash, you’ll create an error budget policy and you’ll calculate burn rate, which indicates how quickly the budget is expended. You’ll use Kibana to implement a dashboard that uses burn rate data when creating the alerts product owners rely on for ensuring that service reliability meets service-level agreements (SLAs) when releasing new features. When you’re finished, you’ll have hands-on experience with valuable site reliability engineering (SRE) skills and concepts that you can apply to real-world projects.
skills learned: implement Server Reliability Engineering (SRE) with SLIs, SLOs, and SLAs
Sorting is one of the most important skills you can learn to make sense of messy data—and in this liveProject, you’ll discover sorting algorithms you can implement with Rust. You don’t need advanced Rust knowledge. With only the basics, you’ll tackle three of the huge number of sorting algorithms available: bubble sort, quicksort, and counting sort. But that’s not all: You’ll also experiment with a pair of search algorithms for linear and binary search. Before long, you’ll have an excellent grasp of the best sort and search algorithms for your needs.
skills learned: generating random numbers • Bubble Sort • QuickSort • counting sort • linear search • binary search • simple recursion
There’s a lot of buzz about the Bug of the Month club you started, but the fly in the ointment is that a few customers aren’t paying their bills on time. You have no choice but to halt their monthly shipments of fine insect-based foods. But to do that, you must first identify the delinquent customers. Using three different Go sorting algorithms—bubble sort, quicksort, and counting sort—you’ll sort your list of customers by balance owed. Once your data is sorted, making it easier to search, you’ll implement a linear search as well as a binary search to locate the non-paying culprits. When you’re done, you’ll have firsthand experience implementing widely used Go sort algorithms and search methods and a firm grasp on their performance.
skills learned: bubblesort • quicksort • counting sort • linear search • binary search • simple recursion
As a backend developer for BestInsurance, your task is to secure its RESTful API using Spring Security. The insurance company is running the API in a server that supports OAuth 2.0 authentication. Using the server’s specs, you’ll reproduce the behavior of the authorization server with Spring Security in order to have a local server that is easily configurable for testing purposes. You’ll implement role-based authorization based on the content of JSON Web Tokens (JWT), from the authorization server point of view. This authorization will impact API security, so you will implement a resource server with Spring Security. You’ll also implement unit testing with Spring Security Test, and configure SwaggerUI to make requests that are authorized according to OAuth 2.0, using SpringDocs. When you’re finished you’ll have highly useful Spring Security skills—and confidence that your API is secure!
skills learned: Spring Security OAuth 2 authentication and role-based authorization
Boutique, a software development company, has a fully functional ASP.NET Core HTTP API for a client’s project. As a software engineer for Boutique, it’s your job to improve the API’s code and prepare it for production. Using Serilog, you’ll add logging functionality to help determine the causes of issues that may arise in production. To allow the web UI to be hosted someplace other than your HTTP API, you’ll enable cross-origin resource sharing (CORS) middleware. You’ll create custom middleware for handling the cross-cutting concern of database transactions. To further improve the quality of the codebase, you’ll create a custom filter that handles business exceptions in a general, consistent way. When you’re done, the API will be robust, easy to maintain, and production-ready.
skills learned: set up and configure logging with Serilog • understand how the ASP.NET Core processing pipeline works • create middleware for cross-cutting concerns • set up and configure CORS
Upgrade a legislative monitoring app with advanced C# features like LINQ and lambdas. As a developer at Ground Truth Consulting, you'll implement detailed change comparisons between API results. You’ll go beyond basic difference detection to provide insight into exactly what changed. Analyze bills line by line to spotlight new amendments, build flexible queries with LINQ to extract and compare key fields, and implement comparison logic concisely with lambdas and delegates. Plus, master professional techniques like parsing complex JSON responses and make an impact by shipping an automated legislative tracking tool ready for production use.
skills learned: LINQ • Delegates and lambdas • Unit testing
Contact forms are one of the most important parts of almost any site—especially your web design portfolio. If your potential clients aren’t impressed with a contact form, why would they ever use it to get in touch with you? In this liveProject, you’ll use CSS to create a stunning contact form. You’ll put your own spin on text, error messages, radio buttons, button styles, and more.
skills learned: Using :where() to apply a rule to multiple selectors • Using adjacent sibling combinators to select elements that are immediately after another element • Using :user-invalid to conditionally style elements based on a field’s validity • Using @supports to write fallbacks for properties that are not widely supported across browsers • Using accent-color to change the color of a checkbox
In this liveProject, you'll implement particle swarm optimization and the Boids algorithm to develop computational models to track flocks of finches. You’ll start with a simple flock simulator, then modify it to adapt to obstacles, take a different approach with Gravity Boids, and finally use a swarm-inspired algorithm to find the highest point on a complex mathematical surface. You’ll soon have an algorithm that can predict the movements of everything from flocks of finches to swaying concertgoers!
skills learned: swarms • modeling complex systems • particle swarm optimization (PSO)
Logistica Transport is on the rise—and they need a new web app solution that can do what their old desktop app can’t. That app is almost ready, but it needs a final round of testing to make sure it’s ready to go to its users. That’s where you come in! You’ll learn to utilize mocks and stubs, as well as the Jest and React Testing Library, to spot errors and make sure the app is production-ready. You’ll even test and assess the app’s performance using BenchmarkdotNET.
skills learned: Visual Studio debugging tool • Testing applications • Checking application performance • Entering application accessibility features
In this liveProject, you’ll set up tests to support refactoring of a legacy library. As you lack a written specification, you’ll use “pinning tests” to extract a specification from the existing code, and generate a wide range of test coverage. You’ll learn to spot when and where to improve code maintainability, and set up mutation testing to ensure your tests catch unintended changes.
skills learned: deriving tests from existing code • adding test coverage on an as-needed basis • using mutation testing results to guide test efforts
You’re a senior developer at Travel World Agency (TWA), which has grown to become the largest travel agency in the world. The company has built a next-generation system that uses a microservice architecture running on Amazon Web Services (AWS). But while the company’s success is moving quickly in the right direction, the performance of its reservations microservice has taken a wrong turn. As a solution, TWA has replaced this microservice with a new one, using Kotlin and Spring Boot to improve performance and maintainability. Your job is to reduce the risk of deploying the application with bugs—a common problem for the previous API—by implementing robust testing.
Following business-driven development (BDD) practices, you’ll create a series of unit tests that validate the code’s logic in a number of plausible scenarios. To test the behavior of the code itself without affecting or being influenced by external classes, you’ll create a series of mocks. Using several libraries, you’ll test to ensure database queries work as expected.
skills learned: create a unit test to check the logic of the application • create a unit test that checks access to the database
As the IT Developer for Rocinante, a company seeking to consolidate its dispersed IT scripts and tools, your mission is to unify them into a cohesive GitHub platform that's accessible with a PowerShell module. Your task in this liveProject is to ensure the module’s quality. You’ll add automated tests to ensure your module works properly and implement static code analysis to ensure your code is issue-free. Finally, you’ll incorporate both testing and code analysis into a CI/CD pipeline to ensure every build is of high quality.
skills learned: unit and integration tests with Pester 5 • static code analysis with PSSCriptAnalyzer • running tests on GitHub Actions
You’re a TypeScript developer for a large company that sells stock photography products to the general public, as well as to news and other media markets. Your task is to find and fix some long-term bugs in a legacy library. You’ll write a test to characterize a bug in code that controls how certain assets are selected for a special display. After you’ve determined the source of the problem, you’ll modify the test, transforming it into a bug fix. Once you’ve squashed that bug, you’ll repeat the process to tackle two additional common bugs in TypeScript applications.
skills learned: derive tests from existing bugs • use tests to drive bug fixes
In this liveProject, you’ll write tests to drive changes in an existing codebase. You’ll analyze new requirements, reconcile them with what is currently documented by your test suite, and use the test-first technique to ensure new changes to your library are all justified, specified, and protected by tests.
skills learned: using test-driven development to change existing functionality • writing granular tests for individual requirements • using larger-grain tests to drive the integration of individual components
Picture this: You’ve amassed a fortune selling Instagram filters and you’re cruising the Bermuda Triangle on one of your yachts when you strike a USO (unidentified submerged object). Now you’re sinking! Your life raft isn’t big enough to salvage all of your 200 valuable objects (of varying sizes, weights, and values). To help you decide which of your treasures—the Monet, the Degas, the bust by Canova—to take with you on the raft, you’ll write a Go program that uses different approaches, including exhaustive search, branch and bound, Rod’s technique, and dynamic programming to solve the knapsack problem, a classic in computer science for situations just like this. When you’re finished, you’ll learn what the tradeoffs are, and you’ll know which of your valuables you’ll be able to save and which will end up at the bottom of the ocean!
skills learned: exhaustive search • backtracking • branch and bound • Rod's technique • dynamic programming
UMET Inc.’s mission to modernize its software infrastructure has been a great success. The e-commerce company now uses Rust microservices that run in lightweight Wasm containers so that they can be deployed anywhere in the cloud. However, as more microservices are created, the overhead for managing them is becoming a problem. Using the Distributed Application Runtime (Dapr) sidecar, a commonly used design pattern, you’ll create a proof of concept (PoC) that demonstrates the pattern’s benefits, including reducing the complexity of connecting multiple microservices and infrastructure services (e.g. databases and web proxies). When you’re finished, you’ll have refactored UMET’s microservices to work with Dapr, reducing the overhead required to manage them.
skills learned: use Dapr to construct complex microservices
As a TypeScript developer, you’ve recently created a high-quality test suite as part of your company’s goal of adding functionality to its system. Now, using test-driven development (TDD) techniques, it’s time to analyze new requirements, reconcile them with what is currently documented by your test suite, and use the test-first technique to ensure changes to your library are justified, specified, and protected by tests.
skills learned: write granular tests for individual requirements • use larger-grain tests to drive the integration of individual components • change the design of existing code with the support of tests
Any web developer worth their salt needs an eye-catching portfolio site—and so your boss at Consultants Inc. has told you you need to make one! In this liveProject, you’ll experiment with delivering both light and dark themes for your site using CSS, custom properties, and a locally hosted variable font. Remember, web design is about self-expression—so don’t be afraid to play around with your code to help it fit you and your personality.
skills learned: Using custom properties to set theme colors • Using a media query to set a theme based on user preferences • Color contrast checking and accessibility-related concerns • Using :where() to apply a rule to multiple selectors • Loading and configuring a variable front using @font-face • Creating fallbacks using @supports
It’s almost showtime! TechPower, a consulting company, has a partially implemented music-sharing platform, created in Scala, that leverages the language’s combination of object-oriented programming and the functional paradigm. As a software engineer at TechPower, your task is to ensure the prototype’s codebase hits a high note before going live. With the help of the Scala ecosystem libraries, you’ll design and create test specifications and samples, keeping in mind functionality, possible outcomes, and data values. You’ll implement your tests using SimpleBuild Tool (SBT) or IntelliJ IDEA, debug them, check corner cases, and verify that you’ve covered all reasonable scenarios. When you’re done, TechPower’s music-sharing platform will be robust, reliable, and ready for the spotlight!
skills learned: basic Scala (debugging) • unit testing in Scala with specs2
You’re a senior developer at Travel World Agency (TWA), which has grown to become the largest travel agency in the world. The company has built a next-generation system that uses a microservice architecture running on Amazon Web Services (AWS). But while TWA’s success has been steadily climbing, the performance of its reservation microservice has been losing altitude. As a solution, TWA has replaced the microservice with a new one. Your job is to improve performance by leveraging cache mechanisms, including the Caffeine, Varnish, and Redis libraries, that will reduce traffic between APIs.
skills learned: understand the different mechanisms of cache • determine where to use one mechanism of cache instead another one
In this liveProject, you’ll create a user registration form that allows users to specify their delivery address and use that address at checkout. You’ll use Spring Security to configure a form-based user registration and login, set up password controls, and store user details in PostgreSQL.
UPDATED: July 2023 to use the latest versions of Java, Gradle, and Spring Boot; and updated instructional text throughout all the projects.
skills learned: form login with Spring Security • password encryption with Spring Security • front-end development using Spring MVC, HTML and CSS
In this liveProject, you’ll take on the role of a software engineer for Echorand Corp tasked with implementing image-hosting capabilities for their new platform. You’ll make full use of the Go standard library to write a web UI that can upload images once they are authenticated, then add SQLite support for storing image metadata. Finally, you’ll update the web app so your users can see their newly uploaded images in all their glory.
skills learned: Rendering HTML templates • Handling form uploads in your web application backend • Upload binary data to another external object storage service using the Go Cloud Development Kit • Manage data related to users and their uploaded images by storing them in an SQLite database
It’s week number five for you at SongRiver, a music-streaming startup whose success is soaring. You’ve been working on an employee directory that helps users find employee information and send each other digital recognition badges. Your task this week is to create and automate tests to ensure the app works correctly, especially after updates.
Using Jest and the React Testing Library, you’ll write a test for the badge component that checks for the badge name and image. You’ll create and test a custom render method for React Testing Library, a must for preventing errors while rendering components that require React Router. Using mocked data, you’ll test components that fetch data. You’ll also write tests for the “Add Badge” component, using user-events to simulate user interactions with components. When you’re done, you’ll have created an automated test suite that empowers you and your colleagues to update the directory app with confidence.
Some sections may contain information that is now outdated due to the rapid advancements in the technology field, notably the initial libraries, Docker setup, and some documentation links. Regardless, this liveProject remains an invaluable resource for intermediate users.
skills learned: automate tests with Jest, React Testing Library, and Mock Service Worker
In this liveProject, you’ll use secure multiparty computation to reveal which of two millionnaires is richer without exposing how much either is worth. Your program will use the two-party computation for the “greater than” operator, and be written using the Rust language. Due to its unique set of features, such as guaranteed memory safety, Rust is well suited for programming cryptography applications.
skills learned: explore the Paillier additive homomorphic encryption cryptosystem • test and benchmark a cryptographic protocol
In this liveProject, you’ll use zero-knowledge proof (ZKP) to reveal that a super hard Sudoku puzzle has been solved, but without sharing the answer. To do this you’ll implement a prover and a verifier that are sharing a Sudoku board. The prover will produce a proof for knowing a solution, while the verifier will use the proof to get convinced and catch a cheating prover. You’ll build a ZKP based on the classical GMW zero-knowledge proof of 3-Colorability of a graph, using the Rust language.
skills learned: implement and test a library for a specific construction of a zero-knowledge protocol • implement a cryptographic hash-based commitment scheme
You’re a new developer at UMET Inc., an e-commerce platform that’s modernizing its backend technology stack with Rust. Your task is to create a simple HTTP service that looks up sales tax rates for U.S. ZIP codes and then deploy it in a lightweight container. To build the service, you’ll use Rust Tokio and hyper crates. You’ll compile, run, and test it in a lightweight WasmEdge container and use GitHub Actions to automatically test and validate any changes that you make. When you’re finished, you’ll have hands-on experience building, updating, and testing a minimally viable microservice using Rust and WebAssembly.
skills learned: Rust application framework for HTTP server applications
To support its rapid growth, e-commerce company UMET Inc. relies on lightweight, interdependent, cloud-native microservices written in Rust that can compute sales tax rates and e-commerce order totals. As a developer at UMET, it’s up to you to integrate these microservices with existing order systems. To do that, you’ll need to turn the order total microservice into a database-backed stateful service. You’ll build and test the microservice in Docker and model the application data into relational database records. You’ll connect the microservice application to a MySQL database server, and you’ll use Docker to compose and manage all components of the microservice. When you’re done, you’ll have built an order management microservice in Rust that can read and save data from UMET’s MySQL relational databases and later serve as a template for other UMET microservices.
skills learned: MySQL driver for Rust
In this liveProject, you’ll build an API that can integrate your customer’s transaction data from a third party. You’ll construct a robust client with OpenAPI and WebClient, and make HTTP requests with Spring Boot. You’ll then develop a pipeline of enrichment for the merchant data you acquire through your API.
skills learned: code generation from OpenAPI • calling third-party applications using WebClient • circuit breaker pattern for Spring applications
Logistica Transport needs to ditch its old desktop app and embrace a new web app solution. They’ve turned to you to help them, and in this liveProject, you’ll utilize Entity Framework Core to set up the vital connections between a MySQL database and the future web app. You’ll need to set up data models that define the structure and relationships of your data, as well as learn how to perform CRUD operations to create, update, and delete data in your database. Finally, you’ll connect your data models and CRUD operations to the Entity Framework for a full and working database solution.
skills learned: NuGet packages specific to Entity Framework and MySQL • Setting up data classes in a database • Data tables (inserting, updating, and deleting information) • Setting up a database connection in code • Working with data stored in database tables
Acme Widgets, a manufacturing company, uses an AI-powered Google Workspace add-on to automatically extract information from supplier invoices. Your task is to extend the add-on’s functionality so it can handle expense claim receipts, as well. You’ll add a Document AI processor designed for processing expenses, and you’ll enable additional fields in order to group related receipts. To increase user convenience, you’ll enable the uploading of local files and add a tab to re-pick recently selected files. Lastly, you’ll create unit tests that will help you update the add-on with more complex changes in the future.
skills learned: implement Expense Document AI processors • add CardService add-on fields • implement unit testing
In this liveProject, you’ll build a shopping basket that stores data in a user session. You will learn how to use sessions in Spring MVC, handle HTML forms, and use different bean scopes in Spring Framework. At the end, you will have a basket feature added to the website, so users can add items from the catalog.
UPDATED: July 2023 to use the latest versions of Java, Gradle, and Spring Boot; and updated instructional text throughout all the projects.
skills learned: front-end development using Spring MVC • configuring bean scopes • submitting forms in Spring MVC
skills learned: Implement queries and Filters with Spring Data JPA Query Methods • Query by Examples and Specification and JPQL
In this liveProject, you’ll use the Kafka distributed streaming data platform to help convert a legacy order fulfillment system to a sleek new asynchronous event-driven architecture. This architecture needs to deliver services that can scale and evolve independently, to speed up your clients eCommerce app. You’ll use the Go language to build a microservice, an event publisher, and multiple event consumers; and work with Kafka’s command-line tools to create, alter, and test topics.
skills learned: interacting with Kafka using the command line • Kafka events • leveraging asynchronous communication patterns across independent services and consumers • evaluating the performance of the system with KPIs
In this liveProject, you’ll become a software engineer at InfoHub, an up-and-coming AI startup looking to revolutionize how companies interact with their knowledge bases. InfoHub seeks to utilize groundbreaking large language models to deliver a system whereby a user’s questions about company data can be answered through a Q&A-style language interface. You’ll begin by assisting them in creating this tool by processing, tokenizing, and converting data into embeddings with BeautifulSoup and tiktoken.
skills learned: use of embeddings with the OpenAI API for similarity search
Boutique, a software development company, is working on a project that will automate a client’s inspection process. As a software engineer for Boutique, your task is to implement authentication and authorization in the existing ASP.NET Core HTTP API for the project according to the client’s requirements. You’ll register your application to use Google as an identity provider, configure Swashbuckle to support authentication through Google, and activate the authentication and authorization middleware of ASP.NET Core. To take advantage of ASP.NET Core’s authorization features, you’ll add additional claims to the authenticated identity per the client’s specs, and you’ll implement role- and policy-based authorization as needed. When you’re done, employees will be able to use all of the API’s functionality, and customers will have read access to their own data.
skills learned: interpret an OpenAPI specification • set up and configure authentication and authorization • how to gain insight into using different mechanisms to implement authorization • dissect a JWT
In this liveProject, you’ll dive into the software engineer role at Echorand Corp., a leading analytics company. Echorand Corp wants to offer its customers the opportunity to host images, so they’ve turned to you. You’ll build an impressive web application using the Go programming language using GitHub as the OAuth provider. You’ll implement secure authentication, providing users with a seamless login experience, and manage application state effortlessly using SQLite.
skills learned: Writing a web application to sign in using GitHub credentials • Storing user session data in an SQLite database • Rendering HTML templates
BestInsurance has a rapidly growing customer base and happy front-office employees, thanks to a newly built API that lets customers subscribe to policies and lets front-office employees narrow their searches with custom filters. But the back-office staff is unhappy with the high latency of the user interface. As a backend developer, you’ll solve this problem by adding pagination with Spring Data JPA, preventing the page from loading all the customer data at once. You’ll use JPQL to add aggregate functions that return information the back office needs, such as revenue and customer count by state. You’ll implement a REST service for uploading policy subscription data provided in CSV format and importing it into your database. You’ll also leverage domain events for sending messages when subscriptions are saved, updated, or deleted. When you’re done, you’ll know how to add REST API services, and the back-office employees will thank you for making their jobs easier!
skills learned: Add query result pagination • Implement queries with JPQL aggregate functions. Import csv files into a database in a transaction, use domain events to send messages to a JMS Queue.
Acme Widgets, a manufacturing company, manually logs its supplier invoices on spreadsheets in Google Workspace. Your task is to free the staff from this tedious task by creating an add-on that automatically extracts and records useful information from invoices. You’ll set up a Google Cloud Platform (GCP) account, implement and deploy the add-on, and create Document AI processors for processing invoices from multiple regions. You’ll add a CardService that improves the user experience by letting them select which files to process. You’ll use the Document AI REST API to process the invoices’ image data and write the processed data to a spreadsheet, enhancing the user interface. When you're done, you’ll have created a basic, easy-to-use Google Workspace add-on that extracts and records invoices in multiple formats, leaving the Acme Widgets staff free to focus on more productive tasks.
skills learned: create a project in Cloud platform • deploy a Workspace add-on • implement Invoice Document AI processors • update spreadsheets
In this liveProject, you’ll build a product catalog for an ecommerce application. You’ll learn how to load data from a database and display it on an HTML page, and use integration tests to properly understand your model and ensure its accuracy. At the end, you’ll have a fully functional Spring application that loads data from the database using Spring Data JPA and displays it using Spring MVC.
UPDATED: July 2023 to use the latest versions of Java, Gradle, and Spring Boot; and updated instructional text throughout all the projects.
skills learned: front-end development using Spring MVC • accessing relation data in Postgres using Spring Data • creating database migrations using Flyway
Hit the ground running with C# by rapidly prototyping a data retrieval app. As a new developer at Ground Truth Consulting, you'll build a proof of concept to streamline legislative monitoring. Tap into .NET's capabilities and set up a data access layer leveraging api.data.gov. Focus on productivity and type safety with C#'s top-level statements, and get hands-on experience querying web APIs and iterating quickly.
skills learned: Structure apps with namespaces and classes • Use HttpClient to make API requests
In this liveProject, you’ll step into the role of a software developer at InfoHub, an AI startup attempting to build a chatbot that can answer queries about a company’s knowledge base. You’ve already built the basics of the chatbot—now it needs to be deployed! To do this, you’ll use the LangChain feature LangServe to create a LangChain server application. You’ll build your chatbot using Streamlit and then deploy it to the Streamlit cloud.
skills learned: create a chatbot using LangServe and Streamlit • deploy to the cloud through Streamlit Cloud
You’re a TypeScript developer for a large company that sells stock photography. You’re responsible for the service that ingests images, and a recent database change has broken the service, despite successful unit testing. Working in IntelliJ WebStorm, you’ll build an integration test that replicates the problem, find the cause, fix the problem, and build the infrastructure to develop more integration tests in the future.
skills learned: reproduce problems in hard-to-reach parts of a system with tests • use tests to drive bug fixes
Micro frontends take a vertical approach to web development, splitting an application into standalone components that encompass everything from user interfaces to backend logic. In this liveProject, you’ll use the micro frontends approach to help solve a tricky issue for music streaming service Red Records.
Red Records has two separate development teams working in two separate time zones, and they are currently arguing over whether to use React or Vue.js for their frontend. Your challenge is to set up a new micro frontends architecture that will allow them to work independently, in parallel, with separate stacks, and no need to talk to each other! You’ll build two micro frontends using Vue.js and React respectively, and set up a Bootstrap client-side orchestrator to handle loading, persist authentication, and routing. Better be fast—your new app launches in just a few months.
skills learned: creating vertical micro frontend architectures • writing micro frontends as single page applications • multi-framework micro frontend architecture • user session authentication
BestInsurance has an online portal with a newly built application for providing features it hopes will attract new customers. As a backend developer for the insurance company, it’s your job to implement create, read, update, and delete (CRUD) services that allow front-office staff to manage and query data as needed to perform their daily tasks. You’ll define your CRUD API, using Spring Web and the DTO pattern, and observe your components in action. Leveraging inheritance and generic types in Java, you’ll refactor the code as necessary and complete the implementation of your RESTful APIs. To ensure your solution meets BestInsurance’s high standards, you’ll test the services with Spring Test and MockMvc.
skills learned: RESTful API implementation with Spring Web and DTO pattern, Generate a SwaggerUI and OpenApi documentation with SpringDoc
You’re an enterprise architect for Padre Inc., which has acquired Tiddler Inc., an insurance analytics startup, for its SaaS platform. Since your company runs its cloud operations on AWS and the startup uses Google Cloud Platform, your task is to manage multi-cloud operations. As part of that effort, you’ll implement centralized logging to simplify log analysis across multiple applications. After exploring centralized logging using the ELK stack, you’ll create a centralized logging instance in Google Cloud Platform and stream the logs from AWS to Google Cloud. To signal the need for corrective actions, you’ll use Kibana to run queries against the log data and create an alert based on log events. When you’re done, you’ll have created a centralized logging flow that improves site reliability.
skills learned: Elasticsearch • Logstash • Kibana • AWS Cloudwatch • AWS Lambda
In this liveProject, you’ll set up everything needed for reliable ecommerce checkout. You’ll integrate one-click payment options, create a PayPal developer account and user accounts for testing, and integrate with the official PayPal SDK.
UPDATED: July 2023 to use the latest versions of Java, Gradle, and Spring Boot; and updated instructional text throughout all the projects.
skills learned: use third-party SDKs in web development • maintain state between multiple requests • support different configurations for production and testing
Take your C# skills to the next level by implementing smart change detection on a data retrieval app. As a developer at Ground Truth Consulting, you'll enable an application to automatically check for updates across legislative APIs. Store responses to disk and compare new results to spot differences, send alerts to stakeholders when fresh bills are introduced, and build reusable comparison logic to support future data sources. You’ll then add unit tests to validate critical flows, prevent regressions, and refactor with dependency injection for modular and testable code. Whether you're new to C# or a .NET veteran, this project is ideal for leveling up your skills.
skills learned: Error-handling techniques • File-handling techniques
Acme Widgets has an AI-powered Google Workspace add-on that interprets data from invoices and receipts. Add-ons have a processing time limit that keeps them from processing many documents at once. It’s up to you to solve this problem! You’ll create one delegate web app that archives files to centralized Google Cloud Storage (GCS) and another that batches the documents—allowing processing to be done in a way that bypasses the standard add-on response time limit. As you develop, you’ll implement incremental unit testing to detect code errors. When you’re done, you’ll have a powerful add-on that isn’t constrained by processing time limits and automatically archives documents to secure cloud storage.
skills learned: set up cloud storage and archiving • implement document batch processing
Svalbard is quickly becoming a household name as customers all over the world bring the online store’s furniture into their homes. But Svalbard’s backend applications run on legacy mainframes that are increasingly expensive to scale. That’s why the store has adopted a more flexible modern deployment model. As a Rust programmer, your task is to provide its developers and operators with a load-testing CLI tool that simulates a multitude of real-world scenarios.
Using Tokio, Serde, and clap, you’ll add functionality for users to configure the number of connections and requests, as well as other parameters. You’ll gather and display immediate feedback, empowering users to spot and correct misconfiguration early on. You’ll calculate statistics on latencies in your application and display them in human- and machine-readable output, providing the maximum benefit from the gathered data. When you’re done, you’ll have a CLI that delivers users high configurability, reliable signal handling, and a means of providing immediate feedback for more nimble, cost-effective results.
skills learned: design CLI applications • parse user input
You’re a TypeScript developer for a large company that sells stock photography. You’re responsible for the service that ingests images, and this service depends on another subservice: the pricing microservice. As proven by their individual unit tests, each service works as specified. But when the services are combined, new customers are locked into one pricing table—even those that should have access to pricing that fluctuates depending on factors like promotions, flash sales, and price-tuning. Working in IntelliJ WebStorm, you’ll solve this problem by writing an integration test that connects and runs the two services together, letting you reproduce the problem locally.
skills learned: reproduce “ghost in the machine”-type problems with integration tests • create in-memory Nest.js applications
BestInsurance, an insurance company, has an online portal with a newly built application for providing features it hopes will attract new customers. As a backend developer, it’s your job to create the persistence layer for the application. You’ll define the database tables and configure a Liquibase changelog to automatically create the tables using SQL. This will allow you to track and manage database versions in order to avoid data loss in production when you change the model. To persist your data, you’ll map Java classes to the database tables using Spring JPA, then implement the basic create, read, update, and delete (CRUD) operations through the JPA repositories for the persistent entities. To verify your mapping is correct, you’ll implement unit testing with JUnit 5 tests, TestContainers, and a PostgreSQL database.
skills learned: Implement Spring Data JPA CRUD Repositories, Define the database DDL with Liquibase and SQL, Implement ORM (Object Relational Mapping) with Entity Classes, Implement JUnit Test cases with Spring Test and TestContainers
You’ve just been hired as a software programmer for SongRiver, a music-streaming startup whose success is skyrocketing. With so many new employees, it’s hard to keep everyone straight, so the internal tools team has asked you to add a page for each employee as the first step toward building an employee directory app. You’ll set up a React Router to provide access to employee information. Using React Query, you’ll fetch employee data from the server so that it can be added to the employee page. Finally, you’ll use Chakra UI to display the employee data according to the provided specifications. When you’re finished, you’ll have created a page that accepts and provides access to employee data—and your manager will be humming a happy tune.
Some sections may contain information that is now outdated due to the rapid advancements in the technology field, notably the initial libraries, Docker setup, and some documentation links. Regardless, this liveProject remains an invaluable resource for intermediate users.
skills learned: React Router routes and URL params • React Query data fetching • Chakra UI design system
Level up your C# skills by evolving an API data retrieval prototype into a robust application. As a developer at Ground Truth Consulting, you'll expand the initial Federal Register API demo into a versatile tool to streamline legislative monitoring. This project lets you flex your C# muscles on real-world APIs while prepping for enterprise development. You’ll refactor with classes, tuples, and records for more maintainable code, cache API responses in memory to optimize performance, and integrate the Congress API to showcase multi-source data aggregation.
skills learned: C# data structures like lists and dictionaries • Error-handling techniques
In this liveProject, you’ll close the gap between “data analyst” and “software engineer” by building a working data platform. You’ll join up with AnomalousDex Inc., a startup that specializes in personalized end-to-end data products, and create a working prototype of their anomaly detection platform to showcase to prospective customers. This requires connecting up multiple cross-discipline components, from data science to systems management.
This platform consists of three principal components: a service that serves the anomaly detection data model, the modeling platform, and a dashboard visualization tool. Your challenge is to develop all of these features, going hands-on with software architecture, data engineering, microservices, and dockerizing. You’ll also dive into the essentials of monitoring and metrics, and even train an unsupervised learning anomaly detection model!
skills learned: design a data platform architecture consisting of several Dockerized components • train an anomaly detection model with scikit-learn and deploy it in a web service • monitor the web service and anomaly detection model with Prometheus and Grafana
Logistica Transport has grown, which means they need to replace their outdated desktop app with a brand new web app solution. In this liveProject, you’ll help them kick off this transformation by swapping their current Excel-based storage system for a mySQL database. You’ll need to create and install the database from scratch, as well as set up the necessary tables to handle the input and output streams of data. This database is a vital foundation for how Logistica’s web app will function.
skills learned: MySQL language
Welcome to Boutique, a software development company that’s working on a project to automate a client’s inspection process. As a software engineer, your task is to create an HTTP API for the project. You’ll set up an ASP.NET Core web host, implementing the first endpoint according to the OpenAPI specification. To verify the endpoint works as intended, you’ll add integration tests, and you’ll use Swashbuckle and API versioning middleware to enable future functionality. When you’re done, you’ll have firsthand experience with important tools—including Postman and Swagger UI—and an API that’s ready for further development.
skills learned: configure and use Microsoft DI • set up an HTTP API host with ASP.NET Core • implement integration tests • set up API versioning • set up Swagger UI using Swashbuckle • use Postman for manual testing of the API
Svalbard Inc.’s Scandinavian furniture is quickly becoming a living room staple in homes across the globe. To tame the cost of its success, the company has decided to migrate from expensive-to-scale legacy mainframes to a more flexible, modern deployment model. Your task is to implement continuous load testing and reporting. Using hyper and Tokio, you’ll send HTTP requests as you create a proof of concept. You’ll drive multiple concurrent connections using Tokio, gather and improve metrics from these connections by designing an asynchronous execution flow, and add robust error handling. When you’re finished, you’ll have a fully functioning, scalable HTTP load-test application.
skills learned: concurrent programming • async with Tokio • use hyper
Welcome to Musify! You’re a backend developer for a SaaS company that helps startups bring their products to market. Musify’s new client wants to launch a music-streaming app connecting music artists and end users. For this large and complex application, Musify’s development team has chosen to take advantage of the microservices architecture, and it’s your job to create the first microservice for the app using Node.js technology. You’ll start by setting up the framework for the server using Express.js. Then you’ll build a CRUD (Create, Read, Update, and Delete) REST API in Node.js and Express that will allow artists to upload, find, and delete their music audio files as well as letting end users view and listen to songs according to their preferences. When you’re done, you’ll have experience using popular Node.js technology to create a backend REST API ready to deploy.
skills learned: create a CRUD application with Node.js and Express
In this liveProject, you’ll take on the role of a web developer with a new client: a spa company called AR Salon. AR Salon wants to update its old over-the-phone manual booking system into a modern web-based service. Your challenge is to design and build this system, which will allow users to view available slots for spa services, pay for services, and retrieve customer information. To accomplish this, you’ll use Java and Spring Boot to construct a reliable backend, and JavaScript and React to build a responsive user interface.
UPDATED: July 2023 to the latest version of all technologies and text.
skills learned: create production-ready apps • use of Spring Boot Web API • Swagger, PostgreSQL • integrate a payment system • create and scan QR code
Acme Widgets, a manufacturing company, processes its supplier invoices with an AI-powered Google Workspace add-on that automatically extracts and records invoice data. But the add-on has limited functionality, such as only being able to interpret single image files, which makes tasks like picking files difficult. It’s up to you to make basic tasks like these easier. You’ll enable the Google Picker API to add the ability to navigate and customize files. You’ll create and publish a file picker as a web app, and publish the add-on with the attached file picker. To further enhance the user interface, you’ll add image thumbnails and links to the picked files, as well as support for interpreting PDFs and images to accommodate a larger variety of documents. When you’re done, you’ll have helped ensure Acme Widgets’ accounts are accurate and made the staff’s lives easier—all while learning Google add-on customization skills.
skills learned: implement Google Drive Picker • publish popup web apps • detect duplication digitally
Musify, a SaaS company that helps startups bring their products to market, has a client who wants to launch a Spotify-inspired app that will connect music artists with their fans. Musify has already built the first microservice for the app in Node.js and deployed it on an Azure container registry. As a software engineer at Musify, your job is to create a microservice for storing audio files on Azure and enable communication between microservices. You’ll create an Azure Storage account, upload an audio file to the account, and write the HTTP request handler for downloading and streaming the file. You’ll use Docker Compose to run and manage both microservices, and you’ll call one microservice from within the other using the HTTP package. Lastly, you’ll connect the first microservice to a MongoDB database to store the song records. When you’re done, you’ll have the skills and knowledge to build and manage multiple microservices and connect databases to your application using Docker and Docker Compose.
skills learned: Set up a MongoDB database with Docker • run multiple services using Docker Compose • use HTTPfor communication between microservices • download files from Azure storage • upload files to Azure storage
Padre Inc. uses AWS as its cloud provider and has acquired Tiddler Inc., an insurance analytics startup that uses Google Cloud Platform. As an enterprise architect at Padre, your task is to manage multi-cloud operations. Using Countly, you’ll define and implement key performance indicators (KPIs) in order to measure the success of Padre’s SaaS project that runs on AWS and Google. To ensure smooth operation of services and an optimal user experience, you’ll implement site reliability engineering (SRE) practices using Kubernetes, Prometheus, and Grafana. When you’re done, you’ll have experience using business metrics to track the health and value of your software, ensuring it provides value to customers and stakeholders.
skills learned: implement web analytics using open-source Countly
In this liveProject, you’ll use Spring Boot and Gradle to create the basic mobile banking application. You’ll begin by creating the domain object, REST Controller, and supporting service to present the data, then test your application to ensure it’s working properly. You’ll add JPA to store your users’ transactions, then finish up with end-to-end testing of your whole app.
skills learned: basics of Spring Boot • create a REST Controller with Spring Web • JPA to persist state to a database • using RestAssured to perform integration tests on Spring applications • use Testcontainers to perform tests on your JPA code
You’ve been striking a chord at SongRiver, the popular music-streaming platform where you’ve been working for the last two weeks. Feedback for the employee directory app you’ve been building is mostly favorable, but it also suggests that the user experience (UX) could be improved if the page were more informational and visually appealing, especially at specific times. You’ll use React Query and Chakra UI tools to indicate when the app is fetching new data or refetching data, and when there’s been an error fetching data. When you’re done, your app will display loading and error indicators that are both useful and easy on the eyes.
Some sections may contain information that is now outdated due to the rapid advancements in the technology field, notably the initial libraries, Docker setup, and some documentation links. Regardless, this liveProject remains an invaluable resource for intermediate users.
skills learned: UI indicators that display loading and error states of React Query
BestInsurance, an insurance company, wants to attract new customers. As a backend developer, your task is to extend the features of the company’s portal to let customers subscribe to new policies. You’ll use Spring Initializr to create the project structure for a basic Spring Boot application, and you’ll configure the necessary dependencies. You’ll build Docker images for running the application, using both Maven and Gradle plugins, and you’ll create Docker compose services for running the application using your Docker images. When you’re done, you’ll have built a basic Spring Boot application that’s ready to connect to a database.
skills learned: define a Spring Boot application with Spring Initializr, Configure build with Maven and Gradle, run the defined application in a Container with Docker, and Docker Compose
In this liveProject, you’ll secure a financial application using the out-of-the-box security features of Spring. You’ll set up authentication servers, add users, and configure rules for your application.
skills learned: client credentials in an OAuth 2 workflow • securely grab data from a third-party with Spring WebClient • periodically poll data from a third party with the Spring scheduler
Ensure your system can accommodate even unstable dependency services. You’re a TypeScript developer for a large company that sells stock photography. You’re responsible for the service that ingests images. Unfortunately, the ingestion process is being negatively affected by a flaky external web service that the ingestion engine uses, and the problem is not reproducible in unit testing since there’s no connection to the external service at that time. Working in IntelliJ WebStorm, you’ll establish an in-memory HTTP service, configure it to simulate a dependency service, write a test to reproduce the error, and use the test to build robustness into your system.
skills learned: dynamically configure Nest.js containers • mock an HTTPservice dependency
In this liveProject, you’ll tackle an important job for Echorand Corp, a data processing company that offers image-hosting services. Echorand’s image-hosting app needs the capability to produce thumbnails for all the uploaded images, so they’ve turned to you. Your challenge is using Go to implement the thumbnail creation features. You’ll need to create a new table to store the association between the original image and their thumbnail, then set up functionality so the original image will be downloaded when users click the thumbnail.
skills learned: Executing an external program to create a thumbnail of an uploaded image • Storing images in an object storage service • Store image and thumbnail associations in an SQLite database • Rendering HTML templates
You’re a software engineer for Echorand Corp., a growing analytics company that wants to address the lack of backup functionality provided by the GitHub software hosting service it uses. The company has a web application that allows users to log in using their GitHub credentials. Your task is to add functionality to that app that lets users download their data whenever they like. Using Go, HTML, JavaScript, and the GitHub Go SDK, you’ll implement support that enables users to export their data on GitHub, view their exports, and download them—a win for Echorand Corp. and for you!
skills learned: work with Go standard library packages and the GitHub Go SDK • access the GitHub API
Echorand Corp., a growing analytics company, uses the GitHub hosting service for its software hosting and collaboration needs. But the company has received feedback voicing concerns about the service’s lack of backup functionality. As a software engineer, it’s up to you to solve this problem. You’ll use Go to build a web application that allows users to log in using their GitHub credentials and access the GitHub API using OAuth authorization. You’ll create HTTP client middleware for writing and performing tests with no need to interact with Github.com, and you’ll write automated tests that enable you to update the application while speeding up the development cycle. When you’re done, you’ll have built an easy-to-update application that allows users to log in with their GitHub credentials.
skills learned: work with Go standard library packages, GitHub OAuth, HTTP cookies in Go, and HTTP cookies in Go
UMET Inc. is growing! To support its increasingly complex features and services, the CTO has decided to refactor its backend technology stack, and the dev team has chosen the memory-safe, high-performance Rust programming language for this important investment in the company’s future. As a new developer at UMET, your task is to build proof-of-concept (PoC) Rust applications using Cargo or Docker tools, then securely run the applications in portable WasmEdge runtime containers to validate that the new backend stack meets all the necessary requirements. When you’re done, you’ll have mastered Rust basics for application development, including working with strings, managing complex data structures, and creating an HTTP web server.
skills learned: code in Rust • and its HTTP networking APIs
The development team at Boutique, a software company, is working on a project for automating the inspection process of a client that builds industrial robots. An ASP.NET Core HTTP API has already been set up, and the team has started implementing the domain model entities and persisting them to a SQL database. As part of the team, your task is to implement CRUD (create, read, update, and delete) endpoints for all the entities according to the OpenAPI specification. To achieve persistence, you’ll configure Entity Framework Core and register it in the dependency injection container. You’ll implement a custom JSON converter to support polymorph endpoints in order to handle different types of robots. To verify that your implementation is correct, you’ll write and perform integration tests.
skills learned: interpret an OpenAPI specification • configure and use Microsoft DI • configure routing for endpoints in the HTTP API • use Postman for manual testing of the API • set up and configure validation for incoming data
Welcome to your second week at SongRiver, a music-streaming startup whose success is skyrocketing. You’ve been working on a directory app to help keep track of the company’s growing number of employees, and your task for this week is to add search functionality to employee pages in the directory. Using Chakra UI, you'll create the user interface for the search input box. Then you'll fetch the results from the server via React Query and display the data. You’ll end the project on a high note by using React Router tools to create links that enable navigation between individual employee pages and the search interface.
Some sections may contain information that is now outdated due to the rapid advancements in the technology field, notably the initial libraries, Docker setup, and some documentation links. Regardless, this liveProject remains an invaluable resource for intermediate users.
skills learned: state-controlled input field • React Router search params • array of React components from array of server data
Your company sells stock photography products to the general public, as well as to news and other media markets. As the resident TypeScript developer, you’ve been tasked with maintaining and extending a class library for optimizing search results. You’ll set up tests to support refactoring of this legacy library, use “pinning tests” to extract a specification from the existing code, and generate a wide range of test coverage. You’ll learn to spot when and where to improve code maintainability, and set up mutation testing to ensure your tests catch unintended changes. By the end, you’ll have generated test coverage that supports refactoring, making future updates easy and painless.
skills learned: derive tests from existing code • use mutation testing results to guide test efforts
Growth means change; for Logistica Transport, that means switching from their old desktop app to a new web app solution. In this liveProject, you’ll put together all of the pieces of this new web app. You’ll learn how to build a React.js app with Visual Studio 2023, set up a form for your users, and master the database magic of CRUD statements like insert, update, and delete to manipulate your database. Finally, you’ll validate your data formats to ensure the application works as expected.
skills learned: NuGet packages • Creating themed React forms • Implementing CRUD features • Implementing form validation
In this liveProject, you’ll use the Rust programming language to develop a two-step verification system for authentication service. You’ve decided to work in Rust because it runs without memory issues, it’s data race free, and provides safe concurrency.
Your client’s employees work on different operating systems, so your verification system needs to function on Mac, Linux, and Windows. To complete this system, you’ll need to develop a RESTful service as its core backend, and then write a Rust client that is going to be called by Linux as part of its authentication process. Finally, you’ll use Rust to develop Admin and verification clients, write a thin layer of C code as a PAM module, and configure Linux to use the PAM module in its authentication pipeline.
skills learned: implement a RESTful web service in Rust • write a secure Rust program
In this liveProject, you’ll set up a Facebook and social media sign on option for your eCommerce store using the Spring Security OAuth2 module. You’ll configure Spring Security for login using the OpenID authentication protocol, and fully create the functionality to login using a Facebook account and manage a profile without needing a new username and password.
UPDATED: July 2023 to use the latest versions of Java, Gradle, and Spring Boot; and updated instructional text throughout all the projects.
skills learned: form login with Spring Security • password encryption with Spring Security • front-end development using Spring MVC, HTML and CSS
Create an alarm system that warns you before your system breaks. You’re a TypeScript developer for a large company that sells stock photography. You’re responsible for the service that ingests images. A recent upgrade to the image-scaling library has caused a problem with the aspect ratio of thumbnail images. Working in IntelliJ WebStorm, you’ll build a layer of integration tests that replicates the problem and also tests the assumptions that your unit tests rely on. When you’re done, you’ll have an alarm system that warns you when the assumptions your unit tests rely on are no longer valid, preventing problems in the future.
skills learned: use SQLite and an in-memory database to inspect the results of service execution • mock S3 containers
UMET Inc. is off to a great start in its efforts to refactor its backend to a modern technology stack using the popular, high-performance Rust programming language. As a new developer for the e-commerce platform, your task is to create a microservice for calculating order totals that depends on another microservice that looks up sales tax rates. Using HTML and JavaScript, you’ll create a web user interface for the microservices so that UMET product managers can test them in a browser. You’ll build and test your new application using Rust reqwest and Serde crates to make web service calls and also use Docker Compose to manage multiple Wasm and Linux containers in a single application. When you’re finished, you’ll have firsthand experience using WasmEdge command-line interface (CLI) tools to build a cloud-native application with interdependent microservices.
skills learned: Docker + Wasm • Docker Compose • WasmEdge CLI tools
In this liveProject, you’ll package your application as a Docker image that’s ready for easy deployment. You’ll use Spring Boot to package your app to Docker, and then deploy to AWS with Amazon RDS and Beanstalk. Finally, you’ll reimplement functionalities for a Facebook login and configure HTTPs.
UPDATED: July 2023 to use the latest versions of Java, Gradle, and Spring Boot; and updated instructional text throughout all the projects.
skills learned: configuring Amazon Relational Database Service (RDS) • deploying Spring Boot app into Amazon Elastic Beanstalk • reconfiguring an application database connection in production
Svalbard Inc.’s customers are reveling in the comfort of the global online store’s Scandinavian furniture. But, for Svalbard, the cost to scale its backend applications is less than comfortable. To ease its pain, the store has begun migrating its legacy mainframes to a more flexible, modern deployment model. Svalbard has already implemented a CLI tool that internal developers and operators can easily configure to their needs. As a Rust programmer, it’s up to you to improve this tool. You’ll track down potential performance bottlenecks with the help of flame graphs, then implement solutions to tackle them using hyper. You’ll verify the performance improvements, then create a tool for guarding against regressions with the Criterion suite. When you’re done, you’ll be comfortable evaluating and improving an asynchronous Rust application.
skills learned: performance analysis • profiling • optimization
Acme Widgets has a Google Workspace invoice processing add-on that uses Google Document AI to interpret data from PDFs and image formats. To make the tool more valuable, your task is to add the ability to accept documents in other formats. You’ll start by enabling a pop-up web app that displays the expanded list of newly supported file types. You’ll add functionality for picking additional file types and automatically converting them to a Document AI-supported format, then archiving them. You’ll also enable sorting and duplicate removal as you create a summarized view of invoices and expenses, making the company’s employees’ tasks easier and less time-consuming.
skills learned: use the Google Drive API to create conversion routes • convert a range of documents to native • summarize, sort, and deduplicate converted documents
In this liveProject, you’ll ready your service for production. You’ll use the Spring caching API to add caching functionalities to a financial application, and compose your application for deployment. You’ll use Redis as your caching server.
skills learned: adding caching to any Spring application using the Spring caching framework • employ Redis to cache frequently accessed data • bundle your related services using Docker Compose
Svalbard’s Scandinavian furniture is quickly becoming a living room staple in homes across the globe. But the cost of scaling up the online store’s application is growing as fast as its customer base. As a Rust programmer, you’ve been helping Svalbard migrate its legacy mainframes to a more flexible, modern deployment model to manage the cost. Your application is fast and reliable, but you’re not done yet! As more people use your tool, the number of use cases it needs to support is increasing, too.
Your task is to refactor your application from a locally executed CLI tool to an always-on service. You’ll scale up observability by adding logging and metrics collection using industry-standard tools, including Prometheus, and you’ll deploy your application as a Docker container alongside a reference service. When you’re done, you’ll have built a production-ready application that supports a wide range of real-world scenarios.
skills learned: logging • deploy rust with Docker • collect and expose metrics
You’re a software engineer at Musify, a SaaS company that helps companies launch their products. For its newest client, Musify has created a REST API that allows music artists to upload and delete their audio files as well as letting end users view and listen to songs according to their preferences. Your task is to set up the microservice structure using Docker and deploy the REST API to the Azure portal. You’ll write instructions in a Dockerfile to create and run a custom Docker image in a container. You’ll create a container registry in the Azure portal and push the Docker image to an Azure container registry in the cloud. When you’re finished, you’ll have the know-how and experience to publish a microservice to Azure, and the development team will be able to easily and conveniently access, run, and update the application.
skills learned: create a Docker image • run a Docker image as a container • deploy a custom image to Azure Container Registry
In this liveProject, you'll join InfoHub, an AI startup disrupting corporate knowledge management. They aim to unlock a company’s knowledge base through conversational Q&A-style user interfaces that use breakthrough language models. You'll leverage LangChain, a framework optimized for integrating LLMs into apps, to integrate InfoHub's data, vector stores, and language models into a single solution. You’ll prepare your data, create a vector store to embed your documents, and then use LangChain to combine it with an LLM.
skills learned: use LangChain for questions answering • create and populate a vector store with your own data
It’s your fourth week with SongRiver, a music-streaming web platform whose success is climbing the charts. Beta testers for the employee directory app you’ve been building are singing your praises, and they have a new request: they’d like to celebrate employees with badges that spotlight their contributions. You’ll use Chakra UI to create a grid of employee badges and add badge information to the employee page. Using React Query, you’ll add functionality for sending badge data to the server, then display a “toast” (pop-up) message that communicates whether or not the badge submission was successful. When you’re done, you’ll have a people-pleasing, connection-boosting feature that adds and displays employees’ badges, and you’ll have earned a “Rock Star” badge of your own.
Some sections may contain information that is now outdated due to the rapid advancements in the technology field, notably the initial libraries, Docker setup, and some documentation links. Regardless, this liveProject remains an invaluable resource for intermediate users.
skills learned: display employees’ existing badges • provide a button to add a new badge • send an update to the server when a new badge is added • refresh the data on the page to show the new badge
The company you work for wants to improve its system by adding functionality that maximizes the profitability of any given search. As the resident TypeScript developer, your task is to apply a battery of tests to support changing the design of legacy code in preparation for adding this new functionality. You’ll refactor your production code based on advice from your architecture team. Thanks to a broad test suite, you’ll be able to change your design with no worries about accidentally breaking a required behavior. The result will be a system you can test with smaller, more meaningful tests and that easily withstands future requirement changes.
skills learned: change the design of existing code while supported by tests • change test suites to take advantage of better designs
With a brand new grant from the finance department, biotech company SphereCell has hired a new frontend web developer — you! Your boss wastes no time laying out your first project: completely refactor SphereCell’s sales trends dashboard.
The goals of this refactoring are to modernize the dashboard, reduce technical debt with future-proof code, and improve its maintainability. Your boss has also mentioned that SphereCell will soon need another new dashboard for an upcoming subscription service, so you’ve decided to use React Hooks to ensure the work you do will be easily reusable.
Your challenges will include migrating the existing codebase and data fetching logic to React Hooks, move the application’s state to the React Context API, and make sure everything is robust and working with automated tests.
skills learned: creating React components with state • fetching data with React Hooks • handling complex state changes with React Hooks • handling application’s state with React Context API • mocking API data in the frontend
You're a TypeScript developer at an organization that sells stock photography products to the general public, as well as to news and other media markets. The company wants to add functionality to its system that maximizes the profitability of any given search. It’s up to you to improve the test suite by adding high-quality requirements-based tests. You’ll use mocks to isolate requirements, ensuring that each test focuses on a single behavior in your code. When you’re done, you’ll have a more resilient codebase.
skills learned: change the design of existing code with the support of tests • change test suites to take advantage of better designs
In the modern world, web traffic is mobile traffic. That’s why your sites need to be responsive and easily adaptable to any screen size! In this liveProject, you’ll create a responsive layout for your portfolio site so it looks good on mobile. You’ll need to constrain your profile picture, utilize column-based layouts, use grid and flex to align items, and utilize flexbox to lay out your footer.
skills learned: Using the multi-column layout module to lay out a list of items into multiple columns • Using subgrid to lay out elements inside of a grid layout • Using flexbox to display a list of elements horizontally • How to prevent image distortion using object-fit • Using pseudo-classes in selectors
Smooth scrolling is one of the most important features of any portfolio page! In this liveProject, you’ll utilize CSS—including animation timelines—to set up different features for when a user scrolls your page. You’ll lock your header to stay visible on screen at all times, ensure that the top of different sections snap to the top of the window as users scroll, establish a progress bar in the header to show how far you’ve scrolled, and more. When you’ve finished this final polish, your portfolio page will look great!
skills learned: Using the position property to create a sticky header • Using scroll-snap-type and scroll-snap-align to control scroll behavior between sections • Adjusting the scroll snap position using scroll-padding • Using animation timelines to create an on-scroll progress indicator • Using the ::backdrop pseudo-element to style the dialog's backdrop
As a software engineer for Boutique, a software development company, you're tasked with adding search, upload, and download functionality to an ASP.NET Core HTTP API that Boutique is building for its client, RobotsInc. To enable the frontend to navigate through existing data structures, you’ll add several child endpoints, as well as an endpoint for criteria-based searches. You’ll also implement endpoints for binary photo uploads and downloads according to the OpenAPI specification, and you’ll verify your implementations are correct by testing manually with Swagger UI as well as with automated integration tests. When you’re finished, RobotInc’s employees will be able to upload photos and notes to document and report on their robot inspections.
skills learned: interpret an OpenAPI specification • configure and use Microsoft DI • configure routing for endpoints in the HTTP API • use Postman for manual testing of the API • set up and configure validation for incoming data • implement binary file upload and download
In this liveProject, you’ll secure a financial application using the out-of-the-box security features of Spring. You’ll set up authentication servers, add users, and configure rules for your application.
skills learned: basics of Keycloak administration • OAuth 2 workflows and when to use them • securing an application with Spring Security • how Docker makes running applications easier
In this liveProject, you’ll make use of Amazon Web Services tools to convert customer review videos to text for sentiment analysis. You’ll step into the role of a developer at a startup that offers a video alternative to feedback surveys, and help scale up your current platform so that it can handle thousands of incoming videos.
You’ll start creating your highly scalable solution with secure uploading, then build a video processing pipeline using event-based architectures. You use AWS Elastic Transcoder and Amazon Transcribe to transcribe video to text, and Amazon Comprehend to run sentiment analysis to determine whether feedback is positive or negative.
skills learned: create a serverless project and event-driven architecture with AWS Chalice • video manipulation with AWS Transcoder and Amazon Transcribe • sentiment analysis with Amazon Comprehend
As an enterprise architect at Padre Inc., which runs its cloud operations on AWS, it’s up to you to manage multi-cloud operations for Tiddler Inc., a startup using Google Cloud that Padre has acquired for its SaaS project. Your task is to implement error budgeting to achieve a predefined service-level objective (SLO) and balance the deployment of new features with the reliability of the services in production. Using tools including Elasticsearch, Kibana, and Logstash, you’ll create an error budget policy and you’ll calculate burn rate, which indicates how quickly the budget is expended. You’ll use Kibana to implement a dashboard that uses burn rate data when creating the alerts product owners rely on for ensuring that service reliability meets service-level agreements (SLAs) when releasing new features. When you’re finished, you’ll have hands-on experience with valuable site reliability engineering (SRE) skills and concepts that you can apply to real-world projects.
skills learned: implement Server Reliability Engineering (SRE) with SLIs, SLOs, and SLAs
As a backend developer for BestInsurance, your task is to secure its RESTful API using Spring Security. The insurance company is running the API in a server that supports OAuth 2.0 authentication. Using the server’s specs, you’ll reproduce the behavior of the authorization server with Spring Security in order to have a local server that is easily configurable for testing purposes. You’ll implement role-based authorization based on the content of JSON Web Tokens (JWT), from the authorization server point of view. This authorization will impact API security, so you will implement a resource server with Spring Security. You’ll also implement unit testing with Spring Security Test, and configure SwaggerUI to make requests that are authorized according to OAuth 2.0, using SpringDocs. When you’re finished you’ll have highly useful Spring Security skills—and confidence that your API is secure!
skills learned: Spring Security OAuth 2 authentication and role-based authorization
Boutique, a software development company, has a fully functional ASP.NET Core HTTP API for a client’s project. As a software engineer for Boutique, it’s your job to improve the API’s code and prepare it for production. Using Serilog, you’ll add logging functionality to help determine the causes of issues that may arise in production. To allow the web UI to be hosted someplace other than your HTTP API, you’ll enable cross-origin resource sharing (CORS) middleware. You’ll create custom middleware for handling the cross-cutting concern of database transactions. To further improve the quality of the codebase, you’ll create a custom filter that handles business exceptions in a general, consistent way. When you’re done, the API will be robust, easy to maintain, and production-ready.
skills learned: set up and configure logging with Serilog • understand how the ASP.NET Core processing pipeline works • create middleware for cross-cutting concerns • set up and configure CORS
Upgrade a legislative monitoring app with advanced C# features like LINQ and lambdas. As a developer at Ground Truth Consulting, you'll implement detailed change comparisons between API results. You’ll go beyond basic difference detection to provide insight into exactly what changed. Analyze bills line by line to spotlight new amendments, build flexible queries with LINQ to extract and compare key fields, and implement comparison logic concisely with lambdas and delegates. Plus, master professional techniques like parsing complex JSON responses and make an impact by shipping an automated legislative tracking tool ready for production use.
skills learned: LINQ • Delegates and lambdas • Unit testing
Contact forms are one of the most important parts of almost any site—especially your web design portfolio. If your potential clients aren’t impressed with a contact form, why would they ever use it to get in touch with you? In this liveProject, you’ll use CSS to create a stunning contact form. You’ll put your own spin on text, error messages, radio buttons, button styles, and more.
skills learned: Using :where() to apply a rule to multiple selectors • Using adjacent sibling combinators to select elements that are immediately after another element • Using :user-invalid to conditionally style elements based on a field’s validity • Using @supports to write fallbacks for properties that are not widely supported across browsers • Using accent-color to change the color of a checkbox
Logistica Transport is on the rise—and they need a new web app solution that can do what their old desktop app can’t. That app is almost ready, but it needs a final round of testing to make sure it’s ready to go to its users. That’s where you come in! You’ll learn to utilize mocks and stubs, as well as the Jest and React Testing Library, to spot errors and make sure the app is production-ready. You’ll even test and assess the app’s performance using BenchmarkdotNET.
skills learned: Visual Studio debugging tool • Testing applications • Checking application performance • Entering application accessibility features
You’re a TypeScript developer for a large company that sells stock photography products to the general public, as well as to news and other media markets. Your task is to find and fix some long-term bugs in a legacy library. You’ll write a test to characterize a bug in code that controls how certain assets are selected for a special display. After you’ve determined the source of the problem, you’ll modify the test, transforming it into a bug fix. Once you’ve squashed that bug, you’ll repeat the process to tackle two additional common bugs in TypeScript applications.
skills learned: derive tests from existing bugs • use tests to drive bug fixes
UMET Inc.’s mission to modernize its software infrastructure has been a great success. The e-commerce company now uses Rust microservices that run in lightweight Wasm containers so that they can be deployed anywhere in the cloud. However, as more microservices are created, the overhead for managing them is becoming a problem. Using the Distributed Application Runtime (Dapr) sidecar, a commonly used design pattern, you’ll create a proof of concept (PoC) that demonstrates the pattern’s benefits, including reducing the complexity of connecting multiple microservices and infrastructure services (e.g. databases and web proxies). When you’re finished, you’ll have refactored UMET’s microservices to work with Dapr, reducing the overhead required to manage them.
skills learned: use Dapr to construct complex microservices
As a TypeScript developer, you’ve recently created a high-quality test suite as part of your company’s goal of adding functionality to its system. Now, using test-driven development (TDD) techniques, it’s time to analyze new requirements, reconcile them with what is currently documented by your test suite, and use the test-first technique to ensure changes to your library are justified, specified, and protected by tests.
skills learned: write granular tests for individual requirements • use larger-grain tests to drive the integration of individual components • change the design of existing code with the support of tests
Any web developer worth their salt needs an eye-catching portfolio site—and so your boss at Consultants Inc. has told you you need to make one! In this liveProject, you’ll experiment with delivering both light and dark themes for your site using CSS, custom properties, and a locally hosted variable font. Remember, web design is about self-expression—so don’t be afraid to play around with your code to help it fit you and your personality.
skills learned: Using custom properties to set theme colors • Using a media query to set a theme based on user preferences • Color contrast checking and accessibility-related concerns • Using :where() to apply a rule to multiple selectors • Loading and configuring a variable front using @font-face • Creating fallbacks using @supports
In this liveProject, you’ll create a user registration form that allows users to specify their delivery address and use that address at checkout. You’ll use Spring Security to configure a form-based user registration and login, set up password controls, and store user details in PostgreSQL.
UPDATED: July 2023 to use the latest versions of Java, Gradle, and Spring Boot; and updated instructional text throughout all the projects.
skills learned: form login with Spring Security • password encryption with Spring Security • front-end development using Spring MVC, HTML and CSS
In this liveProject, you’ll take on the role of a software engineer for Echorand Corp tasked with implementing image-hosting capabilities for their new platform. You’ll make full use of the Go standard library to write a web UI that can upload images once they are authenticated, then add SQLite support for storing image metadata. Finally, you’ll update the web app so your users can see their newly uploaded images in all their glory.
skills learned: Rendering HTML templates • Handling form uploads in your web application backend • Upload binary data to another external object storage service using the Go Cloud Development Kit • Manage data related to users and their uploaded images by storing them in an SQLite database
It’s week number five for you at SongRiver, a music-streaming startup whose success is soaring. You’ve been working on an employee directory that helps users find employee information and send each other digital recognition badges. Your task this week is to create and automate tests to ensure the app works correctly, especially after updates.
Using Jest and the React Testing Library, you’ll write a test for the badge component that checks for the badge name and image. You’ll create and test a custom render method for React Testing Library, a must for preventing errors while rendering components that require React Router. Using mocked data, you’ll test components that fetch data. You’ll also write tests for the “Add Badge” component, using user-events to simulate user interactions with components. When you’re done, you’ll have created an automated test suite that empowers you and your colleagues to update the directory app with confidence.
Some sections may contain information that is now outdated due to the rapid advancements in the technology field, notably the initial libraries, Docker setup, and some documentation links. Regardless, this liveProject remains an invaluable resource for intermediate users.
skills learned: automate tests with Jest, React Testing Library, and Mock Service Worker
You’re a new developer at UMET Inc., an e-commerce platform that’s modernizing its backend technology stack with Rust. Your task is to create a simple HTTP service that looks up sales tax rates for U.S. ZIP codes and then deploy it in a lightweight container. To build the service, you’ll use Rust Tokio and hyper crates. You’ll compile, run, and test it in a lightweight WasmEdge container and use GitHub Actions to automatically test and validate any changes that you make. When you’re finished, you’ll have hands-on experience building, updating, and testing a minimally viable microservice using Rust and WebAssembly.
skills learned: Rust application framework for HTTP server applications
You’re the star developer for Future Finance Labs, a fintech scaleup whose partner consultants are so happy with the prototype of an exchange platform you’ve built that some of them have brought a trading firm on board. Your task is to extend your prototype to include a platform for trading futures that the firm would like to offer its clients. You’ll lay the web project foundation by moving the Rust code for the existing matching engine to a shared library, adding a skeleton project for the web server, and creating a Cargo workspace. You’ll set up a warp web service to interact with the trading platform, add JSON serialization to your types, and use asynchronous Rust programming to create handler functions. Then you’ll upgrade the existing command line interface to connect with your new service instead of the local variant via REST. When you’re finished, you’ll have built a complete Rust HTTP API that will be a blueprint for additional Rust web services, small and large.
skills learned: HTTP API with warp and reqwest • async Rust basics
Simplify application deployment at Dynomica, a web service for discovering new bands and artists, by developing a GitOps proof-of-concept microservice. You’ll help modernize traditional pipelines to a GitOps approach by deploying a cluster, installing Flux, and configuring a GitOps workflow to enable automated deployments. Then see GitOps in action as Flux detects and implements changes committed to Git, effortlessly reconciling your cluster to match the desired state defined in the repository. As you practice deploying with GitOps, you’ll discover how the reconciliation process enables automated, consistent deployments.
skills learned: GitOps with Flux • Git repository structure
To support its rapid growth, e-commerce company UMET Inc. relies on lightweight, interdependent, cloud-native microservices written in Rust that can compute sales tax rates and e-commerce order totals. As a developer at UMET, it’s up to you to integrate these microservices with existing order systems. To do that, you’ll need to turn the order total microservice into a database-backed stateful service. You’ll build and test the microservice in Docker and model the application data into relational database records. You’ll connect the microservice application to a MySQL database server, and you’ll use Docker to compose and manage all components of the microservice. When you’re done, you’ll have built an order management microservice in Rust that can read and save data from UMET’s MySQL relational databases and later serve as a template for other UMET microservices.
skills learned: MySQL driver for Rust
Travel World Agency (TWA) has enjoyed rapid growth, but its computing costs have risen along with its success. Before implementing potentially disruptive cost-reducing measures to their next-gen system running on Amazon Web Services (AWS), it needs to improve the quality of its microservices. As a senior developer, your task is to detect whether any change in the request/response of the endpoints might affect the rest of the microservices. You’ll use Pact to define the contract between multiple microservices using the HTTP method, the name of the endpoint, and the requests and responses. By the end, you’ll be able to detect problems that could result from a change to the name, HTTP method, or the attributes that contain the requests and responses of one endpoint.
skills learned: add dependencies and logic to create a simple test of one endpoint • create a test of one endpoint that obtains information from a database • reuse the API test to validate the performance of one endpoint • add multiple tests into one Jenkins pipeline
Greengrocer, a chain of mid-sized supermarkets, has been revamping its software to keep up with market demand. As a software developer on the IT team, your task is to enhance the newly built supplier API by implementing business logic using three API design patterns: the singleton sub-resource pattern to facilitate independent and asynchronous operations, the cross-reference pattern to decouple the supplier location API from the supplier API, and the association resources pattern to maintain relationships with various resources.
skills learned: design and implement an API to facilitate independent and asynchronous operations, adhering to the singleton sub-resource pattern • implement the cross-reference pattern for one API and decouple it from another API • design and implement the association resources pattern to maintain relationships
You’re a senior developer at Travel World Agency (TWA). Its swift success has come with a high rise in computing costs. But before it introduces potentially disruptive cost-saving modifications to its next-gen system running on Amazon Web Services (AWS), it needs to improve the quality of its microservices architecture. Your job is to create API and performance testing using Karate and Gatling and apply a black-box approach that prevents anyone from changing what’s inside the microservices. You’ll test the connection with external services as well as with a database, then create a performance test with minimal configuration by reusing one of your API tests.
skills learned: add dependencies and logic to create a simple test of one endpoint • create a test of one endpoint that obtains information from a database • reuse the API test to validate the performance of one endpoint • add the different tests in one Jenkins pipeline
In this liveProject, you’ll build a new recommendation service for a travel application that’s migrating to microservices. Taking on the role of a software engineer for SimpleTravel, you’ll use AWS Lambda functions to quickly implement production-ready microservices. You’ll start by implementing Lambda functions using the AWS Console, and then script them with AWS Command Line Interface.
skills learned: deploy a Lambda function using AWS Console or AWS Command Line Interface (CLI)
In this liveProject, you’ll use AWS Step Functions to preserve service coordination between newly split microservices functions. This cooperation between services is vital for large-scale microservices architectures. Luckily, the built-in Step Functions feature of AWS can supervise your microservices orchestration and ensure their continued reliability and scalability.
skills learned: what is service orchestration • AWS Step Functions
In this liveProject, you’ll use the Processing creative coding environment to draw and animate abstract logos by combining simple visual elements. You’ll use color gradients to create vibrant icons, design complex shape-based logos, and combine the two techniques into exotic and interesting logo art.
skills learned: Processing canvas and coordinate system basics • Processing drawing primitives and transformations • Processing draw loop and animation basics
In this liveProject, you’ll use p5.js to draw and animate abstract logos by combining simple visual elements in new ways. You’ll use color gradients to create vibrant icons, design complex shape-based logos, and combine the two techniques into stylistic and interesting logo art.
skills learned: p5.js canvas and coordinate system basics • p5.js drawing primitives and transformations • p5.js draw loop and animation basics
In this liveProject, you’ll use the Quarkus ecosystem to provide a data persistence layer to the Catalog API of a video streaming service. As a software engineer for the Chill+ streaming site, you’ll be using the Quarkus “Hibernate with Panache” extension, which is an opinionated usage of the famous Hibernate ORM data persistence framework. To speed up the dev and test stages, you’ll use the Quarkus DevServices feature, which spins up a database container and configures the application for you.
skills learned: use Quarkus extensions to work with Hibernate ORM with Panache • discover the active record data access pattern promoted by Quarkus • develop Create-Read-Update-Delete operations
In this liveProject, you’ll build an API that can integrate your customer’s transaction data from a third party. You’ll construct a robust client with OpenAPI and WebClient, and make HTTP requests with Spring Boot. You’ll then develop a pipeline of enrichment for the merchant data you acquire through your API.
skills learned: code generation from OpenAPI • calling third-party applications using WebClient • circuit breaker pattern for Spring applications
Logistica Transport needs to ditch its old desktop app and embrace a new web app solution. They’ve turned to you to help them, and in this liveProject, you’ll utilize Entity Framework Core to set up the vital connections between a MySQL database and the future web app. You’ll need to set up data models that define the structure and relationships of your data, as well as learn how to perform CRUD operations to create, update, and delete data in your database. Finally, you’ll connect your data models and CRUD operations to the Entity Framework for a full and working database solution.
skills learned: NuGet packages specific to Entity Framework and MySQL • Setting up data classes in a database • Data tables (inserting, updating, and deleting information) • Setting up a database connection in code • Working with data stored in database tables
In this liveProject, you’ll build a shopping basket that stores data in a user session. You will learn how to use sessions in Spring MVC, handle HTML forms, and use different bean scopes in Spring Framework. At the end, you will have a basket feature added to the website, so users can add items from the catalog.
UPDATED: July 2023 to use the latest versions of Java, Gradle, and Spring Boot; and updated instructional text throughout all the projects.
skills learned: front-end development using Spring MVC • configuring bean scopes • submitting forms in Spring MVC
Greengrocer has built a new supplier API as part of its endeavor to handle growing market demand. Your task, as a software developer on its IT team, is to enhance this microservices API—and the administrator experience—by designing and developing custom methods that address exceptional side effects, implementing long-running jobs, and clearly defining the interactions between them.
skills learned: implement custom methods patterns to trigger and complete side effects of API functionalities • implement asynchronous methods • implement an interactions mechanism that provides the status of long-running jobs
In this liveProject, you’ll implement the capability for your CLI tool to continuously poll the data source to create a stream of data over the command line. Once you’ve set up that functionality, you’ll integrate your new CLI into your company’s wider intelligence gathering system, which requires exposing an HTTP endpoint that provides the most recent performance indicators.
skills learned: Async streams for improved efficiency • actors for efficient data processing • mix actor and non-actor programming
skills learned: Implement queries and Filters with Spring Data JPA Query Methods • Query by Examples and Specification and JPQL
You’re a developer for BellyBox, an online grocery delivery company. Your task is to add a shopping cart and checkout process to its storefront Blazor web application. Using state management techniques in Blazor, you’ll develop patterns to manage data communication between components and pages. Using HttpClient, you’ll implement CRUD (create, read, and update) operations to enable communication with the backend server. When you’re finished, you’ll have provided a functional and pain-free checkout process that’s sure to have BellyBox’s tech-savvy customers checking in again.
skills learned: component communication through Parameters • SSOT server/client state management • use generic type template components • CRUD operations • state change events
In this liveProject, you’ll use the Processing creative coding environment to animate still photos or artwork. You’ll start by animating simple object images with interaction techniques, then animate landscape photos using layers and transparency. Finally, you’ll extend these techniques to creative drawing on images.
skills learned: Processing canvas and coordinate system basics • Processing drawing primitives and transformations • Processing file and image handling
In this liveProject, you’ll use p5.js to animate still photos or artwork. You’ll start by animating simple object images with interaction techniques, then animate landscape photos using layers and transparency. Finally, you’ll extend these techniques to creative drawing on images.
skills learned: p5.js file and image handling • p5.js draw layers and masks • p5.js interaction with mouse and keyboard
Bring My Little Cookie Shop’s logo to life.The website already looks pretty nice, but Max, the owner, has hired you to sweeten it even more. Using keyframes and CSS properties within the SVG code itself, you’ll animate the logo with blinking stars and rotating text, then create the illusion of drawing a path. The logo includes two thin circles around a central design; you will make it look like those circles are being drawn and erased as the animation loops.
skills learned: animate SVGs
In this liveProject, you’ll leverage the Spring Cloud Resiliency libraries to improve the fault tolerance of the microservices that make up a notification management platform. You’ll work to ensure that each microservice can easily recover from failure, avoiding cascading failures and guaranteeing that other microservices in the system will be unaffected by any individual failure.
skills learned: dependency management • use of @CircuitBreaker Annotation for configuring the circuit breaker pattern • use of @Bulkhead Annotation for configuring the Bulkhead pattern
In this liveProject, you’ll integrate Step Functions with SNS for a “best of both worlds” solution to microservices coordination. This approach is perfect for when you know the exact services involved in a business scenario, allowing you to describe this cooperation using service orchestration and AWS Step Functions.
skills learned: what is a topic and how Amazon SNS works • how to send and get message from a topic
In this liveProject, you’ll use the Kafka distributed streaming data platform to help convert a legacy order fulfillment system to a sleek new asynchronous event-driven architecture. This architecture needs to deliver services that can scale and evolve independently, to speed up your clients eCommerce app. You’ll use the Go language to build a microservice, an event publisher, and multiple event consumers; and work with Kafka’s command-line tools to create, alter, and test topics.
skills learned: interacting with Kafka using the command line • Kafka events • leveraging asynchronous communication patterns across independent services and consumers • evaluating the performance of the system with KPIs
In this liveProject, you’ll learn how to log all the requests to your API for the purpose of audit and transparency. You’ll start by implementing logging for all user login attempts, and persist the audit events to the database for future reference. You’ll then set up logging for authorization requests, making sure that you replace passwords and usernames with uniquely identifiable yet anonymized user identifiers.
This liveProject was implemented by Natan Streppel.
skills learned: understanding an API specified in Open API Specification 3.0 • setting up an environment to implement an API • logging requests for auditing purposes
In this liveProject, you’ll become a software engineer at InfoHub, an up-and-coming AI startup looking to revolutionize how companies interact with their knowledge bases. InfoHub seeks to utilize groundbreaking large language models to deliver a system whereby a user’s questions about company data can be answered through a Q&A-style language interface. You’ll begin by assisting them in creating this tool by processing, tokenizing, and converting data into embeddings with BeautifulSoup and tiktoken.
skills learned: use of embeddings with the OpenAI API for similarity search
In this liveProject, you’ll implement authentication using JSON Web Tokens (JWT) for a REST API. You’ll set up sign-up, login, and logout functionality, as well as authenticated retrieval of user details. You’ll even generate the skeleton implementation of the API, then test your code with Postman.
skills learned: understanding the procurement API • adding the authentication layer with JSON web tokens • identifying and fixing vulnerabilities
Greengrocer, a chain of mid-sized supermarkets, has been upgrading its web app to keep employees—and its growing customer base—happy. As a software developer on their IT team, your task is to design a ledger API that will serve as a background REST service and help analyze data. Using advanced API design patterns, you’ll implement functionality for anonymous writes, applying filters, and API authentication and authorization with JWT.
skills learned: design APIs adhering to anonymous writes and filtering patterns • store analytical data in data processing systems such as Google BigQuery and InfluxDB • design and implement authentication and authorization for APIs with JWT
Add security, an essential ingredient in the recipe for a successful application. As a developer for BellyBox, an online grocery delivery company, your task is to secure the startup’s storefront web application using Blazor’s authentication and authorization features. You’ll keep customers’ identities secret by adding support for anonymous customers using Blazor’s JavaScript interop, then save their data to localStorage. You’ll also modify the checkout process by developing an order history that’s only visible to authenticated users. To handle anonymous and authenticated API traffic, you’ll configure named HttpClient services. By the end of the liveProject, you’ll have mastered services and components for authorizing users in Blazor, and provided a safe and secure online shopping experience for BellyBox’s customers.
skills learned: implement authentication and authorization • named HttpClients with HttpClientFactory • page-based authorization • interoperate with JavaScript
In this liveProject, you’ll set up authentication and visualization functionalities for a connected IoT system. You’ll use JSON Web Tokens to authenticate an administrator and stream documents from a MongoDB database, then use the SockJS event bus bridge to connect your IoT data to a web application that displays sensor data in a user-friendly manner.
skills learned: Vert.x web application development
In this liveProject, you’ll dive into the software engineer role at Echorand Corp., a leading analytics company. Echorand Corp wants to offer its customers the opportunity to host images, so they’ve turned to you. You’ll build an impressive web application using the Go programming language using GitHub as the OAuth provider. You’ll implement secure authentication, providing users with a seamless login experience, and manage application state effortlessly using SQLite.
skills learned: Writing a web application to sign in using GitHub credentials • Storing user session data in an SQLite database • Rendering HTML templates
In this liveProject, you’ll implement HTTP authentication so that leave requests can be authorized based on user role. You will set up three Role Based Access Control (RBAC) functionalities for the REST API. The first RBAC will allow a reportee user account to access its own leave requests while keeping other data secure. The second RBAC will allow managers to see all the leave requests of employees they are responsible for. Finally, you’ll establish an RBAC for approving leave requests.
This liveProject was implemented by Natan Streppel.
skills learned: understanding an API specified in Open API Specification 3.0 • authorizing requests based on user role • access control testing
In this liveProject, you’ll implement role-based access controls to authorize user operations with JWT. You’ll set up a workflow whereby a purchase order must be approved by a manager, and then develop a functionality to remove permissions from a user once they leave an organization.
skills learned: understanding the procurement API • adding the authentication layer with JSON web tokens • identifying and fixing vulnerabilities
As a member of the development team at Piper Data Concepts, you’ll carry out the final steps of a workflow-improvement project: enabling your client’s staff to gather workflow process information in real-time. Several prototypes have been built, and the client’s workflow is more resilient than ever. You’ll write Python code that consumes messages from Kafka and prepares them for storing in the database, create Postgres queries to access the aggregated data, and build reports in CSV files to be read by visualization tools—and ultimately, your client’s staff. When you’re done, your client’s modern system will provide a feedback loop, enable external API access to status updates, and be ready for more specialized services to be plugged in later, with no code changes.
skills learned: end-to-end pipeline • Kafka data into the database • web scraping • creating reports
In this liveProject, you’ll use the flexible Python language and SQLite database to develop a simple-but-useful document tracking tool for a pharmaceutical company. This sort of automation tool is in high demand from businesses that need to keep track of changes to their important documents. Your challenges will include creating and connecting to a local SQLite database, working with file information and MD5 hashes, and applying automation principles to your tool.
skills learned: walking directory trees • identifying files • calculating file MD5 hashes • working with SQLite • creating Excel reports with the openpyxl library
In this liveProject, you’ll take on the role of a cryptography expert evaluating quantum computing for the purpose of key distribution. Key distribution generates a random secret key which is then shared between only two parties, and is a crucial part of many cryptographic algorithms. You’ll work to implement the common BB84 key distribution, simulate using the BB84 protocol to generate a shared key, and then visualize the steps of the BB84 protocol.
skills learned: designing and writing simple Q# code • running simulations of quantum code using a full state quantum simulator • writing classical code in C# or Python that calls quantum code
In this liveProject, you’ll ensure your system behaves according to customer requirements by implementing acceptance tests. You’ll use SpecFlow and Gherkin to test existing functionality, WireMock to test each service with a fake interaction between services, and, finally, use behavior-driven development (BDD) and test-driven development (TDD) to create a new service.
skills learned: writing service level tests • drive feature implementation with BDD • use WireMock for acceptance testing
BestInsurance has a rapidly growing customer base and happy front-office employees, thanks to a newly built API that lets customers subscribe to policies and lets front-office employees narrow their searches with custom filters. But the back-office staff is unhappy with the high latency of the user interface. As a backend developer, you’ll solve this problem by adding pagination with Spring Data JPA, preventing the page from loading all the customer data at once. You’ll use JPQL to add aggregate functions that return information the back office needs, such as revenue and customer count by state. You’ll implement a REST service for uploading policy subscription data provided in CSV format and importing it into your database. You’ll also leverage domain events for sending messages when subscriptions are saved, updated, or deleted. When you’re done, you’ll know how to add REST API services, and the back-office employees will thank you for making their jobs easier!
skills learned: Add query result pagination • Implement queries with JPQL aggregate functions. Import csv files into a database in a transaction, use domain events to send messages to a JMS Queue.
Help Sneakers to the Max’s customers find the perfect sneakers! As a software engineer at the e-commerce company, your task is to improve its search engine—and hopefully sales—by fine-tuning the order of search results. You’ll adjust the index mapping to import data about sneaker release dates, popularity, and in-stock status. Then, you’ll write extensions to the Elasticsearch queries that boost recent and popular results, forcing out-of-stock sneakers lower. Finally, you’ll use everything you learned to return the most relevant sneakers using a judgment list provided by the product managers. When you’re finished, you’ll have the skills to enhance Elasticsearch queries, while Sneakers to the Max’s customers will easily find the perfect pair.
skills learned: analyze the results of different boosting mechanisms and tune them to work together
You’re a PowerShell developer working for XYZ Services Company, a consulting and outsourcing firm that recently experienced a massive failure in its IT infrastructure. While it’s working on getting the environment back up and running, you’ve been given the critical, time-sensitive task of helping avoid payroll delays. The good news is the company’s employee directory has already been extracted. The bad news is it’s been saved as plain text files, a hard-to-work-with format for payroll purposes. Applying PowerShell best practices, you’ll write scripts that parse text data and convert it into objects that are in a payroll-manageable format.
skills learned: read text files • use delimiter characters • basic regex • extract substrings from text • arrays and array indexes • create custom objects • add properties to objects
In this liveProject, you’ll build a product catalog for an ecommerce application. You’ll learn how to load data from a database and display it on an HTML page, and use integration tests to properly understand your model and ensure its accuracy. At the end, you’ll have a fully functional Spring application that loads data from the database using Spring Data JPA and displays it using Spring MVC.
UPDATED: July 2023 to use the latest versions of Java, Gradle, and Spring Boot; and updated instructional text throughout all the projects.
skills learned: front-end development using Spring MVC • accessing relation data in Postgres using Spring Data • creating database migrations using Flyway
In this liveProject, you’ll create a data pipeline that can enrich source data with currency exchange rates and converted totals. As this pipeline is updated daily, you’ll need to create a scheduled query to enrich your data. You’ll learn to load essential data into BigQuery from both CSVS and JSON, and use it to generate a daily business intelligence report for your colleagues.
skills learned: creating tables from CSV and nested JSON data • scheduling your queries and dataset updates • creating materialized views and aggregated activity tables
Hit the ground running with C# by rapidly prototyping a data retrieval app. As a new developer at Ground Truth Consulting, you'll build a proof of concept to streamline legislative monitoring. Tap into .NET's capabilities and set up a data access layer leveraging api.data.gov. Focus on productivity and type safety with C#'s top-level statements, and get hands-on experience querying web APIs and iterating quickly.
skills learned: Structure apps with namespaces and classes • Use HttpClient to make API requests
You’re the IT Developer for Rocinante, a company looking to unite its scattered IT scripts and tools into one GitHub platform. To make this easier, you’ll build a GitHub management module with PowerShell, with automatic building implemented as a GitHub action. You’ll first build your module locally, then implement a CI/CD pipeline using GitHub’s built-in DevOps tools.
skills learned: organizing module’s source code • using module manifest • using ModuleBuilder • creating build pipeline with GitHub Actions
In this liveProject, you’ll dive into the role of a software developer working on a catalog application for the Chill+ streaming service. Your boss has given you the task of developing a native version of the catalog application using Oracle GraalVM and Quarkus, in order to help manage resources as the app scales. You’ll create and test your executable with GraalVM, then build a Kubernetes-ready container for embedding the application.
skills learned: install GraalVM • build a native executable version of an API • measure the native version performance and compare them to the JVM version
Apache Camel is a lightweight and easy to use integration framework that forms the backbone of numerous distributed systems. In this liveProject, you’ll go hands-on with Apache Camel to build a working medical registration system from scratch.
Your system will help a busy hospital unite laboratory information systems, patient records, and practice management systems that track appointments and finance. Your challenges will include developing API and integration challenges for a new patient portal, and integrating it into your records system. This kind of IT portal is in high demand from any industry that wants to streamline its information, and automate costly human-fronted customer services.
skills learned: integrate heterogeneous systems with Camel • implement Camel Routes using Java DSL • expose a REST API, messaging, and other kinds of endpoints • deploy Camel routes to cloud environments
In this liveProject, you will build a backend-only web app for creating and sharing one-time secrets. You’ll create secrets with HTTP API requests to an application containing plain text, and set up a response system that will contain an ID to share with a recipient. Throughout, you’ll make use of the Go standard library package to implement your web application, handle JSON data, and write tests for your web application.
skills learned: creating an HTTP web application • handling JSON data in your applications • using Go map as an in-memory store • writing unit tests and integration tests
You’re a consultant working for Messflix Inc., a movie and TV-show streaming platform. Your task is to set up a Python prototype implementation of the data mesh to roll out the technical components of a data mesh. Using Python and pandas, you’ll write a Python function that creates an empty CSV file with the predefined attributes of your data product, builds a data catalog by creating Python functions that write to the CSV file, and sets up standardized access to the CSV datasets. When you’re done, you’ll have hands-on experience building a minimal self-serve data platform using simple techniques.
skills learned: build a self-serve data platform • build a small data catalog • consume data inside a data mesh • store data products
In this liveProject you’ll create a React web application and then integrate TensorFlow.js machine learning functionality into the app. React is highly prized by developers for its ease of building simple and intuitive frontends. Once you’ve set up your development environment and built your React-based UI, you’ll train your TensorFlow.js model with synthetic data.
skills learned: creating a React web app and analyzing app structure • creating a basic UI and event listeners in React • constructing a neural network model with TensorFlow.js
After six years of accepting only internal submissions, PrincipalStack’s cofounder would like to invite all community members to register, log in, and post comments. As the sole engineer for the publication, your task is to build the foundation for this entire system: the authorization server. Using Express on Node.js, you’ll install, configure, and test an OpenID Connect-capable authorization server. You’ll build the pages that let users create their profile, prove their identity, and end their session. You’ll also foster community participation by allowing users to log in with an email address—and without a password.
skills learned: generate RSA key pairs • generate secure, random string values using OpenSSL • displaying simple views using Express.js
In this liveProject, you’ll take on the challenge of designing and building a custom CLI using Python. Command line interface tools automate repetitive tasks and help streamline software development. Companies that use bespoke CLIs can easily manage change, smooth friction between teams, and reduce time spent on red tape.
You’ll join up with KlickBrick, a toy company whose digital expansion is grinding to a halt under mismanagement, and create a CLI framework that helps bring development teams together. You’ll need to assemble the infrastructure for your CLI, then develop functionality for onboarding employees, initializing new software project repositories, and reporting CLI usage metrics to a server.
skills learned: implementing an extensible CLI tool • translating business requirements into Integration Tests using the Behave framework • real-world software engineering practices for building a high-quality and maintainable software project
Improve developer engagement in PrincipalStack, an online publication of software development content. As its sole software engineer, your task is to create an API to expose the posting functionality of the Node.js web application. You’ll build a simple CRUD (create, read, update, delete) API and protect it with JWT-formatted access tokens issued by the authorization server, while maintaining the association between the content managed by the API and the original user who created it. When you’re done, you’ll have provided an interface for all external contributors, enhancing their user experience.
skills learned: apply best API design practices for communicating success and failures • protect API routes using JWT-formatted access tokens and authorization middleware • validate data sent to an API
In this liveProject, you’ll help travel company SimpleTravel transition their booking app from a JavaScript codebase to TypeScript. SimpleTravel is experiencing problems with its development flow due to typing errors not being caught at development time. You’ll work to fix this problem by taking an existing Node.js application and rewriting it using TypeScript features like classes and interfaces. Finally, you'll implement a new building mechanism to compile your TypeScript code and run it on AWS Lambda.
skills learned: OOP with Lambda functions • TypeScript coding
In this liveProject, you’ll step into the role of a software developer at InfoHub, an AI startup attempting to build a chatbot that can answer queries about a company’s knowledge base. You’ve already built the basics of the chatbot—now it needs to be deployed! To do this, you’ll use the LangChain feature LangServe to create a LangChain server application. You’ll build your chatbot using Streamlit and then deploy it to the Streamlit cloud.
skills learned: create a chatbot using LangServe and Streamlit • deploy to the cloud through Streamlit Cloud
You’re a senior developer at Travel World Agency (TWA), which has grown to become the largest travel agency in the world. The company has built a next-generation system that uses a microservice architecture running on Amazon Web Services (AWS). But while TWA’s success is rocketing higher, the performance of its reservations microservice is crashing and burning. As a solution, the company has replaced the microservice with a new one, using Kotlin and Spring Boot to improve performance and maintainability. Your job is to improve the performance of the new API.
With the help of the Maven Enforcer plugin, you’ll deal with dependencies that slow the microservice. You’ll use ktlint to format the source code according to a single standard, thereby increasing efficiency. You’ll create a Docker image using GraalVM and optimize it to decrease resource consumption. When you’re finished, your API will start up quicker and be more reactive, even on high-traffic days like Black Friday and Cyber Monday!
skills learned: format the source code • reduce the conflicts with dependencies • reduce the use of resources of the microservices
You’re a TypeScript developer for a large company that sells stock photography. You’re responsible for the service that ingests images, and a recent database change has broken the service, despite successful unit testing. Working in IntelliJ WebStorm, you’ll build an integration test that replicates the problem, find the cause, fix the problem, and build the infrastructure to develop more integration tests in the future.
skills learned: reproduce problems in hard-to-reach parts of a system with tests • use tests to drive bug fixes
SignalR is an ASP.NET Core library that adds real-time web functionality to your apps, enabling server-side code to instantly communicate with your client. It’s an ideal library for facilitating the lightning-fast communication needed for a real-world Internet of Things project.
In this liveProject, you’ll put SignalR into action to build and implement an airport PA system across the Internet of Things. Your challenge will include creating both the server-side web application using ASP.NET Core with JavaScript front-end and the distributed application that will be deployed on the IoT devices on the ground using .NET Core and Docker. You’ll establish your SignalR setup, enable the transfer of real-time audio data, and enable your IoT applications to both run as a single cluster and deploy on Docker.
skills learned: hosting a SignalR application on a cluster of servers • hosting a server-side SignalIR class
Micro frontends take a vertical approach to web development, splitting an application into standalone components that encompass everything from user interfaces to backend logic. In this liveProject, you’ll use the micro frontends approach to help solve a tricky issue for music streaming service Red Records.
Red Records has two separate development teams working in two separate time zones, and they are currently arguing over whether to use React or Vue.js for their frontend. Your challenge is to set up a new micro frontends architecture that will allow them to work independently, in parallel, with separate stacks, and no need to talk to each other! You’ll build two micro frontends using Vue.js and React respectively, and set up a Bootstrap client-side orchestrator to handle loading, persist authentication, and routing. Better be fast—your new app launches in just a few months.
skills learned: creating vertical micro frontend architectures • writing micro frontends as single page applications • multi-framework micro frontend architecture • user session authentication
In this liveProject, you’ll bring together multiple tools and models to construct a production-grade smart search engine. You’ll combine off-the-shelf Elasticsearch models for keyword search with your own semantic search API using transformers. Start by setting up and indexing an Elasticsearch Docker container, then quickly move on to boosting search relevance with BERT. Finally, you’ll set up a Flask API to serve a BERT model and look into customizing your search engine for your own particular topics of interest.
skills learned: Packaging and deploying with Docker • search and indexing with Elasticsearch • building APIs with Flask
Putting machine learning into production can often be a complex task. The Kubeflow platform helps streamline this process with simple and scalable ML workflow deployment. In this liveProject, you’ll put Kubeflow into action to help your team roll out their new license plate recognition deep learning system.
You’ll help data scientist colleagues by standardizing their working environment, and automating away many tedious and error-prone tasks. Your challenges will include restructuring a complex deep learning project to make it Kubeflow-friendly, and developing reusable components that can be transferred to other machine learning pipelines.
skills learned: create a machine learning pipeline that is composable and scalable • structure a non-trivial ML project to make it Kubeflow-friendly • view training runs in Tensorboard • use Kubeflow Metadata to capture and locate generated data
In this liveProject, you’ll create a Google Data Studio report that can visualise your datasets for the purpose of business intelligence. You’ll connect up numerous data sources using BigQuery to feed directly into your new BI dashboard. You’ll design and implement revenue and daily spend metrics and line graphs, and scorecards for top users.
skills learned: connect a BigQuery table as a GDS data source • create a table chart in GDS • add bar charts and slider controls to a GDS dashboard
SimpleTravel Co has just established IaC—now they’re ready to start automating all the steps of their deployment pipeline! In this liveProject, you’ll help them do just that. You’ll utilize the Amazon CodePipeline and CodeBuild services to build a multi-step deployment pipeline, automating dull manual tasks and carefully deploying your application while checking for bugs and errors.
skills learned: Automating deployment with CI/CD • progressive deployments • error mitigation
BestInsurance has an online portal with a newly built application for providing features it hopes will attract new customers. As a backend developer for the insurance company, it’s your job to implement create, read, update, and delete (CRUD) services that allow front-office staff to manage and query data as needed to perform their daily tasks. You’ll define your CRUD API, using Spring Web and the DTO pattern, and observe your components in action. Leveraging inheritance and generic types in Java, you’ll refactor the code as necessary and complete the implementation of your RESTful APIs. To ensure your solution meets BestInsurance’s high standards, you’ll test the services with Spring Test and MockMvc.
skills learned: RESTful API implementation with Spring Web and DTO pattern, Generate a SwaggerUI and OpenApi documentation with SpringDoc
You’re a senior developer at Travel World Agency (TWA). Management is surprised at the amount computing costs have increased, but before introducing potentially disruptive cost-reducing measures they need to determine how to improve the quality of the microservices. Your task is to simulate random problems, using Spring Boot’s Chaos Monkey library, to determine whether any scenarios exist that aren’t addressed by the code. To test your conclusions, you’ll use the Chaos Toolkit to generate concrete problems. When you’re done, you’ll have the skills to spotlight issues that aren’t always revealed through unit testing.
skills learned: create random problems manually that stop the execution of some components • create problems using tools like Chaos Monkey that have a set of different situations you can introduce • create automatic problems to interact with Chaos Monkey using ChaosIQ
In this liveProject, you’ll set up everything needed for reliable ecommerce checkout. You’ll integrate one-click payment options, create a PayPal developer account and user accounts for testing, and integrate with the official PayPal SDK.
UPDATED: July 2023 to use the latest versions of Java, Gradle, and Spring Boot; and updated instructional text throughout all the projects.
skills learned: use third-party SDKs in web development • maintain state between multiple requests • support different configurations for production and testing
In this liveProject, you’ll implement bug and error fixes in your microservices to reduce unnecessary and costly data traffic. You’ll implement a Circuit Breaker to prevent sending requests to unhealthy requesters, set up a Fallback method that gives microservices a default behavior with errors, and work with rate limiters to prevent large numbers of requests to an API.
skills learned: prevent send requests to unhealthy requests • give microservices a default behavior with errors • prevent a large number of requests to a certain API
In this liveProject, you’ll write a Python class to manage network connections to your server. You want your class to track the port number and the connections, but instance data is, by definition, not associated with your class. Your challenge is to explore and determine the best ways to associate data with a class and learn how to use a class method.
skills learned: write a Python class to manage network connections • explore ways to access class variables • create class methods
Successful businesses need to respond to unhappy customers fast. In this liveProject, you’ll design a new way of handling customer feedback for a Kubernetes management company. Your company gets thousands of feedback queries every minute, and it needs a way to make sure the most important ones are quickly escalated.
You’ve decided to implement a workflow that receives customer feedback via HTTP POST service calls, then funnels it through a prebuilt machine learning algorithm to identify priority messages. In order to avoid the need for future refactoring, you’ll use events to communicate between services rather than direct invocation. You’ll use Kubernetes and Knative serverless capabilities and eventing system to control the flow of data through the system and break down services into lean, serverless functions. This will ensure your service is more maintainable and cheaper to run.
skills learned: creating a Kubernetes cluster • using serverless with Kubernetes • using machine learning to classify user feedback
In this liveProject, you’ll test the functionality of a TensforFlow.js based fitness assistant and assess its capabilities of pose estimation for workout sessions. You’ll move data from a PoseNet model to a TensorFlow.js inference function that can recognize a workout type and add delays to prevent unnecessary logging duplication. You’ll then utilize TensorFlow.js’s prediction functionalities to get prediction results for your recognized workouts, pick top scores, and return the recognized workout type. Finally, you’ll use Material UI and React.JS to display a complete workout history to the user.
skills learned: reusing code for PoseNet generated human pose data collection • running the inference • updating data stored in local storage
In this liveProject you’ll use ReactJS to build an entire user interface for a machine learning-powered exercise app. Your app records its users while they exercise, and so needs to have a short delay between them pressing a button and the start of recording. You’ll use Material-UI for React to implement layout, form elements, buttons, and user messages, and set up the UI logic for your delayed training data capture.
skills learned: adding Material-UI to React project • building grid layout structure • building page elements • building form elements
Take your C# skills to the next level by implementing smart change detection on a data retrieval app. As a developer at Ground Truth Consulting, you'll enable an application to automatically check for updates across legislative APIs. Store responses to disk and compare new results to spot differences, send alerts to stakeholders when fresh bills are introduced, and build reusable comparison logic to support future data sources. You’ll then add unit tests to validate critical flows, prevent regressions, and refactor with dependency injection for modular and testable code. Whether you're new to C# or a .NET veteran, this project is ideal for leveling up your skills.
skills learned: Error-handling techniques • File-handling techniques
Max, the owner of My Little Cookie Shop, wants to take his online menu from meh to marvelous. Using CSS, you’ll style and animate the pastry pictures so that they flip around when clicked, revealing the details on the back, just like a real-world, three-dimensional card. Also, to respect all users, you’ll use media query to disable animations for users whose browser settings indicate they prefer reduced motion.
skills learned: style cards • add flip animations • use the backface-visibility property • use media queries to write accessible code
In this liveProject, you’ll implement methods of compression to reduce the size of data that microservices return as a response. You’ll use the built-in compression tools of Spring Boot to set up microservices data responses in a gzip format, then explore using databases like Redis to compress data with the serializer of data offered by Spring Boot.
skills learned: compress traffic between different microservices • compress traffic between databases like Redis and microservices • remove the null values in the response of different microservices
As a PowerShell developer, your critical mission is to help XYZ Services company, the consulting and outsourcing firm you work for, avoid payroll delays after a massive failure in its IT infrastructure. To meet a requirement in the input process to payroll, the HR department needs an update to the state field in the source file to be changed from the employee’s state of residence to the state of the office they report to. Using PowerShell best practices, you’ll write a script that uses the switch statement, PowerShell cmdlets, and advanced regex expressions to read the input file, return a list of the unique states within the file, replace the state value according to the predefined conditions—and keep those paychecks coming.
skills learned: read text files • edit text using replace operations • regex patterns including lookaround • use of the switch statement to modify text • write to text files
Svalbard is quickly becoming a household name as customers all over the world bring the online store’s furniture into their homes. But Svalbard’s backend applications run on legacy mainframes that are increasingly expensive to scale. That’s why the store has adopted a more flexible modern deployment model. As a Rust programmer, your task is to provide its developers and operators with a load-testing CLI tool that simulates a multitude of real-world scenarios.
Using Tokio, Serde, and clap, you’ll add functionality for users to configure the number of connections and requests, as well as other parameters. You’ll gather and display immediate feedback, empowering users to spot and correct misconfiguration early on. You’ll calculate statistics on latencies in your application and display them in human- and machine-readable output, providing the maximum benefit from the gathered data. When you’re done, you’ll have a CLI that delivers users high configurability, reliable signal handling, and a means of providing immediate feedback for more nimble, cost-effective results.
skills learned: design CLI applications • parse user input
In this liveProject, you’ll take on the role of a Java/Kotlin developer tasked with implementing the service template’s observability-related features—key aspects of production-readiness—including a health check API, application metrics, and distributed tracing. Work will be done in Kotlin.
skills learned: health check API • application metrics • distributed tracing
In this liveProject, you’ll set up and configure a Spring Cloud Gateway to act as an entry point for applications to connect to a notification management platform. Spring Cloud Gateway provides a flexible way of routing requests based on criteria, and focuses on cross-cutting concerns such as security, resiliency, and monitoring. It’s the perfect API gateway to implement complexity separately from the client.
skills learned: use of @Configuration Annotation for configuring the routes in the API Gateway Service • create a bean to configure the routes
You’re a TypeScript developer for a large company that sells stock photography. You’re responsible for the service that ingests images, and this service depends on another subservice: the pricing microservice. As proven by their individual unit tests, each service works as specified. But when the services are combined, new customers are locked into one pricing table—even those that should have access to pricing that fluctuates depending on factors like promotions, flash sales, and price-tuning. Working in IntelliJ WebStorm, you’ll solve this problem by writing an integration test that connects and runs the two services together, letting you reproduce the problem locally.
skills learned: reproduce “ghost in the machine”-type problems with integration tests • create in-memory Nest.js applications
BestInsurance, an insurance company, has an online portal with a newly built application for providing features it hopes will attract new customers. As a backend developer, it’s your job to create the persistence layer for the application. You’ll define the database tables and configure a Liquibase changelog to automatically create the tables using SQL. This will allow you to track and manage database versions in order to avoid data loss in production when you change the model. To persist your data, you’ll map Java classes to the database tables using Spring JPA, then implement the basic create, read, update, and delete (CRUD) operations through the JPA repositories for the persistent entities. To verify your mapping is correct, you’ll implement unit testing with JUnit 5 tests, TestContainers, and a PostgreSQL database.
skills learned: Implement Spring Data JPA CRUD Repositories, Define the database DDL with Liquibase and SQL, Implement ORM (Object Relational Mapping) with Entity Classes, Implement JUnit Test cases with Spring Test and TestContainers
As the star IT professional at RetroToy, an online retailer that sells replacement parts to toy and game hobbyists, you’ve been tapped by the IT director to resume work on a previously started project for generating reports from RetroToy’s e-commerce website and emailing them to the management team. Using PowerShell and existing SQL Code, you’ll connect to the site’s SQL Express Database and query data from it, and you’ll protect sensitive information using the SecretManagement and SecretStore modules. You’ll export data to a visually appealing, email-friendly format using CSS and HTML, then send the report in an email using SendGrid, a popular tool among PowerShell users.
This project is for Windows only.
skills learned: connect to SQL Server • secure secrets • use SendGrid to send emails • use HTML to format data
In this liveProject, you’ll use Docker to containerize a Spring Boot application and a PostgreSQL database. Containers make your application much easier to scale, and are a key step towards cloud deployment. You’ll use Docker Compose to see how your containerized applications and services interact, and build Dockerfile-based containers with kaniko.
skills learned: running containers in Docker • networking with Docker • building Dockerfile-based containers with kaniko
In this liveProject, you’ll work with the Processing environment to create and animate modern artwork. You’ll see how you can use code to replicate the abstract colors and shapes of Russian artist Kazimir Malevich and animate your reproduction into a moving 2D image, then explore the work of American sculptor Alexander Calder and how it can be reproduced in both 2D and animated 3D.
skills learned: Processing canvas and the 2D/3D coordinate system • Processing drawing primitives and transformations in 2D/3D • Processing draw loop and animation basics
In this liveProject, you’ll work with p5.js to create and animate modern artwork. You’ll see how you can use code to replicate the abstract colors and shapes of Russian artist Kazimir Malevich and animate your reproduction into a moving 2D image, then explore the work of American sculptor Alexander Calder and see how it can be reproduced in both 2D and animated 3D.
skills learned: p5.js canvas and 2D/3D coordinate system • p5.js drawing primitives and transformations in 2D/3D • p5.js draw loop and animation basics
In this liveProject, you’ll create a continuous integration pipeline for your tests. Continuous Integration (CI) automates the testing of code whenever the code changes. This ensures code quality remains high and encourages regular merging and testing. You’ll use Azure DevOps to create and run a CI pipeline to build code, then run XUnit-based tests, set up filters for different tests, and add code coverage for analysis of run results.
skills learned: set up a CI server to automatically run tests • decide which tests to run on each pipeline • collect and analyze data from your CI run
In this liveProject, you’ll prepare an old monolithic application for migration to microservices by converting it to be a REST-based service. You’ll break up an established monolith by using bounded contexts to give your microservices responsibility over a smaller part of the business domain. You’ll convert these microservices to use RESTful APIs, allowing for the existing business logic to remain intact, and leaving behind a static Thymeleaf-based user interface allows another team to write a modern front end.
skills learned: Spring Boot • testing with Spring Boot • modernization techniques
Future Finance Labs is creating an exchange platform for professional traders in hopes of expanding its customer base. As the fintech company’s star developer, your task is to build a matching engine that enables traders to find the best trading partners. Using Rust, the company’s chosen programming language, you’ll build the trading platform, the backbone of the engine, tying the accounting and trading components together. You’ll create the commands that enable interactions with the trading platform, parse input, and display the transaction log to the user. When you’re done, you’ll have built a fully functional matching engine, and you’ll have practical experience working with complex Rust data structures and iterators as well as applying mutable borrowing and ownership.
skills learned: financial algorithms • Rust collections • iterators
You’ve just been hired as a software programmer for SongRiver, a music-streaming startup whose success is skyrocketing. With so many new employees, it’s hard to keep everyone straight, so the internal tools team has asked you to add a page for each employee as the first step toward building an employee directory app. You’ll set up a React Router to provide access to employee information. Using React Query, you’ll fetch employee data from the server so that it can be added to the employee page. Finally, you’ll use Chakra UI to display the employee data according to the provided specifications. When you’re finished, you’ll have created a page that accepts and provides access to employee data—and your manager will be humming a happy tune.
Some sections may contain information that is now outdated due to the rapid advancements in the technology field, notably the initial libraries, Docker setup, and some documentation links. Regardless, this liveProject remains an invaluable resource for intermediate users.
skills learned: React Router routes and URL params • React Query data fetching • Chakra UI design system
Level up your C# skills by evolving an API data retrieval prototype into a robust application. As a developer at Ground Truth Consulting, you'll expand the initial Federal Register API demo into a versatile tool to streamline legislative monitoring. This project lets you flex your C# muscles on real-world APIs while prepping for enterprise development. You’ll refactor with classes, tuples, and records for more maintainable code, cache API responses in memory to optimize performance, and integrate the Congress API to showcase multi-source data aggregation.
skills learned: C# data structures like lists and dictionaries • Error-handling techniques
Streamline Budzykfarm’s time management process by eliminating an unnecessary step. Currently, it logs time management data on paper, then enters it later into the accounting system. Your task is to perform the first step for its new farm management web application: Create the web pages that managers and workers will use to enter the necessary data. Using Blazor, you’ll set up this server-side project for development. Then, you’ll lay out the no-frills pages using MudBlazor, ensuring that the pages are easy to use, functional on both computer screens and mobile devices, and ready for future enhancements.
skills learned: clean files and folders in a server-side Blazor project • set up layouts with MudBlazor • set up the UI for future development in Blazor using MudBlazor component library and regular HTML with CSS
In this liveProject, you’ll implement support for storing secrets in a file rather than memory. You’ll use the Go standard library package to encode and decode JSON objects to and from files, while ensuring your code functions correctly when handling concurrent requests. You’ll also learn how to make HTTP requests from your program, and set up a CLI for your app.
skills learned: handling JSON data • files as a persistent storage mechanism • command line HTTP clients
In this liveProject, you’ll close the gap between “data analyst” and “software engineer” by building a working data platform. You’ll join up with AnomalousDex Inc., a startup that specializes in personalized end-to-end data products, and create a working prototype of their anomaly detection platform to showcase to prospective customers. This requires connecting up multiple cross-discipline components, from data science to systems management.
This platform consists of three principal components: a service that serves the anomaly detection data model, the modeling platform, and a dashboard visualization tool. Your challenge is to develop all of these features, going hands-on with software architecture, data engineering, microservices, and dockerizing. You’ll also dive into the essentials of monitoring and metrics, and even train an unsupervised learning anomaly detection model!
skills learned: design a data platform architecture consisting of several Dockerized components • train an anomaly detection model with scikit-learn and deploy it in a web service • monitor the web service and anomaly detection model with Prometheus and Grafana
In this liveProject, you’ll use the Amazon DynamoDB NoSQL database to replace SimpleTravel’s relational database. The company decided to use DynamoDB as its flexible schema is well suited to the changing nature of the data being stored. Furthermore, it’s fully managed by AWS so the company doesn’t need to deal with servers and low-level configurations. Once you’ve created the data store, you will implement a Lambda function to query data from it.
skills learned: DynamoDB and its main features • querying a DynamoDB table using a Lambda function
Logistica Transport has grown, which means they need to replace their outdated desktop app with a brand new web app solution. In this liveProject, you’ll help them kick off this transformation by swapping their current Excel-based storage system for a mySQL database. You’ll need to create and install the database from scratch, as well as set up the necessary tables to handle the input and output streams of data. This database is a vital foundation for how Logistica’s web app will function.
skills learned: MySQL language
Make your Java/Kotlin developer colleagues’ lives easier by enabling them—and you!—to quickly maintain services that were cloned from the service template. In this liveProject, you’ll extract a microservice chassis from the service template project, create Gradle plugins, and publish chassis artifacts and template source code. When you’re done, you’ll have a small service template project that uses a much larger microservice chassis framework. (Your colleagues will thank you!) Work will be done in Kotlin.
skills learned: refactor a service template to extract common logic and build logic into a reusable service chassis framework
E-commerce company Sneakers to the Max wants to strengthen its bottom line with an improved search engine that provides better and quicker results to customers. As a software engineer, your task is to create a structure for importing data into the search engine. You’ll write a Python script to import sneaker data into Elasticsearch. Next, you’ll create an index for the sneakers and use aliases to keep the data available while importing a fresh catalog. To verify your import and gauge the quality of your data, you’ll create a Kibana dashboard. Using Elasticsearch Bulk, you’ll improve the indexing performance of the sneaker data you need. When you’re finished, you’ll have created a complete structure for your imports that enables frequent, regular updates without downtime.
skills learned: import JSON objects from a file using standard Python language constructs • use Python built-in file IO mechanisms • interact with your Elasticsearch cluster using the Elasticsearch library for Python • verify if the import was run successfully using Kibana
In this liveProject, you’ll go hands-on to initiate a Quarkus project for a video streaming service. You’ll step into the shoes of a software engineer for Chill+, a streaming service looking to reduce resource consumption and take control of the infrastructure cost budget of its scaling Java-based microservices. You’ll implement and test a first version of the Chill+ Catalog API by using the Quarkus live reload feature, and package the application as a Java archive. You’ll then measure how Quarkus impacts the memory and start-up performance of your application.
skills learned: create a Java Quarkus project using the code.quarkus.io • use Quarkus extensions to add features to the application • configure Maven to trigger Quarkus build time augmentation
You’re a senior developer at Travel World Agency (TWA), which has grown to become the largest travel agency in the world. The company has built a next-generation system that uses a microservice architecture running on Amazon Web Services (AWS). But as TWA’s success has soared, the performance of its reservations microservice has taken a nosedive. TWA has decided to replace the reservation microservice with a new one, using Kotlin and Spring Boot to improve performance and maintainability. Your task is to review the architecture of the existing microservice and create a new one that has the same endpoints as the old one, saves all relevant information, has a default error handler, and communicates with other microservices to access other vital information.
skills learned: create the basic structure of a microservice • persist the information and interact with other microservices • transform the exceptions in a common structure of error
As the sole DevOps engineer for BuildIT, a fast-growing digital agency that builds websites and applications for its clients, your task is to create a self-service platform that enables the development team to deploy their own test/developmental environment (instead of asking you to do it for them). You’ll build a TypeScript API that will interface with a simple frontend UI (provided to you), further automating a semi-automated CDKTF (CDK for Terraform) workflow. When you’re done, you’ll have built a simple, user-friendly, interface that empowers developers to create, view, and delete environments on their own—leaving you free to focus on more productive pursuits.
skills learned: design an API • store data on DynamoDB • run background processes with Child Processes API • run Git programmatically
In this liveProject, you’ll step into the role of a Platform Engineer and build a command-line application for generating a web application scaffold using Go. This incredibly useful tool will ensure that all the services across your company follow standard practices and match a preset source code structure. Your colleagues are excited—with this new tool they can bootstrap their projects more quickly and ship features faster. Your challenges will include using the Go standard library package to implement a command-line application, creating web application templates, and writing end-to-end tests.
skills learned: set up a standard command line interface • embed data within an application • use templates to generate and render customized web application scaffolds • write tests
In this liveProject, you’ll create the backend for a company support live chat feature using the WebSockets framework. This backend will form the foundation of a new customer service for your company. You’ll implement a backend that can receive requests from browsers and set up WebSocket connections between customers and support personnel. You’ll even preserve the chat histories.
In this video, Natan Streppel, a software engineer and frequent Manning partner, explains what he likes about this liveProject.
skills learned: creating a WebSocket server • using map as an in-memory store
Svalbard Inc.’s Scandinavian furniture is quickly becoming a living room staple in homes across the globe. To tame the cost of its success, the company has decided to migrate from expensive-to-scale legacy mainframes to a more flexible, modern deployment model. Your task is to implement continuous load testing and reporting. Using hyper and Tokio, you’ll send HTTP requests as you create a proof of concept. You’ll drive multiple concurrent connections using Tokio, gather and improve metrics from these connections by designing an asynchronous execution flow, and add robust error handling. When you’re finished, you’ll have a fully functioning, scalable HTTP load-test application.
skills learned: concurrent programming • async with Tokio • use hyper
In this liveProject, you’ll use the MQTT protocol to allow IoT devices to communicate with a central data broker. You’ll simulate MQTT devices, then implement a MQTT broker that can dispatch MQTT messages from your IoT gateways. Finally, you’ll secure these communications from potential intrusion by attackers.
skills learned: Vert.x MQTT client and server
Welcome to Musify! You’re a backend developer for a SaaS company that helps startups bring their products to market. Musify’s new client wants to launch a music-streaming app connecting music artists and end users. For this large and complex application, Musify’s development team has chosen to take advantage of the microservices architecture, and it’s your job to create the first microservice for the app using Node.js technology. You’ll start by setting up the framework for the server using Express.js. Then you’ll build a CRUD (Create, Read, Update, and Delete) REST API in Node.js and Express that will allow artists to upload, find, and delete their music audio files as well as letting end users view and listen to songs according to their preferences. When you’re done, you’ll have experience using popular Node.js technology to create a backend REST API ready to deploy.
skills learned: create a CRUD application with Node.js and Express
In this liveProject, you’ll take on the role of a web developer with a new client: a spa company called AR Salon. AR Salon wants to update its old over-the-phone manual booking system into a modern web-based service. Your challenge is to design and build this system, which will allow users to view available slots for spa services, pay for services, and retrieve customer information. To accomplish this, you’ll use Java and Spring Boot to construct a reliable backend, and JavaScript and React to build a responsive user interface.
UPDATED: July 2023 to the latest version of all technologies and text.
skills learned: create production-ready apps • use of Spring Boot Web API • Swagger, PostgreSQL • integrate a payment system • create and scan QR code
In this liveProject, you’ll explore and experiment with the D3.js library’s flexibility as you evolve a simple histogram into an intricate and interactive visualization. You’ll build visualizations to illustrate the gender pay gap in sports, expand them to include individual players, and even add special interactive visual effects.
skills learned: binning data with D3 • generate a histogram, a curve, and a density plot • using D3’s force simulation to position elements within a visualization • listening to mouse event to reveal a tooltip
Musify, a SaaS company that helps startups bring their products to market, has a client who wants to launch a Spotify-inspired app that will connect music artists with their fans. Musify has already built the first microservice for the app in Node.js and deployed it on an Azure container registry. As a software engineer at Musify, your job is to create a microservice for storing audio files on Azure and enable communication between microservices. You’ll create an Azure Storage account, upload an audio file to the account, and write the HTTP request handler for downloading and streaming the file. You’ll use Docker Compose to run and manage both microservices, and you’ll call one microservice from within the other using the HTTP package. Lastly, you’ll connect the first microservice to a MongoDB database to store the song records. When you’re done, you’ll have the skills and knowledge to build and manage multiple microservices and connect databases to your application using Docker and Docker Compose.
skills learned: Set up a MongoDB database with Docker • run multiple services using Docker Compose • use HTTPfor communication between microservices • download files from Azure storage • upload files to Azure storage
In this liveProject, you will complete a half-finished prototype tool designed to improve risk management in fund strategies. You’ll transform the existing code to use async programming, use concurrent requests to fetch and process data for the tool, and output data on the command line in a CSV format. Once you’ve built the basics, you’ll upgrade the CLI’s performance to concurrently fetch stock data every 30 seconds.
skills learned: async programming • using async streams • unit tests in async environments
In this liveProject, you’ll use the “dark magic” of secure multiparty computation (MPC) to create a dating game app. MPC lets a group of participants run a joint computation over their inputs while keeping these inputs private, and this dating game will stand as proof-of-concept for other uses for the technique. You’ll develop a game that matches participants if they both like each other, and use privacy-enhancing cryptography to make sure sensitive information cannot leak. Your project will be created using Rust, which is a perfect choice for cryptography thanks to its guaranteed memory safety and other low-level language features.
skills learned: build a simple application that interacts with the command line • use the Rust standard library to build logic and tests for the application
E-commerce sites handle valuable personal information such as names, addresses, and credit card details. This makes them ripe for malicious attacks. Successful web developers use penetration tests—simulated attacks on your own applications—in order to spot vulnerabilities and shore up security.
In this liveProject, you’ll take on the dual role of both attacker and defender of a vulnerable e-commerce site. You’ll start out wearing the black hat of a hacker as you perform reconnaissance, exploit vulnerabilities with specialist tools, and attempt to extract data. Once you’ve cracked open the holes in your system, you’ll step into the defensive role to fix vulnerabilities in your code that have led to injection attacks. This liveProject comes with full access to a virtual training web application, so you can experiment without endangering your own software.
skills learned: information gathering • resource enumeration • manual attacks • vulnerability discovery • attack persistence • secure programming
As a systems administrator, you need to be sure the sites, apps, and networks you oversee are safe from attacks. Hackers and other attackers are constantly on the prowl for weaknesses, and one of the best ways to counter them is with penetration testing. These simulated assaults on your own applications reveal hidden weaknesses and let you patch and harden your own defenses before they can be exploited.
In this liveProject, you’ll take on the dual role of both attacker and defender of a vulnerable e-commerce site. You’ll start out by attacking your own systems, using browser development tools to map the attack surface of a website, gaining access with a SQL injection attack, and extracting valuable data. With the flaws in your system revealed, you’ll step into the defensive role to harden your system’s security, set up file monitoring, and work to prevent future attacks. This liveProject comes with full access to a virtual training web application, so you can experiment without endangering your own software.
skills learned: information gathering • resource enumeration • manual attacks • vulnerability discovery • attack persistence • secure programming
In this liveProject, you’ll use Spring Boot and Gradle to create the basic mobile banking application. You’ll begin by creating the domain object, REST Controller, and supporting service to present the data, then test your application to ensure it’s working properly. You’ll add JPA to store your users’ transactions, then finish up with end-to-end testing of your whole app.
skills learned: basics of Spring Boot • create a REST Controller with Spring Web • JPA to persist state to a database • using RestAssured to perform integration tests on Spring applications • use Testcontainers to perform tests on your JPA code
In this liveProject you’ll step into the shoes of a developer at PharmaChain Iberia, a pharmaceutical supply chain company. A big global competitor has recently set up shop in your region and has been steadily gaining market share, thanks to hyper efficient business process automation in its supply lines. This automation service can receive and read delivery notes ten times faster than the admin staff in your company—and you need to innovate fast to keep your status as the regional market leader. You’ve been tasked with implementing your own company-wide automation solution, using Python to automate your processes. To achieve this, you’ll use Python to iterate through subfolders of your current text-based PDFs and PDF form files and extract field keys and values. You’ll write scripts that can identify field IDs on web forms that correspond to the PDF documents, and automatically populate the web forms with information extracted from your PDFs—no manual data entry needed! Finally, you’ll prepare a report detailing your conclusions for your manager at PharmaChain.
skills learned: automate repetitive manual processes in Python • extract data from PDFs • web page resource identification • dynamically assign values to web form fields using autogenerated JavaScript
In this liveProject, you’ll set up and tune a TensorFlow.js PoseNet model in a React web app. PoseNet allows real-time human pose estimation in your browser, all through the magic of TensorFlow.js. You’ll enable a WebGL backend, set up a system where PoseNet can utilize a webcam stream for its data input, and establish a canvas that can draw on top of an estimated pose.
skills learned: setting up TensorFlow.js PoseNet model in React Web app • enabling a WebGL backend • setting up Webcam live stream processing
In this liveProject, you’ll deploy the Quarkus catalog on a Kubernetes cluster powered by minikube. Taking on the role of a software engineer for the Chill+ streaming site, you’ll seek to ensure your site can scale in a cost-effective manner once you deploy the Chill+ Catalog API on a Kubernetes cluster. You’ll use Quarkus extensions to package your application as a Docker image and generate the required manifest files to deploy on Kubernetes.
skills learned: initialize a Kubernetes cluster using minikube • manage basic Kubernetes objects to deploy a PostgreSQL database • build a container image using Quarkus
In this liveProject, you’ll run a containerized Spring Boot application and a PostgreSQL database in Kubernetes. Kubernetes manages the entire lifecycle of containers, making them easy to scale. It’s the best-of-breed cloud container orchestration framework, with an active open-source community of contributors.
skills learned: setting up and running desktop Kubernetes • managing multiple deployments in namespaces • running PostgreSQL as a Kubernetes StatefulSet
Congratulations! You’ve recently been hired as the sole DevOps engineer for BuildIT, a fast-growing digital agency that builds websites and applications for its clients. Your first task is to automate the setup of its infrastructure. You’ll write a set of TypeScript configurations for CDK for Terraform (CDKTF), a popular infrastructure as code (IaC) tool, establishing a deployment pipeline on AWS that detects changes to a specific branch of a sample Git repository and automatically deploys new versions of the application to Amazon Elastic Container Service (ECS). When you’re done, you’ll have upgraded BuildIT’s infrastructure with automated deployment that will scale with its success.
skills learned: define infrastructure with TypeScript • provision infrastructure with CDKTF • deployment pipelines with CodeBuild
You’re a software engineer at TechPower, a consulting company that wants to expand its reach in the tech market by incorporating more programming languages and technologies. This will help it create products while hiring from a more diverse pool of engineers. For TechPower’s latest project, your task is to design an independent music-sharing platform where new artists can upload their music, putting it in front of new eyes (and ears!) for free. Using Simple Build Tool (SBT) and IntelliJ IDEA, you’ll set up your environment to prepare for running a project in Scala, a language that combines object-oriented programming and the functional paradigm. Keeping in mind the platform's users and the kinds of content it will host, you’ll define the main entities and dependencies as part of a Unified Modeling Language (UML) diagram. You’ll implement your design with Scala classes and traits, preparing the utility for function additions later on.
skills learned: system design with UML diagrams and Scala code • software engineering with Scala (immutable data structures, pattern matching, higher-order functions, partial functions) • unit testing with Scala
In this liveProject, you’ll create and utilize quantum oracles to determine whether a given function is balanced or constant. You’ll utilize unique quantum superposition to determine algorithmic accuracy over just a single pass of the outcome, potentially massively speeding up systems.
skills learned: write a quantum algorithm with Amazon Braket SDK • implement a quantum circuit to determine whether a given function is balanced or constant • use oracles with a quantum circuit • implement input and output qubit registers
Failure is not an option for Sigma Corp. As a lead data scientist for the large conglomerate of energy production companies, it’s up to you to help ensure interruption-free operations by developing a means for detecting anomalies that signal potential problems. Using metrics, including the receiver operating characteristic (ROC) curve and the area under curve (AUC) score, you’ll evaluate anomaly detection algorithms. You’ll build a z-score anomaly detection algorithm, which focuses on a single feature and provides a simple benchmark, and you’ll apply it to a dataset to establish a reference for comparison. When you’re finished, you’ll have a firm grasp of z-score anomaly detection, classification error categories, and evaluating anomaly detection algorithms.
skills learned: z-score method • evaluate algorithms using ROC AUC metrics • basic synthetic anomalies
You’re the sole DevOps engineer at BuildIT, a fast-growing digital agency that builds websites and applications for its clients. The company has an automated infrastructure with a simple user-friendly interface and user authentication system that constitutes an Internal Developer Platform (IDP). But as the IDP stands, one typo or missed configuration option can lead to application failure. Your task is to minimize these potential problems by creating a pipeline that parses BuildIT’s infrastructure CDKTF code and populates a DynamoDB table with the list of found environment types. You’ll use the entries in the database to populate a dropdown in the UI for selecting the environment type and a table of required configurations. When you’re done, you’ll have implemented client-side validation—and taken BuildIT’s IDP from rudimentary to robust.
skills learned: deployment pipelines with CodeBuild • define interfaces with JSON schema • build user interfaces with React.js
In this liveProject, you’ll utilize Python dictionaries to efficiently combine a file of product info and a file of sales entries. You’ll take on the role of a data engineer in a company that has been modernizing its sales systems, and tackle a common data merging task to help generate useful reports. Solve the challenges of this project, and you’ll understand the real power and flexibility of dictionaries and how they are used literally everywhere in Python.
skills learned: basic dictionary manipulation for adding and accessing data, in, get() • ways to handle missing keys
In this liveProject, you’ll use the powerful D3.js data visualization library to build an infographic of the top songs of 2020. You’ll be working with data taken from the MRC Data Year-End Report, and develop three charts that each explore some of the core building blocks of D3.js—selections, appending elements to the DOM, scales and data binding. Finally, you’ll extend your newfound skills to developing a bubble chart from scratch, along with axes and a legend.
skills learned: set up a local environment for D3 development • selection of HTML and SVG elements in the DOM • appending elements to the DOM • binding data to DOM elements and using this data to size and position them
You’ve been striking a chord at SongRiver, the popular music-streaming platform where you’ve been working for the last two weeks. Feedback for the employee directory app you’ve been building is mostly favorable, but it also suggests that the user experience (UX) could be improved if the page were more informational and visually appealing, especially at specific times. You’ll use React Query and Chakra UI tools to indicate when the app is fetching new data or refetching data, and when there’s been an error fetching data. When you’re done, your app will display loading and error indicators that are both useful and easy on the eyes.
Some sections may contain information that is now outdated due to the rapid advancements in the technology field, notably the initial libraries, Docker setup, and some documentation links. Regardless, this liveProject remains an invaluable resource for intermediate users.
skills learned: UI indicators that display loading and error states of React Query
In this liveProject, you’ll use the Istio service mesh to automatically generate tracing spans for the microservices in the eCommerce application. Istio installs a sidecar proxy for each microservice that runs in the service mesh. That proxy intercepts the HTTP requests between microservices, generating a span for each request. This method avoids the need to write large amounts of tracing code, and is an excellent choice when working with legacy systems or small development teams.
skills learned: install Istio with Jaeger addon in a Kubernetes cluster • read and forward tracing related HTTP headers in a microservice
BestInsurance, an insurance company, wants to attract new customers. As a backend developer, your task is to extend the features of the company’s portal to let customers subscribe to new policies. You’ll use Spring Initializr to create the project structure for a basic Spring Boot application, and you’ll configure the necessary dependencies. You’ll build Docker images for running the application, using both Maven and Gradle plugins, and you’ll create Docker compose services for running the application using your Docker images. When you’re done, you’ll have built a basic Spring Boot application that’s ready to connect to a database.
skills learned: define a Spring Boot application with Spring Initializr, Configure build with Maven and Gradle, run the defined application in a Container with Docker, and Docker Compose
You’re a senior developer at Travel World Agency (TWA), which has grown to become the largest travel agency in the world. The company has built a next-generation system that uses a microservice architecture running on Amazon Web Services (AWS). But while TWA’s success is on the right track, the performance of its reservation microservice is off the rails. As a solution, TWA has replaced the microservice with a new one, using Kotlin and Spring Boot to improve performance and maintainability. Your job is to document the API endpoints for this new microservice—following the Open API 3 standard—to reduce the risk of someone invoking the endpoints incorrectly. You’ll also create custom rules for validating the documentation in an external library, allowing for reuse in other projects across the company.
skills learned: document the different endpoints using Open API 3 • determine whether the documentation follows the standard format
When your house is on fire, and you need to save your priceless art in a panic room, what are you going to do? Write a Rust program to solve the “knapsack problem” of course! In this liveProject, you’ll tackle this problem—one of the more challenging ones in computer science. The knapsack problem is known for its difficulty, as its possible solutions grow exponentially as the number of items increases. You’ll work with different methods to solve the problem, including recursion and dynamic programming techniques.
skills learned: exhaustive search • backtracking • branch and bound • complex dynamic programming
Sigma Corp, a large conglomerate of energy production companies, has recently implemented anomaly detection algorithms and is generally pleased with their performance. However, analysts report that not all anomalies are being identified and the algorithms are too slow at times. As a lead data scientist at Sigma, it’s up to you to address these concerns. To increase the robustness of the algorithms, you’ll implement and optimize the probability-based Empirical Cumulative distribution-based Outlier Detection (ECOD) method, an alternative to statistical methods. You’ll benchmark the ECOD method in order to compare its performance with the statistical MD and PCA methods Sigma is currently using. When you’re finished, you’ll have firsthand experience implementing the highly efficient ECOD method to detect anomalies in multidimensional data.
skills learned: ECOD method
At Interpop, a positive experience for users is priority number one. As a Kubernetes administrator for the music streaming service, you’re responsible for securing the Kubernetes platform where the streaming service runs and maximizing resource usage to provide a trustworthy, reliable, and performant system. You’ll change the cluster API configuration to allow access only to people and machines that require it. You’ll back up and restore the vital etcd datastore, minimizing potential downtime in the event of a disaster. To learn to identify errors caused by changes, you’ll make a change in the kube-system namespace and check the pod logs for any resulting problems. Then, with an eye to the future, you’ll patch Kubernetes by updating the control plane components via kubeadm, setting it up for bug fixes and new features. By the end, your Kubernetes cluster will be impenetrable, and that’s sure to be music to users’ ears.
skills learned: etcdctl • updating Kubernetes • updating system components on cluster nodes
In this liveProject, you’ll take on the challenge of encrypting web traffic to the ReadBytes news aggregator site. ReadBytes uses a REST API to distribute its content, and you’ll encrypt traffic with the popular open-source web server NGINX. You’ll inspect HTTP traffic, implement HTTPS protocols, and then inspect the HTTPS traffic again.
skills learned: encrypting traffic • reverse proxy with NGINX
The development teams at Messflix, a movie and TV-show streaming platform are pushing domain data products through their newly implemented data mesh. Now the CTO has tasked you, their consultant, with striking a balance between the benefits of the data mesh, the freedoms the data products have, their usefulness, their interoperability, and aspects of their security. You’ll use Python and pandas to write policies that check the registration and pushed data, helping users provide all the required registration information. You’ll create tooling to classify data into categories for improved data labeling, and protect sensitive data with pseudonymization functions. When you’re done, you’ll have learned skills for federated computational governance that balance the benefits of data products with the benefits of the data mesh.
skills learned: understand computational governance • implement data policies for data products as well as individual data pieces
Budzykfarm’s new farm management system has existing Blazor pages, but they don’t do anything just yet. That’s where you come in. First, you’ll set up a SQL Server database and establish procedures for entering the data on the UI pages using Entity Framework (EF) Core. Then, you’ll bind input to the pages’ MudBlazor components. When you’re done, managers at Budzykfarm will be able to easily enter worker data and assign duties.
skills learned: set up a Visual Studio project for an SQL Server database • set up EF Core for use in a .NET 6 project • set up objects in Blazor pages and bind them to inputs • best practices for retrieving data using EF Core • create a new record from references of existing records
In this liveProject, you’ll use AWS Step Functions to preserve service coordination between newly split microservices functions. This cooperation between services is vital for large-scale microservices architectures. Luckily, the built-in Step Functions feature of AWS can supervise your microservices orchestration and ensure their continued reliability and scalability.
skills learned: use exception in your Lambda function • catch Lambda exceptions in AWS Step Functions state machine
SimpleTravel has grown—and now your boss wants multiple teams to handle different microservices that all interconnect and communicate through the exchange of domain events. You’ll be overseeing this by developing a prototype event-driven application that’s fully serverless. Your system will be built on three core principles: automation, decoupling, and type safety. You’ll begin by setting up shared infrastructure for your team, then implement microservices for the site’s checkout and shipping. Your new system will be poised for success, combining efficiency, flexibility, and reliability.
skills learned: Event-driven applications using Amazon EventBridge • Microservices
In this liveProject, you’ll explore the unique way that exceptions work in Python. Python makes frequent use of exceptions, but they often function in a very different way than other programming languages. You’ll experiment with the basic try-and-except structure used for handling exceptions, then dive into using inheritance with exceptions, and creating your own hierarchy of exceptions.
skills learned: how Python exceptions are created, raised, and handled • what is in an exception object • how inheritance works for exceptions
In this liveProject, you’ll secure a financial application using the out-of-the-box security features of Spring. You’ll set up authentication servers, add users, and configure rules for your application.
skills learned: client credentials in an OAuth 2 workflow • securely grab data from a third-party with Spring WebClient • periodically poll data from a third party with the Spring scheduler
In this liveProject, you'll take over administering a zoo automatically by crafting three different kinds of expert systems to help customers determine what animal they’re looking at. An expert system captures an expert's know-how by encoding it in a knowledge base. You’ll create a prototype 20-Questions-style game expert system, then expand it with logical rules and Boolean statements to build more powerful and realistic expert systems.
skills learned: expert system concepts • the Animal Game
Ensure your system can accommodate even unstable dependency services. You’re a TypeScript developer for a large company that sells stock photography. You’re responsible for the service that ingests images. Unfortunately, the ingestion process is being negatively affected by a flaky external web service that the ingestion engine uses, and the problem is not reproducible in unit testing since there’s no connection to the external service at that time. Working in IntelliJ WebStorm, you’ll establish an in-memory HTTP service, configure it to simulate a dependency service, write a test to reproduce the error, and use the test to build robustness into your system.
skills learned: dynamically configure Nest.js containers • mock an HTTPservice dependency
In this liveProject, you’ll build an extraction pipeline to transfer data from a legacy server-side database in AWS MySQL into your new cloud platform. You’ll learn how to create an integration data layer, and develop a maintainable and flexible data intrastate that is both easy to work with and easy to scale.
skills learned: setting up a AWS Account • create a MySQL database instance • create an AWS Lambda function
In this liveProject, you’ll create a recommendation engine for an online store using the Fast.ai library. You’ll utilize a dot product and a neural network to come up with the latent factors in a rating matrix, and compare and contrast them to determine which is likely to deliver the best recommendations. You’ll need to select and clean your data, pick the right methods, then create the functions that you need to recommend products based on predicted ratings.
skills learned: selecting, cleaning and choosing data for collaborative filtering • matrix collaborative filtering techniques using Fast.ai collab_learner class • learning latent factors for collaborative filtering recommenders
Give ShareSafe’s online file-sharing service a security boost. You’re a developer for a company whose customers can upload and share personal documents, photos, and videos onto its website using APIs. Your task is to enhance the security of ShareSafe’s file transfer REST API service by adding file integrity checks. Using JSON Web Tokens (JWTs), you’ll implement basic key generation, signing, and validation of data. You’ll refactor the API with the ability to validate digital signatures, and you’ll make identifying suspicious requests easier (and satisfy compliance requirements) by adding logging of all user and file activities.
skills learned: file integrity checking • validate digital signatures • file integrity logging and monitoring
You’ve recently been hired by RetroToy, an online retailer that sells replacement parts to hobbyists who restore out-of-production toys and games. RetroToy’s business is steadily growing, and so is its collection of product images. Your task is to ease the process of finding images by standardizing the naming convention. As an IT professional, you know PowerShell is a powerful language for automating repetitive IT tasks, and you decide it’s the perfect tool for this project. You’ll set up your development environment by installing Visual Studio Code, an IDE with a PowerShell extension. You’ll make this hefty project more manageable by breaking it into smaller tasks. To automate the process of renaming the large inventory of product images, you’ll write PowerShell code that takes advantage of the pattern-matching ability of regular expressions.
This project is for Windows only.
skills learned: set up a development environment • work with GitHub • file manipulation • regular expressions
In this liveProject, you’ll tackle the kind of file upload vulnerabilities that allow attackers to upload huge amounts of junk data, overwrite existing files, or even deploy a virus. It is vitally important to test and validate the file upload capabilities in your API implementations. You’ll investigate the bugs that might be causing these issues, and then apply a code-level fix.
This liveProject was implemented by Natan Streppel.
skills learned: identifying implementation vulnerabilities • remediating Java code vulnerabilities • testing functionality with Postman
XYZ Services Company, a consulting and outsourcing firm, recently experienced a massive failure in its IT infrastructure. While it’s working on getting the environment up and running again, the marketing director wants to email partners a report that includes contact information for all the marketing staff. As a PowerShell developer, your task is to write a PowerShell script that extracts properties from the plain-text employee directory file, uses those properties to build a custom PowerShell object, and exports the object to a CSV file which you’ll use to generate an HTML report that’s formatted for the marketing director’s purpose. As a favor to the HR department, you’ll also write a PowerShell script that corrects values in a specific field within the source file and writes the edited content to a new file.
skills learned: read text and import objects from a CSV file • write to a text file • basic regex • extract substrings from text • index arrays using expressions • create custom objects • export output to CSV and HTML formats • change PowerShell's default HTML output format
In this liveProject, you’ll find and fix some long-term bugs in a legacy library. You’ll write a test to characterize a bug in how certain assets are selected for a special display, then modify the test to turn it into a bugfix. Once you’ve squashed that bug, you’ll repeat the process to tackle two more common bugs for Java applications.
skills learned: using IntelliJ IDEA to write and execute tests • deriving tests from existing bugs • codifying current behavior as a test • using tests to drive bug fixes • changing tests so they fail until a bug is fixed
You’re a Java developer for a large company that sells stock photography. You’re responsible for the service that ingests images, and a recent database change has broken the service, despite successful unit testing. Working in IntelliJ IDEA, you’ll build an integration test that replicates the problem, find the cause, fix the problem, and build the infrastructure to develop more integration tests in the future.
skills learned: use IntelliJ IDEA to write and execute tests • reproduce problems in hard-to-reach parts of a system with tests • use tests to drive bug fixes
In this liveProject, you will secure your REST API by identifying and fixing the basic vulnerabilities in JWT implementations in addition to tackling Cross-Site Scripting vulnerabilities, finding and fixing Cross-Site Request Forgery vulnerabilities, and exploiting and then securing Cross-Origin Resource Sharing misconfiguration.
skills learned: understanding the procurement API • adding the authentication layer with JSON web tokens • identifying and fixing vulnerabilities
In this liveProject you will work to overcome common issues that emerge when teams use microservices and make heavy use of integration tests. This problem is known as flaky tests, which pass and then fail without the code changing. This can cause your team to produce more bugs, as they ignore their tests due to them failing when code isn’t broken. This project shows how to overcome flaky database tests caused by tests producing side effects that affect other tests. You will practice eliminating flaky API integration tests by using consumer-driven contract testing with Spring Cloud Contract. This will verify that both the server and client conform to the same contract, enabling you to be confident that any changes to an API won’t break the wishlist feature.
skills learned: bring stability to your test runs by replacing flaky integrations with stubs • define contracts from the view of the consumer • conform to contracts provided as the producer
You’re an IT professional who’s been hired by RetroToy, an online retailer that sells replacement parts to hobbyists who restore out-of-production toys and games. To help support RetroToy’s growing success, you’ve been tasked with reducing the company’s IT workload by eliminating manual tasks using automation. Using PowerShell’s Common Information Model (CIM) commands, you’ll capture information from different PCs. Then, you’ll format the data you’ve gathered into a user-friendly CSV format and output these values into a single source. With the CIM commands you’ll learn in this project, you’ll be automating tasks—like adding and removing Windows features, updating software, and setting up network drives—with ease.
This project is for Windows only.
skills learned: use CIM to access computer data • format text • methods for outputting data from Powershell
In this liveProject, you’ll use recursive and non-recursive algorithms to generate fractals for graphic design. Fractals are shapes that have fractional dimensions and can produce very beautiful and interesting visualizations. You’ll start by exploring recursive line-drawing fractals, move on to strange attractors, and finish up with escape-time fractals.
skills learned: using tkinter • drawing in the Canvas widget • using mouse events to let the user select part of an image
Take a trip into the fascinating world of fractals! Here, you’re an art director for a documentary on the 1960s psychedelic movement. Your goal is to wow your audience with a mind-bending title image—a perfect application for fractals. You’ll build programs that create fractals by drawing lines recursively, create ghostly multi-dimensional shapes, and draw escape-time fractals using the Mandelbrot set (the most popular fractal in the world).
skills learned: recursion • pixel manipulation • line-drawing fractals • escape-time fractal
In this liveProject, you’ll create Python functions for specific data cleaning operations to help import product data from a legacy system into a new pipeline. You’ll work with a delimited text file with unhandy export conventions, and utilize functions to clean and convert fields for cleaner and seamless data transfer. You’ll even break your new operations down into separate functions so that you can easily reuse your code at a later date.
skills learned: functions as dictionary values • mutable objects as default function parameters • how to use and create decorators
Future Finance Labs has tasked you, its star developer, to create a prototype for an exchange platform that the fintech scaleup wants to offer to professional traders. You’ll build an interactive command line program that will serve as the core accounting structure for this lightning-fast exchange platform. Using Rust, the company’s chosen programming language, you’ll implement the required data structures for storing accounts as well as the functions for transactions between accounts. To validate the account structure and functions, you’ll design and implement unit tests. When you’re done, you’ll be a master of Rust fundamentals, including its various syntax aspects and operations, and you’ll be ready to advance to more complex Rust data structures and code.
skills learned: Rust loops • types • pattern matching
In this liveProject, you’ll tackle an important job for Echorand Corp, a data processing company that offers image-hosting services. Echorand’s image-hosting app needs the capability to produce thumbnails for all the uploaded images, so they’ve turned to you. Your challenge is using Go to implement the thumbnail creation features. You’ll need to create a new table to store the association between the original image and their thumbnail, then set up functionality so the original image will be downloaded when users click the thumbnail.
skills learned: Executing an external program to create a thumbnail of an uploaded image • Storing images in an object storage service • Store image and thumbnail associations in an SQLite database • Rendering HTML templates
Start building your robotics foundation: You’re a programmer helping create prototype robots for the RoboPrototypes company. You’ll get a brief introduction to ROS 2, set up the programming environment, and onboard robotics building blocks with basic tutorials. Then you’re ready to create launch files, which are integral to every ROS project. As you create packages in ROS 2, you’ll learn to define and use parameters and declare custom messages. When you’re finished, you’ll have a firm foundation for delving deeper into robotics.
The version of Gazebo used in this project reached end of life in January 2025.
skills learned: set up the programming environment for ROS 2 • ROS 2 fundamentals • create a ROS 2 workspace • create ROS 2 launchfiles, services, messages
In this liveProject, you’ll master the basics of Git by completing the kind of day-to-day tasks done by professional programmers. You’ll step into the shoes of a junior developer working for a technology startup and create a Git repository so your colleagues can collaborate on developing a To Do List web app. You’ll start with the basics of setting up Git locally, followed by creating a Git repository and branches, then use advanced Git commands such as rebase and cherry-pick to reconcile changes. By the time you’ve finished, you’ll have learned an essential skill of software development.
skills learned: set up Git locally • create a Git repository • create Git branches • clone a Git repository • reconcile changes in a Git repository
Processing is a creative and exciting Java program that lets you flex your creative skills with code. In this liveProject, you’ll use Processing and its graphic creation capabilities to explore and expand your drawing, animating, and interactive art skills. You’ll create drawings, animate them, and make them interactive. The skills you develop will expand your coding creativity, and give you a solid foundation for advancing with graphic design.
skills learned: drawing on the Processing canvas • moving pixels to animate objects • keyboard and mouse inputs • math and animation techniques
p5.js is a fun and creative JavaScript framework that lets you create graphics and flex your artistic skills—all while using code! In this liveProject, you’ll explore and expand your drawing, animating, and interactive art skills with the p5.js framework. You’ll use the p5.js canvas and JavaScript code to create drawings, animate them, and make them interactive. The skills you develop will expand your coding creativity, and give you a solid foundation for advancing with graphic design.
skills learned: drawing on the p5.js canvas • moving pixels to animate objects • keyboard and mouse inputs • math and animation techniques
You’re a software engineer for Echorand Corp., a growing analytics company that wants to address the lack of backup functionality provided by the GitHub software hosting service it uses. The company has a web application that allows users to log in using their GitHub credentials. Your task is to add functionality to that app that lets users download their data whenever they like. Using Go, HTML, JavaScript, and the GitHub Go SDK, you’ll implement support that enables users to export their data on GitHub, view their exports, and download them—a win for Echorand Corp. and for you!
skills learned: work with Go standard library packages and the GitHub Go SDK • access the GitHub API
Echorand Corp., a growing analytics company, uses the GitHub hosting service for its software hosting and collaboration needs. But the company has received feedback voicing concerns about the service’s lack of backup functionality. As a software engineer, it’s up to you to solve this problem. You’ll use Go to build a web application that allows users to log in using their GitHub credentials and access the GitHub API using OAuth authorization. You’ll create HTTP client middleware for writing and performing tests with no need to interact with Github.com, and you’ll write automated tests that enable you to update the application while speeding up the development cycle. When you’re done, you’ll have built an easy-to-update application that allows users to log in with their GitHub credentials.
skills learned: work with Go standard library packages, GitHub OAuth, HTTP cookies in Go, and HTTP cookies in Go
Takeout e-commerce company FTGO currently manages their Kubernetes microservices deployments from the command line. So there’s no record of who has deployed what, and it’s very difficult to reproduce past states. Your goal in this liveProject is to help them with a GitOps-based continuous deployment pipeline for their platform. You’ll utilize Flux to establish and build your pipeline and configure the Flagger tool to use the traffic management features of the Linkerd service mesh.
skills learned: Using Flux • Flagger • and SOPS to implement GitOps
In this liveProject, you’ll walk through the basics of tree and graph data structures, and explore two algorithms that can efficiently search these data structures. You’ll use the Breadth-First Search (BFS) algorithm to search a dataset structured as a tree, then move to Dijkstra’s algorithm to find the fastest path in a graph dataset.
skills learned: simple tree and graph data structures • Breadth-First Search (BFS) algorithm • Dijkstra’s algorithm
In this liveProject, you’ll use the powerful Quantum SDK from Microsoft to develop a simple quantum application using Grover's search algorithm. This algorithm will be able to generate missing data, such as by taking a query in the form of an ISBN with one or several missing digits, and recovering those digits to return the information about the book with this ISBN. You’ll start simple by implementing the algorithm to recover only a single missing digit, then expand to recovering several missing digits. Finally, you’ll set up a classical query of an online ISBN database to find relevant book information.
skills learned: designing and writing simple Q# code • integrating quantum code with classical pre- and post-processing routines
In this liveProject, you’ll use quantum computing to solve a cryptarithm—a mathematical equation in which digits are replaced by alphabet letters. Your challenges will include figuring out how to represent the problem in a way suitable for Grover’s search algorithm, then implementing the algorithm and writing unit tests to validate your solution.
skills learned: formulating problems in terms of quantum oracles • designing and writing Q# code based on algorithm descriptions • integrating quantum code with classical pre- and post-processing routines
In this liveProject, you’ll implement username-based HTTP authentication for your API in order to securely store passwords in your database. You’ll develop user signup functionality to ensure only registered users can leverage the REST API, build a user login for authenticating users as they access your REST API, and test its functionality using Postman.
This liveProject was implemented by Natan Streppel.
skills learned: understanding an API specified in Open API Specification 3.0 • setting up an environment to implement an API • adding basic HTTP authentication
UMET Inc. is growing! To support its increasingly complex features and services, the CTO has decided to refactor its backend technology stack, and the dev team has chosen the memory-safe, high-performance Rust programming language for this important investment in the company’s future. As a new developer at UMET, your task is to build proof-of-concept (PoC) Rust applications using Cargo or Docker tools, then securely run the applications in portable WasmEdge runtime containers to validate that the new backend stack meets all the necessary requirements. When you’re done, you’ll have mastered Rust basics for application development, including working with strings, managing complex data structures, and creating an HTTP web server.
skills learned: code in Rust • and its HTTP networking APIs
The success of Chill+ is soaring, but so are its infrastructure costs. As a software engineer for this nextgen video streaming platform, it’s up to you to devise a cost-mitigating plan. Your solution is to reduce resource consumption by implementing crucial interservice communication and fault tolerance. You’ll use a REST client to integrate with another HTTP service, mock external calls with Mockito, and run tests against a mock HTTP server using a fixture. You’ll use the Quarkus Fault Tolerance extension to incorporate resiliency patterns, and you’ll implement error handling by adding retries, timeouts, circuit breakers, and fallbacks to the Catalog API. When you’re done, Chill+’s catalog service will return more accurate results to its customers with fewer requests, and have increased—and less costly—fault resilience.
skills learned: define a REST client using Quarkus • implement the common resiliency techniques (timeout, retries,fallback and circuit breaker) with Quarkus • mock a REST client to implement unit tests • simulate an HTTP service using WireMock to implement integration tests
In this liveProject, you’ll explore the new features of C++20 by upgrading BOSS—the “Bread Optimized Shipping System” of a large national baker. The main logic of BOSS is written in C++, and your team prides itself on keeping it up to date with the latest C++ standards. Your job is to enhance BOSS using different parts of C++20.
You’ll move an existing codebase to the latest C++ features to enhance your team’s productivity, and make it possible to move faster in the future. Unlock new C++20 features such as modules to organize your code, coroutines to optimize the service response times and resource usage, ranges to support dealing with a range of elements in a collection, and concepts to manage template classes. By the time you’re done, you’ll have gotten your hands dirty with some of the most exciting new features of C++20.
skills learned: modules • coroutines • concepts • ranges
You’re a developer for ShareSafe, a company whose customers can upload personal documents, photos, and videos onto ShareSafe’s website using APIs. Your task is to enable ShareSafe’s users to share their files with others. Using Java Spring Boot, you’ll build a simple file transfer REST API service that supports uploading and downloading of files, and you’ll identify and tackle the file upload vulnerabilities of your REST API service. For backend file storage, you’ll implement Amazon Simple Storage Service (AWS S3). Finally, you’ll harden your service against the most common vulnerabilities by configuring and implementing AWS S3 encryption and access-management features. When you’re finished, you’ll have built a file transfer service that provides high scalability, durability, encryption, and backups, and allows your users to share their files with ease.
skills learned: build REST APIs • mitigate file upload vulnerabilities • configure security features in AWS S3
Your real estate developer client has a large sorted dataset and the ability to zoom in on select parts of the data, thanks to the programs you’ve written for them previously. Now they’ve noticed duplicate entries in the dataset, and they’ve asked you to solve this problem. In this liveProject, you’ll create a program that will read in the large CSV data file, leveraging a hash map (which you’ll test and implement) in order to discard duplicate entries as quickly as possible. Though you’ll use the csv and unittest libraries in Python, you’ll write your own unit tests—a fundamental software engineering skill and a practical requirement on most real-world projects. Finally you’ll test your tests against Python’s existing dictionaries.
skills learned: write code manipulating Python dictionaries • write unit tests involving dictionaries • cover a variety of testing scenarios • implement a basic hashmap from scratch • use your hashmap to eliminate duplicate entries
XYZ Services Company, the consulting and outsourcing firm you work for, recently experienced a massive failure in its IT Infrastructure. While it’s working on getting the environment back up and running, the company urgently needs to identify potential vulnerabilities in the digital signatures used by the employees for two-factor authentication. Applying PowerShell scripting best practices, you’ll write a script that uses the switch statement and its regex parameter to extract a list of digital signatures from an input file, identify matching strings that satisfy specific conditions, classify them as required, and send them to log files. When you’re done, the information security officer will thank you for helping prevent future security issues.
skills learned: read text files • use complex regex patterns including lookaround, regex quantifiers, and ranges • use the switch statement and its regex parameter to extract substrings from text files • arrays and array indexing using expressions • edit text using replace operations • write to text files
In this liveProject, you’ll use the Python Imaging Library (PIL) to tackle common image processing tasks. You’ll learn about some of the algorithms that let you apply filters to images, and you’ll use PIL to adjust image brightness, contrast, and color tone. You’ll crop, rotate, reflect, and perform other geometric operations on images.
skills learned: loading an image file into a PIL image • displaying a tkinter PhotoImage • making tkinter dialogs • applying various PIL image transformations to enhance and modify images
A picture says a thousand words, but make sure they’re the right ones. Today’s cell phones come with amazing digital cameras, but without a guarantee that you’ll never take another bad picture. Learn to use image processing algorithms, geometry, point operations, and filters to transform images by adjusting brightness, contrast, color, size, and shape. You’ll also create interesting effects such as highlighting edges, embossing, and blurring.
skills learned: manipulate image pixels • basic geometric transformations • brightness, contrast, and sharpness • kernels
In this liveProject, you’ll build the foundational notification services for a bank’s new notification management platform. Rather than build one single monolithic service, you’ll establish four separate microservices to handle notification preferences, notification formatting, the notification gateway that dispatches emails or SMS messages, and the application that orchestrates all of these functions. You’ll leverage Spring Boot and other Java services to help you create these microservices, which will form the bedrock of an entire notification platform.
skills learned: use of @RestController Annotation • use Lombok for Getter and Setters of your model/entities classes • use of SpringBoot Starters
Welcome to your second week at SongRiver, a music-streaming startup whose success is skyrocketing. You’ve been working on a directory app to help keep track of the company’s growing number of employees, and your task for this week is to add search functionality to employee pages in the directory. Using Chakra UI, you'll create the user interface for the search input box. Then you'll fetch the results from the server via React Query and display the data. You’ll end the project on a high note by using React Router tools to create links that enable navigation between individual employee pages and the search interface.
Some sections may contain information that is now outdated due to the rapid advancements in the technology field, notably the initial libraries, Docker setup, and some documentation links. Regardless, this liveProject remains an invaluable resource for intermediate users.
skills learned: state-controlled input field • React Router search params • array of React components from array of server data
In this liveProject, you’ll create advanced functionality for a chat application, allowing users to upload files during a text chat. You’ll use the WebSockets framework to receive requests from browsers and set up WebSocket connections that let customer support teams chat with customers. Challenges include implementing the file upload support, and writing tests to ensure the end-to-end functionality is high-quality and bug-free.
skills learned: creating a WebSocket server • uploading files to an object storage service • verifying functionality using tests
TechPower wants to grow in the tech market and enhance its presence by adding new technologies to its toolbox. Scala is a good option as it combines functional and object-oriented programming paradigms. As a software engineer, your task is to add features and functionality to the consulting company’s current project: a music-sharing platform where artists can share their music with the world. Using Scala, Simple Build Tool (SBT), and IntelliJ IDEA, you’ll design and implement functions for previously defined entities, then improve them by refactoring. When you’re done, you’ll know how to apply functional programming concepts to designing and implementing system functionality in a Scala project.
skills learned: basic Scala (immutable data structures, pattern matching, higher-order functions, partial functions) • refactoring
In this liveProject, you’ll register your app with Google to generate a sign-in code, then build a basic UI for your login page. You’ll make use of the OpenID Connect Protocol and Google Platform Library, then set up basic HTTP authentication for your API.
skills learned: understanding the basics of Google Sign-In protocol • implementing user authentication by integrating with Google login • identifying vulnerabilities and fixing them in the implemented code
In this liveProject, you’ll use the Google Sign-Out protocol to add logout, session monitoring and disconnect-user flows to your login. You’ll implement UI changes to add a “Logout” button that calls to Google’s API, and add the functionality to permanently remove a user from your service.
skills learned: implement logout • session monitoring and revoke functionality with Google Sign-In
In this liveProject, you’ll add security-related features to the service template. In your role as a Java/Kotlin developer, you’ll gain hands-on Kotlin experience implementing authentication and authorization of a service’s REST API using JSON Web Tokens (JWTs) as well as a Security Token Service, such as Keycloak, to issue and authenticate JWTs.
skills learned: implement authentication and authorization of a service’s REST API using JSON Web Tokens (JWTs) • use a Security Token Service to issue and authenticate JWTs
In this liveProject, you’ll enhance the security of your social sign-in with two-factor authentication. In order to counterattack cyber attacks like phishing, you’ll implement a time-based one-time password protocol in your application.
skills learned: two-factor authentication using Time-Based One-Time Password (TOTP) protocol
In real-world systems, services act sometimes as clients for other services. In this liveProject, you’ll implement a Spring Boot service that acts as a client for the OAuth 2 system. You’ll set up needed dependencies, register a client at the authorization server, and implement a proxy that uses the client credentials grant type. Finally, you’ll validate that the full setup works correctly and this mock server can accurately send advice to the health system.
skills learned: implement a Spring Boot service that acts as a client in an OAuth 2 system
In this liveProject, you will implement an authorization server to authenticate users and issue JSON Web Tokens signed with a configured key. You'll use a Spring Boot service to take the role of an authorization server in an OAuth 2 system, set up storage for user and client details, and ensure user details persist in a secure way. Finally, you’ll write and conduct integration tests to make sure your system is secure and bug-free.
skills learned: implement a Spring Boot service that takes the role of an authorization server in an OAuth 2 system • implement an authorization to issue signed JSON Web Tokens • implement a server’s user and client management
In this liveProject, you’ll refactor a legacy module with unpredictable functionality to make it fit for your needs. The module behaves strangely whenever you import it, and so your task is to find the problem by exploring the ways that import in Python works. Your new knowledge will allow you to fix the issues in the test module, and create safer modules and multi-module packages.
skills learned: how the import process works • what importing only one feature of a module really does • how to make sure that code only executes when you want it to
Terraform simplifies the cloud. It defines infrastructure as code (IaC) that can be easily shared, maintained with version control, and reliably tested.
In this liveProject, you’ll join up-and-coming startup Cloudesk as its new DevOps engineer. Cloudesk is struggling to handle its cloud resources manually, and have hired you to manage its current and future cloud resources using Terraform code. Your challenges will include importing manually created resources, working with Terraform resources in accordance with compliance requirements, and managing the conversion of legacy systems. When you’re finished, you’ll have hands-on experience with Terraform management that will let you confidently handle Terraform in any size organization!
skills learned: installing, using, and patching a local Terraform provider • working with Terraform CLI for importing, tainting and targeted applying • adding a dependency between various Terraform workspaces • working with local and remote Terraform backends
As a software engineer at Sneakers to the Max, it’s your job to create an API that the e-commerce company’s developers can use to improve search results. You’ll write Python code to create Elasticsearch queries that work best for zero, one, or multiple search terms. To enable the application to interact with the search service, you’ll implement a FastAPI endpoint. You’ll add query filters, including colors and price ranges, to narrow down the results, and you’ll add pagination for when the number of sneakers in the narrowed search results is too large to be displayed on one page. When you’re done, you’ll have created an API that empowers your developers to provide the best matches to customers’ searches and leads to increased sneaker sales.
skills learned: use different queries to select sneakers
SimpleTravel Co has scaled too fast! Their travel booking app has proven wildly successful, but now they’re facing a lack of accountability, inconsistencies in their infrastructure, and issues rolling back problematic deployments. Luckily, the CTO has an idea—one he’s given you the job of implementing. Your task in this liveProject is to investigate and establish Infrastructure as Code (IAC) for SimpleTravel, so that they can describe their infrastructure using friendly YAML or JSON syntax and sidestep all the issues of manual deployments. Let’s get started!
skills learned: writing predictable serverless resources with IaC
In this liveProject, you’ll explore how inheritance works in Python through developing classes that might be used in a simple video game. Your game follows animal characters moving through an obstacle course, with different movement styles for wolves, bears, eagles, ducks, frogs, and trout. In order to avoid having to repeat your code between characters, you’ll create some base classes and inherit from them. You’ll see how to inherit from more than one class at a time, and discover use cases for multiple inheritance.
skills learned: using Python’s system of inheritance • developing classes for a video game • using Python's multiple inheritance to create mix-ins
In this liveProject, you’ll fix bugs in your code that are vulnerable to injection attacks. Injection attacks are a serious risk to your application, allowing attackers to steal data, insert their own data, or make your system perform in unexpected ways. You’ll harden your app against the different types of injection attacks such as XML injection, serialized Java objects, JSON deserialization, Zipbomb attacks, and many more exciting attacks which require special defenses.
skills learned: working with databases, regular files, and compressed archives • RegEx and other string filtering • securely working with XML content
In this liveProject, you’ll handle XXE processing vulnerabilities in Java code. XXE vulnerabilities are particularly common in Java applications as many XML parsers don’t automatically enable security settings. To handle this vulnerability, you’ll investigate to ensure your XML parsers are correctly set up, and then apply and test a code-level fix to the issue.
This liveProject was implemented by Natan Streppel.
skills learned: identifying implementation vulnerabilities • remediating Java code vulnerabilities • testing functionality with Postman
In this liveProject you’ll develop a chatbot that can classify a user’s intent, using the Hugging Face NLP library. Your challenges will include building the task with the Bart transformer, and building a specialized task for detecting toxic language. You’ll then develop a Telegram bot and integrate it with your toxicity classification task.
skills learned: use a transformer to create a classification tool • build a chatbot using Hugging Face library to classify user messages • use transformers to create a classifier to identify toxic messages and integrate this classification into a chatbot
In this liveProject, you’ll go hands-on with the basics of quantum theory to prepare yourself for building your first quantum applications. You’ll use familiar Python tools to work through the basic building blocks for constructing quantum circuits, as well as exploring quantum gates and how they transform qubits, the basic units of quantum information.
skills learned: create quantum bits (qubits) and quantum gates with NumPy • create quantum circuits with Amazon Braket SDK
External services, databases, and other dependencies are hard to run in a predictable way and can often cause test failures when there is no issue in your code. In this liveProject, you’ll isolate unnecessary dependencies and replace them with mock objects that have more manageable behavior. You’ll then be able to develop isolated unit tests, which do not break due to external reasons, are easy to write and run, and have fast execution times.
skills learned: using mocks, stubs, and fakes • mocking frameworks to create isolated and maintainable tests • mocking best practices
Red alert! One of the energy production companies managed by Sigma Corp has suffered an outage. An investigation has led to the conclusion that the facility’s anomaly detection mechanism failed to detect early signals due to a sudden change in the distribution of the analyzed data. As a lead data scientist at Sigma, you’ll build an Isolation Forest algorithm, which is less likely than the Empirical Cumulative distribution-based Outlier Detection (ECOD) method to fail in such scenarios. To gauge how robust your method is, you’ll benchmark your algorithms against adversarial scenarios, synthetic anomalies, and standard datasets. When you’re done, you’ll have practical experience creating, using, and testing the Isolation Forest algorithm as an effective alternative to ECOD in circumstances where the data distribution changes.
skills learned: apply the Isolation Forest method • evaluate algorithms under adversarial distribution change
In this liveProject, you’ll experiment with how iteration works in Python. You’re building a data analysis program that needs to iterate over a given number of Fibonacci numbers. To help out, you’ll construct an object that can be iterated over in a for loop or list comprehension that provides the Fibonacci series.
skills learned: build a data analysis program • use Python iteration protocol in creating iterables and an iterator using a generator function
Enter course descriptionChill+, the nextgen streaming platform you work for, is scaling out its Kubernetes cluster to meet the demands of its increasing popularity. As a software engineer, your job is to devise a plan for managing the company’s infrastructure costs which are rising as fast as its success. Your solution is to reduce resource consumption by implementing crucial interservice communication. To make this communication asynchronous, which provides the benefit of decoupled request/response temporality while improving communication performance, you’ll use a Kafka producer to integrate with another service, and you’ll use Quarkus SmallRye Reactive Messaging Kafka Connector to produce and consume data. When you’re done, Chill+’s catalog service will provide quicker, more accurate recommendations to its customers while decreasing Chill+’s infrastructure costs.
skills learned: produce data to Kafka using Kafka basic producer • leverage Quarkus Dev Services to spin up a Kafka environment • produce data using Quarkus SmallRye Reactive Messaging extension • consume data from Kafka to test the producer’s behavior
You’re a Java developer for a large company that sells stock photography. You’re responsible for the service that ingests images, and this service depends on another subservice: the pricing microservice. As proven by their individual unit tests, each service works as specified. But when the services are combined, new customers are being locked into one pricing table—even those that should have access to pricing that fluctuates depending on factors like promotions, flash sales, and price-tuning. Working in IntelliJ IDEA, you’ll solve this problem by writing an integration test that connects and runs the two services together, allowing you to reproduce the problem locally.
skills learned: use IntelliJ IDEA to write and execute tests • reproduce “ghost in the machine”-type problems with integration tests • use tests to drive bug fixes • create in-memory Spring applications • use Hibernate and an in-memory database to inspect the results of service execution
In this liveProject, you’ll add basic HTTP authentication to an API for granting Personal Time Off requests using the Lightweight Directory Access Protocol (LDAP). This application contains sensitive personal information and so its security is essential. You’ll establish authentication that ensures only registered users can access the API and provides login requirements to authenticate users before they get access.
skills learned: learning the basics of Lightweight Directory Access Protocol (LDAP) • implementing basic HTTP authentication with username and password as per LDAP protocol
In this liveProject, you’ll establish functionalities to provide role-based authorization for leave requests made through a Personal Time Off API. Using the Lightweight Directory Access Protocol (LDAP), you’ll set up access controls so that only managers and other authorized users can retrieve non-personal leave records and approve leave requests.
skills learned: authorizing requests based on user role as per LDAP protocol
Your company sells stock photography products to the general public, as well as to news and other media markets. As the resident TypeScript developer, you’ve been tasked with maintaining and extending a class library for optimizing search results. You’ll set up tests to support refactoring of this legacy library, use “pinning tests” to extract a specification from the existing code, and generate a wide range of test coverage. You’ll learn to spot when and where to improve code maintainability, and set up mutation testing to ensure your tests catch unintended changes. By the end, you’ll have generated test coverage that supports refactoring, making future updates easy and painless.
skills learned: derive tests from existing code • use mutation testing results to guide test efforts
Growth means change; for Logistica Transport, that means switching from their old desktop app to a new web app solution. In this liveProject, you’ll put together all of the pieces of this new web app. You’ll learn how to build a React.js app with Visual Studio 2023, set up a form for your users, and master the database magic of CRUD statements like insert, update, and delete to manipulate your database. Finally, you’ll validate your data formats to ensure the application works as expected.
skills learned: NuGet packages • Creating themed React forms • Implementing CRUD features • Implementing form validation
Play the role of chief guest engagement officer at an amusement park. You’ve decided to model the visitor experience by using a queue data structure to simulate guests waiting in line for a ride. The park’s sales and marketing department would also like you to study what might happen if VIP (very important pocketbook!) visitors are allowed to jump to the front of various park attraction lines using a special pass. As you carry out these tasks, you’ll experiment with different types of queues, write a function to detect loops in a linked list, build a queue using a doubly linked list, and create trees, fundamental data structures in many algorithms. When you’re done, you’ll have the experience and skills you need to build a complete waiting-customer model and other programs using linked data structures in Go.
skills learned: sentinels • singly linked lists • doubly linked lists • deques • tree traversal • sorted binary trees • recursion
In this liveProject, you’ll use the Rust programming language to develop a two-step verification system for authentication service. You’ve decided to work in Rust because it runs without memory issues, it’s data race free, and provides safe concurrency.
Your client’s employees work on different operating systems, so your verification system needs to function on Mac, Linux, and Windows. To complete this system, you’ll need to develop a RESTful service as its core backend, and then write a Rust client that is going to be called by Linux as part of its authentication process. Finally, you’ll use Rust to develop Admin and verification clients, write a thin layer of C code as a PAM module, and configure Linux to use the PAM module in its authentication pipeline.
skills learned: implement a RESTful web service in Rust • write a secure Rust program
In this liveProject, you’ll utilize Python to create new data reports from a centralized system. You’ll work with raw data about the sales of various products, and massage it into a different format from which subreports can be extracted. To do this, you’ll make use of lists—one of the most common data structures in Python that are at the heart of data processing.
skills learned: list comprehensions • list slicing • ways to sort a list
In this liveProject, you’ll use Google Cloud Platform’s BigQuery tool to transfer data from a legacy data lake to new cloud storage on GCP. You’ll start by setting up your Google Cloud developer account, then utilize Google Web Console to create a Cloud Storage bucket and load data into a BigQuery table. You’ll learn how to handle different file formats, and manage resources with Google Cloud Shell.
skills learned: setting up a Google Cloud Account • loading data into BigQuery • handling file formats
In this liveProject, you’ll set up a Facebook and social media sign on option for your eCommerce store using the Spring Security OAuth2 module. You’ll configure Spring Security for login using the OpenID authentication protocol, and fully create the functionality to login using a Facebook account and manage a profile without needing a new username and password.
UPDATED: July 2023 to use the latest versions of Java, Gradle, and Spring Boot; and updated instructional text throughout all the projects.
skills learned: form login with Spring Security • password encryption with Spring Security • front-end development using Spring MVC, HTML and CSS
You’re the sole engineer for PrincipalStack, an online publication focused on teaching software engineering the right way. As part of the company’s efforts to engage new users, your job is to connect the newly built OpenID Connect server with the main web application. Using Node.js, you’ll register the new web application with the authorization server, install and configure an OpenID Connect library, implement login authorization with OAuth 2.0, and integrate the new OpenID Connect authentication with an existing set of users.
skills learned: build an Express.js-powered web application • set and check sessions for users • protect application routes using middleware
As a summer intern at Ginormous Megadata Inc, you’ve been tasked with building a phone directory of the company’s 130,000 employees. The catch? Your boss won’t spring for an off-the-shelf database, the company’s firewall prevents you from searching for what you need online, and the summer isn’t long enough for you to build a full-fledged database from scratch. To complete your task, you decide to create a hash table, a data structure that enables you to use keys to store and retrieve items. You’ll experiment with different hash tables methods, including chaining, open addressing, and quadratic probing. When you’re finished, you’ll have hands-on experience creating a functional hash table you can use to build Ginormous Megadata’s phone directory, as well as a solid understanding of the trade-offs between different kinds of hash tables.
skills learned: chaining • linear probing • quadratic probing • double hashing
You’re the new Kubernetes administrator at Interpop, a popular music streaming service that receives about a million requests per second. Your task is to help Interpop provide the high level of service that its customers expect by keeping its microservices running optimally. You’ll set resource requests and limits, ensuring enough CPU and RAM are available to ensure efficiency. You’ll “soup up” the app, preventing it from failing to run by using selectors and affinity for pod scheduling. Using Helm to install multiple Kubernetes resources at once, you’ll streamline the task of routing incoming requests to multiple Kubernetes services. When you’re done, you’ll be hitting a high note with your expertise in keeping Kubernetes services highly available and fault-tolerant.
skills learned: resource limits and requests • scale applications running on Kubernetes • helm
In this liveProject, you’ll replace SimpleTravel’s existing REST API. The company has grown, and new consumers want to be able to customize data returned by this API. Due to the inflexible nature of the REST paradigm, the new API will be implemented using GraphQL.
skills learned: implement a GraphQL endpoint using AWS • implement a query in GraphQL
Build a better defense! As a developer at ShareSafe, a company that provides online file-sharing-as-a-service, your task is to uplevel the security of its REST API file-transfer service by adding functionality for checking uploaded files for malware. You’ll set up a robust infrastructure for malware analysis of files stored in AWS S3 buckets, integrate the infrastructure with the REST API service, and implement VirusTotal, a threat intelligence service that provides dynamic and behavioral analysis to shared files. When you’re finished, you’ll have built a solid line of defense against known malware and provided users with a secure file-sharing experience.
skills learned: set up robust malware analysis infrastructure • integrate with third-party services
As a consultant for Messflix Inc., a movie and TV-show streaming platform, you’ll investigate and discover why Meshflix’s recommender system breaks. You’ll brainstorm options for changes that don’t break the system, explore their pros and cons, and choose and implement one of your options. Then you’ll create an internal versioning strategy to support all the great product changes Messflix has planned for the future.
skills learned: understand product thinking • manage changes in data products • prevent breaks in downstream data products
In this liveProject, you will secure the backend of an app to protect users’ data, and design the backend as a resource server in an OAuth 2 system. You’ll configure resource server capabilities to apply endpoint and method authorization rules, and use authenticated principal details in the repository.
skills learned: implement a Spring Boot service that takes the role of a resource server in an OAuth 2 System • configure endpoint authorization rules • configure method authorization rules
In this liveProject, you'll take on the role of a backend data engineer working for a rapidly growing startup. Your company installs battery packs for solar panels, as well as IoT devices monitor energy usage. These devices can help users and utilities companies better manage their energy, saving your customers money and providing clean power to the wider grid. You’ve been given a big task: build the infrastructure from the ground up that can handle the streaming events of thousands of these IoT devices. This infrastructure will be expected to scale as your company grows, and so your team has chosen to work with Apache Kafka for stream processing of all the data. Your challenges will include efficiently ingesting IoT events, managing corner cases in IoT data processing, developing fleet-wide monitoring, and providing REST services to answer questions about battery energy capacity.
A percentage of every sale of this liveProject will be donated to the Rocky Mountain Institute to support their good work towards a zero-carbon future.
skills learned: fundamentals of IoT stream processing with Kafka Streams • schema management & evolution with Apache Avro • building distributed query engine to support real-time energy grids
Preventing operation failures and interruptions is mission-critical at Sigma Corp. The large conglomerate of energy production companies has recently implemented a z-score anomaly detection algorithm that focuses on a single feature. Now that the algorithm has proved its value, members of Sigma have requested additional algorithms that are just as simple to use, but that can handle multidimensional data. As a lead data scientist at Sigma, you’ll implement the Mahalanobis distance (MD) method and the principal component analysis (PCA) method as you build anomaly detection algorithms for multidimensional data. To gauge the performance of your algorithms, you’ll test them against a benchmark dataset as well as synthetic anomalies generated by your own algorithms. When you’re done, you’ll have firsthand experience building anomaly detection algorithms for multidimensional datasets as well as testing anomaly detection algorithms against both benchmark datasets and synthetic anomalies.
skills learned: PCA method • Mahalanobis method • evaluate algorithms using correlated synthetic anomalies
Chill+, a video streaming platform, is becoming increasingly popular. To support its success, the company, which uses Java to develop its microservice architecture, is scaling out its Kubernetes cluster. As a software engineer, your task is to take control of the company’s skyrocketing infrastructure costs, and your solution is to reduce resource consumption by increasing observability. You’ll configure Chill+’s Catalog API log using Quarkus’ built-in logging capabilities, add default Quarkus healthiness and readiness probes, and use Micrometer, a JVM-based metrics instrumentation library, to expose the API’s performance and export those metrics to Prometheus and Grafana. When you’re done, you’ll have provided a level of observability that will help Chill+ monitor and reduce resource consumption, significantly decreasing infrastructure costs.
skills learned: configure healthiness and readiness probes • configure the application to export basic metrics • define custom metrics • configure the application logger
You’re a software engineer at Chill+, a video streaming platform that uses Java to develop its microservice architecture running on Kubernetes. Thanks to the company’s soaring popularity, Chill+ is scaling out its Kubernetes cluster. Your task is to reduce infrastructure costs, which are growing faster than the company’s customer base. To achieve your goal, you’ll add security that reduces resource consumption. You’ll implement an authentication layer, integrated with developer-friendly Quarkus Keycloak, on the company’s Catalog API. You’ll restrict access to the API’s endpoint according to users’ roles, tune the Keycloak Dev Services to match the Catalog’s API context, and verify the security implementation leveraging Quarkus’s easy-to-use testing libraries.
skills learned: enable authentication and authorization by connecting the Quarkus application to a Keycloak Identity provider • configure the Keycloak Dev Services • test the application authentication and authorization setup
In this liveProject, you’ll explore the difference between mock-based and traditional Test-Driven Development. You’ll write tests using mock objects for an e-commerce store, then overcome common mocks anti-patterns—including the dreaded mocks returning mocks issue. You’ll tinker with a realistic codebase which contains missing test coverage, design shortcomings, and third-party integrations, then practice evolutionary architectural design and the mockist style of TDD.
skills learned: isolate changes with mock based unit tests • overcome common mock object anti-patterns
Ensure your system can accommodate even unstable dependency services. You’re a Java developer for a large company that sells stock photography. You’re responsible for the service that ingests images. Unfortunately, the ingestion process is being negatively affected by a flaky external web service that the ingestion engine uses, and the problem is not reproducible in unit testing since there’s no connection to the external service at that time. Working in IntelliJ IDEA, you’ll establish an in-memory HTTP service, configure it to simulate a dependency service, write a test to reproduce the error, and use the test to build robustness into your system.
skills learned: use IntelliJ IDEA to write and execute tests • reproduce problems in hard-to-reach parts of a system with tests • use tests to drive bug fixes • dynamically configure Spring containers • mock an HTTP service dependency
Create an alarm system that warns you before your system breaks. You’re a TypeScript developer for a large company that sells stock photography. You’re responsible for the service that ingests images. A recent upgrade to the image-scaling library has caused a problem with the aspect ratio of thumbnail images. Working in IntelliJ WebStorm, you’ll build a layer of integration tests that replicates the problem and also tests the assumptions that your unit tests rely on. When you’re done, you’ll have an alarm system that warns you when the assumptions your unit tests rely on are no longer valid, preventing problems in the future.
skills learned: use SQLite and an in-memory database to inspect the results of service execution • mock S3 containers
As the sole engineer for PrincipalStack, an online developer-focused publication, your task is to use an authorization server to log in users and enable your internal team to work in both the newly built community-engaging, single-page application (SPA) and the main (legacy) application—under the same identity. When you’re done, you’ll have leveraged tools including browser-provided JavaScript APIs and HTML to modify the SPA so that it can request, store, and use access tokens tied to that single identity to call the API.
skills learned: use a browser's built-in storage, fetch, DOM, and crypto APIs • use event listeners • implement PCKE
In this liveProject, you’ll reduce a test’s coupling to the implementation (thereby reducing the tests’s dependence on the details of how the code works) and extend a feature using test-driven development for an e-commerce record store. You’ll begin by applying techniques to increase test readability, then implement a full stack feature that requires changes to all layers of the system. Lastly, you’ll tidy up by refactoring the implementation to reduce conceptional duplication, making the code easier to read and maintain.
skills learned: white-box and black-box testing and how to choose between them • refactoring an end-to-end test to be less coupled to the implementation • using TDD to implement a full stack feature
In this liveProject, you’ll use powerful libraries like Spring Cloud Library Sleuth, Zipkin, and Actuator to help find and debug an error in the microservices of a notification management platform. The distributed nature of microservices makes them challenging to debug, and finding where a problem occurs can be maddening. You’ll set up monitoring services that can use correlation IDs to link together transactions across multiple services, aggregate log data from various services into a single searchable source, and visualize the flow of a user transaction across multiple services.
skills learned: using correlation IDs to link together transactions across multiple services • aggregating log data from various services into a single searchable source
In this liveProject, you’ll implement a complex, multi-environment GitOps pipeline for the Dynomica music web service. You’ll need to improve Dynomica’s delivery by structuring your code to deploy across development, staging, and production environments. You’ll write reusable manifests that can be applied to multiple clusters and see how proper GitOps structure streamlines management as your infrastructure scales. Soon, you’ll be able to deliver multi-cluster GitOps to deploy consistent environments from a single source of truth effortlessly.
skills learned: Working against multiple Kubernetes clusters • develop multiple GitOps processes set up against the same repository
In this liveProject, you’ll implement a multi-dimensional dataset and visualize it using dimension reduction on a Processing canvas. Dimension reduction helps select the most important features of a dataset, and is useful in machine learning. You’ll then explore distance functions and the k-Nearest-Neighbors algorithm to classify a new element.
skills learned: multi-dimensional datasets and data structures • dimension reduction and distance function • K-Nearest-Neighbors algorithm
UMET Inc. is off to a great start in its efforts to refactor its backend to a modern technology stack using the popular, high-performance Rust programming language. As a new developer for the e-commerce platform, your task is to create a microservice for calculating order totals that depends on another microservice that looks up sales tax rates. Using HTML and JavaScript, you’ll create a web user interface for the microservices so that UMET product managers can test them in a browser. You’ll build and test your new application using Rust reqwest and Serde crates to make web service calls and also use Docker Compose to manage multiple Wasm and Linux containers in a single application. When you’re finished, you’ll have firsthand experience using WasmEdge command-line interface (CLI) tools to build a cloud-native application with interdependent microservices.
skills learned: Docker + Wasm • Docker Compose • WasmEdge CLI tools
In this liveProject you’ll develop a chatbot that can extract entities from user messages using the Hugging Face NLP library. Entity extraction pulls relevant data from chunks of text. Your challenges will include building a Named Entity Recognition task with the BERT transformer, and fine-tuning it to a medical context. You’ll then integrate your tasks into a chatbot.
skills learned: use a transformer to create a named-entity recognition tool • build a chatbot using Hugging Face library to extract entities from user messages like localizations and people
Let your robot drive itself! Your company, RoboPrototypes, is preparing to demo its autonomous beverage delivery robot to investors soon, but the technician who was supposed to drive it has quit. Since there’s no one to take his place, your CEO has tasked you with upgrading the robot with automatic navigation. You’ll set up Nav2 to load your desired parameters, implement navigation planners and controllers, and optimize navigation by tuning costmap parameters. Once you send your waypoint goals to Nav2 telling your robot where to go, it’ll be ready to quench thirsts at a food court near you.
The version of Gazebo used in this project reached end of life in January 2025.
skills learned: planners • controllers • global and local costmaps • waypoint following • tuning Nav2 parameters
In this liveProject, you’ll play the role of a programmer who has been hired by a real estate developer to help determine what a fair market price for rent should be across a number of owned properties. The good news is that the real estate developer has gathered data into a spreadsheet (in a CSV file). The bad news is that the spreadsheet is so large that they can’t even open it in a typical spreadsheet program, let alone do any sort of analysis with it. They’ve asked you to develop an interactive program that will perform some basic exploration of the data. You’ll use highly popular Python to tackle this challenge, and gain valuable experience processing CSV files and sorting lists as well as working with files, strings, and command-line arguments.
skills learned: develop a basic text-based spreadsheet program • read command-line arguments and perform file I/O • perform common string operations in Python • append items to Python lists • sort lists in Python using built-in routines
In this liveProject, you’ll build neural nets for a bank that are capable of classifying the numbers written on deposit slips. Customers often write out their important account details by hand, and you need to create a model capable of effectively reading their handwriting. You’ll use a feedforward network trained with backpropagation to identify hand-drawn digits with a high percentage of accuracy. Plus, this project contains an optional bonus milestone! Further your knowledge of neural networks by using the TensorFlow and Keras libraries to create an alternative and more flexible version of your first model. You’ll get hands-on experience with these tools' standard libraries, and with your new model you will be able to easily analyze the network's success rate and experiment with different activation functions.
skills learned: neural network concepts • feed-forward neural networks • backpropagation
In this liveProject, you’ll take on the task of extending a pricing application. You’ve just hit your first speed bump of needing to add functionality to the class that manages prices. However, that class is used elsewhere and you can’t get permission to change it. Your challenge is to implement a “monkey patch”—adding methods to the class at runtime—by experimenting with Python-bound methods.
skills learned: add functionality to a pricing application • create a class using type() • add bound methods to a class • monkey patch a class after creation
Put on your platform architect hat! You’re a member of the development team at Piper Data Concepts (PDC), and your client is looking to modernize its workflow. An existing benchmarked development environment, made up of Kafka, Python, and Postgres, is at your disposal. Now it’s time to start conceptualizing the new and improved workflow. You’ll use Kafka to create an event-driven data pipeline, review and understand business requirements, use Python Poetry to package the project, write Python code using the Faust library to communicate with Kafka, and store the consumed data in a PostgreSQL database.
skills learned: Faust • architecture • Kafka topics • writing to a database
You’re a software engineer for Sneakers to the Max, an e-commerce company that sells sneakers. Its CEO wants to improve the speed and quality of the company’s search engine in hopes of boosting sales. Your task is to optimize the mappings of the Elasticsearch index. You’ll use the Kibana developer console to analyze the current mapping and create a new custom analyzer. To improve search matches—and customer experience—you’ll use the Elasticsearch field mappings to support multiple uses of the same field. You’ll modify the mappings to help customers find the sneakers they’re looking for, even if their search terms are incomplete or contain typos. To further improve CX, you’ll add synonyms to the Elasticsearch configuration to handle searches that use different terms for the same concept.
skills learned: mapping of different datatype fields in Elasticsearch • evaluating mapped datatype fields using analyzer tools
Takeout company FTGO has a problem with its Kubernetes-based application—its services are still deployed using vanilla Kubernetes manifests. This makes it hard to tailor services to environments and automatically declare a service’s dependencies. You’ve stepped in to help them—by utilizing Helm, a Kubernetes package manager. You’ll get hands-on experience creating Helm charts for services, configuring deployment pipelines to seamlessly publish them to Helm repositories, and mastering the art of deploying and upgrading services packaged as Helm charts.
skills learned: writing • testing • and publishing Helm charts
In this liveProject, you’ll package your application as a Docker image that’s ready for easy deployment. You’ll use Spring Boot to package your app to Docker, and then deploy to AWS with Amazon RDS and Beanstalk. Finally, you’ll reimplement functionalities for a Facebook login and configure HTTPs.
UPDATED: July 2023 to use the latest versions of Java, Gradle, and Spring Boot; and updated instructional text throughout all the projects.
skills learned: configuring Amazon Relational Database Service (RDS) • deploying Spring Boot app into Amazon Elastic Beanstalk • reconfiguring an application database connection in production
In this liveProject, you’ll progressively enhance a service template, starting with packaging it as a container image. Next, you’ll build and run a service template container with Docker Compose, write component tests for a service, and finally build and test a container image. When you’re finished, you’ll have a Github repository that automatically pushes a tested container image to a Docker registry. This project focuses on Kotlin.
skills learned: package a Spring Boot application as a Docker container image • run and test a container image • configure a Github Actions-based deployment pipeline to build and test a container image and push it to a registry
As the IT Developer for Rocinante, your primary objective is to streamline and centralize the company's scattered IT scripts and tools. By leveraging the power of a unified GitHub platform, you will bring together these resources, empowering your team with a consolidated and efficient solution. The GitHub management module has been meticulously crafted, adhering to community standards and fortified with automated tests and linting—now you need to prepare the module for packaging and publication, enabling effortless sharing with others through the Install-Module cmdlet. Additionally, you’ll tackle the crucial task of testing the modules across Linux and Windows environments, culminating in creating an official release on GitHub.
skills learned: creating packages with NuGet • running a pipeline on multiple systems with GitHub • GitHub releases with Git tags
In this liveProject, you’ll walk through the powerful MapReduce algorithm. MapReduce maps out data tasks to multiple processors, and then reduces all processors’ results to a single combination. You’ll use Processing to visualize MapReduce with twenty processor nodes, then animate the MapReduce algorithm with a streaming input dataset
skills learned: Data flow graphs • MapReduce algorithms • interactive visualization for streaming data
Svalbard Inc.’s customers are reveling in the comfort of the global online store’s Scandinavian furniture. But, for Svalbard, the cost to scale its backend applications is less than comfortable. To ease its pain, the store has begun migrating its legacy mainframes to a more flexible, modern deployment model. Svalbard has already implemented a CLI tool that internal developers and operators can easily configure to their needs. As a Rust programmer, it’s up to you to improve this tool. You’ll track down potential performance bottlenecks with the help of flame graphs, then implement solutions to tackle them using hyper. You’ll verify the performance improvements, then create a tool for guarding against regressions with the Criterion suite. When you’re done, you’ll be comfortable evaluating and improving an asynchronous Rust application.
skills learned: performance analysis • profiling • optimization
As a Kubernetes administrator at Interpop, a music streaming service, you know that container applications can’t run without pod communication. Your task is to ensure connectivity between pods in the service’s cluster. You’ll connect nodes together using Weave, a container network interface (CNI). To keep communication traffic secure, you’ll implement network policies, and you’ll simplify traffic routing with the NGINX Ingress controller. You’ll learn how to troubleshoot network problems in the cluster using kubectl, and how to find solutions for pod failures. When you’re done, you’ll have experience implementing networking and troubleshooting techniques that will keep your container applications working together in harmony.
skills learned: network policies • ingress • troubleshooting pod failure • pod logs
In this liveProject, you’ll step into the shoes of a quantum software engineer and develop a library for state preparation routines. Preparing quantum systems in arbitrary superposition states is a vital step of quantum algorithms. Luckily, the Microsoft Quantum Development Kit libraries offer multiple state preparation routines. You’ll implement a single-qubit state preparation routine and a recursive multi-qubit state preparation routine, before implementing the complete multi-qubit state preparation routine. Finally, you’ll write unit tests for your implementation.
skills learned: developing quantum algorithms to match specified tasks • simplifying code development with the Microsoft Quantum Development Kit • running quantum code simulations
The company you work for, which offers lifestyle products, has enjoyed success for several years, but management has decided it’s not competitive enough. Your task is to identify current market trends and new niche markets for the company’s lifestyle products. Using Python and Ray, you’ll build a web scraper that will load and save multiple web pages concurrently. To preprocess the data, you’ll read each of your locally stored pages, split them into sentences, tokenize each sentence with Hugging Face tokenizers, and store your tokenized documents in a new (pickled) format in your file system. When you’re finished, you’ll have leveraged Ray to preprocess a large amount of data while bypassing Python’s notorious concurrency limitations. The data science team will thank you for helping minimize the data preparation time, and the management team will thank you for helping the company sharpen its competitive edge.
skills learned: make your Python code concurrent or parallel • build a web scraper • pre-process texts for NLP models with Hugging Face transformers
Interpop, a popular music-streaming service, wants its millions of customers across the globe to be able to view the same data—their user profiles and music playlists, for example—every time they open the service’s app. As Interpop’s new Kubernetes administrator, it’s up to you to prevent loss of data by setting up Interpop’s Kubernetes clusters to persist indefinitely. Using YAML, you’ll configure and create a persistent volume that allows for data to persist beyond the life of a pod (because pods are natively ephemeral). You’ll also create a persistent volume claim, ensuring that the app has enough storage to run efficiently. Using various storage allocation methods, you’ll streamline the process of creating storage on-the-fly, helping to boost Interpop’s developers’ productivity. To prepare for production, you’ll configure and run a MySQL database* and attach persistent storage to it. When you’re finished, you’ll have the skills and knowledge to prevent the loss of vital data, and Interpop will sing your praises!
*The approximate cost to run EKS in AWS Cloud is $4.33 USD.
skills learned: persistent volume type • claims • storage classes • EBS volumes in AWS Cloud
In this liveProject, you’ll reduce duplicate search requests in an e-commerce store to bring down unnecessary data usage of microservices. You’ll implement caching and database functionalities that can reduce search duplication during key promotional events like Black Friday, and set up a synchronization of search requests which occur at the same moment.
skills learned: reduce duplicate requests • synchronization requests
In this liveProject, you’ll use the private set-intersection (PSI) protocol to develop a tool which can compare cancer patients for a blind trial without revealing their private details. PSI is a two-party protocol where each party holds a private set that it inputs to the protocol, and outputs a new set that contains only the elements in the intersection. You’ll implement PSI using three different techniques: the oblivious transfer (OT) cryptographic primitive, a standard Bloom filter, and a more complex garbled version of a Bloom filter.
skills learned: implement the computational steps needed for OT and extended OT protocols • implement a Bloom filter and the more advanced garbled Bloom filter
You’re an avid chess player who’s asked by Alexis, a fellow chess club member, “How many queens can you place on a chessboard without any of them being able to attack any of the others?” To discover the answer, you’ll write a recursive program that will enable you to examine all of the possible queen arrangements. You’ll start with simpler functions, including calculating factorials and Fibonacci numbers, to warm up your recursive brain muscles. Then, you’ll advance to solving the knight’s tour problem, the Tower of Hanoi puzzle, and finally, the N-queens problem—the one that will satisfy Alexis’s curiosity. When you’re finished, you’ll have elevated your recursive function game by solving well-known problems and learning important techniques along the way.
skills learned: recursion • simple dynamic programming • memoization • backtracking • restructuring problems • calculating factorials and Fibonacci numbers • finding knight's tours • solving the N-queens problem • solving the Tower of Hanoi puzzle
The Tower of Hanoi is one of the most famous (and fun!) mathematical puzzles you can tackle. In this liveProject, you’ll set out to solve this tricky challenge using recursive functions in the Rust programming language. Kickstart your journey with factorials, then calculate Fibonacci numbers and solve the Knight’s Tour and N-Queens problems. Then, you’ll be ready to take on the Tower of Hanoi—and transfer your new recursion skills to multiple other problems.
skills learned: recursion • simple dynamic programming • memoization • backtracking • restructuring problems • calculating factorials and Fibonacci numbers • finding knight's tours • solving the n-queens problem • solving the Tower of Hanoi puzzle
You’re a software developer for Greengrocer, a chain of supermarkets that’s revamping its monolithic software to better handle its growing customer base. Using a design-first approach and the OpenAPI Specification, your task is to design a product catalog API to help employees track inventory. You’ll write API definitions through YAML description files and generate code and documentation for the API. When you’re done, you’ll have firsthand experience with OpenAPI Specification, YAML syntax, and schema definitions, and you’ll have improved the developer experience with good documentation.
skills learned: design a product catalog API by following a design-first approach and using OpenAPI Spec • master the basics of OpenAPI Specification, YAML syntax, schema definitions • generate helpful API documentation
Greengrocer’s monolithic web app is suffering growing pains. As a software developer for this chain of mid-sized supermarkets, your task is to design a supplier API to help define various resources, resource types, and resource relationships. Using an API design-first approach, you’ll design the microservice API’s resource layout, establish data type definitions for the API in YAML, then add CRUD (create, read, update and delete) as well as partial read and update functionalities for price details.
skills learned: master a resource layout and various types of resource relationships • define resources and their interactions • add CRUD functionalities to an API • design and implement updates and retrieval without impacting all the resources • generate helpful API documentation
In this liveProject, you’ll ready your service for production. You’ll use the Spring caching API to add caching functionalities to a financial application, and compose your application for deployment. You’ll use Redis as your caching server.
skills learned: adding caching to any Spring application using the Spring caching framework • employ Redis to cache frequently accessed data • bundle your related services using Docker Compose
Svalbard’s Scandinavian furniture is quickly becoming a living room staple in homes across the globe. But the cost of scaling up the online store’s application is growing as fast as its customer base. As a Rust programmer, you’ve been helping Svalbard migrate its legacy mainframes to a more flexible, modern deployment model to manage the cost. Your application is fast and reliable, but you’re not done yet! As more people use your tool, the number of use cases it needs to support is increasing, too.
Your task is to refactor your application from a locally executed CLI tool to an always-on service. You’ll scale up observability by adding logging and metrics collection using industry-standard tools, including Prometheus, and you’ll deploy your application as a Docker container alongside a reference service. When you’re done, you’ll have built a production-ready application that supports a wide range of real-world scenarios.
skills learned: logging • deploy rust with Docker • collect and expose metrics
With production traffic increasing and services rapidly scaling, the Dynomica music service must balance frequent releases with production stability. In this liveProject, you’ll help Dynomica implement progressive delivery on Kubernetes to push code while safeguarding production. Enable controlled, gradual rollouts to catch issues before they impact users, unlock frequent deployments to production without crashes, and you’ll soon have a progressive delivery pipeline that can deliver reliable, rapid releases that keep Dynomica competitive.
skills learned: Advanced progressive delivery with Flagger
In this liveProject, you’ll use Rust and RSA encryption to secure the emails of your antique marble collection business. You’ll steadily build up different parts of the RSA encryption process before bringing each together in a working RSA example that can both encrypt and decrypt your email messages. Throughout the journey, you will acquire knowledge about prime number identification, factoring, probabilistic generation of random primes, and rapid exponentiation techniques.
skills learned: randomization • GCD and LCM • fast exponentiation • working with prime numbers • factoring • primality testing • RSA encryption
You’re the new head of IT at The Fright Stuff, a small Halloween store, and it’s up to you to prevent a scary security breach! To ensure your customers’ sensitive data is secure, you’ll build an RSA public key encryption program. Along the way, you’ll learn interesting mathematical techniques such as calculating greatest common divisors and least common multiples, performing fast exponentiation, building a sieve of Eratosthenes, testing for primality, and other vital encryption skills. When you’re done, your customers’ data will be safer than ever before, and you’ll have learned essential skills for RSA encryption.
skills learned: randomization • GCD and LCM • fast exponentiation • working with prime numbers • factoring • primality testing • RSA encryption
Messflix Inc., a movie and TV-show streaming platform, wants to build a recommendation system for its movies and shows, but currently, its data landscape is too complex. As a consultant, your task is to implement a data mesh for an improved, accurate flow of its data. Using Python and JSON, you’ll help the data engineering teams sift more easily through Messflix’s data by creating separate, structured data products that can be pushed to the central data platform. From the organized data products, you’ll create a list of recommended movies, tailored to Messflix’s customers’ preferences.
skills learned: understand distributed domain ownership • produce data inside a data mesh • produce derived domain data products
You’re a software engineer at Musify, a SaaS company that helps companies launch their products. For its newest client, Musify has created a REST API that allows music artists to upload and delete their audio files as well as letting end users view and listen to songs according to their preferences. Your task is to set up the microservice structure using Docker and deploy the REST API to the Azure portal. You’ll write instructions in a Dockerfile to create and run a custom Docker image in a container. You’ll create a container registry in the Azure portal and push the Docker image to an Azure container registry in the cloud. When you’re finished, you’ll have the know-how and experience to publish a microservice to Azure, and the development team will be able to easily and conveniently access, run, and update the application.
skills learned: create a Docker image • run a Docker image as a container • deploy a custom image to Azure Container Registry
Messflix Inc., a movie and TV-show streaming platform, is implementing a data mesh. So far, it has a self-serve data platform prototype where development teams can register their domain data products. As a consultant, your task is to build on that basic platform prototype with additional functionality: You’ll write a script in Python that will enable the development teams to push fresh data into their existing data products, write a function that adds support for versioned data, and implement a function that automatically calculates specific metadata (like row count and latest timestamp), then prints it to the screen. When you’re finished, you’ll have built a well-functioning, feature-rich, self-serve data platform, and be familiar with the requirements data-producing and data-consuming teams face daily and how to fulfill them.
skills learned: build a self-serve data platform • build a small data catalog • consume data inside a data mesh • store data products
In this liveProject, you’ll use a GraphQL API implemented using AWS AppSync to add a new hotel to SimpleTravel’s records. Then, you’ll implement a GraphQL subscription to automatically notify consumers who are interested in these events. This approach will modernize the API for the travel company, supporting the scaling of its business.
skills learned: implement a GraphQL mutation • implement a real-time notification mechanism
Step into the role of a developer at Piper Data Concepts (PDC), a company that specializes in helping Fortune 1000 companies improve their workflows. Your task is to review the 15-year-old workflow architecture of one of your clients, Trade Data Systems. You’ll identify issues and bottlenecks, then determine what’s needed to transform its workflow into a more modern, responsive architecture. To accomplish this, you’ll set up a development environment with Docker using Kafka, Python, and Postgres. As you go, you’ll deploy a Kafka cluster and write Python code using the Faust library to seamlessly process pre-defined business events.
skills learned: Python packaging • messaging • containers
In this liveProject, you'll join InfoHub, an AI startup disrupting corporate knowledge management. They aim to unlock a company’s knowledge base through conversational Q&A-style user interfaces that use breakthrough language models. You'll leverage LangChain, a framework optimized for integrating LLMs into apps, to integrate InfoHub's data, vector stores, and language models into a single solution. You’ll prepare your data, create a vector store to embed your documents, and then use LangChain to combine it with an LLM.
skills learned: use LangChain for questions answering • create and populate a vector store with your own data
In this liveProject, you’ll implement superdense encoding and use the unique properties of qubits to build a communication system between two friends—Alice and Bob. You’ll prepare qubits into a Bell pair, and then utilize quantum gates to implement a messaging system. You’ll then prepare the quantum circuits that allow Bob to receive and read Alice’s messages.
skills learned: create a quantum circuit to communicate information between two parties using the Amazon Braket SDK • prepare two qubits and make them into a Bell pair • implement a messaging scheme with quantum gates • send messages using qubits
In this liveProject, you’ll use the Amazon Braket quantum simulator to generate a quantum random number generator. Generating truly random numbers is an essential aspect of cryptography, and the seed generation process in a public/private key infrastructure. These random numbers can be used as the basis for further cryptographic work that easily outpaces the pseudo-random capabilities of traditional computing.
skills learned: create a quantum circuit that solves a problem by creating a truly random number with Amazon Braket SDK
It’s your fourth week with SongRiver, a music-streaming web platform whose success is climbing the charts. Beta testers for the employee directory app you’ve been building are singing your praises, and they have a new request: they’d like to celebrate employees with badges that spotlight their contributions. You’ll use Chakra UI to create a grid of employee badges and add badge information to the employee page. Using React Query, you’ll add functionality for sending badge data to the server, then display a “toast” (pop-up) message that communicates whether or not the badge submission was successful. When you’re done, you’ll have a people-pleasing, connection-boosting feature that adds and displays employees’ badges, and you’ll have earned a “Rock Star” badge of your own.
Some sections may contain information that is now outdated due to the rapid advancements in the technology field, notably the initial libraries, Docker setup, and some documentation links. Regardless, this liveProject remains an invaluable resource for intermediate users.
skills learned: display employees’ existing badges • provide a button to add a new badge • send an update to the server when a new badge is added • refresh the data on the page to show the new badge
In this liveProject you’ll develop a chatbot that can answer its user’s questions, using the Hugging Face NLP library. Your challenges will include building the task with DistilBERT transformer, and experimenting with other transformer models to improve your results. Once you’ve built an accurate NLP model, you’ll develop a Telegram bot and integrate it with your Question Answer task.
skills learned: use a transformer to create a question-answer tool • build a chatbot using Hugging Face library to answer user questions using Wikipedia data
In this liveProject, you’ll make use of the D3.js library to create a radial visualization of the cohorts of NASA astronauts. Radial visualizations are very popular with users as they evoke calmness and gracefulness, and the eye is naturally drawn to round shapes. This complex project will really test your D3.js skills as you create a visualization that can expertly display diverse information about each astronaut, like the total time spent in space, or background information such as military versus civilian. To complete this stunning visualization, you will need to generate arcs and display labels over a path, use D3 scales to generate a legend, and animate shapes to create a rich interaction flow.
skills learned: create arcs using D3’s arc generator • position basic SVG shapes on a radial layout using trigonometry • append external images inside a visualization • chain transitions to animate SVG elements within the visualization
In this liveProject, you’ll step into the shoes of a security engineer working for news aggregator ReadBytes. Your site uses a REST API to distribute its content, which is vulnerable to the ever-increasing risks of attacks like brute forcing and credential stuffing. Your manager wants you to provide rate limiting of requests to help secure your API. To do this, you’ll first perform your own brute force attack, then implement and test a rate limiter.
skills learned: encrypting traffic • reverse proxy with NGINX
Give Budzykfarm’s managers a view of pertinent data in their new farm management web application. Using MudBlazor and Entity Framework (EF) Core, you’ll create two new pages: one for live work logs and one for historic work logs. To accomplish this, you’ll build template database tables, then add functionality for retrieving and displaying the data.
skills learned: run background tasks in Blazor • update displayed values when data changes
In this liveProject, you’ll make IoT devices “chat” through HTTP services. You’ll construct IoT gateways that query data from sensors, then send that data to a centralized platform. You’ll use different protocols to do this, including HTTP and MQTT. The Vert.x toolkit will give you everything you need to work with these protocols.
skills learned: Vert.x microservices
In this liveProject, you’ll improve the caching mechanism between a Catalog API and microservices. This will reduce the number of unnecessary requests, and reduce costs from your cloud provider. You’ll explore near cache, remote cache, and proxy cache mechanisms, then evaluate the pros-and-cons of each approach.
skills learned: working with an internal cache in each instance of microservices • working with a cache in front of a particular API • best practices and pros/cons of caching mechanisms
The company you work for wants to improve its system by adding functionality that maximizes the profitability of any given search. As the resident TypeScript developer, your task is to apply a battery of tests to support changing the design of legacy code in preparation for adding this new functionality. You’ll refactor your production code based on advice from your architecture team. Thanks to a broad test suite, you’ll be able to change your design with no worries about accidentally breaking a required behavior. The result will be a system you can test with smaller, more meaningful tests and that easily withstands future requirement changes.
skills learned: change the design of existing code while supported by tests • change test suites to take advantage of better designs
In this liveProject, you’ll learn to use a battery of tests to support changing the design of some legacy code in preparation for adding new functionality. You’ll refactor your production code based on advice from your architecture team. Because you have a broad test suite, you will be able to change your design without fear of accidentally breaking a required behavior. The output will be a system that can more easily withstand incoming requirements changes and against which you can write smaller, more meaningful tests.
skills learned: Changing the design of existing code while supported by tests, Changing test suites to take advantage of better designs
With a brand new grant from the finance department, biotech company SphereCell has hired a new frontend web developer — you! Your boss wastes no time laying out your first project: completely refactor SphereCell’s sales trends dashboard.
The goals of this refactoring are to modernize the dashboard, reduce technical debt with future-proof code, and improve its maintainability. Your boss has also mentioned that SphereCell will soon need another new dashboard for an upcoming subscription service, so you’ve decided to use React Hooks to ensure the work you do will be easily reusable.
Your challenges will include migrating the existing codebase and data fetching logic to React Hooks, move the application’s state to the React Context API, and make sure everything is robust and working with automated tests.
skills learned: creating React components with state • fetching data with React Hooks • handling complex state changes with React Hooks • handling application’s state with React Context API • mocking API data in the frontend
In this liveProject, you’ll implement Service Discovery and Registry Modules so that the services of a bank’s notification management platform can dynamically register and be available for other services to discover at runtime. You’ll make use of the Spring Cloud Registry to register your services before you configure healthy endpoints and set up discovery.
skills learned: use dependency injection with Autowired Services • use @EnableDiscoveryClient for look up of services from Consul • configure spring.cloud.consul.host and spring.cloud.consul.port for consul integration
In this liveProject, you’ll learn to tackle remote OS command injections—a dangerous vulnerability responsible for many high-profile cyber breaches. This vulnerability exploits times when an application calls an operating system command passing untrusted user-supplied input. You’ll investigate places where your application calls operating system commands, then apply and test a code-level fix.
This liveProject was implemented by Natan Streppel.
skills learned: identifying implementation vulnerabilities • remediating Java code vulnerabilities • testing functionality with Postman
XYZ Services Company, the consulting and outsourcing firm you work for, is getting up and running after a massive IT infrastructure failure. In the meantime, the Human Resources department would like a report with basic staff data that it will use to distribute payslips to employees. As a PowerShell developer, you’ll use the switch statement and its file parameter to read and extract information from the source files provided by the company’s Active Directory before the system failed, build PowerShell objects, and export them into CSV format—helping HR provide proof of payment and putting your coworkers’ minds at ease.
skills learned: work with objects with FileInfo type • use the switch statement and its File parameter to process multiple text files • create custom objects • add properties to objects • use methods to modify text strings • export objects to CSV format
You're a TypeScript developer at an organization that sells stock photography products to the general public, as well as to news and other media markets. The company wants to add functionality to its system that maximizes the profitability of any given search. It’s up to you to improve the test suite by adding high-quality requirements-based tests. You’ll use mocks to isolate requirements, ensuring that each test focuses on a single behavior in your code. When you’re done, you’ll have a more resilient codebase.
skills learned: change the design of existing code with the support of tests • change test suites to take advantage of better designs
In this liveProject, you’ll explore writing high-quality, requirements-based tests against code with a solid design.You will take great care to ensure that each test focuses on a single, isolated behavior within the code. To that end, you’ll use techniques such as mocking to isolate requirements from one another for the purpose of testing. The output of the project is a codebase with a far more resilient test suite that will be able to stand the test of time.
skills learned: changing the design of existing code while supported by tests • changing test suites to take advantage of better designs
In the modern world, web traffic is mobile traffic. That’s why your sites need to be responsive and easily adaptable to any screen size! In this liveProject, you’ll create a responsive layout for your portfolio site so it looks good on mobile. You’ll need to constrain your profile picture, utilize column-based layouts, use grid and flex to align items, and utilize flexbox to lay out your footer.
skills learned: Using the multi-column layout module to lay out a list of items into multiple columns • Using subgrid to lay out elements inside of a grid layout • Using flexbox to display a list of elements horizontally • How to prevent image distortion using object-fit • Using pseudo-classes in selectors
In this liveProject, you’ll use Amazon Cognito to restrict access to a GraphQL API. Previously, SimpleTravel’s APIs were publicly accessible. But you’ve seen a surge of new customers, and now your boss wants to ensure that access is limited to authorized users. Your challenges include creating an Amazon Cognito user pool and implementing group-based authorization in AWS AppSync.
skills learned: manage a user directory with Amazon Cognito User Pool • leverage Amazon Cognito to restrict API calls to authenticated users only • implement group-based authorization
In this liveProject, you’ll help takeout delivery company FTGO Inc. take their first steps in moving to a microservices-based architecture. You’ll begin by creating Kubernetes manifests that enable you to deploy your services and their required infrastructures, such as databases, within a cluster environment. You'll use the package manager Helm to seamlessly install and manage infrastructure services like Postgres and Apache Kafka and use kind (Kubernetes in Docker) to create a local Kubernetes cluster that runs on your machine. Finally, you’ll see how GitHub Actions can automate your testing process.
skills learned: Writing Kubernetes manifests to deploy applications and publishing Docker images to a container registry
FGTO is almost ready to deploy their Kubernetes application—they just need you to help them create a Kubernetes cluster for their production environment. The simplest and most reliable way to do this is to use a managed Kubernetes service, and for this liveProject, you’ll use AWS EKS. You’ll work with various tools, including Terraform and Crossplane, to create and configure the cluster. Terraform helps you configure your cluster with just a small amount of code, while Crossplane ensures you can provision the service and its infrastructure using only Kubernetes manifests. Once the application is deployed, you’ll work to encrypt secrets in Git using SOPS and AWS KMS and promote changes from development to production on EKS. When you’re done, FGTO will have a complete working Kubernetes deployment!
skills learned: Using Terraform • Crossplane • and AWS services to deploy an application on AWS EKS
In this liveProject, you’ll patch SQL injection vulnerabilities in your company’s bus ticket API. SQL injection is one of the most common ways of attacking a web application, and your challenges will include investigating this code-level vulnerability and applying a fix in the Java code. You’ll get experience using Postman to test your API’s functionality before and after applying your fix.
This liveProject was implemented by Natan Streppel.
skills learned: identifying implementation vulnerabilities • remediating Java code vulnerabilities • testing functionality with Postman
Your manager at RetroToy, an online retailer that sells replacement parts to toy and game hobbyists, needs product data downloaded from a vendor’s API. As an IT professional for the company, this task falls to you. You’ll connect to the data using Invoke-RestMethod, which will automatically parse the JSON result as PSCustomObjects. You’ll handle errors with PowerShell’s Try/Catch/Finally statement, ensuring your code behaves as expected. You’ll also save yourself time and effort by taking advantage of PowerShell Gallery, a central repository for PowerShell content, to find and install a third-party script for logging errors. With Task Scheduler, you’ll automate your daily tasks, giving yourself the freedom to focus on more productive endeavors.
This project is for Windows only.
skills learned: handle errors • get data from external sources • PowerShell Gallery • Windows Task Scheduler
Enter the realm of project management: your job is to oversee the construction of a castle, ensuring that the project is completed on time. Many of the tasks in the schedule are dependent on other tasks, and some will inevitably fail to be done by their due dates, risking the delay of the entire project—and the wrath of the Evil Overlord. To prevent this catastrophe, you’ll perform topological sorting to determine which tasks can be scheduled, use the critical path method to find out which tasks will be delayed by the delay of another task, and build PERT and Gantt charts to see critical paths and task dependencies in a visual way.
skills learned: topological sorting • PERT charts • critical path methods • Gantt charts
In this liveProject, you’ll take on the role of a project manager for a construction company and utilize Python to help schedule your construction’s tasks. You’ll utilize tried and tested methods like topological sorting, PERT charts, and Gantt charts to create a task scheduling tool that can both track deadlines and automatically update delivery dates for when deadlines are missed.
skills learned: using Python to parse data in files • finding critical paths • drawing with tkinter
In this liveProject, you’ll tackle risks caused by unsafe input and output handling in your application. These bugs can make your application vulnerable to reflected and stored attacks such as Cross-Site Scripting (XSS). You’ll identify insecure code and develop fixes to securely handle inputs from untrusted sources, safely manage your encoded data, and avoid unsafe calculations with numeric data types. You will be provided with resource material to identify the problems and will replace the vulnerable Java with secure code to protect against attacks.
skills learned: handling text from untrusted sources • safely logging untrusted data • working with encoded data
Smooth scrolling is one of the most important features of any portfolio page! In this liveProject, you’ll utilize CSS—including animation timelines—to set up different features for when a user scrolls your page. You’ll lock your header to stay visible on screen at all times, ensure that the top of different sections snap to the top of the window as users scroll, establish a progress bar in the header to show how far you’ve scrolled, and more. When you’ve finished this final polish, your portfolio page will look great!
skills learned: Using the position property to create a sticky header • Using scroll-snap-type and scroll-snap-align to control scroll behavior between sections • Adjusting the scroll snap position using scroll-padding • Using animation timelines to create an on-scroll progress indicator • Using the ::backdrop pseudo-element to style the dialog's backdrop
The real estate developer you’ve worked with previously is so pleased with your work that they’ve asked you to write a new program that allows them to zero in on specific data in sorted reports. Their ultimate goal is to determine what kinds of homes fall into different ranges of interest. Using Python, the csv library, and a custom ADT (that you’ll design), you’ll implement multiple distinct search algorithms as you create a program that allows your client to run many queries— and be fast and efficient, despite the large size of the dataset.
skills learned: design an ADT that abstracts over a dataset and implement it for sorted and unsorted Python lists as well as balanced and unbalanced binary search trees • implement a routine to search through the data • check the correctness of your code using provided unit tests
In this liveProject, your challenge is to plan a festive Secret Santa gift exchange for your co-workers, keeping their identities private. The catch is: They’re all working remotely thanks to the COVID-19 pandemic. Luckily, you’re no stranger to providing innovative solutions to “impossible” problems. You’ll implement MPC as you program in Rust, which is well-suited for cryptography applications thanks to its guaranteed memory safety. When you’re done, you’ll have developed a private mix method and randomly assigned each “gifter” exactly one “giftee” while keeping the identity of the “Santa” a secret!
skills learned: define relevant data structures (specifically structs and enums) · build a simple application that interacts with the command line · use the standard library to build logic and tests for the application
As the DevSecOps engineer for Zozo, an online gift store, you’ll write Docker files and build secure Docker images that keep Zozo’s customers happy and your manager even happier. Along the way, you’ll spot potential security vulnerabilities using several open source tools, and ward against cyberattacks with digital signatures.
skills learned: building secure Docker images • identifying vulnerabilities • remediating vulnerabilities • verifying remediations, digital signing
Take the next step in securing Zozo’s online store by securing the environments running the Docker services—the host machine, Docker daemon, and container—at run time, continuing to work with open-source e-commerce project Shopizer, and hardening the host and Docker instances using global best practices.
skills learned: identifying potential security vulnerabilities • remediating security issues • hardening Docker instances running API services • testing instances for functionality and security
Welcome to Interpop, a popular audio streaming service that has over 30 million users and gets about a million requests per second to its service running on Kubernetes. As Interpop’s new Kubernetes administrator, your task is to secure its Kubernetes cluster, ensuring a more secure connection for end users. You’ll create user accounts with client certificates that allow limited access to the cluster, and you’ll grant different levels of user access with Roles, Bindings, ClusterRoles, and ClusterBindings. You’ll create service accounts that allow users to deploy pods so that developers can run them, and you’ll empower Interpop’s engineers to check what kind of access they have using auth can-I. When you’re done, you’ll have practical experience securing access to Kubernetes with users, certs, groups, and role-based access control (RBAC), as well as a solid understanding of Kubernetes security in a production environment.
skills learned: role-based access control • authentication • authorization • service accounts
The Istio service mesh gives you complete visibility over your large scale microservices applications, making it easy to enforce security, manage traffic, spot and debug errors, and improve user experience.
In this liveProject, you’ll get hands-on experience of safely and securely exposing an e-commerce microservices-based store using Istio. You’ll iteratively build in new security features step-by-step, mastering Istio as you go. You’ll handle deploying your application with Istio and Kubernetes, encrypting traffic to your application via self-managed TLS certificate, understanding application behavior by using Istio telemetry, and finish up with an efficient debug of your app using the Istio service mesh. By the time you’re done, you’ll have the skills to ensure the security of your app, and start making the move away from error-prone manual management of microservices.
skills learned: using Istio service mesh • exposing the application to users securely via HTTPS • protecting sensitive user information using Istio Auth policies • understanding application behavior by using Istio telemetry • efficiently debugging your Istio service mesh
You’re a senior developer at Travel World Agency (TWA). As its success has grown, so have computing costs. But before introducing potentially disruptive cost-cutting measures into its next-gen system running on Amazon Web Services (AWS), it needs to improve the quality of its microservices. Your task is to detect possible security problems using Sonar, then use Dependency-Check and Dependency-Track to analyze the dependencies and add rules to define how many vulnerabilities your microservices might have with the ongoing execution of the pipeline.
skills learned: use Dependency-Check to identify the vulnerabilities in a microservice on your local machine or in your pipeline • use Dependency-Track to identify vulnerabilities between different microservices in one place and to add rules to define a quality gate for the security issues • add analysis in the Jenkins pipeline
In this liveProject, you’ll use cryptography to create a fair and secure coin tossing application. This simple-sounding task is surprisingly complex, and so you’ll implement a multi-step classical protocol to create a coin flipper where neither player can cheat or bias the result. You’ll use Rust to implement the computational steps of a coin toss construction, as this powerful low-level language has great features for cryptography.
skills learned: using RSA encryption • practical algorithms from number theory
In this liveProject, you’ll secure a financial application using the out-of-the-box security features of Spring. You’ll set up authentication servers, add users, and configure rules for your application.
skills learned: basics of Keycloak administration • OAuth 2 workflows and when to use them • securing an application with Spring Security • how Docker makes running applications easier
In this liveProject, you’ll learn how to defend against attacks that could force a failure in your application or cause it to enter an unstable state. Unexpected behaviors and fail states can allow an attacker to steal information or provide information for a secondary attack. You’ll create catch statements and methods that can securely handle exceptions, design code that can maintain state on failure, and learn to avoid unstable system states altogether.
skills learned: creating catch statements to securely handle exceptions • designing applications that maintain state on failure • developing software which can recover from an unstable state
You’re a senior developer at Travel World Agency (TWA), which has grown to become the largest travel agency in the world. The company has built a next-generation system that uses a microservice architecture running on Amazon Web Services (AWS). But while TWA’s success is flying high, the performance of its reservation microservice has taken an unfortunate detour. As a solution, TWA has replaced the microservice with a new one, using Kotlin and Spring Boot to improve performance and maintainability. Your job is to secure the API against possible attacks. You’ll configure a Keycloak authentication server to keep track of valid users. Using Spring Security, you’ll add security mechanisms on the microservice to ensure that only valid users can access it and that those users can only access their own reservations.
skills learned: validate whether the user has permissions
You’re a programmer at the RoboPrototypes company, and its “dribot”—a prototype of a robot that will serve drinks to customers at a food court—has been running into things (including the CEO’s shin). Using Gazebo 11 and RVIZ2, you’ll add LiDAR (light detection and ranging) and IMU (Inertial Measurement Units) sensors that will provide a view of the environment from the robot’s perspective. To make the most out of the sensor data, you’ll fuse information from multiple sensor sources to better estimate where the robot is in the world.
The version of Gazebo used in this project reached end of life in January 2025.
skills learned: basics of sensors (encoders, IMUs, LiDARs, ultrasonic sensors) • URDF/XACRO • create a robot description • simulate sensors • sensor fusion
In this liveProject, you’ll make use of Amazon Web Services tools to convert customer review videos to text for sentiment analysis. You’ll step into the role of a developer at a startup that offers a video alternative to feedback surveys, and help scale up your current platform so that it can handle thousands of incoming videos.
You’ll start creating your highly scalable solution with secure uploading, then build a video processing pipeline using event-based architectures. You use AWS Elastic Transcoder and Amazon Transcribe to transcribe video to text, and Amazon Comprehend to run sentiment analysis to determine whether feedback is positive or negative.
skills learned: create a serverless project and event-driven architecture with AWS Chalice • video manipulation with AWS Transcoder and Amazon Transcribe • sentiment analysis with Amazon Comprehend
The company you work for, which provides a news feed aggregator, is plagued with an influx of hoaxes that are putting its reputation in jeopardy. The data science team has already trained a set of complex natural language processing (NLP) models to distinguish real news from fake news. Your task is to build a service, using Ray, that exposes the endpoint that returns the JSON object categorized as either a hoax or news. Then, you’ll optimize the service for performance and speed, enabling it to perform more parallel operations and use as many GPUs as possible. When you’re finished, you’ll have firsthand experience using some of Ray Serve’s advanced features for serving and optimizing a compound model—and you’ll have kept your company’s reputation safe.
skills learned: use Ray Serve • use FastAPI • NLP text preprocessing • use Hugging Face transformers to transform text
Step into the role of a machine learning engineer working for a healthcare company that provides software to hospitals. One of your clients, a national health provider, has asked your company to provide software that predicts heart failure in patients. Using scikit-learn, you’ll develop a model that uses linear regression on a public Kaggle dataset containing heart failure data. Using Ray Serve, you’ll first deploy a function that accepts a wide range of parameters, then serve your model and provide functionality for multiple concurrent requests. When you’re done, you’ll have learned to use the Ray framework to serve your model through a webpage and helped your client save lives by using its patients’ parameters to predict imminent heart failure.
skills learned: use Ray Serve • use FastAPI integration with Ray • deploy a scikit model with Ray Serve
In this liveProject, you’ll write secure Java code for handling potentially untrusted data in web applications. You’ll build systems that can protect against data from web app forms; safely handle cookies, headers and redirects; and set up secure authentication mechanisms. Finally, you’ll manage your third-party libraries and identify potential vulnerabilities using Software Composition Analysis (SCA). Insecure third-party libraries can add vulnerabilities to your otherwise secure application and have been used in several recent real-world compromises.
skills learned: securely handle untrusted form data • evaluate uploaded files • safely handle sending cookies, headers, and redirects
In this liveProject, you’ll add secure session management to the API for granting employee leave. You’ll implement an authenticated leave retrieval call, a user logout flow, and a password update flow for users whose credentials are forgotten or compromised. These are essential building blocks for creating a secure API.
This liveProject was implemented by Natan Streppel.
skills learned: understanding an API specified in Open API Specification 3.0 • setting up an environment to implement an API • setting up session management
Help ShareSafe’s customers share with confidence. You’re a developer for a company that provides online file-sharing-as-a service. Its users can upload and share personal documents, photos, and videos onto ShareSafe’s website using APIs. Your task is to add security to ShareSafe’s file-transfer REST API service. You’ll implement a user-authentication layer using JSON Web Tokens (JWTs), provide authorization for shareable URLs by establishing the relationship between users and files, and leverage macaroons (cryptographic cookies) to provide a secure way for users to share files.
skills learned: add JWT-based user authentication • macaroons-based authorization
In this liveProject, you’ll use Python algorithms to help find the shortest path between stops for a fleet management company. With trucks driving over 10 million miles per year, even slight time saving can be a huge cost reduction. You’ll build network classes, save, restore, and draw networks, use network algorithms to find shortest paths between locations, and lay the groundwork for future network applications.
skills learned: defining classes that represent network nodes and links • saving and restoring networks • automatically building test networks • finding shortest paths in a network
The shortest distance between two points…is the most cost-effective. You’re the fleet manager at APS (Acme Parcel Service), a company whose fleet of thousands of trucks drives more than 10 million miles per year. Your goal is to write a program that finds the shortest path between stops, shaving a few percent off the total mileage—and scoring points with your CEO. You’ll learn to store networks in files, draw networks in WPF, test your networks, select start and end nodes, and find the shortest path between them using shortest path algorithms.
skills learned: networks • network traversal • node marking • label setting and label correcting algorithms
My Little Cookie Shop’s website looks pretty nice, but there’s a problem with an accordion feature on the store’s page. Instead of allowing the user to expand or collapse pastry categories, the content abruptly appears and vanishes. To make sure Max’s competitive edge doesn’t vanish, too, you’ll make the sections glide open and close, as well as fix an arrow’s rotation problems, using CSS and JavaScript. Also, to respect all users, you’ll use media query to disable animations for users whose browser settings indicate they prefer reduced motion.
skills learned: expand/collapse accordions • rotate elements • disable animations according to user preferences
Deliver more than just healthy food to BellyBox’s customers. Startup BellyBox was founded by .NET engineers who chose the .NET platform to launch their online grocery delivery application. As a developer, your task is to create customer pages and user interface components that serve up a five-star user experience. You’ll set up a frontend Blazor WebAssembly project, connect it to an ASP.NET Web API server, and build components to display a highly customized interactive storefront. You’ll learn component architecture and state management essentials, as well as communicating with data services using HttpClient.
skills learned: component model basics • dependency injection • calling HTTP services • data binding • state management basics
This liveProject puts you on the front lines at an indie bookstore, where poorly scrawled notes threaten to bring sales to a standstill. Learning classification algorithms from the ground up, you'll use four different and surprisingly simple classifiers to develop an AI solution that turns illegible scribbles into recognizable numbers.
skills learned: simple classification algorithms • K-nearest neighbors (KNN) • K-means • Naïve Bayes • hierarchical clustering
The future of the RoboPrototypes company is in your hands. It’s your first day at the company, which specializes in bespoke robotic solutions. The CEO has asked you to develop a prototype of a mobile robot that will serve drinks to mall food court customers. An important client will decide whether they’ll provide follow-up funding after they see your prototype in simulation. Working with Gazebo 11 and employing ROS best practices, you’ll create a model for a differential drive robot that meets the provided specifications. Next, you’ll simulate the robot, implement a basic teleoperation node for controlling it, and add velocity multiplexing for safety purposes.
The version of Gazebo used in this project reached end of life in January 2025.
skills learned: basics of URDF and XACRO modeling • load a robot model in RVIZ2 and Gazebo 11 • send Twist messages to the robot (and some of the safety implications involved)
Keep tabs on your robot. RoboPrototype, the company you work for, is preparing to demo its autonomous beverage delivery robot for investors in a food court next month. Your CEO has tasked you with setting up SLAM (Simultaneous Localization and Mapping) on the robot, making it possible to locate the robot at all times. Using the Slam Toolbox, you’ll equip the robot with the ability to create a map of its environment as well as pinpoint its location on the map. You’ll also get firsthand experience mapping on real data captured on a Turtlebot3 Burger, a widely used mobile robot platform.
The version of Gazebo used in this project reached end of life in January 2025.
skills learned: map with slam_toolbox • localization with slam_toolbox • SLAM in the bag
In this liveProject, you’ll explore the basics of sort and search algorithms. You’ll begin by sorting a simple data structure with the “selection sort” algorithm, then use the state-of-the-art quicksort algorithm. You’ll use the Processing platform to visualize every step, before finally programming a binary search function and visualizing the search process on your sorted data structures.
skills learned: simple data structures in Java (Processing) • selection sort and quick sort algorithms • sequential and binary search algorithms
The real estate developer you’re working with wants a program that can non-interactively read, sort, and write out the sorted data to a new file. In this liveProject, you’ll create this new program using the csv, abc, and time libraries. But instead of relying on Python’s built-in lists, you’ll implement the program with your own custom lists and sorting routines—gaining hands-on experience working with commonly used data structures and algorithms, demystifying all the work Python does for us and impressing your client, all at once!
skills learned: define an abstract data type (ADT) • define a linked list • implement sorting algorithms • perform algorithmic time complexity analysis
Sorting is one of the most important skills you can learn to make sense of messy data—and in this liveProject, you’ll discover sorting algorithms you can implement with Rust. You don’t need advanced Rust knowledge. With only the basics, you’ll tackle three of the huge number of sorting algorithms available: bubble sort, quicksort, and counting sort. But that’s not all: You’ll also experiment with a pair of search algorithms for linear and binary search. Before long, you’ll have an excellent grasp of the best sort and search algorithms for your needs.
skills learned: generating random numbers • Bubble Sort • QuickSort • counting sort • linear search • binary search • simple recursion
There’s a lot of buzz about the Bug of the Month club you started, but the fly in the ointment is that a few customers aren’t paying their bills on time. You have no choice but to halt their monthly shipments of fine insect-based foods. But to do that, you must first identify the delinquent customers. Using three different Go sorting algorithms—bubble sort, quicksort, and counting sort—you’ll sort your list of customers by balance owed. Once your data is sorted, making it easier to search, you’ll implement a linear search as well as a binary search to locate the non-paying culprits. When you’re done, you’ll have firsthand experience implementing widely used Go sort algorithms and search methods and a firm grasp on their performance.
skills learned: bubblesort • quicksort • counting sort • linear search • binary search • simple recursion
In this liveProject, you’ll rebuild an outdated candidate report-generating application to use the latest standard of Spring Boot. This new application will take advantage of Spring Boot’s amazing features such as bundled dependencies, reduction of boilerplate code, and integration with other modern frameworks. It can also benefit from running with an embedded server, meaning your boss can finally decommission old application servers.
skills learned: Spring Boot development • testing with Spring Boot • modernization techniques
As a backend developer for BestInsurance, your task is to secure its RESTful API using Spring Security. The insurance company is running the API in a server that supports OAuth 2.0 authentication. Using the server’s specs, you’ll reproduce the behavior of the authorization server with Spring Security in order to have a local server that is easily configurable for testing purposes. You’ll implement role-based authorization based on the content of JSON Web Tokens (JWT), from the authorization server point of view. This authorization will impact API security, so you will implement a resource server with Spring Security. You’ll also implement unit testing with Spring Security Test, and configure SwaggerUI to make requests that are authorized according to OAuth 2.0, using SpringDocs. When you’re finished you’ll have highly useful Spring Security skills—and confidence that your API is secure!
skills learned: Spring Security OAuth 2 authentication and role-based authorization
Create an alarm system that warns you before your system breaks. You’re a Java developer for a large company that sells stock photography. You’re responsible for the service that ingests images. A recent upgrade to the image scaling library has caused a problem with the aspect ratio of thumbnail images. Working in IntelliJ IDEA, you’ll build a layer of integration tests that replicates the problem and also tests assumptions that your unit tests rely on. When you’re done, you’ll have an alarm system that warns you when the assumptions your unit tests rely on are no longer valid, preventing problems in the future.
skills learned: use IntelliJ IDEA to write and execute tests • reproduce problems in hard-to-reach parts of a system with tests • use tests to drive bug fixes • use Hibernate and an in-memory database to inspect the results of service execution • mock S3 containers
In this liveProject, you’ll use the D3.js visualization library to create a streamgraph visualization of the ethnicity of the Oscars. This visualization will explore the representation of ethnic minorities at the Academy Awards ceremony throughout its history. Once you’ve constructed your basic streamgraph, you’ll append a composite tooltip to the visualization, play around with transitions, and give consideration to making your graph responsive.
skills learned: use D3’s stack generator to stack areas, or SVG paths, upon each other • listen to mouse events and build a complex tooltip • break SVG text upon multiple lines
Upgrade a legislative monitoring app with advanced C# features like LINQ and lambdas. As a developer at Ground Truth Consulting, you'll implement detailed change comparisons between API results. You’ll go beyond basic difference detection to provide insight into exactly what changed. Analyze bills line by line to spotlight new amendments, build flexible queries with LINQ to extract and compare key fields, and implement comparison logic concisely with lambdas and delegates. Plus, master professional techniques like parsing complex JSON responses and make an impact by shipping an automated legislative tracking tool ready for production use.
skills learned: LINQ • Delegates and lambdas • Unit testing
Contact forms are one of the most important parts of almost any site—especially your web design portfolio. If your potential clients aren’t impressed with a contact form, why would they ever use it to get in touch with you? In this liveProject, you’ll use CSS to create a stunning contact form. You’ll put your own spin on text, error messages, radio buttons, button styles, and more.
skills learned: Using :where() to apply a rule to multiple selectors • Using adjacent sibling combinators to select elements that are immediately after another element • Using :user-invalid to conditionally style elements based on a field’s validity • Using @supports to write fallbacks for properties that are not widely supported across browsers • Using accent-color to change the color of a checkbox
In this liveProject you’ll develop a chatbot that can summarize a longer text, using the HuggingFace NLP library. Your challenges will include building the task with the Bart transformer, and experimenting with other transformer models to improve your results. Once you’ve built an accurate NLP model, you’ll explore other community models and integrate your summarization task with a chatbot.
skills learned: use a transformer to create a summarization tool • experiment with different summarizers models • build a chatbot using the Hugging Face library to summarize Wikipedia articles
In this liveProject, you’ll create a product recommendation engine for an online store using collaborative filtering techniques from the Surprise library. You’ll work with Amazon review datasets to create your data corpus, and identify which would be best for a collaborative filtering recommender. You’ll then use two different approaches—neighbourhood-based and matrix factorization—to implement different solutions to the rating matrix completion problem. You’ll learn how to select and clean the necessary data for these different approaches. When you’re finished, you’ll have built a system that can predict the rating for a product a user has not yet purchased.
skills learned: selecting, cleaning and choosing data for collaborative filtering • neighborhood and model based collaborative filtering techniques with the Surprise library
In this liveProject, you'll implement particle swarm optimization and the Boids algorithm to develop computational models to track flocks of finches. You’ll start with a simple flock simulator, then modify it to adapt to obstacles, take a different approach with Gravity Boids, and finally use a swarm-inspired algorithm to find the highest point on a complex mathematical surface. You’ll soon have an algorithm that can predict the movements of everything from flocks of finches to swaying concertgoers!
skills learned: swarms • modeling complex systems • particle swarm optimization (PSO)
In this liveProject, you’ll use the creative Processing creative coding environment to link and synchronize visual assets with audio material. You’ll start by simulating a 3D landscape, then animate a camera flight through the landscape, before cohesively setting your movie to music to create a music video.
skills learned: drawing with 3D primitives and transformations • working with the Processing 3D camera • Processing audio playback and movie rendering
In this liveProject, you’ll use p5.js to link and synchronize visual assets with audio material. You’ll start by simulating a 3D landscape, then animate a camera flight through the landscape, before cohesively setting your movie to music to create a music video.
skills learned: drawing with 3D primitives and transformations • working with the p5.js 3D camera • p5.js audio playback and movie rendering
In this liveProject, you’ll explore quantum mechanical phenomena for information transmission. You’ll go hands on with two quantum communication protocols—quantum teleportation and superdense coding. You’ll implement each protocol using Q# and simulate it running, before visualizing the intermediary states of the quantum system.
skills learned: designing and writing simple Q# code • running simulations of quantum code using a full state quantum simulator • inspecting quantum states during a simulation
In this liveProject, you’ll refactor the tests for a legacy e-commerce Spring application to improve readability, then add missing test coverage. You’ll use test-driven development to add a new coupon feature, organize your unit tests in a readable way that exposes missing coverage, and then fill in gaps in coverage by applying characterization testing so that the system can be changed without fear of adding bugs.
skills learned: improve test readability by refactoring tests to focus on one scenario • maximize the visibility of the pre and post conditions in tests • add missing code coverage to classes and functions
Logistica Transport is on the rise—and they need a new web app solution that can do what their old desktop app can’t. That app is almost ready, but it needs a final round of testing to make sure it’s ready to go to its users. That’s where you come in! You’ll learn to utilize mocks and stubs, as well as the Jest and React Testing Library, to spot errors and make sure the app is production-ready. You’ll even test and assess the app’s performance using BenchmarkdotNET.
skills learned: Visual Studio debugging tool • Testing applications • Checking application performance • Entering application accessibility features
In this liveProject, you’ll set up tests to support refactoring of a legacy library. As you lack a written specification, you’ll use “pinning tests” to extract a specification from the existing code, and generate a wide range of test coverage. You’ll learn to spot when and where to improve code maintainability, and set up mutation testing to ensure your tests catch unintended changes.
skills learned: deriving tests from existing code • adding test coverage on an as-needed basis • using mutation testing results to guide test efforts
You’re a senior developer at Travel World Agency (TWA), which has grown to become the largest travel agency in the world. The company has built a next-generation system that uses a microservice architecture running on Amazon Web Services (AWS). But while the company’s success is moving quickly in the right direction, the performance of its reservations microservice has taken a wrong turn. As a solution, TWA has replaced this microservice with a new one, using Kotlin and Spring Boot to improve performance and maintainability. Your job is to reduce the risk of deploying the application with bugs—a common problem for the previous API—by implementing robust testing.
Following business-driven development (BDD) practices, you’ll create a series of unit tests that validate the code’s logic in a number of plausible scenarios. To test the behavior of the code itself without affecting or being influenced by external classes, you’ll create a series of mocks. Using several libraries, you’ll test to ensure database queries work as expected.
skills learned: create a unit test to check the logic of the application • create a unit test that checks access to the database
As the IT Developer for Rocinante, a company seeking to consolidate its dispersed IT scripts and tools, your mission is to unify them into a cohesive GitHub platform that's accessible with a PowerShell module. Your task in this liveProject is to ensure the module’s quality. You’ll add automated tests to ensure your module works properly and implement static code analysis to ensure your code is issue-free. Finally, you’ll incorporate both testing and code analysis into a CI/CD pipeline to ensure every build is of high quality.
skills learned: unit and integration tests with Pester 5 • static code analysis with PSSCriptAnalyzer • running tests on GitHub Actions
You’re a TypeScript developer for a large company that sells stock photography products to the general public, as well as to news and other media markets. Your task is to find and fix some long-term bugs in a legacy library. You’ll write a test to characterize a bug in code that controls how certain assets are selected for a special display. After you’ve determined the source of the problem, you’ll modify the test, transforming it into a bug fix. Once you’ve squashed that bug, you’ll repeat the process to tackle two additional common bugs in TypeScript applications.
skills learned: derive tests from existing bugs • use tests to drive bug fixes
In this liveProject, you’ll write tests to drive changes in an existing codebase. You’ll analyze new requirements, reconcile them with what is currently documented by your test suite, and use the test-first technique to ensure new changes to your library are all justified, specified, and protected by tests.
skills learned: using test-driven development to change existing functionality • writing granular tests for individual requirements • using larger-grain tests to drive the integration of individual components
In this liveProject, you’ll replace two common testing anti-patterns while also creating new features for a Java Spring e-commerce application. Testing anti-patterns can be the bane of development, slowing deliveries while providing no benefit to software quality. You’ll use Test-Driven Development to balance delivering new functionalities with improving code design.
skills learned: replace testing anti-patterns with more meaningful and readable code coverage • add new functionality to a realistic codebase with Test-Driven development • cover existing code behavior with Characterization tests
Picture this: You’ve amassed a fortune selling Instagram filters and you’re cruising the Bermuda Triangle on one of your yachts when you strike a USO (unidentified submerged object). Now you’re sinking! Your life raft isn’t big enough to salvage all of your 200 valuable objects (of varying sizes, weights, and values). To help you decide which of your treasures—the Monet, the Degas, the bust by Canova—to take with you on the raft, you’ll write a Go program that uses different approaches, including exhaustive search, branch and bound, Rod’s technique, and dynamic programming to solve the knapsack problem, a classic in computer science for situations just like this. When you’re finished, you’ll learn what the tradeoffs are, and you’ll know which of your valuables you’ll be able to save and which will end up at the bottom of the ocean!
skills learned: exhaustive search • backtracking • branch and bound • Rod's technique • dynamic programming
UMET Inc.’s mission to modernize its software infrastructure has been a great success. The e-commerce company now uses Rust microservices that run in lightweight Wasm containers so that they can be deployed anywhere in the cloud. However, as more microservices are created, the overhead for managing them is becoming a problem. Using the Distributed Application Runtime (Dapr) sidecar, a commonly used design pattern, you’ll create a proof of concept (PoC) that demonstrates the pattern’s benefits, including reducing the complexity of connecting multiple microservices and infrastructure services (e.g. databases and web proxies). When you’re finished, you’ll have refactored UMET’s microservices to work with Dapr, reducing the overhead required to manage them.
skills learned: use Dapr to construct complex microservices
As a TypeScript developer, you’ve recently created a high-quality test suite as part of your company’s goal of adding functionality to its system. Now, using test-driven development (TDD) techniques, it’s time to analyze new requirements, reconcile them with what is currently documented by your test suite, and use the test-first technique to ensure changes to your library are justified, specified, and protected by tests.
skills learned: write granular tests for individual requirements • use larger-grain tests to drive the integration of individual components • change the design of existing code with the support of tests
Any web developer worth their salt needs an eye-catching portfolio site—and so your boss at Consultants Inc. has told you you need to make one! In this liveProject, you’ll experiment with delivering both light and dark themes for your site using CSS, custom properties, and a locally hosted variable font. Remember, web design is about self-expression—so don’t be afraid to play around with your code to help it fit you and your personality.
skills learned: Using custom properties to set theme colors • Using a media query to set a theme based on user preferences • Color contrast checking and accessibility-related concerns • Using :where() to apply a rule to multiple selectors • Loading and configuring a variable front using @font-face • Creating fallbacks using @supports
Help Budzykfarm’s workers get to work: Using Blazor, MudBlazor, EF Core, and SQL Server, you’ll set up worker identity verification and gather the information that the other features will rely on. Then, you’ll create the initial log records that will keep a running history and enable workers to retrieve their assignments and close the work view so the system is ready for the next worker as well as the next workday.
skills learned: navigate between pages in server-side Blazor inside C# methods • update existing data records • manage component states
In this liveProject, you’ll instrument tracing in multiple functions of a call flow inside a single microservice. By instrumenting multiple trace functions, the generated traces are far more meaningful than just a single function. Once you’ve established your tracing code, you’ll use a thread-local mechanism to pass the current active span to the next function so that the spans can be pieced together. Finally, you’ll generate a trace having spans in it representing each function the request goes through.
skills learned: instrument tracing inside multiple functions in a microservice using OpenTracing API and Jaeger SDK • pass down the current active span to the next function in a call flow using ScopeManager • set the relationship between a child Span and a parent Span
In this liveProject, you’ll restructure the demo application as multiple microservices and instrument distributed tracing for each of them. You’ll combine spans from those microservices to create an end-to-end trace of the system—perfect for monitoring your app activity. Finally, you’ll explore using baggage to pass context data through the call graph.
skills learned: instrument tracing inside multiple microservices with OpenTracing API and Jaeger SDK • trace propagation across process boundaries through HTTP header
In this liveProject, you’ll instrument tracing inside a single microservice. You’ll use Spring Boot to first construct your microservice, and then use the OpenTracing API and Jaeger client library to generate traces and send data to the backend Jaeger server. What we create in this project will form a foundation for later projects in the series.
skills learned: create a RESTful microservice with Spring Boot • instrument tracing inside a function with OpenTracing API and Jaeger SDK • build a Docker image for deployment
In this liveProject you’ll use human pose data and TensorFlow.JS’s PoseNet to build and train a machine learning model that can recognize workout exercises. This model will record and recognize the workout session of a user, to be logged for future comparison. You’ll need to prepare data structures for the TensorFlow.js Dataset API, and execute one-hot-encoding with a simple mapping function. You’ll also define model architecture using the TensorFlow.js sequential API, and train your model using the fitDataset method. You’ll finish up by saving your trained model in local browser storage to allow for model reuse.
skills learned: creating new modules within a React app • cleaning up the data • preparing data for training
In this liveProject, you’ll fill the shoes of a developer for an e-commerce company looking to build a machine learning solution to help identify bad product reviews. If one of your company’s products receives too many bad reviews, it’s policy to take it down from the e-commerce store. Until now this process has been manual—but your boss has decided that this is too expensive and time-consuming.
Your mission is to automate this process, dramatically increasing the speed of identifying bad reviews, and decreasing the cost to your company. To complete this project you will have to train a machine learning model to recognize and rank positive and negative reviews, expose this model to an API so your website and partner sites can benefit from automatic rankings, and build a small webpage that can run your model for demonstration.
Updated March 2022
skills learned: use an existent sentiment classification API • create a web API to expose an ML model • build a simple demo website
Help Max, the owner of My Little Cookie Shop, sharpen his competitive edge. He’s hired you to upgrade his store’s website with hovers. Using the provided design file as your guide for what each state should look like, you’ll ensure the user can easily see what’s clickable and provide a smooth transition from one state to another. You can use the provided HTML and base CSS, but you’re welcome to deviate from that if you’d like to get more creative.
skills learned: use transitions in response to user interactions • types of animations functions and how to customize them
In this liveProject you’ll develop a chatbot that can translate user messages, using the Hugging Face NLP library. Your challenges will include building the task with the T5 transformer, and build a Translation task considering different languages with mBART. You’ll classify the language of users' messages, and integrate your translation task with a chatbot.
skills learned: using a transformer to create a translation tool • build a chatbot using Hugging Face library to translate user messages from foreign languages to English
In this liveProject, you’ll use Python and algorithms that work on binary and N-ary trees to sort data and draw organizational charts. You’ll store, find, and remove data in sorted trees, and you’ll experiment with different layout approaches for organizational charts.
skills learned: understanding recursion • searching and traversing trees • adding and removing values from sorted binary trees
Exciting things are happening at Generigloop, and the senior vice executive’s undersecretary needs help keeping things organized. They’ve asked you, their junior assistant, to create a tool for drawing organizational charts. Seizing the opportunity to impress—and learn valuable skills while getting paid—you volunteer to research what it will take to create a chart-drawing tool using Python and C#. You’ll learn techniques for drawing family trees, hierarchical component diagrams, document hierarchies, and other tree structures.
skills learned: tree data structures • tree terminology · recursion • tree traversals • sorted trees • drawing in WPF
In this liveProject, you’ll use Docker, the Docker compose command line, and Bootstrap to construct an easy-to-use UI for your search engine. You’ll work to set up a single node Elasticsearch cluster, before putting together your Bootstrap UI, and then create a customized Docker image of the Flask API that serves your transformers model and frontend.
skills learned: packaging and deploying with Docker • search and indexing with Elasticsearch • building APIs with Flask
You’re a senior developer at Travel World Agency (TWA). The company has built a next-generation system that uses a microservice architecture running on Amazon Web Services (AWS), and wants to prepare it for cost-cutting measures. Your task is to review the microservices architecture, create an architecture test using ArchUnit, create custom tests as needed, streamline update and creation processes by externalizing your tests to a single library, and integrate your architecture tests into a Jenkins pipeline. When you’re done, you’ll have a unit test that validates the structure of a microservices architecture.
skills learned: add dependencies and create basic tests to validate the architecture • create custom tests • externalize tests to a particular library to import into different microservices • split the execution of the test into unit tests • add multiple tests into one Jenkins pipeline
It’s almost showtime! TechPower, a consulting company, has a partially implemented music-sharing platform, created in Scala, that leverages the language’s combination of object-oriented programming and the functional paradigm. As a software engineer at TechPower, your task is to ensure the prototype’s codebase hits a high note before going live. With the help of the Scala ecosystem libraries, you’ll design and create test specifications and samples, keeping in mind functionality, possible outcomes, and data values. You’ll implement your tests using SimpleBuild Tool (SBT) or IntelliJ IDEA, debug them, check corner cases, and verify that you’ve covered all reasonable scenarios. When you’re done, TechPower’s music-sharing platform will be robust, reliable, and ready for the spotlight!
skills learned: basic Scala (debugging) • unit testing in Scala with specs2
It’s go time! The initial implementation of Budzykfarm’s new farm management web application is finished, and the managers are eager to see how it performs in a live scenario. Using testing tools xUnit and bUnit, you’ll set up the test environment. Then, you’ll use Azure to publish a live version of your database, as well as the fully functional, test-ready website.
skills learned: set up the test environment with xUnit and bUnit • set up database service on Azure • publish the platform on Azure
Improve the reliability of BellyBox’s online grocery delivery application. As a developer for the startup, you’ll validate the functionality of the Blazor application using .NET testing methodologies. You’ll create and configure a Blazor test project using the bUnit test framework, write component tests using xUnit and bUnit to test layout components, use AutoData to test data-bound components, and use fakes and mocks to test components that depend on external data. By the end of this liveProject, you’ll have fully tested the application’s UI components and have full confidence in the application’s reliability.
skills learned: write Fact and Theory component tests • simplify tests using AutoFixture and Telerik JustMock • abstract services with interfaces
In this liveProject, you’ll learn to write effective unit tests for an existing ASP.NET e-commerce application. You’ll start by analyzing where unit tests can be implemented, then write and run those tests using Visual Studio and best practices. You’ll refactor those tests to the Builder pattern in order to reduce test code and improve maintainability. Finally, you’ll set up integration tests for code that rely on external dependencies, and use your tests to guide the creation of new functionality for your app.
skills learned: writing and running unit tests • refactoring tests to patterns • creating new functionalities using tests
You’re a senior developer at Travel World Agency (TWA), which has grown to become the largest travel agency in the world. The company has built a next-generation system that uses a microservice architecture running on Amazon Web Services (AWS). But while TWA’s success has been steadily climbing, the performance of its reservation microservice has been losing altitude. As a solution, TWA has replaced the microservice with a new one. Your job is to improve performance by leveraging cache mechanisms, including the Caffeine, Varnish, and Redis libraries, that will reduce traffic between APIs.
skills learned: understand the different mechanisms of cache • determine where to use one mechanism of cache instead another one
In this liveProject, you’ll create a user registration form that allows users to specify their delivery address and use that address at checkout. You’ll use Spring Security to configure a form-based user registration and login, set up password controls, and store user details in PostgreSQL.
UPDATED: July 2023 to use the latest versions of Java, Gradle, and Spring Boot; and updated instructional text throughout all the projects.
skills learned: form login with Spring Security • password encryption with Spring Security • front-end development using Spring MVC, HTML and CSS
BuildIT, a fast-growing digital agency that builds websites and applications, has a basic Internal Developer Platform (IDP) consisting of an API and a simple web UI that interfaces with the API. Your job, as BuildIT’s sole DevOps engineer, is to manage AWS costs by eliminating IDPs that are left idle. You’ll use Passport.js to incorporate an authentication system on top of the IDP to keep track of who’s responsible for each environment, ensuring that developers only keep environments they’re actively using and destroy them when they’re finished. You’ll also record environment costs and filter them by developer with Cost Allocation Tags, viewing those costs in reports on AWS Cost Explorer. By the end, the agency will thank you for all the money you’re saving it!
skills learned: password-based authentication • token-based authentication • Passport.js • tracking costs with cost allocation tags
In this liveProject, you’ll implement a gateway service that validates the access tokens and redirects the valid requests to a service-oriented system. You’ll configure the gateway routes and gateway authorization rules, redirecting the requests to the right business logic implementation.
skills learned: implement a gateway component for a microservices architecture • configure the gateway to validate JSON Web Tokens in an OAuth 2 system
In this liveProject, you’ll help out a new Python developer with some mysterious bugs in their code. To unravel their issues, you’ll explore two different models for the behavior of Python variables and write some code that will either support or refute those models. This will help you reason about how variables behave in Python in regards to both mutable and immutable objects.
skills learned: understanding variables and whether they are containers or labels • using the id() function
In this liveProject, you’ll take on the role of a software engineer for Echorand Corp tasked with implementing image-hosting capabilities for their new platform. You’ll make full use of the Go standard library to write a web UI that can upload images once they are authenticated, then add SQLite support for storing image metadata. Finally, you’ll update the web app so your users can see their newly uploaded images in all their glory.
skills learned: Rendering HTML templates • Handling form uploads in your web application backend • Upload binary data to another external object storage service using the Go Cloud Development Kit • Manage data related to users and their uploaded images by storing them in an SQLite database
Maximize productivity with maximum flow algorithms and some basic C# programming. You play the role of a nuclear power plant operations manager. Your challenge is to assign jobs to your group of employees, and your goal is to achieve maximum productivity. You’ll build a program that generates networks for testing maximal flow algorithms, as well as a program that finds maximal flows through a network of capabilities. Then, you’ll put your maximal flow program to work to match employees with jobs while ensuring that as many jobs as possible are completed.
skills learned: generate networks • maximal flows • assign work
In this liveProject, you’ll utilize Python and maximal flow algorithms to create an application that can match jobs with the correct workers. Running all the possible combinations of jobs and workers with the correct skills would be impossible to scale manually, but is easy to do with Python. You’ll start by finding the maximal flows in your network, then quickly move on to creating a program that assigns jobs based on your algorithm.
skills learned: working with files • defining classes • using lists, loops, methods, and other basic techniques
In this liveProject, you’ll refactor poorly written legacy code in a way that lets you make changes without fear of bugs. You’ll fix the internal structure of your code, make sure code functions according to your needs with integration tests, and make in-depth changes supported by your testing suite. Finally, you’ll develop new features inside code without major changes, and replace dependencies with mock objects to help test previously unmaintainable code.
skills learned: refactoring with Visual Studio • making improvements without changing code • intent replacing problematic dependencies with fake objects
It’s week number five for you at SongRiver, a music-streaming startup whose success is soaring. You’ve been working on an employee directory that helps users find employee information and send each other digital recognition badges. Your task this week is to create and automate tests to ensure the app works correctly, especially after updates.
Using Jest and the React Testing Library, you’ll write a test for the badge component that checks for the badge name and image. You’ll create and test a custom render method for React Testing Library, a must for preventing errors while rendering components that require React Router. Using mocked data, you’ll test components that fetch data. You’ll also write tests for the “Add Badge” component, using user-events to simulate user interactions with components. When you’re done, you’ll have created an automated test suite that empowers you and your colleagues to update the directory app with confidence.
Some sections may contain information that is now outdated due to the rapid advancements in the technology field, notably the initial libraries, Docker setup, and some documentation links. Regardless, this liveProject remains an invaluable resource for intermediate users.
skills learned: automate tests with Jest, React Testing Library, and Mock Service Worker
In this liveProject, you’ll use secure multiparty computation to reveal which of two millionnaires is richer without exposing how much either is worth. Your program will use the two-party computation for the “greater than” operator, and be written using the Rust language. Due to its unique set of features, such as guaranteed memory safety, Rust is well suited for programming cryptography applications.
skills learned: explore the Paillier additive homomorphic encryption cryptosystem • test and benchmark a cryptographic protocol
In this liveProject, you’ll use zero-knowledge proof (ZKP) to reveal that a super hard Sudoku puzzle has been solved, but without sharing the answer. To do this you’ll implement a prover and a verifier that are sharing a Sudoku board. The prover will produce a proof for knowing a solution, while the verifier will use the proof to get convinced and catch a cheating prover. You’ll build a ZKP based on the classical GMW zero-knowledge proof of 3-Colorability of a graph, using the Rust language.
skills learned: implement and test a library for a specific construction of a zero-knowledge protocol • implement a cryptographic hash-based commitment scheme
To support its rapid growth, e-commerce company UMET Inc. relies on lightweight, interdependent, cloud-native microservices written in Rust that can compute sales tax rates and e-commerce order totals. As a developer at UMET, it’s up to you to integrate these microservices with existing order systems. To do that, you’ll need to turn the order total microservice into a database-backed stateful service. You’ll build and test the microservice in Docker and model the application data into relational database records. You’ll connect the microservice application to a MySQL database server, and you’ll use Docker to compose and manage all components of the microservice. When you’re done, you’ll have built an order management microservice in Rust that can read and save data from UMET’s MySQL relational databases and later serve as a template for other UMET microservices.
skills learned: MySQL driver for Rust
In this liveProject, you’ll build a new recommendation service for a travel application that’s migrating to microservices. Taking on the role of a software engineer for SimpleTravel, you’ll use AWS Lambda functions to quickly implement production-ready microservices. You’ll start by implementing Lambda functions using the AWS Console, and then script them with AWS Command Line Interface.
skills learned: deploy a Lambda function using AWS Console or AWS Command Line Interface (CLI)
In this liveProject, you’ll use AWS Step Functions to preserve service coordination between newly split microservices functions. This cooperation between services is vital for large-scale microservices architectures. Luckily, the built-in Step Functions feature of AWS can supervise your microservices orchestration and ensure their continued reliability and scalability.
skills learned: what is service orchestration • AWS Step Functions
In this liveProject, you’ll use p5.js to draw and animate abstract logos by combining simple visual elements in new ways. You’ll use color gradients to create vibrant icons, design complex shape-based logos, and combine the two techniques into stylistic and interesting logo art.
skills learned: p5.js canvas and coordinate system basics • p5.js drawing primitives and transformations • p5.js draw loop and animation basics
Logistica Transport needs to ditch its old desktop app and embrace a new web app solution. They’ve turned to you to help them, and in this liveProject, you’ll utilize Entity Framework Core to set up the vital connections between a MySQL database and the future web app. You’ll need to set up data models that define the structure and relationships of your data, as well as learn how to perform CRUD operations to create, update, and delete data in your database. Finally, you’ll connect your data models and CRUD operations to the Entity Framework for a full and working database solution.
skills learned: NuGet packages specific to Entity Framework and MySQL • Setting up data classes in a database • Data tables (inserting, updating, and deleting information) • Setting up a database connection in code • Working with data stored in database tables
Acme Widgets, a manufacturing company, uses an AI-powered Google Workspace add-on to automatically extract information from supplier invoices. Your task is to extend the add-on’s functionality so it can handle expense claim receipts, as well. You’ll add a Document AI processor designed for processing expenses, and you’ll enable additional fields in order to group related receipts. To increase user convenience, you’ll enable the uploading of local files and add a tab to re-pick recently selected files. Lastly, you’ll create unit tests that will help you update the add-on with more complex changes in the future.
skills learned: implement Expense Document AI processors • add CardService add-on fields • implement unit testing
In this liveProject, you’ll use p5.js to animate still photos or artwork. You’ll start by animating simple object images with interaction techniques, then animate landscape photos using layers and transparency. Finally, you’ll extend these techniques to creative drawing on images.
skills learned: p5.js file and image handling • p5.js draw layers and masks • p5.js interaction with mouse and keyboard
In this liveProject, you’ll integrate Step Functions with SNS for a “best of both worlds” solution to microservices coordination. This approach is perfect for when you know the exact services involved in a business scenario, allowing you to describe this cooperation using service orchestration and AWS Step Functions.
skills learned: what is a topic and how Amazon SNS works • how to send and get message from a topic
Add security, an essential ingredient in the recipe for a successful application. As a developer for BellyBox, an online grocery delivery company, your task is to secure the startup’s storefront web application using Blazor’s authentication and authorization features. You’ll keep customers’ identities secret by adding support for anonymous customers using Blazor’s JavaScript interop, then save their data to localStorage. You’ll also modify the checkout process by developing an order history that’s only visible to authenticated users. To handle anonymous and authenticated API traffic, you’ll configure named HttpClient services. By the end of the liveProject, you’ll have mastered services and components for authorizing users in Blazor, and provided a safe and secure online shopping experience for BellyBox’s customers.
skills learned: implement authentication and authorization • named HttpClients with HttpClientFactory • page-based authorization • interoperate with JavaScript
In this liveProject, you’ll set up authentication and visualization functionalities for a connected IoT system. You’ll use JSON Web Tokens to authenticate an administrator and stream documents from a MongoDB database, then use the SockJS event bus bridge to connect your IoT data to a web application that displays sensor data in a user-friendly manner.
skills learned: Vert.x web application development
Acme Widgets, a manufacturing company, manually logs its supplier invoices on spreadsheets in Google Workspace. Your task is to free the staff from this tedious task by creating an add-on that automatically extracts and records useful information from invoices. You’ll set up a Google Cloud Platform (GCP) account, implement and deploy the add-on, and create Document AI processors for processing invoices from multiple regions. You’ll add a CardService that improves the user experience by letting them select which files to process. You’ll use the Document AI REST API to process the invoices’ image data and write the processed data to a spreadsheet, enhancing the user interface. When you're done, you’ll have created a basic, easy-to-use Google Workspace add-on that extracts and records invoices in multiple formats, leaving the Acme Widgets staff free to focus on more productive tasks.
skills learned: create a project in Cloud platform • deploy a Workspace add-on • implement Invoice Document AI processors • update spreadsheets
In this liveProject you’ll create a React web application and then integrate TensorFlow.js machine learning functionality into the app. React is highly prized by developers for its ease of building simple and intuitive frontends. Once you’ve set up your development environment and built your React-based UI, you’ll train your TensorFlow.js model with synthetic data.
skills learned: creating a React web app and analyzing app structure • creating a basic UI and event listeners in React • constructing a neural network model with TensorFlow.js
After six years of accepting only internal submissions, PrincipalStack’s cofounder would like to invite all community members to register, log in, and post comments. As the sole engineer for the publication, your task is to build the foundation for this entire system: the authorization server. Using Express on Node.js, you’ll install, configure, and test an OpenID Connect-capable authorization server. You’ll build the pages that let users create their profile, prove their identity, and end their session. You’ll also foster community participation by allowing users to log in with an email address—and without a password.
skills learned: generate RSA key pairs • generate secure, random string values using OpenSSL • displaying simple views using Express.js
Improve developer engagement in PrincipalStack, an online publication of software development content. As its sole software engineer, your task is to create an API to expose the posting functionality of the Node.js web application. You’ll build a simple CRUD (create, read, update, delete) API and protect it with JWT-formatted access tokens issued by the authorization server, while maintaining the association between the content managed by the API and the original user who created it. When you’re done, you’ll have provided an interface for all external contributors, enhancing their user experience.
skills learned: apply best API design practices for communicating success and failures • protect API routes using JWT-formatted access tokens and authorization middleware • validate data sent to an API
SignalR is an ASP.NET Core library that adds real-time web functionality to your apps, enabling server-side code to instantly communicate with your client. It’s an ideal library for facilitating the lightning-fast communication needed for a real-world Internet of Things project.
In this liveProject, you’ll put SignalR into action to build and implement an airport PA system across the Internet of Things. Your challenge will include creating both the server-side web application using ASP.NET Core with JavaScript front-end and the distributed application that will be deployed on the IoT devices on the ground using .NET Core and Docker. You’ll establish your SignalR setup, enable the transfer of real-time audio data, and enable your IoT applications to both run as a single cluster and deploy on Docker.
skills learned: hosting a SignalR application on a cluster of servers • hosting a server-side SignalIR class
Micro frontends take a vertical approach to web development, splitting an application into standalone components that encompass everything from user interfaces to backend logic. In this liveProject, you’ll use the micro frontends approach to help solve a tricky issue for music streaming service Red Records.
Red Records has two separate development teams working in two separate time zones, and they are currently arguing over whether to use React or Vue.js for their frontend. Your challenge is to set up a new micro frontends architecture that will allow them to work independently, in parallel, with separate stacks, and no need to talk to each other! You’ll build two micro frontends using Vue.js and React respectively, and set up a Bootstrap client-side orchestrator to handle loading, persist authentication, and routing. Better be fast—your new app launches in just a few months.
skills learned: creating vertical micro frontend architectures • writing micro frontends as single page applications • multi-framework micro frontend architecture • user session authentication
You’re an enterprise architect for Padre Inc., which has acquired Tiddler Inc., an insurance analytics startup, for its SaaS platform. Since your company runs its cloud operations on AWS and the startup uses Google Cloud Platform, your task is to manage multi-cloud operations. As part of that effort, you’ll implement centralized logging to simplify log analysis across multiple applications. After exploring centralized logging using the ELK stack, you’ll create a centralized logging instance in Google Cloud Platform and stream the logs from AWS to Google Cloud. To signal the need for corrective actions, you’ll use Kibana to run queries against the log data and create an alert based on log events. When you’re done, you’ll have created a centralized logging flow that improves site reliability.
skills learned: Elasticsearch • Logstash • Kibana • AWS Cloudwatch • AWS Lambda
Google Cloud Run Services lets you rapidly deploy containerized apps to the cloud. In this liveProject, you’ll harness Google Cloud Run to deploy a customer feedback workflow and integrate an automated machine learning solution. Your company handles thousands of feedback queries every minute, and this new system will ensure that important customers are quickly escalated and kept happy.
You’ve decided your workflow will receive customer feedback via HTTP POST service calls, then use automated machine learning to decide whether comments are positive or negative. Your challenges will include creating a Cloud Run instance, Google’s Managed KNative Kubernetes Cluster, accepting and storing feedback data with Google’s NoSQL Firestore, and managing future rollouts with proper versioning.
skills learned: creating serverless functions on Google Cloud Run • accepting HTTP requests • using serverless with Kubernetes • using machine learning to classify user feedback
Successful businesses need to respond to unhappy customers fast. In this liveProject, you’ll design a new way of handling customer feedback for a Kubernetes management company. Your company gets thousands of feedback queries every minute, and it needs a way to make sure the most important ones are quickly escalated.
You’ve decided to implement a workflow that receives customer feedback via HTTP POST service calls, then funnels it through a prebuilt machine learning algorithm to identify priority messages. In order to avoid the need for future refactoring, you’ll use events to communicate between services rather than direct invocation. You’ll use Kubernetes and Knative serverless capabilities and eventing system to control the flow of data through the system and break down services into lean, serverless functions. This will ensure your service is more maintainable and cheaper to run.
skills learned: creating a Kubernetes cluster • using serverless with Kubernetes • using machine learning to classify user feedback
In this liveProject, you’ll test the functionality of a TensforFlow.js based fitness assistant and assess its capabilities of pose estimation for workout sessions. You’ll move data from a PoseNet model to a TensorFlow.js inference function that can recognize a workout type and add delays to prevent unnecessary logging duplication. You’ll then utilize TensorFlow.js’s prediction functionalities to get prediction results for your recognized workouts, pick top scores, and return the recognized workout type. Finally, you’ll use Material UI and React.JS to display a complete workout history to the user.
skills learned: reusing code for PoseNet generated human pose data collection • running the inference • updating data stored in local storage
In this liveProject you’ll use ReactJS to build an entire user interface for a machine learning-powered exercise app. Your app records its users while they exercise, and so needs to have a short delay between them pressing a button and the start of recording. You’ll use Material-UI for React to implement layout, form elements, buttons, and user messages, and set up the UI logic for your delayed training data capture.
skills learned: adding Material-UI to React project • building grid layout structure • building page elements • building form elements
Acme Widgets has an AI-powered Google Workspace add-on that interprets data from invoices and receipts. Add-ons have a processing time limit that keeps them from processing many documents at once. It’s up to you to solve this problem! You’ll create one delegate web app that archives files to centralized Google Cloud Storage (GCS) and another that batches the documents—allowing processing to be done in a way that bypasses the standard add-on response time limit. As you develop, you’ll implement incremental unit testing to detect code errors. When you’re done, you’ll have a powerful add-on that isn’t constrained by processing time limits and automatically archives documents to secure cloud storage.
skills learned: set up cloud storage and archiving • implement document batch processing
In this liveProject, you’ll work with p5.js to create and animate modern artwork. You’ll see how you can use code to replicate the abstract colors and shapes of Russian artist Kazimir Malevich and animate your reproduction into a moving 2D image, then explore the work of American sculptor Alexander Calder and see how it can be reproduced in both 2D and animated 3D.
skills learned: p5.js canvas and 2D/3D coordinate system • p5.js drawing primitives and transformations in 2D/3D • p5.js draw loop and animation basics
Help XYZ Infotainment realize its vision of excellence. The company, which publishes news and entertainment for its large and loyal audience, has grown from 20 employees to 2,000 in the span of 10 years, but it’s currently not using automation for application lifecycle management. As an automation engineer, your task is to increase speed, productivity, and quality by implementing a continuous integration pipeline—the perfect solution for deploying applications that need to release new features frequently, including XYZ's new employee health app.
You’ll build a pipeline-as-code framework in Jenkins using Jenkinsfile, a tool for defining a declarative pipeline for applications. You’ll also integrate unit tests for the company’s health-promoting BMI calculator, calculate code coverage, and configure quality gates to ensure that all the right boxes are checked before proceeding. You’ll wrap up the liveProject by creating and archiving a package using a Jenkins pipeline with declarative syntax in a pipeline-as-code framework. When you’re done, XYZ will be able to release its builds faster and shorten its feedback loop while managing its automated pipeline going forward.
skills learned: configure unit tests and code coverage with quality gates in pipelines • build and archive artifacts
You’ve just been hired as a software programmer for SongRiver, a music-streaming startup whose success is skyrocketing. With so many new employees, it’s hard to keep everyone straight, so the internal tools team has asked you to add a page for each employee as the first step toward building an employee directory app. You’ll set up a React Router to provide access to employee information. Using React Query, you’ll fetch employee data from the server so that it can be added to the employee page. Finally, you’ll use Chakra UI to display the employee data according to the provided specifications. When you’re finished, you’ll have created a page that accepts and provides access to employee data—and your manager will be humming a happy tune.
Some sections may contain information that is now outdated due to the rapid advancements in the technology field, notably the initial libraries, Docker setup, and some documentation links. Regardless, this liveProject remains an invaluable resource for intermediate users.
skills learned: React Router routes and URL params • React Query data fetching • Chakra UI design system
In this liveProject, you’ll use the Amazon DynamoDB NoSQL database to replace SimpleTravel’s relational database. The company decided to use DynamoDB as its flexible schema is well suited to the changing nature of the data being stored. Furthermore, it’s fully managed by AWS so the company doesn’t need to deal with servers and low-level configurations. Once you’ve created the data store, you will implement a Lambda function to query data from it.
skills learned: DynamoDB and its main features • querying a DynamoDB table using a Lambda function
Logistica Transport has grown, which means they need to replace their outdated desktop app with a brand new web app solution. In this liveProject, you’ll help them kick off this transformation by swapping their current Excel-based storage system for a mySQL database. You’ll need to create and install the database from scratch, as well as set up the necessary tables to handle the input and output streams of data. This database is a vital foundation for how Logistica’s web app will function.
skills learned: MySQL language
As the sole DevOps engineer for BuildIT, a fast-growing digital agency that builds websites and applications for its clients, your task is to create a self-service platform that enables the development team to deploy their own test/developmental environment (instead of asking you to do it for them). You’ll build a TypeScript API that will interface with a simple frontend UI (provided to you), further automating a semi-automated CDKTF (CDK for Terraform) workflow. When you’re done, you’ll have built a simple, user-friendly, interface that empowers developers to create, view, and delete environments on their own—leaving you free to focus on more productive pursuits.
skills learned: design an API • store data on DynamoDB • run background processes with Child Processes API • run Git programmatically
In this liveProject, you’ll step into the role of a Platform Engineer and build a command-line application for generating a web application scaffold using Go. This incredibly useful tool will ensure that all the services across your company follow standard practices and match a preset source code structure. Your colleagues are excited—with this new tool they can bootstrap their projects more quickly and ship features faster. Your challenges will include using the Go standard library package to implement a command-line application, creating web application templates, and writing end-to-end tests.
skills learned: set up a standard command line interface • embed data within an application • use templates to generate and render customized web application scaffolds • write tests
In this liveProject, you’ll create the backend for a company support live chat feature using the WebSockets framework. This backend will form the foundation of a new customer service for your company. You’ll implement a backend that can receive requests from browsers and set up WebSocket connections between customers and support personnel. You’ll even preserve the chat histories.
In this video, Natan Streppel, a software engineer and frequent Manning partner, explains what he likes about this liveProject.
skills learned: creating a WebSocket server • using map as an in-memory store
In this liveProject, you’ll use the MQTT protocol to allow IoT devices to communicate with a central data broker. You’ll simulate MQTT devices, then implement a MQTT broker that can dispatch MQTT messages from your IoT gateways. Finally, you’ll secure these communications from potential intrusion by attackers.
skills learned: Vert.x MQTT client and server
Welcome to Musify! You’re a backend developer for a SaaS company that helps startups bring their products to market. Musify’s new client wants to launch a music-streaming app connecting music artists and end users. For this large and complex application, Musify’s development team has chosen to take advantage of the microservices architecture, and it’s your job to create the first microservice for the app using Node.js technology. You’ll start by setting up the framework for the server using Express.js. Then you’ll build a CRUD (Create, Read, Update, and Delete) REST API in Node.js and Express that will allow artists to upload, find, and delete their music audio files as well as letting end users view and listen to songs according to their preferences. When you’re done, you’ll have experience using popular Node.js technology to create a backend REST API ready to deploy.
skills learned: create a CRUD application with Node.js and Express
In this liveProject you’ll step into the shoes of a backend engineer working for a SaaS company that builds custom WhatsApp messaging tools. Your new client is a college professor who wants to be able to send group messages to her students. Your challenge is creating cloud-based software that lets your client write customizable messages, send messages to individuals or an uploaded group list, and view a message delivery status log. To do this, you’ll use Node.js, a serverless framework, and AWS resources such as Lambda Function and DynamoDB.
skills learned: using Node.js libraries • building APIs with Amazon API Gateway • storing templates and logs in AWS DynamoDB • processing messages with Amazon SQS
In this liveProject, you’ll take on the role of a web developer with a new client: a spa company called AR Salon. AR Salon wants to update its old over-the-phone manual booking system into a modern web-based service. Your challenge is to design and build this system, which will allow users to view available slots for spa services, pay for services, and retrieve customer information. To accomplish this, you’ll use Java and Spring Boot to construct a reliable backend, and JavaScript and React to build a responsive user interface.
UPDATED: July 2023 to the latest version of all technologies and text.
skills learned: create production-ready apps • use of Spring Boot Web API • Swagger, PostgreSQL • integrate a payment system • create and scan QR code
Acme Widgets, a manufacturing company, processes its supplier invoices with an AI-powered Google Workspace add-on that automatically extracts and records invoice data. But the add-on has limited functionality, such as only being able to interpret single image files, which makes tasks like picking files difficult. It’s up to you to make basic tasks like these easier. You’ll enable the Google Picker API to add the ability to navigate and customize files. You’ll create and publish a file picker as a web app, and publish the add-on with the attached file picker. To further enhance the user interface, you’ll add image thumbnails and links to the picked files, as well as support for interpreting PDFs and images to accommodate a larger variety of documents. When you’re done, you’ll have helped ensure Acme Widgets’ accounts are accurate and made the staff’s lives easier—all while learning Google add-on customization skills.
skills learned: implement Google Drive Picker • publish popup web apps • detect duplication digitally
In this liveProject, you’ll explore and experiment with the D3.js library’s flexibility as you evolve a simple histogram into an intricate and interactive visualization. You’ll build visualizations to illustrate the gender pay gap in sports, expand them to include individual players, and even add special interactive visual effects.
skills learned: binning data with D3 • generate a histogram, a curve, and a density plot • using D3’s force simulation to position elements within a visualization • listening to mouse event to reveal a tooltip
Padre Inc. uses AWS as its cloud provider and has acquired Tiddler Inc., an insurance analytics startup that uses Google Cloud Platform. As an enterprise architect at Padre, your task is to manage multi-cloud operations. Using Countly, you’ll define and implement key performance indicators (KPIs) in order to measure the success of Padre’s SaaS project that runs on AWS and Google. To ensure smooth operation of services and an optimal user experience, you’ll implement site reliability engineering (SRE) practices using Kubernetes, Prometheus, and Grafana. When you’re done, you’ll have experience using business metrics to track the health and value of your software, ensuring it provides value to customers and stakeholders.
skills learned: implement web analytics using open-source Countly
In this liveProject you’ll step into the shoes of a developer at PharmaChain Iberia, a pharmaceutical supply chain company. A big global competitor has recently set up shop in your region and has been steadily gaining market share, thanks to hyper efficient business process automation in its supply lines. This automation service can receive and read delivery notes ten times faster than the admin staff in your company—and you need to innovate fast to keep your status as the regional market leader. You’ve been tasked with implementing your own company-wide automation solution, using Python to automate your processes. To achieve this, you’ll use Python to iterate through subfolders of your current text-based PDFs and PDF form files and extract field keys and values. You’ll write scripts that can identify field IDs on web forms that correspond to the PDF documents, and automatically populate the web forms with information extracted from your PDFs—no manual data entry needed! Finally, you’ll prepare a report detailing your conclusions for your manager at PharmaChain.
skills learned: automate repetitive manual processes in Python • extract data from PDFs • web page resource identification • dynamically assign values to web form fields using autogenerated JavaScript
In this liveProject, you’ll deploy a completed deep learning model so that it can be easily used by your clients. You’ll use the Flask Python library to build a web page that will host your model, and use HTML, CSS, and JavaScript to build a simple web interface. Finally, you’ll take your model out into the world by using ngrok to make locally-served web pages available anywhere.
skills learned: create a web server with Flask • build a simple interface with HTML and CSS • make locally served web pages available to users on other systems
In this liveProject, you’ll set up and tune a TensorFlow.js PoseNet model in a React web app. PoseNet allows real-time human pose estimation in your browser, all through the magic of TensorFlow.js. You’ll enable a WebGL backend, set up a system where PoseNet can utilize a webcam stream for its data input, and establish a canvas that can draw on top of an estimated pose.
skills learned: setting up TensorFlow.js PoseNet model in React Web app • enabling a WebGL backend • setting up Webcam live stream processing
In this liveProject, you’ll create an Android application that can run a pretrained basketball predictor deep learning model for the easy use of your client. Your challenges will include converting the DataFrames into JavaScript arrays, converting your model into a TensorFlow Lite model, and finally packaging the model inside a working Android application.
skills learned: Converting a model to Android use • generating JavaScript usable data sets • simple Android development
In this liveProject, you’ll deploy a pretrained basketball predictor deep learning model onto the web for easy use by clients. You’ll utilize the powerful TensorFlow.js framework to ensure the model works in the browser, as well as converting DataFrames into JavaScript arrays, and building a simple website around the model and data sets.
skills learned: converting a model to web use • generating JavaScript usable data sets • simple web development
In this liveProject, you’ll set up a staging environment that duplicates a production SaaS platform that has been running on AWS. Your challenges will include creating an Amazon EKS Cluster using Terraform, and setting up a continuous delivery pipeline using GitOps and Route53. You’ll build your understanding of the role of a provider and tenant for a SaaS, and see how that affects its technical architecture.
skills learned: setting up an Amazon EKS cluster using HashiCorp’s Terraform • setting up a code pipeline to build a JavaScript application • setting up an ingress controller with a load balancer
In this liveProject, you’ll take on the role of a data engineer working for an app development company. Your boss has a great idea for a new app that can automatically identify what food is shown in an image—perfect for when you want to post your lunch on social media! They have asked you to build it for them.
Your challenge is to train an image classification system using TensorFlow and then deploy that system to production so that it can run in the web browser and as a mobile application. To do this, you’ll make use of the Python and TensorFlow ecosystems to create your model, then package it for deployment using Docker and Expo.
skills learned: train a deep learning model • deploy a deep learning model using TensorFlow.js • create web applications • deploy your application using Docker
You’re the sole DevOps engineer at BuildIT, a fast-growing digital agency that builds websites and applications for its clients. The company has an automated infrastructure with a simple user-friendly interface and user authentication system that constitutes an Internal Developer Platform (IDP). But as the IDP stands, one typo or missed configuration option can lead to application failure. Your task is to minimize these potential problems by creating a pipeline that parses BuildIT’s infrastructure CDKTF code and populates a DynamoDB table with the list of found environment types. You’ll use the entries in the database to populate a dropdown in the UI for selecting the environment type and a table of required configurations. When you’re done, you’ll have implemented client-side validation—and taken BuildIT’s IDP from rudimentary to robust.
skills learned: deployment pipelines with CodeBuild • define interfaces with JSON schema • build user interfaces with React.js
In this liveProject, you’ll use the powerful D3.js data visualization library to build an infographic of the top songs of 2020. You’ll be working with data taken from the MRC Data Year-End Report, and develop three charts that each explore some of the core building blocks of D3.js—selections, appending elements to the DOM, scales and data binding. Finally, you’ll extend your newfound skills to developing a bubble chart from scratch, along with axes and a legend.
skills learned: set up a local environment for D3 development • selection of HTML and SVG elements in the DOM • appending elements to the DOM • binding data to DOM elements and using this data to size and position them
You’ve been striking a chord at SongRiver, the popular music-streaming platform where you’ve been working for the last two weeks. Feedback for the employee directory app you’ve been building is mostly favorable, but it also suggests that the user experience (UX) could be improved if the page were more informational and visually appealing, especially at specific times. You’ll use React Query and Chakra UI tools to indicate when the app is fetching new data or refetching data, and when there’s been an error fetching data. When you’re done, your app will display loading and error indicators that are both useful and easy on the eyes.
Some sections may contain information that is now outdated due to the rapid advancements in the technology field, notably the initial libraries, Docker setup, and some documentation links. Regardless, this liveProject remains an invaluable resource for intermediate users.
skills learned: UI indicators that display loading and error states of React Query
In this liveProject, you’ll use AWS Step Functions to preserve service coordination between newly split microservices functions. This cooperation between services is vital for large-scale microservices architectures. Luckily, the built-in Step Functions feature of AWS can supervise your microservices orchestration and ensure their continued reliability and scalability.
skills learned: use exception in your Lambda function • catch Lambda exceptions in AWS Step Functions state machine
Ensure your system can accommodate even unstable dependency services. You’re a TypeScript developer for a large company that sells stock photography. You’re responsible for the service that ingests images. Unfortunately, the ingestion process is being negatively affected by a flaky external web service that the ingestion engine uses, and the problem is not reproducible in unit testing since there’s no connection to the external service at that time. Working in IntelliJ WebStorm, you’ll establish an in-memory HTTP service, configure it to simulate a dependency service, write a test to reproduce the error, and use the test to build robustness into your system.
skills learned: dynamically configure Nest.js containers • mock an HTTPservice dependency
p5.js is a fun and creative JavaScript framework that lets you create graphics and flex your artistic skills—all while using code! In this liveProject, you’ll explore and expand your drawing, animating, and interactive art skills with the p5.js framework. You’ll use the p5.js canvas and JavaScript code to create drawings, animate them, and make them interactive. The skills you develop will expand your coding creativity, and give you a solid foundation for advancing with graphic design.
skills learned: drawing on the p5.js canvas • moving pixels to animate objects • keyboard and mouse inputs • math and animation techniques
You’re a software engineer for Echorand Corp., a growing analytics company that wants to address the lack of backup functionality provided by the GitHub software hosting service it uses. The company has a web application that allows users to log in using their GitHub credentials. Your task is to add functionality to that app that lets users download their data whenever they like. Using Go, HTML, JavaScript, and the GitHub Go SDK, you’ll implement support that enables users to export their data on GitHub, view their exports, and download them—a win for Echorand Corp. and for you!
skills learned: work with Go standard library packages and the GitHub Go SDK • access the GitHub API
Welcome to your second week at SongRiver, a music-streaming startup whose success is skyrocketing. You’ve been working on a directory app to help keep track of the company’s growing number of employees, and your task for this week is to add search functionality to employee pages in the directory. Using Chakra UI, you'll create the user interface for the search input box. Then you'll fetch the results from the server via React Query and display the data. You’ll end the project on a high note by using React Router tools to create links that enable navigation between individual employee pages and the search interface.
Some sections may contain information that is now outdated due to the rapid advancements in the technology field, notably the initial libraries, Docker setup, and some documentation links. Regardless, this liveProject remains an invaluable resource for intermediate users.
skills learned: state-controlled input field • React Router search params • array of React components from array of server data
In this liveProject, you’ll create advanced functionality for a chat application, allowing users to upload files during a text chat. You’ll use the WebSockets framework to receive requests from browsers and set up WebSocket connections that let customer support teams chat with customers. Challenges include implementing the file upload support, and writing tests to ensure the end-to-end functionality is high-quality and bug-free.
skills learned: creating a WebSocket server • uploading files to an object storage service • verifying functionality using tests
In this liveProject, you’ll register your app with Google to generate a sign-in code, then build a basic UI for your login page. You’ll make use of the OpenID Connect Protocol and Google Platform Library, then set up basic HTTP authentication for your API.
skills learned: understanding the basics of Google Sign-In protocol • implementing user authentication by integrating with Google login • identifying vulnerabilities and fixing them in the implemented code
In this liveProject, you’ll use the Google Sign-Out protocol to add logout, session monitoring and disconnect-user flows to your login. You’ll implement UI changes to add a “Logout” button that calls to Google’s API, and add the functionality to permanently remove a user from your service.
skills learned: implement logout • session monitoring and revoke functionality with Google Sign-In
In this liveProject, you’ll enhance the security of your social sign-in with two-factor authentication. In order to counterattack cyber attacks like phishing, you’ll implement a time-based one-time password protocol in your application.
skills learned: two-factor authentication using Time-Based One-Time Password (TOTP) protocol
In this liveProject, you’ll add basic HTTP authentication to an API for granting Personal Time Off requests using the Lightweight Directory Access Protocol (LDAP). This application contains sensitive personal information and so its security is essential. You’ll establish authentication that ensures only registered users can access the API and provides login requirements to authenticate users before they get access.
skills learned: learning the basics of Lightweight Directory Access Protocol (LDAP) • implementing basic HTTP authentication with username and password as per LDAP protocol
In this liveProject, you’ll establish functionalities to provide role-based authorization for leave requests made through a Personal Time Off API. Using the Lightweight Directory Access Protocol (LDAP), you’ll set up access controls so that only managers and other authorized users can retrieve non-personal leave records and approve leave requests.
skills learned: authorizing requests based on user role as per LDAP protocol
Growth means change; for Logistica Transport, that means switching from their old desktop app to a new web app solution. In this liveProject, you’ll put together all of the pieces of this new web app. You’ll learn how to build a React.js app with Visual Studio 2023, set up a form for your users, and master the database magic of CRUD statements like insert, update, and delete to manipulate your database. Finally, you’ll validate your data formats to ensure the application works as expected.
skills learned: NuGet packages • Creating themed React forms • Implementing CRUD features • Implementing form validation
You’re the sole engineer for PrincipalStack, an online publication focused on teaching software engineering the right way. As part of the company’s efforts to engage new users, your job is to connect the newly built OpenID Connect server with the main web application. Using Node.js, you’ll register the new web application with the authorization server, install and configure an OpenID Connect library, implement login authorization with OAuth 2.0, and integrate the new OpenID Connect authentication with an existing set of users.
skills learned: build an Express.js-powered web application • set and check sessions for users • protect application routes using middleware
In this liveProject, you’ll replace SimpleTravel’s existing REST API. The company has grown, and new consumers want to be able to customize data returned by this API. Due to the inflexible nature of the REST paradigm, the new API will be implemented using GraphQL.
skills learned: implement a GraphQL endpoint using AWS • implement a query in GraphQL
As the sole engineer for PrincipalStack, an online developer-focused publication, your task is to use an authorization server to log in users and enable your internal team to work in both the newly built community-engaging, single-page application (SPA) and the main (legacy) application—under the same identity. When you’re done, you’ll have leveraged tools including browser-provided JavaScript APIs and HTML to modify the SPA so that it can request, store, and use access tokens tied to that single identity to call the API.
skills learned: use a browser's built-in storage, fetch, DOM, and crypto APIs • use event listeners • implement PCKE
In this liveProject, you’ll reduce a test’s coupling to the implementation (thereby reducing the tests’s dependence on the details of how the code works) and extend a feature using test-driven development for an e-commerce record store. You’ll begin by applying techniques to increase test readability, then implement a full stack feature that requires changes to all layers of the system. Lastly, you’ll tidy up by refactoring the implementation to reduce conceptional duplication, making the code easier to read and maintain.
skills learned: white-box and black-box testing and how to choose between them • refactoring an end-to-end test to be less coupled to the implementation • using TDD to implement a full stack feature
UMET Inc. is off to a great start in its efforts to refactor its backend to a modern technology stack using the popular, high-performance Rust programming language. As a new developer for the e-commerce platform, your task is to create a microservice for calculating order totals that depends on another microservice that looks up sales tax rates. Using HTML and JavaScript, you’ll create a web user interface for the microservices so that UMET product managers can test them in a browser. You’ll build and test your new application using Rust reqwest and Serde crates to make web service calls and also use Docker Compose to manage multiple Wasm and Linux containers in a single application. When you’re finished, you’ll have firsthand experience using WasmEdge command-line interface (CLI) tools to build a cloud-native application with interdependent microservices.
skills learned: Docker + Wasm • Docker Compose • WasmEdge CLI tools
In this liveProject, you’ll use the Python tools pandas and Folium to prepare the Airbnb dataset for training a deep learning model. You’ll learn Python concepts that ensure the application you build on this data is robust and maintainable, and implement geospatial and visualization techniques to illustrate the geographic distribution of Airbnb rentals.
skills learned: manipulate tabular data • create geospatial visualizations
Acme Widgets has a Google Workspace invoice processing add-on that uses Google Document AI to interpret data from PDFs and image formats. To make the tool more valuable, your task is to add the ability to accept documents in other formats. You’ll start by enabling a pop-up web app that displays the expanded list of newly supported file types. You’ll add functionality for picking additional file types and automatically converting them to a Document AI-supported format, then archiving them. You’ll also enable sorting and duplicate removal as you create a summarized view of invoices and expenses, making the company’s employees’ tasks easier and less time-consuming.
skills learned: use the Google Drive API to create conversion routes • convert a range of documents to native • summarize, sort, and deduplicate converted documents
It’s your fourth week with SongRiver, a music-streaming web platform whose success is climbing the charts. Beta testers for the employee directory app you’ve been building are singing your praises, and they have a new request: they’d like to celebrate employees with badges that spotlight their contributions. You’ll use Chakra UI to create a grid of employee badges and add badge information to the employee page. Using React Query, you’ll add functionality for sending badge data to the server, then display a “toast” (pop-up) message that communicates whether or not the badge submission was successful. When you’re done, you’ll have a people-pleasing, connection-boosting feature that adds and displays employees’ badges, and you’ll have earned a “Rock Star” badge of your own.
Some sections may contain information that is now outdated due to the rapid advancements in the technology field, notably the initial libraries, Docker setup, and some documentation links. Regardless, this liveProject remains an invaluable resource for intermediate users.
skills learned: display employees’ existing badges • provide a button to add a new badge • send an update to the server when a new badge is added • refresh the data on the page to show the new badge
In this liveProject, you’ll make use of the D3.js library to create a radial visualization of the cohorts of NASA astronauts. Radial visualizations are very popular with users as they evoke calmness and gracefulness, and the eye is naturally drawn to round shapes. This complex project will really test your D3.js skills as you create a visualization that can expertly display diverse information about each astronaut, like the total time spent in space, or background information such as military versus civilian. To complete this stunning visualization, you will need to generate arcs and display labels over a path, use D3 scales to generate a legend, and animate shapes to create a rich interaction flow.
skills learned: create arcs using D3’s arc generator • position basic SVG shapes on a radial layout using trigonometry • append external images inside a visualization • chain transitions to animate SVG elements within the visualization
In this liveProject, you’ll make IoT devices “chat” through HTTP services. You’ll construct IoT gateways that query data from sensors, then send that data to a centralized platform. You’ll use different protocols to do this, including HTTP and MQTT. The Vert.x toolkit will give you everything you need to work with these protocols.
skills learned: Vert.x microservices
With a brand new grant from the finance department, biotech company SphereCell has hired a new frontend web developer — you! Your boss wastes no time laying out your first project: completely refactor SphereCell’s sales trends dashboard.
The goals of this refactoring are to modernize the dashboard, reduce technical debt with future-proof code, and improve its maintainability. Your boss has also mentioned that SphereCell will soon need another new dashboard for an upcoming subscription service, so you’ve decided to use React Hooks to ensure the work you do will be easily reusable.
Your challenges will include migrating the existing codebase and data fetching logic to React Hooks, move the application’s state to the React Context API, and make sure everything is robust and working with automated tests.
skills learned: creating React components with state • fetching data with React Hooks • handling complex state changes with React Hooks • handling application’s state with React Context API • mocking API data in the frontend
My Little Cookie Shop’s website looks pretty nice, but there’s a problem with an accordion feature on the store’s page. Instead of allowing the user to expand or collapse pastry categories, the content abruptly appears and vanishes. To make sure Max’s competitive edge doesn’t vanish, too, you’ll make the sections glide open and close, as well as fix an arrow’s rotation problems, using CSS and JavaScript. Also, to respect all users, you’ll use media query to disable animations for users whose browser settings indicate they prefer reduced motion.
skills learned: expand/collapse accordions • rotate elements • disable animations according to user preferences
As an enterprise architect at Padre Inc., which runs its cloud operations on AWS, it’s up to you to manage multi-cloud operations for Tiddler Inc., a startup using Google Cloud that Padre has acquired for its SaaS project. Your task is to implement error budgeting to achieve a predefined service-level objective (SLO) and balance the deployment of new features with the reliability of the services in production. Using tools including Elasticsearch, Kibana, and Logstash, you’ll create an error budget policy and you’ll calculate burn rate, which indicates how quickly the budget is expended. You’ll use Kibana to implement a dashboard that uses burn rate data when creating the alerts product owners rely on for ensuring that service reliability meets service-level agreements (SLAs) when releasing new features. When you’re finished, you’ll have hands-on experience with valuable site reliability engineering (SRE) skills and concepts that you can apply to real-world projects.
skills learned: implement Server Reliability Engineering (SRE) with SLIs, SLOs, and SLAs
Take on the role of a Jenkins engineer working at XYZ Infotainment, a company that publishes news and entertainment, leveraging data and innovation to reach millions of people around the world. After only a decade, it’s faced with the “good problem” of handling its exponential growth. Your task is to build a new method to manage code quality as part of the management team’s initiative to increase productivity and quality. You’ll integrate SonarQube, a static code analysis tool, into a pipeline and fork a health app in your GitHub repository. To ensure your code analysis is effective and efficient, you’ll also write a declarative script that configures the pipeline to wait for the SonarQube Quality Gate result and to fail if its criteria are not satisfied.
skills learned: integrate SonarQube Scanner with Jenkins • static code analysis in pipelines for web applications
In this liveProject, you’ll use the D3.js visualization library to create a streamgraph visualization of the ethnicity of the Oscars. This visualization will explore the representation of ethnic minorities at the Academy Awards ceremony throughout its history. Once you’ve constructed your basic streamgraph, you’ll append a composite tooltip to the visualization, play around with transitions, and give consideration to making your graph responsive.
skills learned: use D3’s stack generator to stack areas, or SVG paths, upon each other • listen to mouse events and build a complex tooltip • break SVG text upon multiple lines
In this liveProject, you’ll use p5.js to link and synchronize visual assets with audio material. You’ll start by simulating a 3D landscape, then animate a camera flight through the landscape, before cohesively setting your movie to music to create a music video.
skills learned: drawing with 3D primitives and transformations • working with the p5.js 3D camera • p5.js audio playback and movie rendering
In this liveProject, you’ll refactor the tests for a legacy e-commerce Spring application to improve readability, then add missing test coverage. You’ll use test-driven development to add a new coupon feature, organize your unit tests in a readable way that exposes missing coverage, and then fill in gaps in coverage by applying characterization testing so that the system can be changed without fear of adding bugs.
skills learned: improve test readability by refactoring tests to focus on one scenario • maximize the visibility of the pre and post conditions in tests • add missing code coverage to classes and functions
Logistica Transport is on the rise—and they need a new web app solution that can do what their old desktop app can’t. That app is almost ready, but it needs a final round of testing to make sure it’s ready to go to its users. That’s where you come in! You’ll learn to utilize mocks and stubs, as well as the Jest and React Testing Library, to spot errors and make sure the app is production-ready. You’ll even test and assess the app’s performance using BenchmarkdotNET.
skills learned: Visual Studio debugging tool • Testing applications • Checking application performance • Entering application accessibility features
UMET Inc.’s mission to modernize its software infrastructure has been a great success. The e-commerce company now uses Rust microservices that run in lightweight Wasm containers so that they can be deployed anywhere in the cloud. However, as more microservices are created, the overhead for managing them is becoming a problem. Using the Distributed Application Runtime (Dapr) sidecar, a commonly used design pattern, you’ll create a proof of concept (PoC) that demonstrates the pattern’s benefits, including reducing the complexity of connecting multiple microservices and infrastructure services (e.g. databases and web proxies). When you’re finished, you’ll have refactored UMET’s microservices to work with Dapr, reducing the overhead required to manage them.
skills learned: use Dapr to construct complex microservices
In this liveProject you’ll use human pose data and TensorFlow.JS’s PoseNet to build and train a machine learning model that can recognize workout exercises. This model will record and recognize the workout session of a user, to be logged for future comparison. You’ll need to prepare data structures for the TensorFlow.js Dataset API, and execute one-hot-encoding with a simple mapping function. You’ll also define model architecture using the TensorFlow.js sequential API, and train your model using the fitDataset method. You’ll finish up by saving your trained model in local browser storage to allow for model reuse.
skills learned: creating new modules within a React app • cleaning up the data • preparing data for training
In this liveProject, you’ll fill the shoes of a developer for an e-commerce company looking to build a machine learning solution to help identify bad product reviews. If one of your company’s products receives too many bad reviews, it’s policy to take it down from the e-commerce store. Until now this process has been manual—but your boss has decided that this is too expensive and time-consuming.
Your mission is to automate this process, dramatically increasing the speed of identifying bad reviews, and decreasing the cost to your company. To complete this project you will have to train a machine learning model to recognize and rank positive and negative reviews, expose this model to an API so your website and partner sites can benefit from automatic rankings, and build a small webpage that can run your model for demonstration.
Updated March 2022
skills learned: use an existent sentiment classification API • create a web API to expose an ML model • build a simple demo website
BuildIT, a fast-growing digital agency that builds websites and applications, has a basic Internal Developer Platform (IDP) consisting of an API and a simple web UI that interfaces with the API. Your job, as BuildIT’s sole DevOps engineer, is to manage AWS costs by eliminating IDPs that are left idle. You’ll use Passport.js to incorporate an authentication system on top of the IDP to keep track of who’s responsible for each environment, ensuring that developers only keep environments they’re actively using and destroy them when they’re finished. You’ll also record environment costs and filter them by developer with Cost Allocation Tags, viewing those costs in reports on AWS Cost Explorer. By the end, the agency will thank you for all the money you’re saving it!
skills learned: password-based authentication • token-based authentication • Passport.js • tracking costs with cost allocation tags
It’s week number five for you at SongRiver, a music-streaming startup whose success is soaring. You’ve been working on an employee directory that helps users find employee information and send each other digital recognition badges. Your task this week is to create and automate tests to ensure the app works correctly, especially after updates.
Using Jest and the React Testing Library, you’ll write a test for the badge component that checks for the badge name and image. You’ll create and test a custom render method for React Testing Library, a must for preventing errors while rendering components that require React Router. Using mocked data, you’ll test components that fetch data. You’ll also write tests for the “Add Badge” component, using user-events to simulate user interactions with components. When you’re done, you’ll have created an automated test suite that empowers you and your colleagues to update the directory app with confidence.
Some sections may contain information that is now outdated due to the rapid advancements in the technology field, notably the initial libraries, Docker setup, and some documentation links. Regardless, this liveProject remains an invaluable resource for intermediate users.
skills learned: automate tests with Jest, React Testing Library, and Mock Service Worker
Travel World Agency (TWA) has enjoyed rapid growth, but its computing costs have risen along with its success. Before implementing potentially disruptive cost-reducing measures to their next-gen system running on Amazon Web Services (AWS), it needs to improve the quality of its microservices. As a senior developer, your task is to detect whether any change in the request/response of the endpoints might affect the rest of the microservices. You’ll use Pact to define the contract between multiple microservices using the HTTP method, the name of the endpoint, and the requests and responses. By the end, you’ll be able to detect problems that could result from a change to the name, HTTP method, or the attributes that contain the requests and responses of one endpoint.
skills learned: add dependencies and logic to create a simple test of one endpoint • create a test of one endpoint that obtains information from a database • reuse the API test to validate the performance of one endpoint • add multiple tests into one Jenkins pipeline
You’re a senior developer at Travel World Agency (TWA). Its swift success has come with a high rise in computing costs. But before it introduces potentially disruptive cost-saving modifications to its next-gen system running on Amazon Web Services (AWS), it needs to improve the quality of its microservices architecture. Your job is to create API and performance testing using Karate and Gatling and apply a black-box approach that prevents anyone from changing what’s inside the microservices. You’ll test the connection with external services as well as with a database, then create a performance test with minimal configuration by reusing one of your API tests.
skills learned: add dependencies and logic to create a simple test of one endpoint • create a test of one endpoint that obtains information from a database • reuse the API test to validate the performance of one endpoint • add the different tests in one Jenkins pipeline
QryptoTremolo, a startup that’s developing a set of next-generation financial services, has hired you to help upgrade its security. The company has set up an organizational AWS CloudTrail, which deposits all the events of QryptoTremolo’s AWS control plane, as well as some data plane, in an S3 bucket within the security account. But the events are stored in a form that doesn’t lend itself well to forensic queries. QryptoTremolo has chosen AWS Athena as a query-friendly solution. Your task is to configure AWS Athena to allow for sending advanced forensic queries to an S3 bucket filled with organizational CloudTrail events. You’ll learn how to create forensic SQL queries and issue them in a performant way across all accounts in the organization.
skills learned: Athena • AWS CloudTrail • Boto
You’ve been hired to bring security controls to QryptoTremolo’s AWS accounts. The startup, which develops next-generation financial services, chose to develop and operate in AWS. QryptoTremolo’s development teams have had unfettered access to the AWS accounts, and ad hoc development has evolved organically, increasing the risk for security breaches. It’s up to you to lower this risk so that the company doesn’t end up on the front-page news…for the wrong reasons. Using CloudFormation, stack sets, and the AWS CLI, you’ll set up AWS Config with rules to preemptively discover resources that aren’t configured according to security best practices.
skills learned: AWS Config and Config rules • StackSets • CloudWatchEvents
Help the Cumberland City Council earn—and keep!—the trust of the residents it serves. As a cloud engineer working on its “Traffic Safety Upliftment” initiative to improve performance and availability, you’ll secure the AWS services (S3, DynamoDB, Lambda, CloudFront, and API Gateway) associated with its static website and serverless web apps on the AWS cloud.
skills learned: secure AWS services (S3, DynamoDB, Lambda, CloudFront, and API Gateway)
In this liveProject, you’ll use the Quarkus ecosystem to provide a data persistence layer to the Catalog API of a video streaming service. As a software engineer for the Chill+ streaming site, you’ll be using the Quarkus “Hibernate with Panache” extension, which is an opinionated usage of the famous Hibernate ORM data persistence framework. To speed up the dev and test stages, you’ll use the Quarkus DevServices feature, which spins up a database container and configures the application for you.
skills learned: use Quarkus extensions to work with Hibernate ORM with Panache • discover the active record data access pattern promoted by Quarkus • develop Create-Read-Update-Delete operations
In this liveProject, you’ll build a system that will allow native GCP and AWS customers to authenticate and authorize users via a single entry point. You’ll update the security for an existing cloud SaaS application to the BeyondCorp security platform of Google Cloud, and add a security layer to an AWS application using Identity Aware Proxy.
skills learned: preparing a Google Cloud Platform environment • setting up an IAP connector • routing via VPN to publicly accessible applications
In order for the Llama-based chatbot app to answer chemistry questions reliably and without hallucination, you need to ground and supplement it with facts and knowledge. That’s why your local school district has tasked you with using RAG (Retrieval Augmented Generation) to help improve the capabilities of the chemistry chatbot app. RAG allows an LLM to search a knowledge base to help answer questions, avoiding unfortunate hallucinations. You’ll create a vector database for chemistry textbooks as the knowledge base, establish an RAG API server for the chatbot, and then deploy your new bot to both the web and Discord.
skills learned: Create embeddings from a body of text • store embeddings in a vector database • build a RAG LLM application • create a Discord chatbot
Acme Widgets, a manufacturing company, uses an AI-powered Google Workspace add-on to automatically extract information from supplier invoices. Your task is to extend the add-on’s functionality so it can handle expense claim receipts, as well. You’ll add a Document AI processor designed for processing expenses, and you’ll enable additional fields in order to group related receipts. To increase user convenience, you’ll enable the uploading of local files and add a tab to re-pick recently selected files. Lastly, you’ll create unit tests that will help you update the add-on with more complex changes in the future.
skills learned: implement Expense Document AI processors • add CardService add-on fields • implement unit testing
You’re the star data engineer at Free Power Corporation Limited (FPCL). The London-based power company is interested in gaining insight into its customers’ energy usage patterns, and it’s up to you to deliver a data-rich solution that satisfies the requirements of FPCL’s various teams. You’ll create a streaming Spark application to read the consumer event stream from Kafka, you’ll add information that helps the teams determine when data was generated, ingested, and processed, and you’ll write logic to reorder any late or out-of-order data. To provide vital household energy consumption statistics to the sales and electrical engineering teams, you’ll join Kafka data streams and perform complex computations on the resulting stream. To be sure your solution is ready for the teams to use, you’ll test it on the local Spark cluster. When you’ve finished, you’ll have learned advanced stream processing skills that empower you to meet the different business requirements of various enterprise departments.
skills learned: perform complex arbitrary stateful computation on streams (such as handling out-of-order data and custom computation) • set up a Spark cluster • test your solution on the local cluster
GitHub is stuffed full of free and open-source development tools, all with no guarantee that they’re stable, up-to-date, or even still maintained! Companies need a way to ensure that the GitHub projects they’re adopting come with a clean bill of health — and for that, they turn to you!
You’re the CTO of GitHub Health, a unique startup that provides reports and analysis of GitHub software projects. But your findings aren’t based on gossip, they’re based on data. In this liveProject, you’ll build a serverless data system that can extract meaningful data from GitHub, store it in a database, and display the statistics using Google Cloud. Once you’re done, you’ll generate a report for a new client on which of three open-source projects is the best choice for its new DevOps team.
skills learned: serverless data extraction • storage and presentation within Google Cloud
In this liveProject, you’ll become a software engineer at InfoHub, an up-and-coming AI startup looking to revolutionize how companies interact with their knowledge bases. InfoHub seeks to utilize groundbreaking large language models to deliver a system whereby a user’s questions about company data can be answered through a Q&A-style language interface. You’ll begin by assisting them in creating this tool by processing, tokenizing, and converting data into embeddings with BeautifulSoup and tiktoken.
skills learned: use of embeddings with the OpenAI API for similarity search
Boutique, a software development company, is working on a project that will automate a client’s inspection process. As a software engineer for Boutique, your task is to implement authentication and authorization in the existing ASP.NET Core HTTP API for the project according to the client’s requirements. You’ll register your application to use Google as an identity provider, configure Swashbuckle to support authentication through Google, and activate the authentication and authorization middleware of ASP.NET Core. To take advantage of ASP.NET Core’s authorization features, you’ll add additional claims to the authenticated identity per the client’s specs, and you’ll implement role- and policy-based authorization as needed. When you’re done, employees will be able to use all of the API’s functionality, and customers will have read access to their own data.
skills learned: interpret an OpenAPI specification • set up and configure authentication and authorization • how to gain insight into using different mechanisms to implement authorization • dissect a JWT
In this liveProject, you’ll set up authentication and visualization functionalities for a connected IoT system. You’ll use JSON Web Tokens to authenticate an administrator and stream documents from a MongoDB database, then use the SockJS event bus bridge to connect your IoT data to a web application that displays sensor data in a user-friendly manner.
skills learned: Vert.x web application development
In this liveProject, you’ll go hands-on to build an automated CI/CD pipeline for a Kubernetes-based application so your team can roll out new releases whenever there’s a new feature to go live. The pipeline you build will use the same process to make updates to the application platforms. You’ll work with a pre-deployed and working version of an application as you use Helm to create a single deployment package for all environments, configure safe automated deployments, and use affinity rules and selectors to prepare for high availability.
skills learned: using Helm to create a templated deployment package for different environments • tuning the upgrade configuration for each component • deploying components in a wide spread across servers
In this liveProject, you’ll use Docker to set up a pipeline for a cloud-hosted e-commerce store from scratch. You’ll start by creating a private repository using AWS CodeCommit, CodeBuild project, and a CodePipeline to automate pushing Docker images to your ECR repository. Finally, you’ll establish blue/green deployments with CodeDeploy and test your functionality by deploying some live code to build a live understanding of zero-downtime type of deployments.
skills learned: using Code Commit • using CodeBuild to create docker images • using CodeDeploy
As a member of the development team at Piper Data Concepts, you’ll carry out the final steps of a workflow-improvement project: enabling your client’s staff to gather workflow process information in real-time. Several prototypes have been built, and the client’s workflow is more resilient than ever. You’ll write Python code that consumes messages from Kafka and prepares them for storing in the database, create Postgres queries to access the aggregated data, and build reports in CSV files to be read by visualization tools—and ultimately, your client’s staff. When you’re done, your client’s modern system will provide a feedback loop, enable external API access to status updates, and be ready for more specialized services to be plugged in later, with no code changes.
skills learned: end-to-end pipeline • Kafka data into the database • web scraping • creating reports
You’re the DevOps engineer at E-CO, an e-commerce organization that’s ready to retire its aging data center equipment and migrate its containerized, on-premises line-of-business applications to the cloud. Your task is to create a Continuous Integration and Delivery (CI/CD) pipeline to manage the lifecycle of E-CO’s infrastructure and software, following a GitOps workflow. You’ll use Microsoft Azure DevOps to create a project to host the workflow, and you’ll create Microsoft Azure Pipelines to define the workflow from Continuous Integration to Delivery to Deployment. After verifying the functionality of the Terraform code, you’ll deploy and check the code in production. When you’re done, you’ll have several pipelines running in Azure DevOps that check the box for E-CO’s desired GitOps workflow.
skills learned: DevOps CI/CD practices • use Azure DevOps to deploy AKS with Terraform • continuously test, integrate, and deploy infrastructure components automatically via Azure DevOps and Terraform • use Go to test your Terraform code • use branching and tags to test changes in a non-production environment
Acme Widgets, a manufacturing company, manually logs its supplier invoices on spreadsheets in Google Workspace. Your task is to free the staff from this tedious task by creating an add-on that automatically extracts and records useful information from invoices. You’ll set up a Google Cloud Platform (GCP) account, implement and deploy the add-on, and create Document AI processors for processing invoices from multiple regions. You’ll add a CardService that improves the user experience by letting them select which files to process. You’ll use the Document AI REST API to process the invoices’ image data and write the processed data to a spreadsheet, enhancing the user interface. When you're done, you’ll have created a basic, easy-to-use Google Workspace add-on that extracts and records invoices in multiple formats, leaving the Acme Widgets staff free to focus on more productive tasks.
skills learned: create a project in Cloud platform • deploy a Workspace add-on • implement Invoice Document AI processors • update spreadsheets
In this liveProject, you’ll dive into the role of a software developer working on a catalog application for the Chill+ streaming service. Your boss has given you the task of developing a native version of the catalog application using Oracle GraalVM and Quarkus, in order to help manage resources as the app scales. You’ll create and test your executable with GraalVM, then build a Kubernetes-ready container for embedding the application.
skills learned: install GraalVM • build a native executable version of an API • measure the native version performance and compare them to the JVM version
In this liveProject, you’ll build a basic foundation of network infrastructure using Terraform and AWS. You’ll start by setting up your local environment and creating a three-tier architecture network, then create routing and gateways, and finish up by testing your network’s connectivity and security.
skills learned: building a VPC and Subnets • building Internet Gateway and NAT Gateway • editing security groups
You’re a consultant working for Messflix Inc., a movie and TV-show streaming platform. Your task is to set up a Python prototype implementation of the data mesh to roll out the technical components of a data mesh. Using Python and pandas, you’ll write a Python function that creates an empty CSV file with the predefined attributes of your data product, builds a data catalog by creating Python functions that write to the CSV file, and sets up standardized access to the CSV datasets. When you’re done, you’ll have hands-on experience building a minimal self-serve data platform using simple techniques.
skills learned: build a self-serve data platform • build a small data catalog • consume data inside a data mesh • store data products
In this liveProject, you’ll step into the role of a software developer at InfoHub, an AI startup attempting to build a chatbot that can answer queries about a company’s knowledge base. You’ve already built the basics of the chatbot—now it needs to be deployed! To do this, you’ll use the LangChain feature LangServe to create a LangChain server application. You’ll build your chatbot using Streamlit and then deploy it to the Streamlit cloud.
skills learned: create a chatbot using LangServe and Streamlit • deploy to the cloud through Streamlit Cloud
Transform XYZ Infotainment’s company culture by improving the productivity and quality of its application automation. The company publishes news and entertainment for a global audience, and it’s grown from 20 employees to 2,000 in 10 short years. It’s already extensively using a pipeline-as-code approach, but it wants to take its DevOps transformation to the next level by empowering non-programmers to manage their automation pipelines using Jenkins.
As an automation engineer, you’ll deliver the solution by building a Docker image for a web application, pushing the image to Docker Hub using Jenkins Pipeline, and securing the image using Trivy, an image scanner designed to spot vulnerabilities. To ensure it’s working as expected, you’ll test the workflow of the pipeline with XYZ Infotainment’s health-promoting BMI calculator. When you’re done, the web application will be ready to be integrated into the pipeline.
skills learned: build Docker images • scan Docker images to identify vulnerabilities in a pipeline
SignalR is an ASP.NET Core library that adds real-time web functionality to your apps, enabling server-side code to instantly communicate with your client. It’s an ideal library for facilitating the lightning-fast communication needed for a real-world Internet of Things project.
In this liveProject, you’ll put SignalR into action to build and implement an airport PA system across the Internet of Things. Your challenge will include creating both the server-side web application using ASP.NET Core with JavaScript front-end and the distributed application that will be deployed on the IoT devices on the ground using .NET Core and Docker. You’ll establish your SignalR setup, enable the transfer of real-time audio data, and enable your IoT applications to both run as a single cluster and deploy on Docker.
skills learned: hosting a SignalR application on a cluster of servers • hosting a server-side SignalIR class
Jenkins X helps supercharge your software delivery with both a CI/CD toolkit and isolated preview environments that let you test how your whole platform behaves with new features. In this liveProject, you will implement continuous integration and continuous deployment workflows by adding Jenkins X.
You’ll step into the role of a software engineer at Money FX, a Fintech company whose success rests in its speedy payment processing platform. You’ve been assigned the task of implementing a new strategic way to run platform tests as part of a CI/CD process, and you’ve decided to use Jenkins X to make this task easier. Your challenges will include moving the current service to Kubernetes, introducing Jenkins X to the testing process, validating the new workflow with code addition, and extending Jenkins X with a new pipeline.
skills learned: Jenkins X • CI/CD • Kubernetes • GitOps
You’ve been hired by QryptoTremolo, a startup that’s been developing a set of next-generation financial services, to lower the risk of security breaches. The company has chosen to develop and operate in AWS. Its development teams have had unrestricted access to the AWS accounts, and ad hoc development has evolved organically, increasing the risk for security breaches. To uplevel security in these accounts, you’ll deploy CloudFormation templates and develop a suite of automated pytest tests to verify their configuration. Next, you’ll build a CI/CD CodeBuild pipeline that triggers on infrastructure changes and deploys and tests the changes across the organization. This change control automation will enable you to respond quickly—and confidently—to changing business needs.
skills learned: AWS CodeBuild • AWS CodeCommit • StackSets • AWS CLI • pytest • CloudWatchEvents
You’re an enterprise architect for Padre Inc., which has acquired Tiddler Inc., an insurance analytics startup, for its SaaS platform. Since your company runs its cloud operations on AWS and the startup uses Google Cloud Platform, your task is to manage multi-cloud operations. As part of that effort, you’ll implement centralized logging to simplify log analysis across multiple applications. After exploring centralized logging using the ELK stack, you’ll create a centralized logging instance in Google Cloud Platform and stream the logs from AWS to Google Cloud. To signal the need for corrective actions, you’ll use Kibana to run queries against the log data and create an alert based on log events. When you’re done, you’ll have created a centralized logging flow that improves site reliability.
skills learned: Elasticsearch • Logstash • Kibana • AWS Cloudwatch • AWS Lambda
Accurate and reliable logging is the cornerstone of good DevOps, allowing developers to easily spot problems and speed up their development processes. In this liveProject, you’ll learn to deliver cloud-based logging by stepping into the role of an SRE for an online retail startup.
You’ll go hands-on to deliver a cost-effective solution that gathers site logs in a central place in real time, then allows users to interact with those logs through an application interface. Your challenges include building your application infrastructure, creating the configuration to send logs to AWS Elasticsearch, and deploying an Elasticsearch cluster on EC2 instances. By the time you’ve completed your project, you’ll be able to use AWS, Terraform, and more to deliver log access and availability—an essential part of any IT infrastructure.
You’ll be able to complete this liveProject with just the resources provided by the free tier of AWS.
skills learned: create and maintain virtual infrastructures • work with application logs from Elasticsearch and Fluentd
In this liveProject, you’ll improve on half-finished legacy work to add security, logging, and centralized monitoring to a Kubernetes cluster. Picking up where a previous employee left off, you’ll implement the final requirements of a Kubernetes application so that it’s ready to go live. You’ll establish secure access for testers and SREs, set up log collection and storage with the EFK stack, and deploy and configure the Prometheus tool to collect metrics from all the application components. Finally, you’ll set up an HTTP certificate and an ingress controller to listen for incoming traffic so it can be routed to your company’s domain. When you’re finished, you’ll be ready to flip the switch and set your application live!
skills learned: deploying centralized logging and monitoring • running an ingress controller • configuring an ingress controller
You’re a senior developer at Travel World Agency (TWA). Management is surprised at the amount computing costs have increased, but before introducing potentially disruptive cost-reducing measures they need to determine how to improve the quality of the microservices. Your task is to simulate random problems, using Spring Boot’s Chaos Monkey library, to determine whether any scenarios exist that aren’t addressed by the code. To test your conclusions, you’ll use the Chaos Toolkit to generate concrete problems. When you’re done, you’ll have the skills to spotlight issues that aren’t always revealed through unit testing.
skills learned: create random problems manually that stop the execution of some components • create problems using tools like Chaos Monkey that have a set of different situations you can introduce • create automatic problems to interact with Chaos Monkey using ChaosIQ
In this liveProject, you’ll take on the role of a full-stack developer working for a school district. Your district wants to further student learning by developing its own large language model (LLM) applications to assist students, parents, and teachers. Your goal is to develop an MVP of this by creating a chatbot that can answer questions and engage in follow-up conversations. You’ll utilize the open source Llama LLM from Meta AI to do this. Your model will need to run with very low resources—it needs to work on the school’s outdated computers—and be equipped with an intuitive user interface. Let’s get started!
skills learned: Quantize an open-source LLM • build and use prompts and prompt templates for a chatbot LLM • build a web UI for the chatbot
In this liveProject, you’ll implement bug and error fixes in your microservices to reduce unnecessary and costly data traffic. You’ll implement a Circuit Breaker to prevent sending requests to unhealthy requesters, set up a Fallback method that gives microservices a default behavior with errors, and work with rate limiters to prevent large numbers of requests to an API.
skills learned: prevent send requests to unhealthy requests • give microservices a default behavior with errors • prevent a large number of requests to a certain API
Google Cloud Run Services lets you rapidly deploy containerized apps to the cloud. In this liveProject, you’ll harness Google Cloud Run to deploy a customer feedback workflow and integrate an automated machine learning solution. Your company handles thousands of feedback queries every minute, and this new system will ensure that important customers are quickly escalated and kept happy.
You’ve decided your workflow will receive customer feedback via HTTP POST service calls, then use automated machine learning to decide whether comments are positive or negative. Your challenges will include creating a Cloud Run instance, Google’s Managed KNative Kubernetes Cluster, accepting and storing feedback data with Google’s NoSQL Firestore, and managing future rollouts with proper versioning.
skills learned: creating serverless functions on Google Cloud Run • accepting HTTP requests • using serverless with Kubernetes • using machine learning to classify user feedback
Play the role of an analyst at Sitting Duck Shipping, a fictional mid-sized company that wants to modernize its authentication and authorization stack. Its goal is to reduce support time spent on password resets and improve the end-user experience, ultimately reducing the risk of account takeovers while maintaining security and compliance. Your task is to set up the proof-of-concept environment for this project.
skills learned: AWS cloud infrastructure • user account management
In this liveProject, you’ll bring visibility to customer AWS accounts using AWS CloudTrail, a vital tool that provides insight into all API actions invoked in consumer accounts. To achieve your objective, you’ll iteratively develop infrastructure as code in the form of AWS CloudFormation templates, then learn to address cross-account automation issues.
skills learned: automate AWS CloudTrail configuration • develop automated tests and CI/CD CodeBuild pipelines • set up IDS GuardDuty • restrict access to resources with Organizations Service Control Policies
In this liveProject, you’ll ensure that Qrypto Tremolo’s security team can make incremental, verifiable changes to its AWS CloudTrail configuration. To achieve this, you’ll develop a suite of automated tests and CI/CD CodeBuild pipelines to deploy and test changes across the organization.
skills learned: develop automated tests to verify the AWS CloudTrail configuration • develop a CodeBuild pipeline that will trigger on changes to the infrastructure as code
Acme Widgets has an AI-powered Google Workspace add-on that interprets data from invoices and receipts. Add-ons have a processing time limit that keeps them from processing many documents at once. It’s up to you to solve this problem! You’ll create one delegate web app that archives files to centralized Google Cloud Storage (GCS) and another that batches the documents—allowing processing to be done in a way that bypasses the standard add-on response time limit. As you develop, you’ll implement incremental unit testing to detect code errors. When you’re done, you’ll have a powerful add-on that isn’t constrained by processing time limits and automatically archives documents to secure cloud storage.
skills learned: set up cloud storage and archiving • implement document batch processing
In this liveProject, you’ll implement methods of compression to reduce the size of data that microservices return as a response. You’ll use the built-in compression tools of Spring Boot to set up microservices data responses in a gzip format, then explore using databases like Redis to compress data with the serializer of data offered by Spring Boot.
skills learned: compress traffic between different microservices • compress traffic between databases like Redis and microservices • remove the null values in the response of different microservices
You’re a DevOps engineer for BuildYourHome, an e-commerce company with a newly containerized e-commerce application. As part of an ongoing effort to ensure web page updates are delivered seamlessly, you’ll store web page-related configuration information with Kubernetes objects, including ConfigMaps and Secrets, then inject them into your microservice containers. When done, you’ll have gained familiarity with maintaining stateful applications with Persistent Volumes and Persistent Volume Claims, as well as a solid understanding of how ConfigMaps and Secrets are used in a production environment.
skills learned: set environment variables for containers • add app configuration into ConfigMap • inject ConfigMap into container • add app secrets into Kubernetes Secrets • inject secrets into containers
In this liveProject, you’ll take on the role of a Java/Kotlin developer tasked with implementing the service template’s observability-related features—key aspects of production-readiness—including a health check API, application metrics, and distributed tracing. Work will be done in Kotlin.
skills learned: health check API • application metrics • distributed tracing
In this liveProject, you’ll establish a VPN tunnel between Google Cloud Platform and Amazon Web Services to securely connect backend resources between the two cloud platforms. You’ll use Google DeploymentManager and Terraform to create a VM instance in Google Cloud Platform, then create a VPN connection using Google Cloud Router to connect to AWS.
skills learned: running a VM • Google Deployment Manager • setting up networking • setting up a VPN connection using Google Cloud Router
BuildYourHome, an e-commerce company specializing in home improvement products, wants to get its own house in order by modernizing its monolithic architecture. As a DevOps engineer, your task is to containerize its e-commerce application to improve scalability, maintainability, and resource management. You’ll define a container image with a Docker file, build the container image, and push it to the registry, making the image available for viewing in Docker Hub. When you’re finished, you’ll have a containerized application that’s ready for deployment.
skills learned: construct a Dockerfile for your application • build a Dockerfile to produce container image • run your container image • tagging and publishing your container image to container registry • run container image, pulling from container registry
The engineers at XYZ Infotainment need your help in effectively managing their CI/CD pipelines. The company has grown to 100x its size in ten years, and it’s already begun to use Jenkins for automation. The engineers continuously upgrade their skills for continuous integration, and now they’re ready to implement continuous deployment. As an automation engineer, your job is to manage their automated deployment in Kubernetes clusters using declarative syntax in a pipeline-as-code framework—the perfect solution for deploying applications that need to release new features frequently, including XYZ Infotainment's new health app.
You’ll create a Kubernetes cluster using minikube, deploy a web application in a Kubernetes cluster using Jenkins Pipeline, configure Apache JMeter for load testing, then integrate it in a Jenkins pipeline for testing of the company’s new BMI calculator application. By the end of this liveProject, you’ll have invaluable experience applying techniques commonly used by automation engineers to create pipelines with declarative syntax for managing the lifecycle of an application.
skills learned: deploy a web application in a Kubernetes cluster using a pipeline ∙ integrate load testing with Apache JMeter in a pipeline
Help XYZ Infotainment realize its vision of excellence. The company, which publishes news and entertainment for its large and loyal audience, has grown from 20 employees to 2,000 in the span of 10 years, but it’s currently not using automation for application lifecycle management. As an automation engineer, your task is to increase speed, productivity, and quality by implementing a continuous integration pipeline—the perfect solution for deploying applications that need to release new features frequently, including XYZ's new employee health app.
You’ll build a pipeline-as-code framework in Jenkins using Jenkinsfile, a tool for defining a declarative pipeline for applications. You’ll also integrate unit tests for the company’s health-promoting BMI calculator, calculate code coverage, and configure quality gates to ensure that all the right boxes are checked before proceeding. You’ll wrap up the liveProject by creating and archiving a package using a Jenkins pipeline with declarative syntax in a pipeline-as-code framework. When you’re done, XYZ will be able to release its builds faster and shorten its feedback loop while managing its automated pipeline going forward.
skills learned: configure unit tests and code coverage with quality gates in pipelines • build and archive artifacts
In this liveProject, you’ll explore improving cross-cloud functionality with Anthos on AWS. Anthos lets you run Google Kubernetes Engine on AWS, and manage Kubernetes clusters across GCP, AWS, on-prem, or other cloud providers. You’ll migrate clusters from EKS to Anthos, and monitor the clusters directly from Google Cloud Console.
skills learned: managing resources across multiple cloud providers with Anthos
Make your Java/Kotlin developer colleagues’ lives easier by enabling them—and you!—to quickly maintain services that were cloned from the service template. In this liveProject, you’ll extract a microservice chassis from the service template project, create Gradle plugins, and publish chassis artifacts and template source code. When you’re done, you’ll have a small service template project that uses a much larger microservice chassis framework. (Your colleagues will thank you!) Work will be done in Kotlin.
skills learned: refactor a service template to extract common logic and build logic into a reusable service chassis framework
In this liveProject, you’ll overhaul the CI/CD pipeline of a news and entertainment company to make it fit-for-purpose for an Agile cultural transformation. In order to create a pipeline that can manage quality, execute tests, calculate code coverage, and efficiently deploy applications or microservices, you’ve decided to implement pipeline-as-code. You’ll use Jenkins for the setup, then automate tasks and ensure they’re reliable, efficient, and repeatable. Your challenges include installing Jenkins, executing your pipeline to automation requirements, distributing architecture to manage the load on Jenkins, and quickly executing modifications to your pipeline.
skills learned: Jenkins setup and configuration • pipeline script section
In this liveProject, you’ll go hands-on to initiate a Quarkus project for a video streaming service. You’ll step into the shoes of a software engineer for Chill+, a streaming service looking to reduce resource consumption and take control of the infrastructure cost budget of its scaling Java-based microservices. You’ll implement and test a first version of the Chill+ Catalog API by using the Quarkus live reload feature, and package the application as a Java archive. You’ll then measure how Quarkus impacts the memory and start-up performance of your application.
skills learned: create a Java Quarkus project using the code.quarkus.io • use Quarkus extensions to add features to the application • configure Maven to trigger Quarkus build time augmentation
As the sole DevOps engineer for BuildIT, a fast-growing digital agency that builds websites and applications for its clients, your task is to create a self-service platform that enables the development team to deploy their own test/developmental environment (instead of asking you to do it for them). You’ll build a TypeScript API that will interface with a simple frontend UI (provided to you), further automating a semi-automated CDKTF (CDK for Terraform) workflow. When you’re done, you’ll have built a simple, user-friendly, interface that empowers developers to create, view, and delete environments on their own—leaving you free to focus on more productive pursuits.
skills learned: design an API • store data on DynamoDB • run background processes with Child Processes API • run Git programmatically
Mission: Proof of Concept. E-CO, an e-commerce organization that sells products for outdoor enthusiasts, wants to migrate its containerized, on-premises applications to the public cloud. Instead of managing its own Kubernetes clusters built on Azure VMs, E-CO has chosen to use Azure Kubernetes Service (AKS) and to host its containerized applications on Microsoft Azure. As a member of E-CO’s platform team, you’ll spearhead this critical project, starting with ensuring that E-CO’s applications can stand up to an AKS cluster. You’ll use Terraform to develop the necessary code for deploying an AKS cluster, and you’ll write Terratest functions in Go to validate that the deployment functions as expected. When you’re done, you’ll have a tested, deployed, and validated AKS cluster that will stand the test of time.
skills learned: model Terraform following Infrastructure as Code and security best practices • test your infrastructure code with Terratest and Go
Welcome to Boutique, a software development company that’s working on a project to automate a client’s inspection process. As a software engineer, your task is to create an HTTP API for the project. You’ll set up an ASP.NET Core web host, implementing the first endpoint according to the OpenAPI specification. To verify the endpoint works as intended, you’ll add integration tests, and you’ll use Swashbuckle and API versioning middleware to enable future functionality. When you’re done, you’ll have firsthand experience with important tools—including Postman and Swagger UI—and an API that’s ready for further development.
skills learned: configure and use Microsoft DI • set up an HTTP API host with ASP.NET Core • implement integration tests • set up API versioning • set up Swagger UI using Swashbuckle • use Postman for manual testing of the API
In this liveProject, you’ll use the MQTT protocol to allow IoT devices to communicate with a central data broker. You’ll simulate MQTT devices, then implement a MQTT broker that can dispatch MQTT messages from your IoT gateways. Finally, you’ll secure these communications from potential intrusion by attackers.
skills learned: Vert.x MQTT client and server
In this liveProject you’ll step into the shoes of a backend engineer working for a SaaS company that builds custom WhatsApp messaging tools. Your new client is a college professor who wants to be able to send group messages to her students. Your challenge is creating cloud-based software that lets your client write customizable messages, send messages to individuals or an uploaded group list, and view a message delivery status log. To do this, you’ll use Node.js, a serverless framework, and AWS resources such as Lambda Function and DynamoDB.
skills learned: using Node.js libraries • building APIs with Amazon API Gateway • storing templates and logs in AWS DynamoDB • processing messages with Amazon SQS
SecurityNewsSource is a victim of its own success. A spate of high-profile cyber attacks has sent thousands of customers flocking to join its security alerts platform, and now the service is buckling under the weight of all the new users. They need a solution that will scale quickly. To help out, they’ve turned to you. The SecurityNewsSource app runs on Kubernetes, and in this liveProject you’ll be boosting its resilience and scalability with modern cloud native practices. Your challenges will include horizontally scaling the service without reducing functionality, allowing Kubernetes to monitor liveness and readiness, and setting up monitoring systems to keep an eye on important metrics. You’ll also make important adjustments to improve the service’s security, all to ensure that SecurityNewsSource’s customers keep getting essential alerts without disruption.
skills learned: creating scalable Kubernetes services • creating and monitoring Prometheus metrics within Kubernetes • managing stateful services • keeping services safe using secrets, service accounts, least privilege, and TLS
Enter course descriptionA string of high-profile security breaches has been featured recently on the news, and QryptoTremolo doesn’t want to be the next headline. You’ve been hired by the startup, which is developing a set of next-generation financial services, to lower the risk of breaches and bring security controls to its AWS accounts. Leveraging pytest and Boto, you’ll develop and deploy a custom Config rule to look for peculiar misconfigurations or conditions that aren’t covered by AWS’s off-the-self managed rules.
skills learned: AWS Config rules • pytest • AWS Lambda Functions • Boto
Acme Widgets, a manufacturing company, processes its supplier invoices with an AI-powered Google Workspace add-on that automatically extracts and records invoice data. But the add-on has limited functionality, such as only being able to interpret single image files, which makes tasks like picking files difficult. It’s up to you to make basic tasks like these easier. You’ll enable the Google Picker API to add the ability to navigate and customize files. You’ll create and publish a file picker as a web app, and publish the add-on with the attached file picker. To further enhance the user interface, you’ll add image thumbnails and links to the picked files, as well as support for interpreting PDFs and images to accommodate a larger variety of documents. When you’re done, you’ll have helped ensure Acme Widgets’ accounts are accurate and made the staff’s lives easier—all while learning Google add-on customization skills.
skills learned: implement Google Drive Picker • publish popup web apps • detect duplication digitally
Nextstellar Corp has recently migrated to the cloud, and for the first time, they can analyze 100% of their company’s data. But there’s a problem: your CEO isn’t confident in your data’s quality. He wants to add more data sources and collect more user behavior information, and ensure these new sources are top-notch by utilizing the Python- (or Scala-) based Deequ library. Your task is to utilize Jupyter Notebooks with AWS Glue Studio to experiment with PyDeequ for data quality assessment. Next, you’ll enhance Nextstellar’s assessment capabilities by employing AWS Glue jobs to react and take action on data quality issues. Finally, you’ll monitor data quality using CloudWatch for prompt response and maintenance of data reliability.
skills learned: Implementing Data Quality Jobs on AWS • Automating infrastructure using CloudFormation • Developing Data Quality jobs using PyDeequ and AWS Glue • Observing and monitoring Data Quality jobs.
In this liveProject, you’ll go hands on with the cross replication of an S3 bucket, and backing up DynamoDB in real time using DynamoDB streams. You’ll set up the source and target region, policies to perform replication, and then test it’s working. Finally, you’ll setup and load data using local provisioners and a solution using DynamoDB streams.
skills learned: perform cross replication with S3 • backup DynamoDB data using event driven architectures • create DynamoDB streams
In this liveProject, you’ll create a CI/CD pipeline using pipeline-as-code and Blue Ocean. Blue Ocean is a new user interface that allows beginners and non-technical users to graphically create, visualize, and diagnose CI/CD pipelines. Your company needs all employees to be able to work with this pipeline irrespective of their technical backgrounds, so you’ll ensure that this pipeline is easy to replicate without scripting experience. You’ll ensure that specific steps can be executed after a pipeline or stage is complete.
skills learned: using Jenkinsfile • post-build scripts • utilizing required reports in post-build script
Padre Inc. uses AWS as its cloud provider and has acquired Tiddler Inc., an insurance analytics startup that uses Google Cloud Platform. As an enterprise architect at Padre, your task is to manage multi-cloud operations. Using Countly, you’ll define and implement key performance indicators (KPIs) in order to measure the success of Padre’s SaaS project that runs on AWS and Google. To ensure smooth operation of services and an optimal user experience, you’ll implement site reliability engineering (SRE) practices using Kubernetes, Prometheus, and Grafana. When you’re done, you’ll have experience using business metrics to track the health and value of your software, ensuring it provides value to customers and stakeholders.
skills learned: implement web analytics using open-source Countly
The application development teams at EC-O, an e-commerce organization that sells products for outdoor enthusiasts, want to institute a well-defined solution for publishing and deploying their containerized applications (packaged using Helm) to AKS clusters. Their goals are to orchestrate the process of testing and publishing Helm charts to a centralized, private repository and to automate application updates from their Helm charts, from development to staging to production. As E-CO’s DevOps engineer, you’ll use the Azure Container Registry to store the Helm charts and Azure DevOps pipelines to orchestrate the publishing of new versions of a chart and deploy the update to multiple environments. Using Terraform, you’ll set up the AKS cluster, Azure Container Registry, and Azure DevOps pipelines. By the end, you’ll have helped E-CO’s teams achieve their goals—and positioned yourself one step closer to a promotion!
skills learned: build and deploy an application on AKS with Helm, Docker, Terraform, and Microsoft Azure DevOps • compose Helm charts • best practices for writing abstractions in Helm charts to avoid duplicate code • publish Helm charts
You’re the lead DevOps engineer in an IT department with about 60 engineers. Your director wants to transition the company from a traditional cloud server to containerization while minimizing operational workload. Impressed with AWS Fargate’s ability to handle containers without managing servers, he’s tasked you with deploying a pilot project using Fargate. You’ll create a proof-of-concept by running an NGINX image on AWS Fargate. To ensure that the infrastructure meets the spec of being reusable as code, you’ll use AWS CDK along with Python as your programming language. When you’re finished, you’ll have investigated, evaluated, and deployed an NGINX container along with all the required resources into AWS Fargate.
skills learned: set up basic network infrastructure with AWS CDK • create a cluster with AWS CDK and other required resources (e.g. Load Balancer, Execution Role) • write a task definition for creating Fargate tasks and Fargate services
Your assignment as lead DevOps engineer is to deploy a REST API Flask application into AWS Fargate. You already have the application code and the docker-compose file to run the API locally. You’ll package the code in CDK, build the images, store them in Elastic Container Registry (ECR), then use them for deployment in Fargate. When you’re finished, you’ll have practical experience deploying a Flask application, as well as a solid understanding of some of the services Fargate requires for deployment.
skills learned: use ECR to host private Docker image • deploy an existing Dockerized service into AWS Fargate Cluster • create the Task Definition file
In this liveProject, you’ll deploy the Quarkus catalog on a Kubernetes cluster powered by minikube. Taking on the role of a software engineer for the Chill+ streaming site, you’ll seek to ensure your site can scale in a cost-effective manner once you deploy the Chill+ Catalog API on a Kubernetes cluster. You’ll use Quarkus extensions to package your application as a Docker image and generate the required manifest files to deploy on Kubernetes.
skills learned: initialize a Kubernetes cluster using minikube • manage basic Kubernetes objects to deploy a PostgreSQL database • build a container image using Quarkus
You’re a cloud engineer working for the Cumberland City Council. An increase in traffic violations has led to an increase in traffic to its website—and a decrease in site performance. Your task is to migrate the existing on-premises website to the AWS public cloud as part of a “Traffic Safety Upliftment” initiative to improve performance and availability. You’ll set up the project prerequisites, register the domain, redirect DNS, configure the Amazon S3 Bucket, perform logging and monitoring, and test the static website.
skills learned: domain registration • DNS redirection • Amazon S3 Bucket creation and configuration • SSL Certificate request • CloudFront CDN configuration • update DNS records • logging configuration and viewing • test a static website
The success of BuildYourHome, an e-commerce company, is soaring, but so is the cost of managing its newly containerized system. As a DevOps engineer, you’ll solve this problem by setting up Kubernetes, a widely used container orchestration system, to run the e-commerce application’s Docker containers. You’ll create a pod for deployment, build a deployment manifest file to provide important instructions to Kubernetes, provide customer access to the application, and take steps to manage CPU and memory resources for your application pods, improving cost and efficiency. When you’re finished, you’ll have valuable hands-on experience deploying applications on Kubernetes that will help prepare you for a career in DevOps.
skills learned: Kubernetes Pods basics • extend to deployment • make your application accessible outside of a cluster • manage CPU and memory resources • horizontal pod autoscaling
In this liveProject, you’ll set up a staging environment that duplicates a production SaaS platform that has been running on AWS. Your challenges will include creating an Amazon EKS Cluster using Terraform, and setting up a continuous delivery pipeline using GitOps and Route53. You’ll build your understanding of the role of a provider and tenant for a SaaS, and see how that affects its technical architecture.
skills learned: setting up an Amazon EKS cluster using HashiCorp’s Terraform • setting up a code pipeline to build a JavaScript application • setting up an ingress controller with a load balancer
In this liveProject, you’ll create and deploy a basic e-commerce website on top of a Terraform and AWS-based cloud infrastructure. You’ll start by building your sample site, and then package it in a Docker image and manually push it to an ECR repository. Next, you’ll create an ECS cluster, launch configuration, ECS roles, permissions, and security Groups for ECS. Finally, you’ll set up task definitions to run your applications as tasks, load balancers to balance the workload from all the incoming requests from users, and configure routing to handle all traffic in and out of the network. When you’re finished, you’ll be confident building production-ready apps based on Docker and ECS.
skills learned: Dockerizing an application • ECS deployments • configuring Auto Scaling
Congratulations! You’ve recently been hired as the sole DevOps engineer for BuildIT, a fast-growing digital agency that builds websites and applications for its clients. Your first task is to automate the setup of its infrastructure. You’ll write a set of TypeScript configurations for CDK for Terraform (CDKTF), a popular infrastructure as code (IaC) tool, establishing a deployment pipeline on AWS that detects changes to a specific branch of a sample Git repository and automatically deploys new versions of the application to Amazon Elastic Container Service (ECS). When you’re done, you’ll have upgraded BuildIT’s infrastructure with automated deployment that will scale with its success.
skills learned: define infrastructure with TypeScript • provision infrastructure with CDKTF • deployment pipelines with CodeBuild
You’re the sole DevOps engineer at BuildIT, a fast-growing digital agency that builds websites and applications for its clients. The company has an automated infrastructure with a simple user-friendly interface and user authentication system that constitutes an Internal Developer Platform (IDP). But as the IDP stands, one typo or missed configuration option can lead to application failure. Your task is to minimize these potential problems by creating a pipeline that parses BuildIT’s infrastructure CDKTF code and populates a DynamoDB table with the list of found environment types. You’ll use the entries in the database to populate a dropdown in the UI for selecting the environment type and a table of required configurations. When you’re done, you’ll have implemented client-side validation—and taken BuildIT’s IDP from rudimentary to robust.
skills learned: deployment pipelines with CodeBuild • define interfaces with JSON schema • build user interfaces with React.js
The development teams at Messflix, a movie and TV-show streaming platform are pushing domain data products through their newly implemented data mesh. Now the CTO has tasked you, their consultant, with striking a balance between the benefits of the data mesh, the freedoms the data products have, their usefulness, their interoperability, and aspects of their security. You’ll use Python and pandas to write policies that check the registration and pushed data, helping users provide all the required registration information. You’ll create tooling to classify data into categories for improved data labeling, and protect sensitive data with pseudonymization functions. When you’re done, you’ll have learned skills for federated computational governance that balance the benefits of data products with the benefits of the data mesh.
skills learned: understand computational governance • implement data policies for data products as well as individual data pieces
Give ShareSafe’s online file-sharing service a security boost. You’re a developer for a company whose customers can upload and share personal documents, photos, and videos onto its website using APIs. Your task is to enhance the security of ShareSafe’s file transfer REST API service by adding file integrity checks. Using JSON Web Tokens (JWTs), you’ll implement basic key generation, signing, and validation of data. You’ll refactor the API with the ability to validate digital signatures, and you’ll make identifying suspicious requests easier (and satisfy compliance requirements) by adding logging of all user and file activities.
skills learned: file integrity checking • validate digital signatures • file integrity logging and monitoring
Your local school district has an LLM chatbot specialized in chemistry. But it sometimes answers questions entirely unrelated to chemistry! To improve the safety of this LLM application, you are asked to come up with a new LLM that would classify student questions and return machine-readable (JSON) messages to the application frontend so that the application can decide whether to answer this question. To accomplish that, you need fine-tuning to "teach" the model how to classify questions through many examples, which themselves are generated by a Llama-based LLM, and to always respond with JSON.
skills learned: Develop data set of finetuning • Finetune an LLM
In this liveProject, you’ll expand the cross-cloud deployment of a SaaS service to Google Cloud Platform. You’ll make use of the Anthos Service Mesh to unite services running on the Kubernetes platform of multiple cloud providers and set up GitOps using ArgoCD for tenant onboarding into GCP. Finally, you’ll use Chaos and Resilience testing to ensure that the tenant applications across both GCP and AWS are robust.
skills learned: et up a GKE cluster • explore ingress options in GKE • explore multi-cloud onboarding using an example SaaS app
Your task as an analyst for the Sitting Duck Shipping company is to enable FIDO2 (WebAuthn and CTAP). To do that, you’ll configure the learner’s hardware as the authenticator and configure WordPress to accept WebAuthn authentication. By implementing biometric authentication, you’ll bring a new level of security and satisfaction to the login experience for the company’s users.
skills learned: AWS Cloud infrastructure • passwordless authentication
In this liveProject, you’ll set up the intrusion detection service Amazon GuardDuty to help catch any hackers who may be trying to break in—or who already have and are up to no good! To achieve this goal, you’ll iteratively develop infrastructure as code in the form of AWS CloudFormation templates, then learn to address cross-account automation issues.
skills learned: develop automation to configure Amazon GuardDuty across accounts • develop Python code to retrieve a threat intelligence set from AlienVault OTX • deploy to a scheduled AWS Lambda Function to keep the threat intelligence set up to date • configure Amazon GuardDuty to use the intelligence set
In this liveProject, you’ll ensure that the security team can make incremental, verifiable changes to its Amazon GuardDuty intrusion detection configuration. You’ll develop a suite of automated tests and CI/CD AWS CodeBuild pipelines to deploy and test changes across the organization.
skills learned: develop automated tests to verify the configuration of the Amazon GuardDuty service and AWS Lambda function • develop a CodeBuild pipeline that will trigger on changes to the code of the AWS Lambda Function • develop a CodeBuild pipeline that will trigger on changes to the infrastructure as code
You’re a developer for ShareSafe, a company whose customers can upload personal documents, photos, and videos onto ShareSafe’s website using APIs. Your task is to enable ShareSafe’s users to share their files with others. Using Java Spring Boot, you’ll build a simple file transfer REST API service that supports uploading and downloading of files, and you’ll identify and tackle the file upload vulnerabilities of your REST API service. For backend file storage, you’ll implement Amazon Simple Storage Service (AWS S3). Finally, you’ll harden your service against the most common vulnerabilities by configuring and implementing AWS S3 encryption and access-management features. When you’re finished, you’ll have built a file transfer service that provides high scalability, durability, encryption, and backups, and allows your users to share their files with ease.
skills learned: build REST APIs • mitigate file upload vulnerabilities • configure security features in AWS S3
The development team at Boutique, a software company, is working on a project for automating the inspection process of a client that builds industrial robots. An ASP.NET Core HTTP API has already been set up, and the team has started implementing the domain model entities and persisting them to a SQL database. As part of the team, your task is to implement CRUD (create, read, update, and delete) endpoints for all the entities according to the OpenAPI specification. To achieve persistence, you’ll configure Entity Framework Core and register it in the dependency injection container. You’ll implement a custom JSON converter to support polymorph endpoints in order to handle different types of robots. To verify that your implementation is correct, you’ll write and perform integration tests.
skills learned: interpret an OpenAPI specification • configure and use Microsoft DI • configure routing for endpoints in the HTTP API • use Postman for manual testing of the API • set up and configure validation for incoming data
In this liveProject, you’ll add security-related features to the service template. In your role as a Java/Kotlin developer, you’ll gain hands-on Kotlin experience implementing authentication and authorization of a service’s REST API using JSON Web Tokens (JWTs) as well as a Security Token Service, such as Keycloak, to issue and authenticate JWTs.
skills learned: implement authentication and authorization of a service’s REST API using JSON Web Tokens (JWTs) • use a Security Token Service to issue and authenticate JWTs
In real-world systems, services act sometimes as clients for other services. In this liveProject, you’ll implement a Spring Boot service that acts as a client for the OAuth 2 system. You’ll set up needed dependencies, register a client at the authorization server, and implement a proxy that uses the client credentials grant type. Finally, you’ll validate that the full setup works correctly and this mock server can accurately send advice to the health system.
skills learned: implement a Spring Boot service that acts as a client in an OAuth 2 system
In this liveProject, you will implement an authorization server to authenticate users and issue JSON Web Tokens signed with a configured key. You'll use a Spring Boot service to take the role of an authorization server in an OAuth 2 system, set up storage for user and client details, and ensure user details persist in a secure way. Finally, you’ll write and conduct integration tests to make sure your system is secure and bug-free.
skills learned: implement a Spring Boot service that takes the role of an authorization server in an OAuth 2 system • implement an authorization to issue signed JSON Web Tokens • implement a server’s user and client management
Terraform simplifies the cloud. It defines infrastructure as code (IaC) that can be easily shared, maintained with version control, and reliably tested.
In this liveProject, you’ll join up-and-coming startup Cloudesk as its new DevOps engineer. Cloudesk is struggling to handle its cloud resources manually, and have hired you to manage its current and future cloud resources using Terraform code. Your challenges will include importing manually created resources, working with Terraform resources in accordance with compliance requirements, and managing the conversion of legacy systems. When you’re finished, you’ll have hands-on experience with Terraform management that will let you confidently handle Terraform in any size organization!
skills learned: installing, using, and patching a local Terraform provider • working with Terraform CLI for importing, tainting and targeted applying • adding a dependency between various Terraform workspaces • working with local and remote Terraform backends
As a first step in dealing with surging energy prices, Free Power Corporation Limited (FPCL) has installed Smart Meters, which generate energy readings every thirty minutes, in households across London in order to analyze consumers’ energy usage. As a new data engineer for the power company, your task is to ingest the data from the Smart Meter readings and stream it to FPCL data centers for processing. Using the Kafka command-line tool, you’ll create topics in a Kafka cluster for storing the data, and you’ll create partitions for distributing the load within the topics. You’ll add logic to deal with potential problems such as data loss and duplicate records, and you’ll add a method to convert the energy readings to the widely used, easy-to-parse JSON format before the final step of ingesting the data. When you’re finished, FPCL will have pertinent data for analyzing energy consumption patterns, and you’ll have practical experience using Kafka to ingest large amounts of data.
skills learned: set up Kafka Cluster • write a Kafka Producer • add real-life complexities to data • ingest the data into the Kafka cluster
Nextstellar Corp is a media company with huge amounts of data to analyze. Some of that data is sitting in a PostgreSQL database, which is used for both authentication management and decision-making, as well as maintaining user preferences and feedback. Your boss doesn’t want that data sitting in the database—he wants it in the cloud! Moving it is exactly what you’ll be doing in this liveProject. You’ll use AWS Database Migration Service to enrich Nextstellar’s data lake with the PostgreSQL database so it can take full advantage of both modern data architecture and the AWS ecosystem.
skills learned: Using AWS Database Migration Service to move transactional data from on-premise to the cloud • Automating infrastructure using CloudFormation • Enabling on-premise to cloud connectivity • Setting up Database Migration Service replication instances and tasks • Configuring Change Data Capture (CDC) on Amazon RDS for Postgres • Using the Schema Conversion Tool • Validating a migration
Media company Nextstellar Corp has completed the migration of their data to the cloud—now they need to analyze it! That’s where you come in. You’ll take on the challenge of processing and integrating file and transactional data into a new cloud database solution that uses modern data architecture. You’ll use the AWS Glue tool to automate the whole process, from creating your crawlers and database to building your repository, Glue jobs, triggers, and establishing monitoring, troubleshooting, and scaling.
skills learned: Transforming raw data into standardized data using AWS Glue • Automating infrastructure using CloudFormation • Populating the AWS Glue catalog and creating Hive partitions • Creating ETL jobs using AWS Glue, including AWS Glue DynamicFrames and Spark DataFrames • Utilizing AWS Glue job observability and monitoring with AWS CloudWatch • Understanding AWS Glue job scaling concepts and configurations
Build a better defense! As a developer at ShareSafe, a company that provides online file-sharing-as-a-service, your task is to uplevel the security of its REST API file-transfer service by adding functionality for checking uploaded files for malware. You’ll set up a robust infrastructure for malware analysis of files stored in AWS S3 buckets, integrate the infrastructure with the REST API service, and implement VirusTotal, a threat intelligence service that provides dynamic and behavioral analysis to shared files. When you’re finished, you’ll have built a solid line of defense against known malware and provided users with a secure file-sharing experience.
skills learned: set up robust malware analysis infrastructure • integrate with third-party services
As a consultant for Messflix Inc., a movie and TV-show streaming platform, you’ll investigate and discover why Meshflix’s recommender system breaks. You’ll brainstorm options for changes that don’t break the system, explore their pros and cons, and choose and implement one of your options. Then you’ll create an internal versioning strategy to support all the great product changes Messflix has planned for the future.
skills learned: understand product thinking • manage changes in data products • prevent breaks in downstream data products
In this liveProject, you will secure the backend of an app to protect users’ data, and design the backend as a resource server in an OAuth 2 system. You’ll configure resource server capabilities to apply endpoint and method authorization rules, and use authenticated principal details in the repository.
skills learned: implement a Spring Boot service that takes the role of a resource server in an OAuth 2 System • configure endpoint authorization rules • configure method authorization rules
As a database administrator for Magic Wand Services Corporation, your task is to migrate an on-premises SQL Server database to an Azure SQL Managed Instance, a task mandated by the company’s CTO in an effort to save money on resources.
You’ll use the Azure portal and Azure Data Studio to configure your database migration service for a smooth migration with no data loss and minimal downtime, then you'll perform the migration. Using the Azure portal, Azure Data Studio, and SQL Server Management Studio, you’ll verify that your database settings were implemented—and that your migration was successful.
skills learned: set up the database migration service to enable a smooth migration of your databases from on-premises to the cloud • perform an online migration of your on-premises database to ensure minimal downtime and no data loss • verify your migration using Azure Data Studio and SSMS
The Nextstellar Corp media service has a lot of data—too much data to handle on prem! In order to properly analyze all the data generated by their streaming customers, they’re migrating to the cloud. In this liveProject, you’ll be helping them. You’ll tackle the common challenge of transferring on-prem data to AWS using the handy AWS DataSync tool. You’ll use Infrastructure-as-Code to create Landing Zone Amazon S3 buckets, automate data migration, and finally prepare a summary of likely infrastructure costs for your boss to review.
skills learned: Using AWS DataSync to move files from on-premises to the cloud • Automating infrastructure using CloudFormation • Organizing and managing data in a data lake • Creating data lifecycle policies • Setting up sources and destinations for data files • Starting AWS DataSync migration tasks
Play the role of cloud engineer working for the Cumberland City Council. As part of a “Traffic Safety Upliftment” initiative to improve website performance and availability, you’ll migrate the on-premises serverless internet-facing app to Amazon Web Services (AWS). You’ll set up the project prerequisites, register the domain, redirect DNS, configure the Amazon S3 Bucket, perform logging and monitoring, and test the serverless website. To deploy, you’ll use AWS CloudFront. When you’re done, you’ll have a viewable dashboard that retrieves data from the backend Amazon DynamoDB table and displays statistics to the user.
skills learned: domain registration • DNS redirection • Amazon S3 Bucket creation and configuration • SSL Certificate request • CloudFront CDN configuration • update DNS records • logging configuration and viewing • test a serverless web application
In this liveProject, you’ll take an existing application and model it in Kubernetes. You’ll work with a prepackaged application for IoT company Widgetario to explore the core concepts of Kubernetes such as Pods and Deployments, Services, ConfigMaps, and Secrets. You’ll complete common tasks like routing network traffic, performing application updates, and configuring the app to run with high availability and scale. This project will ground you in the best practices of deploying an app to Kubernetes, with a fully working demo that can run with high availability and scale.
skills learned: running containerized applications in Kubernetes with Pods • connecting distributed applications using Services • applying application configuration settings from the cluster
The security group at EC-O, an e-commerce organization that sells products for outdoor enthusiasts, wants to monitor their newly deployed AKS cluster using Microsoft Azure Monitor, Grafana, and Prometheus—all currently being leveraged by various EC-O teams. As EC-O’s DevOps engineer, you’ll connect the AKS cluster with Azure Monitor and configure the proper integrations with Grafana and Prometheus. As part of the process, you’ll also update the Terraform files associated with the AKS cluster, create a new module for Azure Monitor, and verify the results with a test application. When you’re done, you’ll have an AKS cluster that uses Azure Monitor for container instances with Prometheus scraping and Grafana integration, as well as valuable hands-on experience.
skills learned: use Azure Monitor and logging services to monitor your AKS cluster • use Grafana to visualize AKS metrics on dashboards
You’re a database administrator at Magic Wand Services Corporation, where the on-premises SQL Server database has recently been migrated to an Azure SQL Managed Instance. Your task is to audit, monitor, and configure your Azure SQL Managed Instance to help troubleshoot issues and maximize security.
Using SQL Server Audit and Azure Blob storage with SQL Server Management Studio and the Azure portal, you’ll configure and perform auditing to monitor changes made by other applications or users. Next, using the Azure portal, you’ll configure alerting to monitor for issues related to storage and CPU usage. Lastly, you’ll run dbachecks against your managed instance to ensure it’s compliant with Center for Internet Security (CIS) benchmarks. When you’re done, your Azure SQL Managed Instance will be properly configured for troubleshooting and as secure as it can be.
skills learned: set up auditing on your Azure SQL Managed Instance • set up alerting on your managed instance • run dbachecks to verify alignment with Center for Internet Security (CIS) benchmarks
As a lead DevOps engineer, you’ve learned that using Fargate to host a database is not ideal. Your task is to solve that problem by attaching permanent storage to the container and adding important maintenance features. To deliver this solution, you’ll set up an AWS Aurora PostgreSQL with CDK, integrate it with a Fargate service, and keep the connection between the service and the database secure with AWS Secret Manager. When you’re done, you’ll have a working end-to-end solution ready to be deployed with CDK.
skills learned: use AWS RDS Aurora with AWS Fargate • control permissions on the container • store secrets and pass them to the container without human intervention
In this liveProject, you’ll create and configure a multi-branch pipeline, then group it in one pipeline-as-code project with Jenkins so all the pipelines for a repository are managed together. Working for a mature company with a well-established but branching CI/CD pipeline, you’ll manage pipelines in different branches available in the repository. The multi-branch pipeline helps maintain pipelines easily when there are many repositories and each has different branches that need to be managed.
skills learned: filtering branches for pipeline execution • managing different types of pipelines in different branches
Protect the Sitting Duck Shipping company from password theft—the most common type of security breach. In this liveProject, you’ll arm the company’s lab environment against these types of attacks by enabling multi-factor authentication (MFA) for IaaS, the server, and the web application. To provide your best recommendation to the company, you’ll evaluate various algorithms and factors that can be used to set up its MFA.
skills learned: AWS Cloud infrastructure • multi-factor authentication (MFA)
Put on your platform architect hat! You’re a member of the development team at Piper Data Concepts (PDC), and your client is looking to modernize its workflow. An existing benchmarked development environment, made up of Kafka, Python, and Postgres, is at your disposal. Now it’s time to start conceptualizing the new and improved workflow. You’ll use Kafka to create an event-driven data pipeline, review and understand business requirements, use Python Poetry to package the project, write Python code using the Faust library to communicate with Kafka, and store the consumed data in a PostgreSQL database.
skills learned: Faust • architecture • Kafka topics • writing to a database
Nextstellar Corp needs you to tackle a big challenge: completing their cloud migration by rebuilding their historical data lake as a data layer in the cloud. You’ll implement an effective and automated data orchestration framework for the ingestion and transform and curate layers, using best practices for Infrastructure-as-Code to automate your data layer. Finally, you’ll establish a monitoring system that will automatically alert you to any issues or problems that might crop up.
skills learned: Using AWS Step Functions and AWS Glue workflows to orchestrate data pipelines • Automating infrastructure using CloudFormation • Monitoring data in a data pipeline.
In this liveProject, you’ll leverage organizations service control policies to protect administrative and security resources in the accounts used by development teams where these teams have privileged access. Specifically, you will add automation to restrict access of local administrators (and intruders!) to any AWS CloudTrail and Amazon GuardDuty resources located in the accounts. Without these protections, the security controls we have put in place for audit, forensic analysis, and intrusion detection can be interfered with by the local administrators.
skills learned: develop Security Control Policies • develop and test boto code • invoke the IAM Policy Simulator
In this liveProject, you’ll progressively enhance a service template, starting with packaging it as a container image. Next, you’ll build and run a service template container with Docker Compose, write component tests for a service, and finally build and test a container image. When you’re finished, you’ll have a Github repository that automatically pushes a tested container image to a Docker registry. This project focuses on Kotlin.
skills learned: package a Spring Boot application as a Docker container image • run and test a container image • configure a Github Actions-based deployment pipeline to build and test a container image and push it to a registry
In this liveProject, you’ll use Jenkinsfile to store pipeline script in a version control system. You’ll first create a declarative pipeline using Jenkinsfile, then generate a pipeline script using pipeline syntax. These challenges will help build your understanding of the basics of pipeline creation in declarative syntax.
skills learned: using Jenkinsfile • using Pipeline syntax to create stage blocks
In this liveProject, you’ll properly configure a Kubernetes app so that it’s secure and resilient in production. Working with a previously deployed application, you’ll set up the app to read configuration settings from the cluster so you can use the same Docker images in test and production. Extend your app’s specifications to activate Kubernetes’s self-healing, defend against attackers with security controls, and run a replicated database in containers. Once you’re finished, you’ll have a securely deployed demo app that’s resilient against whatever production throws at it.
skills learned: adding container probes to your Pods to test application health and repair failures • testing the health of different application types with HTTP, TCP, and command probes • securing applications by restricting access to the Kubernetes API from within Pod containers
You’re a database administrator at Magic Wand Services Corporation. Your CTO has mandated the migration of all on-premises resources to the cloud in an effort to save money on resources. As a database administrator, it’s your job to make the necessary preparations for this migration.
Using SQL Server Management Studio (SSMS) and SQL Server Auditing, you’ll determine usage of your on-premises databases to help decide what should (and shouldn’t) be moved to the cloud. Using SSMS, you’ll remove all objects that aren’t supported in Azure, any unused or unnecessary agent jobs and server objects, as well as any unused database objects. Then, to ensure you migrate everything you need to Azure, you’ll make a checklist in the text editor of your choice. When you’re finished, you’ll be prepared to smoothly migrate your SQL Server database to Azure SQL Managed Instance.
skills learned: identify and remove objects from SQL Server that couldn’t/shouldn’t move to Azure SQL Managed Instance • create a migration checklist
In this liveProject, you’ll reduce duplicate search requests in an e-commerce store to bring down unnecessary data usage of microservices. You’ll implement caching and database functionalities that can reduce search duplication during key promotional events like Black Friday, and set up a synchronization of search requests which occur at the same moment.
skills learned: reduce duplicate requests • synchronization requests
Acme Widgets has a Google Workspace invoice processing add-on that uses Google Document AI to interpret data from PDFs and image formats. To make the tool more valuable, your task is to add the ability to accept documents in other formats. You’ll start by enabling a pop-up web app that displays the expanded list of newly supported file types. You’ll add functionality for picking additional file types and automatically converting them to a Document AI-supported format, then archiving them. You’ll also enable sorting and duplicate removal as you create a summarized view of invoices and expenses, making the company’s employees’ tasks easier and less time-consuming.
skills learned: use the Google Drive API to create conversion routes • convert a range of documents to native • summarize, sort, and deduplicate converted documents
Messflix Inc., a movie and TV-show streaming platform, wants to build a recommendation system for its movies and shows, but currently, its data landscape is too complex. As a consultant, your task is to implement a data mesh for an improved, accurate flow of its data. Using Python and JSON, you’ll help the data engineering teams sift more easily through Messflix’s data by creating separate, structured data products that can be pushed to the central data platform. From the organized data products, you’ll create a list of recommended movies, tailored to Messflix’s customers’ preferences.
skills learned: understand distributed domain ownership • produce data inside a data mesh • produce derived domain data products
Messflix Inc., a movie and TV-show streaming platform, is implementing a data mesh. So far, it has a self-serve data platform prototype where development teams can register their domain data products. As a consultant, your task is to build on that basic platform prototype with additional functionality: You’ll write a script in Python that will enable the development teams to push fresh data into their existing data products, write a function that adds support for versioned data, and implement a function that automatically calculates specific metadata (like row count and latest timestamp), then prints it to the screen. When you’re finished, you’ll have built a well-functioning, feature-rich, self-serve data platform, and be familiar with the requirements data-producing and data-consuming teams face daily and how to fulfill them.
skills learned: build a self-serve data platform • build a small data catalog • consume data inside a data mesh • store data products
Step into the role of a developer at Piper Data Concepts (PDC), a company that specializes in helping Fortune 1000 companies improve their workflows. Your task is to review the 15-year-old workflow architecture of one of your clients, Trade Data Systems. You’ll identify issues and bottlenecks, then determine what’s needed to transform its workflow into a more modern, responsive architecture. To accomplish this, you’ll set up a development environment with Docker using Kafka, Python, and Postgres. As you go, you’ll deploy a Kafka cluster and write Python code using the Faust library to seamlessly process pre-defined business events.
skills learned: Python packaging • messaging • containers
In this liveProject, you'll join InfoHub, an AI startup disrupting corporate knowledge management. They aim to unlock a company’s knowledge base through conversational Q&A-style user interfaces that use breakthrough language models. You'll leverage LangChain, a framework optimized for integrating LLMs into apps, to integrate InfoHub's data, vector stores, and language models into a single solution. You’ll prepare your data, create a vector store to embed your documents, and then use LangChain to combine it with an LLM.
skills learned: use LangChain for questions answering • create and populate a vector store with your own data
As part of an endeavor to better handle surging energy prices, Free Power Corporation Limited (FPCL) has a Kafka cluster that ingests large amounts of consumer energy data. As a data engineer for FPCL, you’re already familiar with the data, so the London-based power company has tasked you with building a streaming solution that processes the data as soon as it’s available. Using Apache Spark, you’ll create an application to read the data from the Kafka streams, and you’ll save the streams to a data lake. Using a Spark API, you’ll prepare the data for analysis by performing aggregation on the fly. You’ll join the real-time stream with the static data, enriching it with customer details and enabling FPCL’s research team to gain insights about customer energy consumption patterns. When you’re done, FPCL will be better equipped to deal with rising energy costs, and you’ll have hands-on experience building a real-time data processing solution using Apache Spark and Kafka.
skills learned: connect Spark to Kafka • read the data Stream • build a streaming pipeline to perform various tasks (such as cleansing and filtering aggregation)
In this liveProject, you’ll make IoT devices “chat” through HTTP services. You’ll construct IoT gateways that query data from sensors, then send that data to a centralized platform. You’ll use different protocols to do this, including HTTP and MQTT. The Vert.x toolkit will give you everything you need to work with these protocols.
skills learned: Vert.x microservices
In this liveProject, you’ll improve the caching mechanism between a Catalog API and microservices. This will reduce the number of unnecessary requests, and reduce costs from your cloud provider. You’ll explore near cache, remote cache, and proxy cache mechanisms, then evaluate the pros-and-cons of each approach.
skills learned: working with an internal cache in each instance of microservices • working with a cache in front of a particular API • best practices and pros/cons of caching mechanisms
You and your DevOps team have successfully built an application and an automated deployment pipeline for it. But before you can launch you’ll need a solid operating plan that addresses how you’ll monitor and troubleshoot your new service in production. In this liveProject, you’ll add metrics and a CloudWatch Container Insight dashboard to your Fargate service. You’ll also enable autoscaling to adjust according to CPU usage, and you’ll structure logging to be easily searched. Lastly, you’ll use Python to set up alarms so you’ll know when something goes wrong.
skills learned: use AWS RDS Aurora with AWS Fargate • control permissions on the container • pass parameters and secrets to the container
As a software engineer for Boutique, a software development company, you're tasked with adding search, upload, and download functionality to an ASP.NET Core HTTP API that Boutique is building for its client, RobotsInc. To enable the frontend to navigate through existing data structures, you’ll add several child endpoints, as well as an endpoint for criteria-based searches. You’ll also implement endpoints for binary photo uploads and downloads according to the OpenAPI specification, and you’ll verify your implementations are correct by testing manually with Swagger UI as well as with automated integration tests. When you’re finished, RobotInc’s employees will be able to upload photos and notes to document and report on their robot inspections.
skills learned: interpret an OpenAPI specification • configure and use Microsoft DI • configure routing for endpoints in the HTTP API • use Postman for manual testing of the API • set up and configure validation for incoming data • implement binary file upload and download
As the DevSecOps engineer for Zozo, an online gift store, you’ll write Docker files and build secure Docker images that keep Zozo’s customers happy and your manager even happier. Along the way, you’ll spot potential security vulnerabilities using several open source tools, and ward against cyberattacks with digital signatures.
skills learned: building secure Docker images • identifying vulnerabilities • remediating vulnerabilities • verifying remediations, digital signing
Take the next step in securing Zozo’s online store by securing the environments running the Docker services—the host machine, Docker daemon, and container—at run time, continuing to work with open-source e-commerce project Shopizer, and hardening the host and Docker instances using global best practices.
skills learned: identifying potential security vulnerabilities • remediating security issues • hardening Docker instances running API services • testing instances for functionality and security
In this liveProject, you’ll jump into the role of a sysadmin at a logistics software company. Your boss and sales team regularly travel to meet clients, and they want a way to ensure their data is protected when it is transmitted between remote locations. Your idea is to build a reliable and secure private VPN that can be launched on-demand to solve these security issues. You’ll start by creating a simple personal VPN that can protect the URLs you visit when using public internet in a coffee shop, then expand it to an enterprise-scale solution that will work for your whole office. Your final challenge will be to automate the process, so that you can spin up a new VPN in seconds without the costs of constantly running AWS resources.
skills learned: cloud computing with AWS and virtual Linux instances in the cloud • installing and using the AWS command line interface • network configuration at both the client and server ends for the connection • data encryption with WireGuard
You’re a senior developer at Travel World Agency (TWA). As its success has grown, so have computing costs. But before introducing potentially disruptive cost-cutting measures into its next-gen system running on Amazon Web Services (AWS), it needs to improve the quality of its microservices. Your task is to detect possible security problems using Sonar, then use Dependency-Check and Dependency-Track to analyze the dependencies and add rules to define how many vulnerabilities your microservices might have with the ongoing execution of the pipeline.
skills learned: use Dependency-Check to identify the vulnerabilities in a microservice on your local machine or in your pipeline • use Dependency-Track to identify vulnerabilities between different microservices in one place and to add rules to define a quality gate for the security issues • add analysis in the Jenkins pipeline
Data protection is integral to any modern business. Companies need to ensure their users’ financial and personal information is safe, secure, and kept in compliance with security standards.
In this liveProject, you’ll step into the shoes of a DevOps consultant who needs to produce card data storage compliance reports for auditors—right before your Hawaiian vacation! You’ll get hands-on experience developing a system that can scan production servers, generate compliance results, and automatically rectify issues.
You’ll use AWS and Terraform to spin up your infrastructure, create and remove testing servers on-demand with Ansible, and scan your security standards with OpenSCAP. Finally, you’ll automate the project, creating a simple website that delivers compliance reports while you enjoy the sand and sun.
skills learned: managing security and risk in a sealed environment • automating and orchestrating infrastructure with Terraform • securing Red Hat Enterprise Linux
The security group at EC-O, an e-commerce organization that sells products for outdoor enthusiasts, wants to secure their newly deployed AKS cluster. As EC-O’s DevOps engineer, your job is to configure the AKS cluster with the appropriate level of security and Azure Active Directory integration, enforcing a role-based cluster access policy. You’ll update the Terraform files associated with the AKS cluster, test the deployment process, and update the production cluster. By the end of this project, you’ll have a secure AKS cluster—and the peace of mind that comes with it—thanks to your skillful use of RBAC and Azure Active Directory.
skills learned: basics of Azure Active Directory • RBAC fundamentals • enable RBAC on AKS using Azure Active Directory • update AKS code with Azure Active Directory integration • validate Azure RBAC on testing cluster
In this liveProject, you’ve just started a new role as a release engineer for the enterprise finance company FinShare. FinShare wants to modernize its outdated technology stack with containerization and you’ve been tasked with building an automated container workflow for future production use. But there’s a big catch: FinShare operates under some major regulatory requirements and any breaches in security could be disastrous for the company’s reputation and bottom line. Your challenge is to make sure that FinShare’s Docker containers are built to be secure, robust, and compliant. To do this, you’ll implement your security team’s requirements, identify and fix governance issues, create signed and trusted container images, and optimize your container builds—all based on the specialist guidance of your expert colleagues.
skills learned: security principles for containers • static analysis, dependency checking, and resource signing • custom security policies
Nextstellar Corp is very excited—they’re taking all their data to the cloud! They’ve recently migrated and have an early-defined data lake solution. The CEO has approached you to deliver the next step of their cloud data process: using AWS Glue to apply the transformation logic and store the curated data in Amazon S3. You’ll utilize Jupyter Notebooks to curate and standardize your data sets—crafting, organizing, and managing datasets to ensure they are easily accessible and usable—then design a CI/CD pipeline to test and deploy code with a single push after completion.
skills learned: Transforming standardized data into curated data using PySpark • Automating infrastructure using CloudFormation • Developing ETL jobs using AWS Glue Jupyter Notebook • Implementing CI/CD for code release in AWS Glue Jobs • Refactoring Jupyter code and deploying through the CI/CD pipeline
QryptoTremolo, a startup that’s been developing a set of next-generation financial services, has already taken steps to provide visibility into its AWS accounts and set up AWS GuardDuty to detect intruders. But managers of the development teams have administrator access to these accounts, and despite being a dangerous anti-pattern, that’s not going to change anytime soon. Your task is to automate the configuration of organizational service control policies that restrict access of local administrators (and intruders) to any AWS Config and EventBridge resources located in the AWS accounts. You’ll write code to query the IAM (Identity and Access Management) policy simulator in order to gauge API calls’ ability to tamper with resources. You’ll also develop end-to-end tests that prove whether an SCP change will behave as expected, and build a pipeline to codify the change control process for the SCP.
skills learned: organizations service control policies • AWS CodeBuild • AWS CodeCommit • pytest • CloudWatchEvents • Boto
The CTO of Magic Wand Services Corporation has mandated the migration of all on-premises resources to the cloud in order to save money. As a database administrator, your job is to set up your cloud database, an Azure SQL Managed Instance, for optimal performance.
You’ll create a performance and configuration baseline using SQL Server Management Studio to ensure that you configure your Azure SQL Managed Instance properly to support your workload. With your baseline as a guide, you’ll use the Azure portal to build a SQL Managed Instance Database. Using dbatools and SQL scripts, you’ll migrate server-level objects from your on-premises SQL Server to the cloud, verifying that your Azure SQL Managed Instance is properly configured. When you’re done, you’ll have a managed instance with maximized performance to which you can confidently migrate your databases.
skills learned: create a configuration baseline for your SQL Server to determine what settings you need to migrate to Azure SQL Managed Instance • create an Azure SQL Managed Instance and analyze the costs associated with it • migrate server-level objects and settings to your Azure SQL Managed Instance using dbatools
A working application is good; an automatically deployable application is great! In this liveProject, you’ll create a continuous delivery (CD) pipeline for your application using CDK. Then, you’ll deploy your application in a single account as well as in multiple accounts using CDK’s pipeline module. Along the way, you’ll learn to spot and evade possible pitfalls.
skills learned: create a pipeline to automate application building and deployment to AWS Fargate • use AWS CDK to automate deployment of a CD pipeline
Help ShareSafe’s customers share with confidence. You’re a developer for a company that provides online file-sharing-as-a service. Its users can upload and share personal documents, photos, and videos onto ShareSafe’s website using APIs. Your task is to add security to ShareSafe’s file-transfer REST API service. You’ll implement a user-authentication layer using JSON Web Tokens (JWTs), provide authorization for shareable URLs by establishing the relationship between users and files, and leverage macaroons (cryptographic cookies) to provide a secure way for users to share files.
skills learned: add JWT-based user authentication • macaroons-based authorization
Set up single sign-on (SSO) for the Sitting Duck Shipping company to simplify its password management—a process that typically requires a business employee to manage more than a hundred passwords for various web applications. You’ll configure SSO for AWS, Linux, and WordPress, establishing seamless secure logins. During this liveProject, you’ll identify and strengthen weak points in the infrastructure and keep potential attacks at bay with the appropriate countermeasures.
skills learned: AWS Cloud infrastructure • single sign-on
As an enterprise architect at Padre Inc., which runs its cloud operations on AWS, it’s up to you to manage multi-cloud operations for Tiddler Inc., a startup using Google Cloud that Padre has acquired for its SaaS project. Your task is to implement error budgeting to achieve a predefined service-level objective (SLO) and balance the deployment of new features with the reliability of the services in production. Using tools including Elasticsearch, Kibana, and Logstash, you’ll create an error budget policy and you’ll calculate burn rate, which indicates how quickly the budget is expended. You’ll use Kibana to implement a dashboard that uses burn rate data when creating the alerts product owners rely on for ensuring that service reliability meets service-level agreements (SLAs) when releasing new features. When you’re finished, you’ll have hands-on experience with valuable site reliability engineering (SRE) skills and concepts that you can apply to real-world projects.
skills learned: implement Server Reliability Engineering (SRE) with SLIs, SLOs, and SLAs
Boutique, a software development company, has a fully functional ASP.NET Core HTTP API for a client’s project. As a software engineer for Boutique, it’s your job to improve the API’s code and prepare it for production. Using Serilog, you’ll add logging functionality to help determine the causes of issues that may arise in production. To allow the web UI to be hosted someplace other than your HTTP API, you’ll enable cross-origin resource sharing (CORS) middleware. You’ll create custom middleware for handling the cross-cutting concern of database transactions. To further improve the quality of the codebase, you’ll create a custom filter that handles business exceptions in a general, consistent way. When you’re done, the API will be robust, easy to maintain, and production-ready.
skills learned: set up and configure logging with Serilog • understand how the ASP.NET Core processing pipeline works • create middleware for cross-cutting concerns • set up and configure CORS
Take on the role of a Jenkins engineer working at XYZ Infotainment, a company that publishes news and entertainment, leveraging data and innovation to reach millions of people around the world. After only a decade, it’s faced with the “good problem” of handling its exponential growth. Your task is to build a new method to manage code quality as part of the management team’s initiative to increase productivity and quality. You’ll integrate SonarQube, a static code analysis tool, into a pipeline and fork a health app in your GitHub repository. To ensure your code analysis is effective and efficient, you’ll also write a declarative script that configures the pipeline to wait for the SonarQube Quality Gate result and to fail if its criteria are not satisfied.
skills learned: integrate SonarQube Scanner with Jenkins • static code analysis in pipelines for web applications
Increase performance and availability of the Cumberland City Council’s traffic issue reporter application. As a cloud engineer assigned to its “Traffic Safety Upliftment” initiative, you’ll migrate this on-premises web app to AWS. To accomplish this, you’ll set up the project prerequisites, register the domain, redirect DNS, configure the Amazon S3 Bucket, perform logging and monitoring, and test the serverless website. When you’re done, you’ll be able to report traffic issues by submitting data to the backend via the API Gateway to be processed by AWS Lambda and stored in Amazon DynamoDB.
skills learned: domain registration • DNS redirection • Amazon S3 Bucket creation and configuration • SSL Certificate request • CloudFront CDN configuration • update DNS records • logging configuration and viewing • test a serverless web application
In this liveProject, you’ll deploy a sample SaaS application to Google Cloud Platform and explore different ways to build and deploy applications on GCP, which are different from other cloud providers such as AWS. GCP provides a few native features for building containers and a service called ConfigSync that provides GitOps-style deployments.
skills learned: GitOps-style onboarding of new tenants • dynamically generating DNS entries
In this liveProject, you’ll instrument tracing inside a single microservice. You’ll use Spring Boot to first construct your microservice, and then use the OpenTracing API and Jaeger client library to generate traces and send data to the backend Jaeger server. What we create in this project will form a foundation for later projects in the series.
skills learned: create a RESTful microservice with Spring Boot • instrument tracing inside a function with OpenTracing API and Jaeger SDK • build a Docker image for deployment
You’re a senior developer at Travel World Agency (TWA). The company has built a next-generation system that uses a microservice architecture running on Amazon Web Services (AWS), and wants to prepare it for cost-cutting measures. Your task is to review the microservices architecture, create an architecture test using ArchUnit, create custom tests as needed, streamline update and creation processes by externalizing your tests to a single library, and integrate your architecture tests into a Jenkins pipeline. When you’re done, you’ll have a unit test that validates the structure of a microservices architecture.
skills learned: add dependencies and create basic tests to validate the architecture • create custom tests • externalize tests to a particular library to import into different microservices • split the execution of the test into unit tests • add multiple tests into one Jenkins pipeline
E-commerce company BuildYourHome has a modern, scalable, containerized e-commerce application running on Kubernetes. As a DevOps engineer, your task is to ensure that improvements—including new features, functionality, and deployment strategies—can be made without disrupting the user experience. You’ll walk through four different update approaches; replacement strategy, ramp up strategy, blue/green strategy, and canary strategy. When finished you’ll have a solid grasp on the nuances of all four strategies and understand the use cases for each.
skills learned: Kubernetes deployment strategies • recreate deployment strategy • ramped deployment strategy • blue/green deployment strategy • canary deployment strategy
BuildIT, a fast-growing digital agency that builds websites and applications, has a basic Internal Developer Platform (IDP) consisting of an API and a simple web UI that interfaces with the API. Your job, as BuildIT’s sole DevOps engineer, is to manage AWS costs by eliminating IDPs that are left idle. You’ll use Passport.js to incorporate an authentication system on top of the IDP to keep track of who’s responsible for each environment, ensuring that developers only keep environments they’re actively using and destroy them when they’re finished. You’ll also record environment costs and filter them by developer with Cost Allocation Tags, viewing those costs in reports on AWS Cost Explorer. By the end, the agency will thank you for all the money you’re saving it!
skills learned: password-based authentication • token-based authentication • Passport.js • tracking costs with cost allocation tags
In this liveProject, you’ll implement a gateway service that validates the access tokens and redirects the valid requests to a service-oriented system. You’ll configure the gateway routes and gateway authorization rules, redirecting the requests to the right business logic implementation.
skills learned: implement a gateway component for a microservices architecture • configure the gateway to validate JSON Web Tokens in an OAuth 2 system
In this liveProject, you’ll build an API that can integrate your customer’s transaction data from a third party. You’ll construct a robust client with OpenAPI and WebClient, and make HTTP requests with Spring Boot. You’ll then develop a pipeline of enrichment for the merchant data you acquire through your API.
skills learned: code generation from OpenAPI • calling third-party applications using WebClient • circuit breaker pattern for Spring applications
Logistica Transport needs to ditch its old desktop app and embrace a new web app solution. They’ve turned to you to help them, and in this liveProject, you’ll utilize Entity Framework Core to set up the vital connections between a MySQL database and the future web app. You’ll need to set up data models that define the structure and relationships of your data, as well as learn how to perform CRUD operations to create, update, and delete data in your database. Finally, you’ll connect your data models and CRUD operations to the Entity Framework for a full and working database solution.
skills learned: NuGet packages specific to Entity Framework and MySQL • Setting up data classes in a database • Data tables (inserting, updating, and deleting information) • Setting up a database connection in code • Working with data stored in database tables
Acme Widgets, a manufacturing company, uses an AI-powered Google Workspace add-on to automatically extract information from supplier invoices. Your task is to extend the add-on’s functionality so it can handle expense claim receipts, as well. You’ll add a Document AI processor designed for processing expenses, and you’ll enable additional fields in order to group related receipts. To increase user convenience, you’ll enable the uploading of local files and add a tab to re-pick recently selected files. Lastly, you’ll create unit tests that will help you update the add-on with more complex changes in the future.
skills learned: implement Expense Document AI processors • add CardService add-on fields • implement unit testing
skills learned: Implement queries and Filters with Spring Data JPA Query Methods • Query by Examples and Specification and JPQL
You’re the star data engineer at Free Power Corporation Limited (FPCL). The London-based power company is interested in gaining insight into its customers’ energy usage patterns, and it’s up to you to deliver a data-rich solution that satisfies the requirements of FPCL’s various teams. You’ll create a streaming Spark application to read the consumer event stream from Kafka, you’ll add information that helps the teams determine when data was generated, ingested, and processed, and you’ll write logic to reorder any late or out-of-order data. To provide vital household energy consumption statistics to the sales and electrical engineering teams, you’ll join Kafka data streams and perform complex computations on the resulting stream. To be sure your solution is ready for the teams to use, you’ll test it on the local Spark cluster. When you’ve finished, you’ll have learned advanced stream processing skills that empower you to meet the different business requirements of various enterprise departments.
skills learned: perform complex arbitrary stateful computation on streams (such as handling out-of-order data and custom computation) • set up a Spark cluster • test your solution on the local cluster
Boutique, a software development company, is working on a project that will automate a client’s inspection process. As a software engineer for Boutique, your task is to implement authentication and authorization in the existing ASP.NET Core HTTP API for the project according to the client’s requirements. You’ll register your application to use Google as an identity provider, configure Swashbuckle to support authentication through Google, and activate the authentication and authorization middleware of ASP.NET Core. To take advantage of ASP.NET Core’s authorization features, you’ll add additional claims to the authenticated identity per the client’s specs, and you’ll implement role- and policy-based authorization as needed. When you’re done, employees will be able to use all of the API’s functionality, and customers will have read access to their own data.
skills learned: interpret an OpenAPI specification • set up and configure authentication and authorization • how to gain insight into using different mechanisms to implement authorization • dissect a JWT
BestInsurance has a rapidly growing customer base and happy front-office employees, thanks to a newly built API that lets customers subscribe to policies and lets front-office employees narrow their searches with custom filters. But the back-office staff is unhappy with the high latency of the user interface. As a backend developer, you’ll solve this problem by adding pagination with Spring Data JPA, preventing the page from loading all the customer data at once. You’ll use JPQL to add aggregate functions that return information the back office needs, such as revenue and customer count by state. You’ll implement a REST service for uploading policy subscription data provided in CSV format and importing it into your database. You’ll also leverage domain events for sending messages when subscriptions are saved, updated, or deleted. When you’re done, you’ll know how to add REST API services, and the back-office employees will thank you for making their jobs easier!
skills learned: Add query result pagination • Implement queries with JPQL aggregate functions. Import csv files into a database in a transaction, use domain events to send messages to a JMS Queue.
Acme Widgets, a manufacturing company, manually logs its supplier invoices on spreadsheets in Google Workspace. Your task is to free the staff from this tedious task by creating an add-on that automatically extracts and records useful information from invoices. You’ll set up a Google Cloud Platform (GCP) account, implement and deploy the add-on, and create Document AI processors for processing invoices from multiple regions. You’ll add a CardService that improves the user experience by letting them select which files to process. You’ll use the Document AI REST API to process the invoices’ image data and write the processed data to a spreadsheet, enhancing the user interface. When you're done, you’ll have created a basic, easy-to-use Google Workspace add-on that extracts and records invoices in multiple formats, leaving the Acme Widgets staff free to focus on more productive tasks.
skills learned: create a project in Cloud platform • deploy a Workspace add-on • implement Invoice Document AI processors • update spreadsheets
Hit the ground running with C# by rapidly prototyping a data retrieval app. As a new developer at Ground Truth Consulting, you'll build a proof of concept to streamline legislative monitoring. Tap into .NET's capabilities and set up a data access layer leveraging api.data.gov. Focus on productivity and type safety with C#'s top-level statements, and get hands-on experience querying web APIs and iterating quickly.
skills learned: Structure apps with namespaces and classes • Use HttpClient to make API requests
You’re the IT Developer for Rocinante, a company looking to unite its scattered IT scripts and tools into one GitHub platform. To make this easier, you’ll build a GitHub management module with PowerShell, with automatic building implemented as a GitHub action. You’ll first build your module locally, then implement a CI/CD pipeline using GitHub’s built-in DevOps tools.
skills learned: organizing module’s source code • using module manifest • using ModuleBuilder • creating build pipeline with GitHub Actions
Apache Camel is a lightweight and easy to use integration framework that forms the backbone of numerous distributed systems. In this liveProject, you’ll go hands-on with Apache Camel to build a working medical registration system from scratch.
Your system will help a busy hospital unite laboratory information systems, patient records, and practice management systems that track appointments and finance. Your challenges will include developing API and integration challenges for a new patient portal, and integrating it into your records system. This kind of IT portal is in high demand from any industry that wants to streamline its information, and automate costly human-fronted customer services.
skills learned: integrate heterogeneous systems with Camel • implement Camel Routes using Java DSL • expose a REST API, messaging, and other kinds of endpoints • deploy Camel routes to cloud environments
You’re a senior developer at Travel World Agency (TWA), which has grown to become the largest travel agency in the world. The company has built a next-generation system that uses a microservice architecture running on Amazon Web Services (AWS). But while TWA’s success is rocketing higher, the performance of its reservations microservice is crashing and burning. As a solution, the company has replaced the microservice with a new one, using Kotlin and Spring Boot to improve performance and maintainability. Your job is to improve the performance of the new API.
With the help of the Maven Enforcer plugin, you’ll deal with dependencies that slow the microservice. You’ll use ktlint to format the source code according to a single standard, thereby increasing efficiency. You’ll create a Docker image using GraalVM and optimize it to decrease resource consumption. When you’re finished, your API will start up quicker and be more reactive, even on high-traffic days like Black Friday and Cyber Monday!
skills learned: format the source code • reduce the conflicts with dependencies • reduce the use of resources of the microservices
You’re a TypeScript developer for a large company that sells stock photography. You’re responsible for the service that ingests images, and a recent database change has broken the service, despite successful unit testing. Working in IntelliJ WebStorm, you’ll build an integration test that replicates the problem, find the cause, fix the problem, and build the infrastructure to develop more integration tests in the future.
skills learned: reproduce problems in hard-to-reach parts of a system with tests • use tests to drive bug fixes
BestInsurance has an online portal with a newly built application for providing features it hopes will attract new customers. As a backend developer for the insurance company, it’s your job to implement create, read, update, and delete (CRUD) services that allow front-office staff to manage and query data as needed to perform their daily tasks. You’ll define your CRUD API, using Spring Web and the DTO pattern, and observe your components in action. Leveraging inheritance and generic types in Java, you’ll refactor the code as necessary and complete the implementation of your RESTful APIs. To ensure your solution meets BestInsurance’s high standards, you’ll test the services with Spring Test and MockMvc.
skills learned: RESTful API implementation with Spring Web and DTO pattern, Generate a SwaggerUI and OpenApi documentation with SpringDoc
Take your C# skills to the next level by implementing smart change detection on a data retrieval app. As a developer at Ground Truth Consulting, you'll enable an application to automatically check for updates across legislative APIs. Store responses to disk and compare new results to spot differences, send alerts to stakeholders when fresh bills are introduced, and build reusable comparison logic to support future data sources. You’ll then add unit tests to validate critical flows, prevent regressions, and refactor with dependency injection for modular and testable code. Whether you're new to C# or a .NET veteran, this project is ideal for leveling up your skills.
skills learned: Error-handling techniques • File-handling techniques
Acme Widgets has an AI-powered Google Workspace add-on that interprets data from invoices and receipts. Add-ons have a processing time limit that keeps them from processing many documents at once. It’s up to you to solve this problem! You’ll create one delegate web app that archives files to centralized Google Cloud Storage (GCS) and another that batches the documents—allowing processing to be done in a way that bypasses the standard add-on response time limit. As you develop, you’ll implement incremental unit testing to detect code errors. When you’re done, you’ll have a powerful add-on that isn’t constrained by processing time limits and automatically archives documents to secure cloud storage.
skills learned: set up cloud storage and archiving • implement document batch processing
In this liveProject, you’ll take on the role of a Java/Kotlin developer tasked with implementing the service template’s observability-related features—key aspects of production-readiness—including a health check API, application metrics, and distributed tracing. Work will be done in Kotlin.
skills learned: health check API • application metrics • distributed tracing
You’re a TypeScript developer for a large company that sells stock photography. You’re responsible for the service that ingests images, and this service depends on another subservice: the pricing microservice. As proven by their individual unit tests, each service works as specified. But when the services are combined, new customers are locked into one pricing table—even those that should have access to pricing that fluctuates depending on factors like promotions, flash sales, and price-tuning. Working in IntelliJ WebStorm, you’ll solve this problem by writing an integration test that connects and runs the two services together, letting you reproduce the problem locally.
skills learned: reproduce “ghost in the machine”-type problems with integration tests • create in-memory Nest.js applications
BestInsurance, an insurance company, has an online portal with a newly built application for providing features it hopes will attract new customers. As a backend developer, it’s your job to create the persistence layer for the application. You’ll define the database tables and configure a Liquibase changelog to automatically create the tables using SQL. This will allow you to track and manage database versions in order to avoid data loss in production when you change the model. To persist your data, you’ll map Java classes to the database tables using Spring JPA, then implement the basic create, read, update, and delete (CRUD) operations through the JPA repositories for the persistent entities. To verify your mapping is correct, you’ll implement unit testing with JUnit 5 tests, TestContainers, and a PostgreSQL database.
skills learned: Implement Spring Data JPA CRUD Repositories, Define the database DDL with Liquibase and SQL, Implement ORM (Object Relational Mapping) with Entity Classes, Implement JUnit Test cases with Spring Test and TestContainers
You’ve just been hired as a software programmer for SongRiver, a music-streaming startup whose success is skyrocketing. With so many new employees, it’s hard to keep everyone straight, so the internal tools team has asked you to add a page for each employee as the first step toward building an employee directory app. You’ll set up a React Router to provide access to employee information. Using React Query, you’ll fetch employee data from the server so that it can be added to the employee page. Finally, you’ll use Chakra UI to display the employee data according to the provided specifications. When you’re finished, you’ll have created a page that accepts and provides access to employee data—and your manager will be humming a happy tune.
Some sections may contain information that is now outdated due to the rapid advancements in the technology field, notably the initial libraries, Docker setup, and some documentation links. Regardless, this liveProject remains an invaluable resource for intermediate users.
skills learned: React Router routes and URL params • React Query data fetching • Chakra UI design system
Level up your C# skills by evolving an API data retrieval prototype into a robust application. As a developer at Ground Truth Consulting, you'll expand the initial Federal Register API demo into a versatile tool to streamline legislative monitoring. This project lets you flex your C# muscles on real-world APIs while prepping for enterprise development. You’ll refactor with classes, tuples, and records for more maintainable code, cache API responses in memory to optimize performance, and integrate the Congress API to showcase multi-source data aggregation.
skills learned: C# data structures like lists and dictionaries • Error-handling techniques
Logistica Transport has grown, which means they need to replace their outdated desktop app with a brand new web app solution. In this liveProject, you’ll help them kick off this transformation by swapping their current Excel-based storage system for a mySQL database. You’ll need to create and install the database from scratch, as well as set up the necessary tables to handle the input and output streams of data. This database is a vital foundation for how Logistica’s web app will function.
skills learned: MySQL language
Make your Java/Kotlin developer colleagues’ lives easier by enabling them—and you!—to quickly maintain services that were cloned from the service template. In this liveProject, you’ll extract a microservice chassis from the service template project, create Gradle plugins, and publish chassis artifacts and template source code. When you’re done, you’ll have a small service template project that uses a much larger microservice chassis framework. (Your colleagues will thank you!) Work will be done in Kotlin.
skills learned: refactor a service template to extract common logic and build logic into a reusable service chassis framework
You’re a senior developer at Travel World Agency (TWA), which has grown to become the largest travel agency in the world. The company has built a next-generation system that uses a microservice architecture running on Amazon Web Services (AWS). But as TWA’s success has soared, the performance of its reservations microservice has taken a nosedive. TWA has decided to replace the reservation microservice with a new one, using Kotlin and Spring Boot to improve performance and maintainability. Your task is to review the architecture of the existing microservice and create a new one that has the same endpoints as the old one, saves all relevant information, has a default error handler, and communicates with other microservices to access other vital information.
skills learned: create the basic structure of a microservice • persist the information and interact with other microservices • transform the exceptions in a common structure of error
Welcome to Boutique, a software development company that’s working on a project to automate a client’s inspection process. As a software engineer, your task is to create an HTTP API for the project. You’ll set up an ASP.NET Core web host, implementing the first endpoint according to the OpenAPI specification. To verify the endpoint works as intended, you’ll add integration tests, and you’ll use Swashbuckle and API versioning middleware to enable future functionality. When you’re done, you’ll have firsthand experience with important tools—including Postman and Swagger UI—and an API that’s ready for further development.
skills learned: configure and use Microsoft DI • set up an HTTP API host with ASP.NET Core • implement integration tests • set up API versioning • set up Swagger UI using Swashbuckle • use Postman for manual testing of the API
Acme Widgets, a manufacturing company, processes its supplier invoices with an AI-powered Google Workspace add-on that automatically extracts and records invoice data. But the add-on has limited functionality, such as only being able to interpret single image files, which makes tasks like picking files difficult. It’s up to you to make basic tasks like these easier. You’ll enable the Google Picker API to add the ability to navigate and customize files. You’ll create and publish a file picker as a web app, and publish the add-on with the attached file picker. To further enhance the user interface, you’ll add image thumbnails and links to the picked files, as well as support for interpreting PDFs and images to accommodate a larger variety of documents. When you’re done, you’ll have helped ensure Acme Widgets’ accounts are accurate and made the staff’s lives easier—all while learning Google add-on customization skills.
skills learned: implement Google Drive Picker • publish popup web apps • detect duplication digitally
In this liveProject, you’ll use Spring Boot and Gradle to create the basic mobile banking application. You’ll begin by creating the domain object, REST Controller, and supporting service to present the data, then test your application to ensure it’s working properly. You’ll add JPA to store your users’ transactions, then finish up with end-to-end testing of your whole app.
skills learned: basics of Spring Boot • create a REST Controller with Spring Web • JPA to persist state to a database • using RestAssured to perform integration tests on Spring applications • use Testcontainers to perform tests on your JPA code
You’re a software engineer at TechPower, a consulting company that wants to expand its reach in the tech market by incorporating more programming languages and technologies. This will help it create products while hiring from a more diverse pool of engineers. For TechPower’s latest project, your task is to design an independent music-sharing platform where new artists can upload their music, putting it in front of new eyes (and ears!) for free. Using Simple Build Tool (SBT) and IntelliJ IDEA, you’ll set up your environment to prepare for running a project in Scala, a language that combines object-oriented programming and the functional paradigm. Keeping in mind the platform's users and the kinds of content it will host, you’ll define the main entities and dependencies as part of a Unified Modeling Language (UML) diagram. You’ll implement your design with Scala classes and traits, preparing the utility for function additions later on.
skills learned: system design with UML diagrams and Scala code • software engineering with Scala (immutable data structures, pattern matching, higher-order functions, partial functions) • unit testing with Scala
You’ve been striking a chord at SongRiver, the popular music-streaming platform where you’ve been working for the last two weeks. Feedback for the employee directory app you’ve been building is mostly favorable, but it also suggests that the user experience (UX) could be improved if the page were more informational and visually appealing, especially at specific times. You’ll use React Query and Chakra UI tools to indicate when the app is fetching new data or refetching data, and when there’s been an error fetching data. When you’re done, your app will display loading and error indicators that are both useful and easy on the eyes.
Some sections may contain information that is now outdated due to the rapid advancements in the technology field, notably the initial libraries, Docker setup, and some documentation links. Regardless, this liveProject remains an invaluable resource for intermediate users.
skills learned: UI indicators that display loading and error states of React Query
BestInsurance, an insurance company, wants to attract new customers. As a backend developer, your task is to extend the features of the company’s portal to let customers subscribe to new policies. You’ll use Spring Initializr to create the project structure for a basic Spring Boot application, and you’ll configure the necessary dependencies. You’ll build Docker images for running the application, using both Maven and Gradle plugins, and you’ll create Docker compose services for running the application using your Docker images. When you’re done, you’ll have built a basic Spring Boot application that’s ready to connect to a database.
skills learned: define a Spring Boot application with Spring Initializr, Configure build with Maven and Gradle, run the defined application in a Container with Docker, and Docker Compose
You’re a senior developer at Travel World Agency (TWA), which has grown to become the largest travel agency in the world. The company has built a next-generation system that uses a microservice architecture running on Amazon Web Services (AWS). But while TWA’s success is on the right track, the performance of its reservation microservice is off the rails. As a solution, TWA has replaced the microservice with a new one, using Kotlin and Spring Boot to improve performance and maintainability. Your job is to document the API endpoints for this new microservice—following the Open API 3 standard—to reduce the risk of someone invoking the endpoints incorrectly. You’ll also create custom rules for validating the documentation in an external library, allowing for reuse in other projects across the company.
skills learned: document the different endpoints using Open API 3 • determine whether the documentation follows the standard format
In this liveProject, you’ll secure a financial application using the out-of-the-box security features of Spring. You’ll set up authentication servers, add users, and configure rules for your application.
skills learned: client credentials in an OAuth 2 workflow • securely grab data from a third-party with Spring WebClient • periodically poll data from a third party with the Spring scheduler
Ensure your system can accommodate even unstable dependency services. You’re a TypeScript developer for a large company that sells stock photography. You’re responsible for the service that ingests images. Unfortunately, the ingestion process is being negatively affected by a flaky external web service that the ingestion engine uses, and the problem is not reproducible in unit testing since there’s no connection to the external service at that time. Working in IntelliJ WebStorm, you’ll establish an in-memory HTTP service, configure it to simulate a dependency service, write a test to reproduce the error, and use the test to build robustness into your system.
skills learned: dynamically configure Nest.js containers • mock an HTTPservice dependency
In this liveProject, you’ll find and fix some long-term bugs in a legacy library. You’ll write a test to characterize a bug in how certain assets are selected for a special display, then modify the test to turn it into a bugfix. Once you’ve squashed that bug, you’ll repeat the process to tackle two more common bugs for Java applications.
skills learned: using IntelliJ IDEA to write and execute tests • deriving tests from existing bugs • codifying current behavior as a test • using tests to drive bug fixes • changing tests so they fail until a bug is fixed
You’re a software engineer for Echorand Corp., a growing analytics company that wants to address the lack of backup functionality provided by the GitHub software hosting service it uses. The company has a web application that allows users to log in using their GitHub credentials. Your task is to add functionality to that app that lets users download their data whenever they like. Using Go, HTML, JavaScript, and the GitHub Go SDK, you’ll implement support that enables users to export their data on GitHub, view their exports, and download them—a win for Echorand Corp. and for you!
skills learned: work with Go standard library packages and the GitHub Go SDK • access the GitHub API
Echorand Corp., a growing analytics company, uses the GitHub hosting service for its software hosting and collaboration needs. But the company has received feedback voicing concerns about the service’s lack of backup functionality. As a software engineer, it’s up to you to solve this problem. You’ll use Go to build a web application that allows users to log in using their GitHub credentials and access the GitHub API using OAuth authorization. You’ll create HTTP client middleware for writing and performing tests with no need to interact with Github.com, and you’ll write automated tests that enable you to update the application while speeding up the development cycle. When you’re done, you’ll have built an easy-to-update application that allows users to log in with their GitHub credentials.
skills learned: work with Go standard library packages, GitHub OAuth, HTTP cookies in Go, and HTTP cookies in Go
The development team at Boutique, a software company, is working on a project for automating the inspection process of a client that builds industrial robots. An ASP.NET Core HTTP API has already been set up, and the team has started implementing the domain model entities and persisting them to a SQL database. As part of the team, your task is to implement CRUD (create, read, update, and delete) endpoints for all the entities according to the OpenAPI specification. To achieve persistence, you’ll configure Entity Framework Core and register it in the dependency injection container. You’ll implement a custom JSON converter to support polymorph endpoints in order to handle different types of robots. To verify that your implementation is correct, you’ll write and perform integration tests.
skills learned: interpret an OpenAPI specification • configure and use Microsoft DI • configure routing for endpoints in the HTTP API • use Postman for manual testing of the API • set up and configure validation for incoming data
Welcome to your second week at SongRiver, a music-streaming startup whose success is skyrocketing. You’ve been working on a directory app to help keep track of the company’s growing number of employees, and your task for this week is to add search functionality to employee pages in the directory. Using Chakra UI, you'll create the user interface for the search input box. Then you'll fetch the results from the server via React Query and display the data. You’ll end the project on a high note by using React Router tools to create links that enable navigation between individual employee pages and the search interface.
Some sections may contain information that is now outdated due to the rapid advancements in the technology field, notably the initial libraries, Docker setup, and some documentation links. Regardless, this liveProject remains an invaluable resource for intermediate users.
skills learned: state-controlled input field • React Router search params • array of React components from array of server data
TechPower wants to grow in the tech market and enhance its presence by adding new technologies to its toolbox. Scala is a good option as it combines functional and object-oriented programming paradigms. As a software engineer, your task is to add features and functionality to the consulting company’s current project: a music-sharing platform where artists can share their music with the world. Using Scala, Simple Build Tool (SBT), and IntelliJ IDEA, you’ll design and implement functions for previously defined entities, then improve them by refactoring. When you’re done, you’ll know how to apply functional programming concepts to designing and implementing system functionality in a Scala project.
skills learned: basic Scala (immutable data structures, pattern matching, higher-order functions, partial functions) • refactoring
In this liveProject, you’ll add security-related features to the service template. In your role as a Java/Kotlin developer, you’ll gain hands-on Kotlin experience implementing authentication and authorization of a service’s REST API using JSON Web Tokens (JWTs) as well as a Security Token Service, such as Keycloak, to issue and authenticate JWTs.
skills learned: implement authentication and authorization of a service’s REST API using JSON Web Tokens (JWTs) • use a Security Token Service to issue and authenticate JWTs
As a first step in dealing with surging energy prices, Free Power Corporation Limited (FPCL) has installed Smart Meters, which generate energy readings every thirty minutes, in households across London in order to analyze consumers’ energy usage. As a new data engineer for the power company, your task is to ingest the data from the Smart Meter readings and stream it to FPCL data centers for processing. Using the Kafka command-line tool, you’ll create topics in a Kafka cluster for storing the data, and you’ll create partitions for distributing the load within the topics. You’ll add logic to deal with potential problems such as data loss and duplicate records, and you’ll add a method to convert the energy readings to the widely used, easy-to-parse JSON format before the final step of ingesting the data. When you’re finished, FPCL will have pertinent data for analyzing energy consumption patterns, and you’ll have practical experience using Kafka to ingest large amounts of data.
skills learned: set up Kafka Cluster • write a Kafka Producer • add real-life complexities to data • ingest the data into the Kafka cluster
Your company sells stock photography products to the general public, as well as to news and other media markets. As the resident TypeScript developer, you’ve been tasked with maintaining and extending a class library for optimizing search results. You’ll set up tests to support refactoring of this legacy library, use “pinning tests” to extract a specification from the existing code, and generate a wide range of test coverage. You’ll learn to spot when and where to improve code maintainability, and set up mutation testing to ensure your tests catch unintended changes. By the end, you’ll have generated test coverage that supports refactoring, making future updates easy and painless.
skills learned: derive tests from existing code • use mutation testing results to guide test efforts
Growth means change; for Logistica Transport, that means switching from their old desktop app to a new web app solution. In this liveProject, you’ll put together all of the pieces of this new web app. You’ll learn how to build a React.js app with Visual Studio 2023, set up a form for your users, and master the database magic of CRUD statements like insert, update, and delete to manipulate your database. Finally, you’ll validate your data formats to ensure the application works as expected.
skills learned: NuGet packages • Creating themed React forms • Implementing CRUD features • Implementing form validation
In this liveProject, you’ll use the Rust programming language to develop a two-step verification system for authentication service. You’ve decided to work in Rust because it runs without memory issues, it’s data race free, and provides safe concurrency.
Your client’s employees work on different operating systems, so your verification system needs to function on Mac, Linux, and Windows. To complete this system, you’ll need to develop a RESTful service as its core backend, and then write a Rust client that is going to be called by Linux as part of its authentication process. Finally, you’ll use Rust to develop Admin and verification clients, write a thin layer of C code as a PAM module, and configure Linux to use the PAM module in its authentication pipeline.
skills learned: implement a RESTful web service in Rust • write a secure Rust program
Create an alarm system that warns you before your system breaks. You’re a TypeScript developer for a large company that sells stock photography. You’re responsible for the service that ingests images. A recent upgrade to the image-scaling library has caused a problem with the aspect ratio of thumbnail images. Working in IntelliJ WebStorm, you’ll build a layer of integration tests that replicates the problem and also tests the assumptions that your unit tests rely on. When you’re done, you’ll have an alarm system that warns you when the assumptions your unit tests rely on are no longer valid, preventing problems in the future.
skills learned: use SQLite and an in-memory database to inspect the results of service execution • mock S3 containers
In this liveProject, you’ll progressively enhance a service template, starting with packaging it as a container image. Next, you’ll build and run a service template container with Docker Compose, write component tests for a service, and finally build and test a container image. When you’re finished, you’ll have a Github repository that automatically pushes a tested container image to a Docker registry. This project focuses on Kotlin.
skills learned: package a Spring Boot application as a Docker container image • run and test a container image • configure a Github Actions-based deployment pipeline to build and test a container image and push it to a registry
As the IT Developer for Rocinante, your primary objective is to streamline and centralize the company's scattered IT scripts and tools. By leveraging the power of a unified GitHub platform, you will bring together these resources, empowering your team with a consolidated and efficient solution. The GitHub management module has been meticulously crafted, adhering to community standards and fortified with automated tests and linting—now you need to prepare the module for packaging and publication, enabling effortless sharing with others through the Install-Module cmdlet. Additionally, you’ll tackle the crucial task of testing the modules across Linux and Windows environments, culminating in creating an official release on GitHub.
skills learned: creating packages with NuGet • running a pipeline on multiple systems with GitHub • GitHub releases with Git tags
Acme Widgets has a Google Workspace invoice processing add-on that uses Google Document AI to interpret data from PDFs and image formats. To make the tool more valuable, your task is to add the ability to accept documents in other formats. You’ll start by enabling a pop-up web app that displays the expanded list of newly supported file types. You’ll add functionality for picking additional file types and automatically converting them to a Document AI-supported format, then archiving them. You’ll also enable sorting and duplicate removal as you create a summarized view of invoices and expenses, making the company’s employees’ tasks easier and less time-consuming.
skills learned: use the Google Drive API to create conversion routes • convert a range of documents to native • summarize, sort, and deduplicate converted documents
In this liveProject, you’ll ready your service for production. You’ll use the Spring caching API to add caching functionalities to a financial application, and compose your application for deployment. You’ll use Redis as your caching server.
skills learned: adding caching to any Spring application using the Spring caching framework • employ Redis to cache frequently accessed data • bundle your related services using Docker Compose
It’s your fourth week with SongRiver, a music-streaming web platform whose success is climbing the charts. Beta testers for the employee directory app you’ve been building are singing your praises, and they have a new request: they’d like to celebrate employees with badges that spotlight their contributions. You’ll use Chakra UI to create a grid of employee badges and add badge information to the employee page. Using React Query, you’ll add functionality for sending badge data to the server, then display a “toast” (pop-up) message that communicates whether or not the badge submission was successful. When you’re done, you’ll have a people-pleasing, connection-boosting feature that adds and displays employees’ badges, and you’ll have earned a “Rock Star” badge of your own.
Some sections may contain information that is now outdated due to the rapid advancements in the technology field, notably the initial libraries, Docker setup, and some documentation links. Regardless, this liveProject remains an invaluable resource for intermediate users.
skills learned: display employees’ existing badges • provide a button to add a new badge • send an update to the server when a new badge is added • refresh the data on the page to show the new badge
As part of an endeavor to better handle surging energy prices, Free Power Corporation Limited (FPCL) has a Kafka cluster that ingests large amounts of consumer energy data. As a data engineer for FPCL, you’re already familiar with the data, so the London-based power company has tasked you with building a streaming solution that processes the data as soon as it’s available. Using Apache Spark, you’ll create an application to read the data from the Kafka streams, and you’ll save the streams to a data lake. Using a Spark API, you’ll prepare the data for analysis by performing aggregation on the fly. You’ll join the real-time stream with the static data, enriching it with customer details and enabling FPCL’s research team to gain insights about customer energy consumption patterns. When you’re done, FPCL will be better equipped to deal with rising energy costs, and you’ll have hands-on experience building a real-time data processing solution using Apache Spark and Kafka.
skills learned: connect Spark to Kafka • read the data Stream • build a streaming pipeline to perform various tasks (such as cleansing and filtering aggregation)
The company you work for wants to improve its system by adding functionality that maximizes the profitability of any given search. As the resident TypeScript developer, your task is to apply a battery of tests to support changing the design of legacy code in preparation for adding this new functionality. You’ll refactor your production code based on advice from your architecture team. Thanks to a broad test suite, you’ll be able to change your design with no worries about accidentally breaking a required behavior. The result will be a system you can test with smaller, more meaningful tests and that easily withstands future requirement changes.
skills learned: change the design of existing code while supported by tests • change test suites to take advantage of better designs
In this liveProject, you’ll learn to use a battery of tests to support changing the design of some legacy code in preparation for adding new functionality. You’ll refactor your production code based on advice from your architecture team. Because you have a broad test suite, you will be able to change your design without fear of accidentally breaking a required behavior. The output will be a system that can more easily withstand incoming requirements changes and against which you can write smaller, more meaningful tests.
skills learned: Changing the design of existing code while supported by tests, Changing test suites to take advantage of better designs
You're a TypeScript developer at an organization that sells stock photography products to the general public, as well as to news and other media markets. The company wants to add functionality to its system that maximizes the profitability of any given search. It’s up to you to improve the test suite by adding high-quality requirements-based tests. You’ll use mocks to isolate requirements, ensuring that each test focuses on a single behavior in your code. When you’re done, you’ll have a more resilient codebase.
skills learned: change the design of existing code with the support of tests • change test suites to take advantage of better designs
In this liveProject, you’ll explore writing high-quality, requirements-based tests against code with a solid design.You will take great care to ensure that each test focuses on a single, isolated behavior within the code. To that end, you’ll use techniques such as mocking to isolate requirements from one another for the purpose of testing. The output of the project is a codebase with a far more resilient test suite that will be able to stand the test of time.
skills learned: changing the design of existing code while supported by tests • changing test suites to take advantage of better designs
In the modern world, web traffic is mobile traffic. That’s why your sites need to be responsive and easily adaptable to any screen size! In this liveProject, you’ll create a responsive layout for your portfolio site so it looks good on mobile. You’ll need to constrain your profile picture, utilize column-based layouts, use grid and flex to align items, and utilize flexbox to lay out your footer.
skills learned: Using the multi-column layout module to lay out a list of items into multiple columns • Using subgrid to lay out elements inside of a grid layout • Using flexbox to display a list of elements horizontally • How to prevent image distortion using object-fit • Using pseudo-classes in selectors
Smooth scrolling is one of the most important features of any portfolio page! In this liveProject, you’ll utilize CSS—including animation timelines—to set up different features for when a user scrolls your page. You’ll lock your header to stay visible on screen at all times, ensure that the top of different sections snap to the top of the window as users scroll, establish a progress bar in the header to show how far you’ve scrolled, and more. When you’ve finished this final polish, your portfolio page will look great!
skills learned: Using the position property to create a sticky header • Using scroll-snap-type and scroll-snap-align to control scroll behavior between sections • Adjusting the scroll snap position using scroll-padding • Using animation timelines to create an on-scroll progress indicator • Using the ::backdrop pseudo-element to style the dialog's backdrop
As a software engineer for Boutique, a software development company, you're tasked with adding search, upload, and download functionality to an ASP.NET Core HTTP API that Boutique is building for its client, RobotsInc. To enable the frontend to navigate through existing data structures, you’ll add several child endpoints, as well as an endpoint for criteria-based searches. You’ll also implement endpoints for binary photo uploads and downloads according to the OpenAPI specification, and you’ll verify your implementations are correct by testing manually with Swagger UI as well as with automated integration tests. When you’re finished, RobotInc’s employees will be able to upload photos and notes to document and report on their robot inspections.
skills learned: interpret an OpenAPI specification • configure and use Microsoft DI • configure routing for endpoints in the HTTP API • use Postman for manual testing of the API • set up and configure validation for incoming data • implement binary file upload and download
In this liveProject, you’ll secure a financial application using the out-of-the-box security features of Spring. You’ll set up authentication servers, add users, and configure rules for your application.
skills learned: basics of Keycloak administration • OAuth 2 workflows and when to use them • securing an application with Spring Security • how Docker makes running applications easier
You’re a senior developer at Travel World Agency (TWA), which has grown to become the largest travel agency in the world. The company has built a next-generation system that uses a microservice architecture running on Amazon Web Services (AWS). But while TWA’s success is flying high, the performance of its reservation microservice has taken an unfortunate detour. As a solution, TWA has replaced the microservice with a new one, using Kotlin and Spring Boot to improve performance and maintainability. Your job is to secure the API against possible attacks. You’ll configure a Keycloak authentication server to keep track of valid users. Using Spring Security, you’ll add security mechanisms on the microservice to ensure that only valid users can access it and that those users can only access their own reservations.
skills learned: validate whether the user has permissions
As a backend developer for BestInsurance, your task is to secure its RESTful API using Spring Security. The insurance company is running the API in a server that supports OAuth 2.0 authentication. Using the server’s specs, you’ll reproduce the behavior of the authorization server with Spring Security in order to have a local server that is easily configurable for testing purposes. You’ll implement role-based authorization based on the content of JSON Web Tokens (JWT), from the authorization server point of view. This authorization will impact API security, so you will implement a resource server with Spring Security. You’ll also implement unit testing with Spring Security Test, and configure SwaggerUI to make requests that are authorized according to OAuth 2.0, using SpringDocs. When you’re finished you’ll have highly useful Spring Security skills—and confidence that your API is secure!
skills learned: Spring Security OAuth 2 authentication and role-based authorization
Boutique, a software development company, has a fully functional ASP.NET Core HTTP API for a client’s project. As a software engineer for Boutique, it’s your job to improve the API’s code and prepare it for production. Using Serilog, you’ll add logging functionality to help determine the causes of issues that may arise in production. To allow the web UI to be hosted someplace other than your HTTP API, you’ll enable cross-origin resource sharing (CORS) middleware. You’ll create custom middleware for handling the cross-cutting concern of database transactions. To further improve the quality of the codebase, you’ll create a custom filter that handles business exceptions in a general, consistent way. When you’re done, the API will be robust, easy to maintain, and production-ready.
skills learned: set up and configure logging with Serilog • understand how the ASP.NET Core processing pipeline works • create middleware for cross-cutting concerns • set up and configure CORS
Upgrade a legislative monitoring app with advanced C# features like LINQ and lambdas. As a developer at Ground Truth Consulting, you'll implement detailed change comparisons between API results. You’ll go beyond basic difference detection to provide insight into exactly what changed. Analyze bills line by line to spotlight new amendments, build flexible queries with LINQ to extract and compare key fields, and implement comparison logic concisely with lambdas and delegates. Plus, master professional techniques like parsing complex JSON responses and make an impact by shipping an automated legislative tracking tool ready for production use.
skills learned: LINQ • Delegates and lambdas • Unit testing
Contact forms are one of the most important parts of almost any site—especially your web design portfolio. If your potential clients aren’t impressed with a contact form, why would they ever use it to get in touch with you? In this liveProject, you’ll use CSS to create a stunning contact form. You’ll put your own spin on text, error messages, radio buttons, button styles, and more.
skills learned: Using :where() to apply a rule to multiple selectors • Using adjacent sibling combinators to select elements that are immediately after another element • Using :user-invalid to conditionally style elements based on a field’s validity • Using @supports to write fallbacks for properties that are not widely supported across browsers • Using accent-color to change the color of a checkbox
Logistica Transport is on the rise—and they need a new web app solution that can do what their old desktop app can’t. That app is almost ready, but it needs a final round of testing to make sure it’s ready to go to its users. That’s where you come in! You’ll learn to utilize mocks and stubs, as well as the Jest and React Testing Library, to spot errors and make sure the app is production-ready. You’ll even test and assess the app’s performance using BenchmarkdotNET.
skills learned: Visual Studio debugging tool • Testing applications • Checking application performance • Entering application accessibility features
In this liveProject, you’ll set up tests to support refactoring of a legacy library. As you lack a written specification, you’ll use “pinning tests” to extract a specification from the existing code, and generate a wide range of test coverage. You’ll learn to spot when and where to improve code maintainability, and set up mutation testing to ensure your tests catch unintended changes.
skills learned: deriving tests from existing code • adding test coverage on an as-needed basis • using mutation testing results to guide test efforts
You’re a senior developer at Travel World Agency (TWA), which has grown to become the largest travel agency in the world. The company has built a next-generation system that uses a microservice architecture running on Amazon Web Services (AWS). But while the company’s success is moving quickly in the right direction, the performance of its reservations microservice has taken a wrong turn. As a solution, TWA has replaced this microservice with a new one, using Kotlin and Spring Boot to improve performance and maintainability. Your job is to reduce the risk of deploying the application with bugs—a common problem for the previous API—by implementing robust testing.
Following business-driven development (BDD) practices, you’ll create a series of unit tests that validate the code’s logic in a number of plausible scenarios. To test the behavior of the code itself without affecting or being influenced by external classes, you’ll create a series of mocks. Using several libraries, you’ll test to ensure database queries work as expected.
skills learned: create a unit test to check the logic of the application • create a unit test that checks access to the database
As the IT Developer for Rocinante, a company seeking to consolidate its dispersed IT scripts and tools, your mission is to unify them into a cohesive GitHub platform that's accessible with a PowerShell module. Your task in this liveProject is to ensure the module’s quality. You’ll add automated tests to ensure your module works properly and implement static code analysis to ensure your code is issue-free. Finally, you’ll incorporate both testing and code analysis into a CI/CD pipeline to ensure every build is of high quality.
skills learned: unit and integration tests with Pester 5 • static code analysis with PSSCriptAnalyzer • running tests on GitHub Actions
You’re a TypeScript developer for a large company that sells stock photography products to the general public, as well as to news and other media markets. Your task is to find and fix some long-term bugs in a legacy library. You’ll write a test to characterize a bug in code that controls how certain assets are selected for a special display. After you’ve determined the source of the problem, you’ll modify the test, transforming it into a bug fix. Once you’ve squashed that bug, you’ll repeat the process to tackle two additional common bugs in TypeScript applications.
skills learned: derive tests from existing bugs • use tests to drive bug fixes
In this liveProject, you’ll write tests to drive changes in an existing codebase. You’ll analyze new requirements, reconcile them with what is currently documented by your test suite, and use the test-first technique to ensure new changes to your library are all justified, specified, and protected by tests.
skills learned: using test-driven development to change existing functionality • writing granular tests for individual requirements • using larger-grain tests to drive the integration of individual components
As a TypeScript developer, you’ve recently created a high-quality test suite as part of your company’s goal of adding functionality to its system. Now, using test-driven development (TDD) techniques, it’s time to analyze new requirements, reconcile them with what is currently documented by your test suite, and use the test-first technique to ensure changes to your library are justified, specified, and protected by tests.
skills learned: write granular tests for individual requirements • use larger-grain tests to drive the integration of individual components • change the design of existing code with the support of tests
Any web developer worth their salt needs an eye-catching portfolio site—and so your boss at Consultants Inc. has told you you need to make one! In this liveProject, you’ll experiment with delivering both light and dark themes for your site using CSS, custom properties, and a locally hosted variable font. Remember, web design is about self-expression—so don’t be afraid to play around with your code to help it fit you and your personality.
skills learned: Using custom properties to set theme colors • Using a media query to set a theme based on user preferences • Color contrast checking and accessibility-related concerns • Using :where() to apply a rule to multiple selectors • Loading and configuring a variable front using @font-face • Creating fallbacks using @supports
It’s almost showtime! TechPower, a consulting company, has a partially implemented music-sharing platform, created in Scala, that leverages the language’s combination of object-oriented programming and the functional paradigm. As a software engineer at TechPower, your task is to ensure the prototype’s codebase hits a high note before going live. With the help of the Scala ecosystem libraries, you’ll design and create test specifications and samples, keeping in mind functionality, possible outcomes, and data values. You’ll implement your tests using SimpleBuild Tool (SBT) or IntelliJ IDEA, debug them, check corner cases, and verify that you’ve covered all reasonable scenarios. When you’re done, TechPower’s music-sharing platform will be robust, reliable, and ready for the spotlight!
skills learned: basic Scala (debugging) • unit testing in Scala with specs2
You’re a senior developer at Travel World Agency (TWA), which has grown to become the largest travel agency in the world. The company has built a next-generation system that uses a microservice architecture running on Amazon Web Services (AWS). But while TWA’s success has been steadily climbing, the performance of its reservation microservice has been losing altitude. As a solution, TWA has replaced the microservice with a new one. Your job is to improve performance by leveraging cache mechanisms, including the Caffeine, Varnish, and Redis libraries, that will reduce traffic between APIs.
skills learned: understand the different mechanisms of cache • determine where to use one mechanism of cache instead another one
It’s week number five for you at SongRiver, a music-streaming startup whose success is soaring. You’ve been working on an employee directory that helps users find employee information and send each other digital recognition badges. Your task this week is to create and automate tests to ensure the app works correctly, especially after updates.
Using Jest and the React Testing Library, you’ll write a test for the badge component that checks for the badge name and image. You’ll create and test a custom render method for React Testing Library, a must for preventing errors while rendering components that require React Router. Using mocked data, you’ll test components that fetch data. You’ll also write tests for the “Add Badge” component, using user-events to simulate user interactions with components. When you’re done, you’ll have created an automated test suite that empowers you and your colleagues to update the directory app with confidence.
Some sections may contain information that is now outdated due to the rapid advancements in the technology field, notably the initial libraries, Docker setup, and some documentation links. Regardless, this liveProject remains an invaluable resource for intermediate users.
skills learned: automate tests with Jest, React Testing Library, and Mock Service Worker
Logistica Transport needs to ditch its old desktop app and embrace a new web app solution. They’ve turned to you to help them, and in this liveProject, you’ll utilize Entity Framework Core to set up the vital connections between a MySQL database and the future web app. You’ll need to set up data models that define the structure and relationships of your data, as well as learn how to perform CRUD operations to create, update, and delete data in your database. Finally, you’ll connect your data models and CRUD operations to the Entity Framework for a full and working database solution.
skills learned: NuGet packages specific to Entity Framework and MySQL • Setting up data classes in a database • Data tables (inserting, updating, and deleting information) • Setting up a database connection in code • Working with data stored in database tables
You’re a developer for BellyBox, an online grocery delivery company. Your task is to add a shopping cart and checkout process to its storefront Blazor web application. Using state management techniques in Blazor, you’ll develop patterns to manage data communication between components and pages. Using HttpClient, you’ll implement CRUD (create, read, and update) operations to enable communication with the backend server. When you’re finished, you’ll have provided a functional and pain-free checkout process that’s sure to have BellyBox’s tech-savvy customers checking in again.
skills learned: component communication through Parameters • SSOT server/client state management • use generic type template components • CRUD operations • state change events
Boutique, a software development company, is working on a project that will automate a client’s inspection process. As a software engineer for Boutique, your task is to implement authentication and authorization in the existing ASP.NET Core HTTP API for the project according to the client’s requirements. You’ll register your application to use Google as an identity provider, configure Swashbuckle to support authentication through Google, and activate the authentication and authorization middleware of ASP.NET Core. To take advantage of ASP.NET Core’s authorization features, you’ll add additional claims to the authenticated identity per the client’s specs, and you’ll implement role- and policy-based authorization as needed. When you’re done, employees will be able to use all of the API’s functionality, and customers will have read access to their own data.
skills learned: interpret an OpenAPI specification • set up and configure authentication and authorization • how to gain insight into using different mechanisms to implement authorization • dissect a JWT
Add security, an essential ingredient in the recipe for a successful application. As a developer for BellyBox, an online grocery delivery company, your task is to secure the startup’s storefront web application using Blazor’s authentication and authorization features. You’ll keep customers’ identities secret by adding support for anonymous customers using Blazor’s JavaScript interop, then save their data to localStorage. You’ll also modify the checkout process by developing an order history that’s only visible to authenticated users. To handle anonymous and authenticated API traffic, you’ll configure named HttpClient services. By the end of the liveProject, you’ll have mastered services and components for authorizing users in Blazor, and provided a safe and secure online shopping experience for BellyBox’s customers.
skills learned: implement authentication and authorization • named HttpClients with HttpClientFactory • page-based authorization • interoperate with JavaScript
In this liveProject, you’ll take on the role of a cryptography expert evaluating quantum computing for the purpose of key distribution. Key distribution generates a random secret key which is then shared between only two parties, and is a crucial part of many cryptographic algorithms. You’ll work to implement the common BB84 key distribution, simulate using the BB84 protocol to generate a shared key, and then visualize the steps of the BB84 protocol.
skills learned: designing and writing simple Q# code • running simulations of quantum code using a full state quantum simulator • writing classical code in C# or Python that calls quantum code
In this liveProject, you’ll ensure your system behaves according to customer requirements by implementing acceptance tests. You’ll use SpecFlow and Gherkin to test existing functionality, WireMock to test each service with a fake interaction between services, and, finally, use behavior-driven development (BDD) and test-driven development (TDD) to create a new service.
skills learned: writing service level tests • drive feature implementation with BDD • use WireMock for acceptance testing
Hit the ground running with C# by rapidly prototyping a data retrieval app. As a new developer at Ground Truth Consulting, you'll build a proof of concept to streamline legislative monitoring. Tap into .NET's capabilities and set up a data access layer leveraging api.data.gov. Focus on productivity and type safety with C#'s top-level statements, and get hands-on experience querying web APIs and iterating quickly.
skills learned: Structure apps with namespaces and classes • Use HttpClient to make API requests
SignalR is an ASP.NET Core library that adds real-time web functionality to your apps, enabling server-side code to instantly communicate with your client. It’s an ideal library for facilitating the lightning-fast communication needed for a real-world Internet of Things project.
In this liveProject, you’ll put SignalR into action to build and implement an airport PA system across the Internet of Things. Your challenge will include creating both the server-side web application using ASP.NET Core with JavaScript front-end and the distributed application that will be deployed on the IoT devices on the ground using .NET Core and Docker. You’ll establish your SignalR setup, enable the transfer of real-time audio data, and enable your IoT applications to both run as a single cluster and deploy on Docker.
skills learned: hosting a SignalR application on a cluster of servers • hosting a server-side SignalIR class
Take your C# skills to the next level by implementing smart change detection on a data retrieval app. As a developer at Ground Truth Consulting, you'll enable an application to automatically check for updates across legislative APIs. Store responses to disk and compare new results to spot differences, send alerts to stakeholders when fresh bills are introduced, and build reusable comparison logic to support future data sources. You’ll then add unit tests to validate critical flows, prevent regressions, and refactor with dependency injection for modular and testable code. Whether you're new to C# or a .NET veteran, this project is ideal for leveling up your skills.
skills learned: Error-handling techniques • File-handling techniques
In this liveProject, you’ll create a continuous integration pipeline for your tests. Continuous Integration (CI) automates the testing of code whenever the code changes. This ensures code quality remains high and encourages regular merging and testing. You’ll use Azure DevOps to create and run a CI pipeline to build code, then run XUnit-based tests, set up filters for different tests, and add code coverage for analysis of run results.
skills learned: set up a CI server to automatically run tests • decide which tests to run on each pipeline • collect and analyze data from your CI run
Level up your C# skills by evolving an API data retrieval prototype into a robust application. As a developer at Ground Truth Consulting, you'll expand the initial Federal Register API demo into a versatile tool to streamline legislative monitoring. This project lets you flex your C# muscles on real-world APIs while prepping for enterprise development. You’ll refactor with classes, tuples, and records for more maintainable code, cache API responses in memory to optimize performance, and integrate the Congress API to showcase multi-source data aggregation.
skills learned: C# data structures like lists and dictionaries • Error-handling techniques
Streamline Budzykfarm’s time management process by eliminating an unnecessary step. Currently, it logs time management data on paper, then enters it later into the accounting system. Your task is to perform the first step for its new farm management web application: Create the web pages that managers and workers will use to enter the necessary data. Using Blazor, you’ll set up this server-side project for development. Then, you’ll lay out the no-frills pages using MudBlazor, ensuring that the pages are easy to use, functional on both computer screens and mobile devices, and ready for future enhancements.
skills learned: clean files and folders in a server-side Blazor project • set up layouts with MudBlazor • set up the UI for future development in Blazor using MudBlazor component library and regular HTML with CSS
Logistica Transport has grown, which means they need to replace their outdated desktop app with a brand new web app solution. In this liveProject, you’ll help them kick off this transformation by swapping their current Excel-based storage system for a mySQL database. You’ll need to create and install the database from scratch, as well as set up the necessary tables to handle the input and output streams of data. This database is a vital foundation for how Logistica’s web app will function.
skills learned: MySQL language
Welcome to Boutique, a software development company that’s working on a project to automate a client’s inspection process. As a software engineer, your task is to create an HTTP API for the project. You’ll set up an ASP.NET Core web host, implementing the first endpoint according to the OpenAPI specification. To verify the endpoint works as intended, you’ll add integration tests, and you’ll use Swashbuckle and API versioning middleware to enable future functionality. When you’re done, you’ll have firsthand experience with important tools—including Postman and Swagger UI—and an API that’s ready for further development.
skills learned: configure and use Microsoft DI • set up an HTTP API host with ASP.NET Core • implement integration tests • set up API versioning • set up Swagger UI using Swashbuckle • use Postman for manual testing of the API
Budzykfarm’s new farm management system has existing Blazor pages, but they don’t do anything just yet. That’s where you come in. First, you’ll set up a SQL Server database and establish procedures for entering the data on the UI pages using Entity Framework (EF) Core. Then, you’ll bind input to the pages’ MudBlazor components. When you’re done, managers at Budzykfarm will be able to easily enter worker data and assign duties.
skills learned: set up a Visual Studio project for an SQL Server database • set up EF Core for use in a .NET 6 project • set up objects in Blazor pages and bind them to inputs • best practices for retrieving data using EF Core • create a new record from references of existing records
Take a trip into the fascinating world of fractals! Here, you’re an art director for a documentary on the 1960s psychedelic movement. Your goal is to wow your audience with a mind-bending title image—a perfect application for fractals. You’ll build programs that create fractals by drawing lines recursively, create ghostly multi-dimensional shapes, and draw escape-time fractals using the Mandelbrot set (the most popular fractal in the world).
skills learned: recursion • pixel manipulation • line-drawing fractals • escape-time fractal
In this liveProject, you’ll use the powerful Quantum SDK from Microsoft to develop a simple quantum application using Grover's search algorithm. This algorithm will be able to generate missing data, such as by taking a query in the form of an ISBN with one or several missing digits, and recovering those digits to return the information about the book with this ISBN. You’ll start simple by implementing the algorithm to recover only a single missing digit, then expand to recovering several missing digits. Finally, you’ll set up a classical query of an online ISBN database to find relevant book information.
skills learned: designing and writing simple Q# code • integrating quantum code with classical pre- and post-processing routines
In this liveProject, you’ll use quantum computing to solve a cryptarithm—a mathematical equation in which digits are replaced by alphabet letters. Your challenges will include figuring out how to represent the problem in a way suitable for Grover’s search algorithm, then implementing the algorithm and writing unit tests to validate your solution.
skills learned: formulating problems in terms of quantum oracles • designing and writing Q# code based on algorithm descriptions • integrating quantum code with classical pre- and post-processing routines
A picture says a thousand words, but make sure they’re the right ones. Today’s cell phones come with amazing digital cameras, but without a guarantee that you’ll never take another bad picture. Learn to use image processing algorithms, geometry, point operations, and filters to transform images by adjusting brightness, contrast, color, size, and shape. You’ll also create interesting effects such as highlighting edges, embossing, and blurring.
skills learned: manipulate image pixels • basic geometric transformations • brightness, contrast, and sharpness • kernels
The development team at Boutique, a software company, is working on a project for automating the inspection process of a client that builds industrial robots. An ASP.NET Core HTTP API has already been set up, and the team has started implementing the domain model entities and persisting them to a SQL database. As part of the team, your task is to implement CRUD (create, read, update, and delete) endpoints for all the entities according to the OpenAPI specification. To achieve persistence, you’ll configure Entity Framework Core and register it in the dependency injection container. You’ll implement a custom JSON converter to support polymorph endpoints in order to handle different types of robots. To verify that your implementation is correct, you’ll write and perform integration tests.
skills learned: interpret an OpenAPI specification • configure and use Microsoft DI • configure routing for endpoints in the HTTP API • use Postman for manual testing of the API • set up and configure validation for incoming data
External services, databases, and other dependencies are hard to run in a predictable way and can often cause test failures when there is no issue in your code. In this liveProject, you’ll isolate unnecessary dependencies and replace them with mock objects that have more manageable behavior. You’ll then be able to develop isolated unit tests, which do not break due to external reasons, are easy to write and run, and have fast execution times.
skills learned: using mocks, stubs, and fakes • mocking frameworks to create isolated and maintainable tests • mocking best practices
Growth means change; for Logistica Transport, that means switching from their old desktop app to a new web app solution. In this liveProject, you’ll put together all of the pieces of this new web app. You’ll learn how to build a React.js app with Visual Studio 2023, set up a form for your users, and master the database magic of CRUD statements like insert, update, and delete to manipulate your database. Finally, you’ll validate your data formats to ensure the application works as expected.
skills learned: NuGet packages • Creating themed React forms • Implementing CRUD features • Implementing form validation
In this liveProject, you’ll step into the shoes of a quantum software engineer and develop a library for state preparation routines. Preparing quantum systems in arbitrary superposition states is a vital step of quantum algorithms. Luckily, the Microsoft Quantum Development Kit libraries offer multiple state preparation routines. You’ll implement a single-qubit state preparation routine and a recursive multi-qubit state preparation routine, before implementing the complete multi-qubit state preparation routine. Finally, you’ll write unit tests for your implementation.
skills learned: developing quantum algorithms to match specified tasks • simplifying code development with the Microsoft Quantum Development Kit • running quantum code simulations
Give Budzykfarm’s managers a view of pertinent data in their new farm management web application. Using MudBlazor and Entity Framework (EF) Core, you’ll create two new pages: one for live work logs and one for historic work logs. To accomplish this, you’ll build template database tables, then add functionality for retrieving and displaying the data.
skills learned: run background tasks in Blazor • update displayed values when data changes
Enter the realm of project management: your job is to oversee the construction of a castle, ensuring that the project is completed on time. Many of the tasks in the schedule are dependent on other tasks, and some will inevitably fail to be done by their due dates, risking the delay of the entire project—and the wrath of the Evil Overlord. To prevent this catastrophe, you’ll perform topological sorting to determine which tasks can be scheduled, use the critical path method to find out which tasks will be delayed by the delay of another task, and build PERT and Gantt charts to see critical paths and task dependencies in a visual way.
skills learned: topological sorting • PERT charts • critical path methods • Gantt charts
As a software engineer for Boutique, a software development company, you're tasked with adding search, upload, and download functionality to an ASP.NET Core HTTP API that Boutique is building for its client, RobotsInc. To enable the frontend to navigate through existing data structures, you’ll add several child endpoints, as well as an endpoint for criteria-based searches. You’ll also implement endpoints for binary photo uploads and downloads according to the OpenAPI specification, and you’ll verify your implementations are correct by testing manually with Swagger UI as well as with automated integration tests. When you’re finished, RobotInc’s employees will be able to upload photos and notes to document and report on their robot inspections.
skills learned: interpret an OpenAPI specification • configure and use Microsoft DI • configure routing for endpoints in the HTTP API • use Postman for manual testing of the API • set up and configure validation for incoming data • implement binary file upload and download
The shortest distance between two points…is the most cost-effective. You’re the fleet manager at APS (Acme Parcel Service), a company whose fleet of thousands of trucks drives more than 10 million miles per year. Your goal is to write a program that finds the shortest path between stops, shaving a few percent off the total mileage—and scoring points with your CEO. You’ll learn to store networks in files, draw networks in WPF, test your networks, select start and end nodes, and find the shortest path between them using shortest path algorithms.
skills learned: networks • network traversal • node marking • label setting and label correcting algorithms
Deliver more than just healthy food to BellyBox’s customers. Startup BellyBox was founded by .NET engineers who chose the .NET platform to launch their online grocery delivery application. As a developer, your task is to create customer pages and user interface components that serve up a five-star user experience. You’ll set up a frontend Blazor WebAssembly project, connect it to an ASP.NET Web API server, and build components to display a highly customized interactive storefront. You’ll learn component architecture and state management essentials, as well as communicating with data services using HttpClient.
skills learned: component model basics • dependency injection • calling HTTP services • data binding • state management basics
Boutique, a software development company, has a fully functional ASP.NET Core HTTP API for a client’s project. As a software engineer for Boutique, it’s your job to improve the API’s code and prepare it for production. Using Serilog, you’ll add logging functionality to help determine the causes of issues that may arise in production. To allow the web UI to be hosted someplace other than your HTTP API, you’ll enable cross-origin resource sharing (CORS) middleware. You’ll create custom middleware for handling the cross-cutting concern of database transactions. To further improve the quality of the codebase, you’ll create a custom filter that handles business exceptions in a general, consistent way. When you’re done, the API will be robust, easy to maintain, and production-ready.
skills learned: set up and configure logging with Serilog • understand how the ASP.NET Core processing pipeline works • create middleware for cross-cutting concerns • set up and configure CORS
Upgrade a legislative monitoring app with advanced C# features like LINQ and lambdas. As a developer at Ground Truth Consulting, you'll implement detailed change comparisons between API results. You’ll go beyond basic difference detection to provide insight into exactly what changed. Analyze bills line by line to spotlight new amendments, build flexible queries with LINQ to extract and compare key fields, and implement comparison logic concisely with lambdas and delegates. Plus, master professional techniques like parsing complex JSON responses and make an impact by shipping an automated legislative tracking tool ready for production use.
skills learned: LINQ • Delegates and lambdas • Unit testing
In this liveProject, you’ll explore quantum mechanical phenomena for information transmission. You’ll go hands on with two quantum communication protocols—quantum teleportation and superdense coding. You’ll implement each protocol using Q# and simulate it running, before visualizing the intermediary states of the quantum system.
skills learned: designing and writing simple Q# code • running simulations of quantum code using a full state quantum simulator • inspecting quantum states during a simulation
Logistica Transport is on the rise—and they need a new web app solution that can do what their old desktop app can’t. That app is almost ready, but it needs a final round of testing to make sure it’s ready to go to its users. That’s where you come in! You’ll learn to utilize mocks and stubs, as well as the Jest and React Testing Library, to spot errors and make sure the app is production-ready. You’ll even test and assess the app’s performance using BenchmarkdotNET.
skills learned: Visual Studio debugging tool • Testing applications • Checking application performance • Entering application accessibility features
Help Budzykfarm’s workers get to work: Using Blazor, MudBlazor, EF Core, and SQL Server, you’ll set up worker identity verification and gather the information that the other features will rely on. Then, you’ll create the initial log records that will keep a running history and enable workers to retrieve their assignments and close the work view so the system is ready for the next worker as well as the next workday.
skills learned: navigate between pages in server-side Blazor inside C# methods • update existing data records • manage component states
Exciting things are happening at Generigloop, and the senior vice executive’s undersecretary needs help keeping things organized. They’ve asked you, their junior assistant, to create a tool for drawing organizational charts. Seizing the opportunity to impress—and learn valuable skills while getting paid—you volunteer to research what it will take to create a chart-drawing tool using Python and C#. You’ll learn techniques for drawing family trees, hierarchical component diagrams, document hierarchies, and other tree structures.
skills learned: tree data structures • tree terminology · recursion • tree traversals • sorted trees • drawing in WPF
Improve the reliability of BellyBox’s online grocery delivery application. As a developer for the startup, you’ll validate the functionality of the Blazor application using .NET testing methodologies. You’ll create and configure a Blazor test project using the bUnit test framework, write component tests using xUnit and bUnit to test layout components, use AutoData to test data-bound components, and use fakes and mocks to test components that depend on external data. By the end of this liveProject, you’ll have fully tested the application’s UI components and have full confidence in the application’s reliability.
skills learned: write Fact and Theory component tests • simplify tests using AutoFixture and Telerik JustMock • abstract services with interfaces
In this liveProject, you’ll learn to write effective unit tests for an existing ASP.NET e-commerce application. You’ll start by analyzing where unit tests can be implemented, then write and run those tests using Visual Studio and best practices. You’ll refactor those tests to the Builder pattern in order to reduce test code and improve maintainability. Finally, you’ll set up integration tests for code that rely on external dependencies, and use your tests to guide the creation of new functionality for your app.
skills learned: writing and running unit tests • refactoring tests to patterns • creating new functionalities using tests
Maximize productivity with maximum flow algorithms and some basic C# programming. You play the role of a nuclear power plant operations manager. Your challenge is to assign jobs to your group of employees, and your goal is to achieve maximum productivity. You’ll build a program that generates networks for testing maximal flow algorithms, as well as a program that finds maximal flows through a network of capabilities. Then, you’ll put your maximal flow program to work to match employees with jobs while ensuring that as many jobs as possible are completed.
skills learned: generate networks • maximal flows • assign work
In this liveProject, you’ll refactor poorly written legacy code in a way that lets you make changes without fear of bugs. You’ll fix the internal structure of your code, make sure code functions according to your needs with integration tests, and make in-depth changes supported by your testing suite. Finally, you’ll develop new features inside code without major changes, and replace dependencies with mock objects to help test previously unmaintainable code.
skills learned: refactoring with Visual Studio • making improvements without changing code • intent replacing problematic dependencies with fake objects
In order for the Llama-based chatbot app to answer chemistry questions reliably and without hallucination, you need to ground and supplement it with facts and knowledge. That’s why your local school district has tasked you with using RAG (Retrieval Augmented Generation) to help improve the capabilities of the chemistry chatbot app. RAG allows an LLM to search a knowledge base to help answer questions, avoiding unfortunate hallucinations. You’ll create a vector database for chemistry textbooks as the knowledge base, establish an RAG API server for the chatbot, and then deploy your new bot to both the web and Discord.
skills learned: Create embeddings from a body of text • store embeddings in a vector database • build a RAG LLM application • create a Discord chatbot
Machine learning and the growing availability of diverse financial data has created powerful and exciting new approaches to quantitative investment. In this liveProject, you’ll step into the role of a data scientist for a hedge fund to deliver a machine learning model that can inform a profitable trading strategy.
You’ll go hands-on to build an end-to-end strategy workflow that includes sourcing market data, engineering predictive features, and designing and comparing various ML models. Throughout the liveProject you will work with libraries and tools from the industry-standard Python data ecosystem. You’ll tackle challenges such as training a regularized linear regression model, tuning a gradient boosting ML model, and evaluating the performance of your strategy—all essential skills for success in this highly lucrative area of machine learning.
skills learned: engineer financial features • build and test fundamental and advanced ML models to predict asset returns with scikit-learn and LightGBM • develop a trading strategy by defining rules that translate model predictions into trades
Feature extraction is an essential part of detecting deepfake videos. In this liveProject, you’ll analyze both deepfaked and real video data in order to determine what features are common in faked videos. You’ll then compute those features for faces detected in the videos to determine which are fake and which are real.
skills learned: understand the differences between deepfake faces and real faces • compare images and their histograms
You’re a data scientist at Finative, an environmental, social, and governance (ESG) analytics company that analyzes a high volume of data using advanced natural language processing (NLP) techniques in order to provide its clients insights for sustainable investing. Recently, your CEO has decided that Finative should increase its own financial sustainability. Your task is to classify sustainability reports of a publicly traded company in an efficient and sustainable way.
You’ll learn the fundamental mathematics—including backpropagation, matrix multiplication, and attention mechanisms—of Transformers, empowering you to optimize your model’s performance, improve its efficiency, and handle undesirable model predictions. You’ll use Python’s pdfplumber library to extract text from a sustainability report for quick delivery to your CEO. To further increase efficiency, you’ll save training time by using a language model that’s been pre-trained with ESG data to build a pipeline for the model and classify the sustainability report.
skills learned: understand the attention mechanism (Transformers) • build a model pipeline with Hugging Face • extract and prepare data from PDF files
In this liveProject, you’ll step into the boots of an investigator trying to find the anonymous author of a seriously defamatory blog post. You’ve narrowed down your list of suspects, acquired a dataset of writing samples, and now plan to find the culprit using a custom machine learning project. Your challenge is to build an authorship analysis model that will match a sample to the defamatory blogpost and reveal the guilty party. To do this, you’ll need to extract data from a corpus of documents, build a model that can learn authorship style, scale the model to handle hundreds of suspects, and finally develop a user-friendly program that will allow non-technical colleagues to make use of your findings.
skills learned: extract features from text using scikit-learn and spaCy • build a predictive classification model • visualize authorship styles with an interactive plot • incorporate your trained model into a user-friendly program
In this liveProject, you’ll build a Bayesian dynamic linear model that can take account of sudden state space changes and rapidly react to dramatic trend changes. These trend changes could take many forms—from heightened demand during a major sporting event, to a global pandemic that causes cancellations to skyrocket. You’ll use the PyDLM library to generate forecasts that can dynamically adapt to the unforeseen, and quickly shift to making accurate predictions for a new reality.
skills learned: build a simple DLM model • build Bayesian dynamic linear models with the PyDLM library
In this liveProject, you’ll use PyMC3 to generate a posterior distribution of hotel cancellations. This will allow you to build a predictive model that can update its predicted probabilities by incorporating new information. You’ll master methods for modelling mean and standard deviations based on the selected prior values, generating distributions to determine if data follows an AR(1) process, modeling of stochastic volatility and generalized linear modelling with PyMC3.
skills learned: manipulating a dataset with pandas • probabilistic time series analysis with PyMC3 • generating posterior distributions • modeling autoregressive processes
Recommender systems are one of the most popular and lucrative uses of machine learning, allowing businesses and organizations to give personalized suggestions to their customers.
In this liveProject, you’ll use common tools of the Python data ecosystem to design, build, and evaluate a movie recommendation model for the movie website. You’ll kick off your project by building simple genre charts, then work with existing movie rating data to implement personalized recommendations for each customer. When you’ve completed this hands-on and interesting project, you’ll have mastered a cornerstone technique of machine learning that’s in demand across companies and industries.
skills learned: load and analyze a dataset • train a machine learning model • evaluate a machine learning model • use a trained ML model on a website • collaborative filtering
In this liveProject, you’ll step into the role of a natural language processing data scientist working for Stack Exchange. Stack Exchange runs a network of question-and-answer sites on diverse topics ranging from programming to cooking. Your boss wants you to create language models that are tuned to the statistical, probabilistic, and technical jargon present in different Stack Exchange sites.
Language is domain-specific—an insurance company’s documents will use very different terminology than a post on a social media site. Because of this, off-the-shelf NLP models trained on generic text can be inaccurate for specialized domains such as healthcare, legal, clinical, and agricultural language. Your goal is to build a language model capable of query completion and larger text generation for Stack Exchange sites. At the end of this project, you will be able to build the foundations of any domain-specific NLP system by creating a robust and efficient language model using statistical and deep learning techniques.
Updated: March 2022
skills learned: data manipulation with NumPy and pandas • text preprocessing with NLTK • train an RNN with PyTorch • score and evaluate language models
In this liveProject, you’ll take on the role of a full-stack developer working for a school district. Your district wants to further student learning by developing its own large language model (LLM) applications to assist students, parents, and teachers. Your goal is to develop an MVP of this by creating a chatbot that can answer questions and engage in follow-up conversations. You’ll utilize the open source Llama LLM from Meta AI to do this. Your model will need to run with very low resources—it needs to work on the school’s outdated computers—and be equipped with an intuitive user interface. Let’s get started!
skills learned: Quantize an open-source LLM • build and use prompts and prompt templates for a chatbot LLM • build a web UI for the chatbot
In this liveProject, you’ll close the gap between “data analyst” and “software engineer” by building a working data platform. You’ll join up with AnomalousDex Inc., a startup that specializes in personalized end-to-end data products, and create a working prototype of their anomaly detection platform to showcase to prospective customers. This requires connecting up multiple cross-discipline components, from data science to systems management.
This platform consists of three principal components: a service that serves the anomaly detection data model, the modeling platform, and a dashboard visualization tool. Your challenge is to develop all of these features, going hands-on with software architecture, data engineering, microservices, and dockerizing. You’ll also dive into the essentials of monitoring and metrics, and even train an unsupervised learning anomaly detection model!
skills learned: design a data platform architecture consisting of several Dockerized components • train an anomaly detection model with scikit-learn and deploy it in a web service • monitor the web service and anomaly detection model with Prometheus and Grafana
In this liveProject, you’ll investigate seasonality in hotel cancellations by building an ARIMA model that can predict cancellations on a weekly basis. You’ll learn how to manipulate a dataset with pandas in order to form a weekly time series, before going on to make your first predictions.
skills learned: dataset manipulation with pandas • time series forecasting with pmdarima
Congratulations! You’ve just been hired as a data engineer for a mobile game development studio. The company’s modern data platform architecture includes an Amazon Athena data lake and an AWS Redshift data warehouse solution. Your task is to enable batch processing of revenue transaction data by creating an end-to-end data pipeline, connecting various data sources—including user engagement events, stage controls, and public chat messaging—to the lake house solution. Using AWS CloudFormation, you’ll provision the resources required for the data pipeline. You’ll connect a MySQL data source to the AWS S3 Data Lake and transform data in the data lake using Amazon Athena. You’ll wrap up the project by creating a dynamic analytics dashboard with AWS QuickSight. When you’re done, you’ll have built a batch-processing data pipeline, start to finish, using Amazon Athena.
skills learned: create a batch ETL pipeline from RDS (MySQL) to AWS S3 • extract and process data using AWS Lambda • run SQL queries programmatically in the cloud • create data environment configurations using YAML files • test AWS Lambda locally • create an optimized ICEBERG table in Athena
As a data engineer for a mobile game development studio, your task is to create a data streaming pipeline that collects and processes large streams of data records in real-time for lightning-fast analytics. Your company’s modern data platform architecture includes an Amazon Athena data lake and an AWS Redshift data warehouse solution. To store files, you’ll create an AWS S3 bucket, and you’ll create an AWS Kinesis delivery stream by using the boto3 library to connect to AWS Kinesis endpoints and send event data to the service. You’ll provision AWS Redshift resources and connect them to your AWS Kinesis Data Stream to analyze user behavior data to understand the user's journey inside the app. When you’re done, you’ll have a simple yet reliable data streaming pipeline that prevents resource shortages and transforms data in real-time—while it’s still relevant—ensuring more accurate data.
skills learned: create streaming data pipelines on AWS using Kinesis and Redshift • provision the resources for your data pipeline using AWS Kinesis Data Stream • use AWS Lambda to simulate an event stream • create an AWS Redshift Serverless resource using AWS CloudFormation to transform data in AWS Redshift
In this liveProject, you’ll investigate reinforcement learning approaches that will allow autonomous robotic carts to navigate a warehouse floor without any bumps and crashes. Your challenges will include teaching warehouse navigation with tabular Q-learning, leveraging neural networks and Deep Q-Network models to avoid collisions, and putting together a simulation environment to handle custom reinforcement learning problems.
Please note: This project recommends using Colab Pro, which is an additional cost outside this project.
skills learned: implementing Q-learning • improving algorithm performance with deep reinforcement learning • creating a reinforcement learning environment in OpenAI Gym
In this liveProject, you’ll take on the role of an engineer at AISoft, where you'll be part of two dynamic teams: MLOps and Core-ML. On the MLOps team, you'll utilize software engineering techniques to ensure your models are not only accurate but also scalable, reliable, and maintainable. You’ve been assigned two important support tasks for the Core-ML team.First, you'll utilize the Gradio Python library to create an interactive web user interface that runs MRI classification and segmentation transformer models in the background, and then you'll build a pipeline that provides interpretability to the decisions of a construction vehicle classification model.
skills learned: build a web interface for MRI classification and segmentation using Gradio • run a vision transformer model for MRI classification and a Segformer or Maskformer model for MRI segmentation via the interface • implement Grad-Cam and LIME to explain transformer predictions
Face detection has numerous applications across software and is an essential part of the pipeline for detecting deepfake videos. In this liveProject, you’ll implement a component that detects faces in videos, and normalizes them to the same size and visual appearance. This component is a vital foundation for a deepfake detection system.
skills learned: detect and crop faces • normalize and scale faces • align faces according to the eyes locations
Finative, the environmental, social, and governance (ESG) analytics company you work for, analyzes a high volume of data using advanced natural language processing (NLP) techniques to provide its clients with valuable insights about their sustainability. Your CEO has concerns that some of the companies Finative analyzes may be greenwashing: spreading disinformation about their sustainability in order to appear more environmentally conscious than they actually are.
As a data scientist for Finative, your task is to validate your sustainability reports by creating and analyzing them. You’ll compute conditional probability with Bayes’ Theorem, by hand, to better understand your model’s performance through metrics such as recall and precision. You’ll learn an efficient way to prepare your data from different sources and merge it into one dataset, which you’ll use to prepare tweets. To successfully classify the tweets, you’ll use a pre-trained large language model and fine-tune it using the Hugging Face ecosystem as well as hyperopt and Ray Tune. You’ll use TensorBoard and Weights & Biases to analyze and track your experiments, and you’ll analyze the tweets to determine whether enough negative sentiment exists to indicate that the company you analyzed has been greenwashing its data.
skills learned: conditional probability • fine-tuning a large language model • hyperparameter optimization • monitor training experiments
In this liveProject, you’ll develop a machine learning solution that can identify the difference between faces in deepfake videos and real faces. You’ll use a support-vector machine (SVM) classifier approach to determine which videos have the artifacts associated with deepfakes, and combine face detection, feature extraction, and your SVM classifier together in one pipeline to create your detection system.
skills learned: Training an SVM classifier resulting in deepfake detection system • Evaluating a system on the test set
Failure is not an option for Sigma Corp. As a lead data scientist for the large conglomerate of energy production companies, it’s up to you to help ensure interruption-free operations by developing a means for detecting anomalies that signal potential problems. Using metrics, including the receiver operating characteristic (ROC) curve and the area under curve (AUC) score, you’ll evaluate anomaly detection algorithms. You’ll build a z-score anomaly detection algorithm, which focuses on a single feature and provides a simple benchmark, and you’ll apply it to a dataset to establish a reference for comparison. When you’re finished, you’ll have a firm grasp of z-score anomaly detection, classification error categories, and evaluating anomaly detection algorithms.
skills learned: z-score method • evaluate algorithms using ROC AUC metrics • basic synthetic anomalies
Sigma Corp, a large conglomerate of energy production companies, has recently implemented anomaly detection algorithms and is generally pleased with their performance. However, analysts report that not all anomalies are being identified and the algorithms are too slow at times. As a lead data scientist at Sigma, it’s up to you to address these concerns. To increase the robustness of the algorithms, you’ll implement and optimize the probability-based Empirical Cumulative distribution-based Outlier Detection (ECOD) method, an alternative to statistical methods. You’ll benchmark the ECOD method in order to compare its performance with the statistical MD and PCA methods Sigma is currently using. When you’re finished, you’ll have firsthand experience implementing the highly efficient ECOD method to detect anomalies in multidimensional data.
skills learned: ECOD method
In this liveProject, you'll take over administering a zoo automatically by crafting three different kinds of expert systems to help customers determine what animal they’re looking at. An expert system captures an expert's know-how by encoding it in a knowledge base. You’ll create a prototype 20-Questions-style game expert system, then expand it with logical rules and Boolean statements to build more powerful and realistic expert systems.
skills learned: expert system concepts • the Animal Game
In this liveProject, you’ll create a recommendation engine for an online store using the Fast.ai library. You’ll utilize a dot product and a neural network to come up with the latent factors in a rating matrix, and compare and contrast them to determine which is likely to deliver the best recommendations. You’ll need to select and clean your data, pick the right methods, then create the functions that you need to recommend products based on predicted ratings.
skills learned: selecting, cleaning and choosing data for collaborative filtering • matrix collaborative filtering techniques using Fast.ai collab_learner class • learning latent factors for collaborative filtering recommenders
Your local school district has an LLM chatbot specialized in chemistry. But it sometimes answers questions entirely unrelated to chemistry! To improve the safety of this LLM application, you are asked to come up with a new LLM that would classify student questions and return machine-readable (JSON) messages to the application frontend so that the application can decide whether to answer this question. To accomplish that, you need fine-tuning to "teach" the model how to classify questions through many examples, which themselves are generated by a Llama-based LLM, and to always respond with JSON.
skills learned: Develop data set of finetuning • Finetune an LLM
In this liveProject, you’ll get hands-on experience using Jupyter Notebook in a real-world data science project. You’ll train a simple KNN classifier and use Jupyter, IPython, and the easy-to-use Markdown markup language to document and share your work. Your challenges will include customizing your notebooks, incorporating your notebooks into a data science project, and sharing your projects with the community on GitHub.
skills learned: collaborate on Jupyter Notebook projects • customize your notebooks • work with Jupyter Notebook extensions
In this liveProject, you’ll join BrainAI’s MRI data analysis team. BrainAI needs you to develop a state-of-the-art AI module utilizing vision transformer models to detect brain tumors with exceptional accuracy. Armed with Python tools like Hugging Face Transformers, PyTorch, and more, you'll detect the presence or absence of tumors within human-brain MRI datasets. With Google Colab's GPU computing resources, you'll utilize deep learning to try and achieve a 95%+ accuracy rate.
skills learned: set up training, test, and validation datasets with biomedical (MRI) images • train and evaluate a vision transformer model for brain tumor classification
In this liveProject, you'll pioneer the development of cutting-edge MRI segmentation algorithms using transformer architecture for computer vision company VisionSys. Manual segmentation is labor-intensive and expensive, so you’ll be developing a custom model that can do it for you. You'll train and evaluate SegFormer and MaskFormer models to identify brain tumor regions with over 90% accuracy. With Python tools like Hugging Face Transformers and Google Colab's GPU computing resources, you'll create pipelines, preprocess data, and showcase sample predictions and quantitative results.
skills learned: set up training, test, and validation datasets with biomedical (MRI) images • train and evaluate Segformer and Maskformer models for brain tumor segmentation
Red alert! One of the energy production companies managed by Sigma Corp has suffered an outage. An investigation has led to the conclusion that the facility’s anomaly detection mechanism failed to detect early signals due to a sudden change in the distribution of the analyzed data. As a lead data scientist at Sigma, you’ll build an Isolation Forest algorithm, which is less likely than the Empirical Cumulative distribution-based Outlier Detection (ECOD) method to fail in such scenarios. To gauge how robust your method is, you’ll benchmark your algorithms against adversarial scenarios, synthetic anomalies, and standard datasets. When you’re done, you’ll have practical experience creating, using, and testing the Isolation Forest algorithm as an effective alternative to ECOD in circumstances where the data distribution changes.
skills learned: apply the Isolation Forest method • evaluate algorithms under adversarial distribution change
At Finative, an ESG analytics company, you’re a data scientist who helps measure the sustainability of publicly traded companies by analyzing environmental, social, and governance (ESG) factors so Finative can report back to its clients. Recently, the CEO has decided that Finative should increase its own sustainability. You’ve been assigned the task of saving digital storage space by storing only relevant data. You’ll test different methods—including keyword retrieval with TD-IDF, computing cosine similarity, and latent semantic analysis—to find relevant keywords in documents and determine whether the documents should be discarded or saved for use in training your ML models.
skills learned: clean data with regular expressions • mathematical concepts and how and when to apply latent semantic analysis and cosine similarity
Help your company’s messenger application provide better product recommendations for its customers. As a data engineer at the company, your task is to create a machine learning (ML) pipeline using the Amazon Personalize service. You’ll use CloudFormation templates to create a repository for the required AWS infrastructure resources, and AWS Glue to transform the raw user engagement data. Using Amazon Personalize, you’ll import a dataset and create and train the Amazon Personalize ML model for your users’ recommendations. To complete the project, you’ll create a workflow to train your Amazon Personalize recommendation solution using AWS Step Functions and user engagement events. When you’re done, you’ll have designed an ML pipeline using the Amazon Personalize API that provides product recommendations that suit your users best.
skills learned: create a data lake S3 bucket using an AWS CloudFormation template (Infrastructure as Code) and prepare data using AWS Glue • design a data pipeline to create and train an Amazon Personalize solution • deploy the pipeline using AWS Step Functions and AWS CloudFormation (Infrastructure as Code)
Preventing operation failures and interruptions is mission-critical at Sigma Corp. The large conglomerate of energy production companies has recently implemented a z-score anomaly detection algorithm that focuses on a single feature. Now that the algorithm has proved its value, members of Sigma have requested additional algorithms that are just as simple to use, but that can handle multidimensional data. As a lead data scientist at Sigma, you’ll implement the Mahalanobis distance (MD) method and the principal component analysis (PCA) method as you build anomaly detection algorithms for multidimensional data. To gauge the performance of your algorithms, you’ll test them against a benchmark dataset as well as synthetic anomalies generated by your own algorithms. When you’re done, you’ll have firsthand experience building anomaly detection algorithms for multidimensional datasets as well as testing anomaly detection algorithms against both benchmark datasets and synthetic anomalies.
skills learned: PCA method • Mahalanobis method • evaluate algorithms using correlated synthetic anomalies
Unexpected bias in machine learning models reduces accuracy, produces negative real-world consequences, and in the worst cases, entrenches existing inequalities for decades. Audits that can detect and mitigate this unwanted bias are an essential part of building and maintaining reliable machine learning systems.
In this liveProject, you’ll take on the role of a data scientist running a bias audit for the World Health Organization’s healthcare models. You’ll get to grips with state-of-the-art tools and best practices for bias detection and mitigation, including interpretability methods, the AIF-360 package, and options for imputing membership of a protected class. These tools and practices are placed in the context of a broad universe of bias where geopolitical awareness and deep understanding of the history and use of your particular data is key.
skills learned: biasing and debiasing ML models • using SHAP to interpret the underlying logic behind a ML model • using AIF360 to detect and mitigate unwanted bias • auditing techniques for unknown at-risk populations
In this liveProject, you’ll build neural nets for a bank that are capable of classifying the numbers written on deposit slips. Customers often write out their important account details by hand, and you need to create a model capable of effectively reading their handwriting. You’ll use a feedforward network trained with backpropagation to identify hand-drawn digits with a high percentage of accuracy. Plus, this project contains an optional bonus milestone! Further your knowledge of neural networks by using the TensorFlow and Keras libraries to create an alternative and more flexible version of your first model. You’ll get hands-on experience with these tools' standard libraries, and with your new model you will be able to easily analyze the network's success rate and experiment with different activation functions.
skills learned: neural network concepts • feed-forward neural networks • backpropagation
In this liveProject, you'll spearhead the development of AI-aided surveillance software for construction site supervision. You’ll build two computer vision applications capable of detecting construction vehicles and their types across a large worksite and a more powerful model that can detect building defects such as cracks and fissures. Start by working with a pre-trained DETR model, then explore the Roboflow platform to assist you as you create a multi-class object detection dataset from multiple datasets with non-identical classes. With these datasets, you will train different transformer models for object detection to identify construction vehicles and cracks in buildings.
skills learned: import computer vision datasets from other platforms like Roboflow• merge two or more object detection datasets and their annotations on Roboflow • set up training, test, and validation datasets for object detection • train and evaluate three variants of DETR models for construction vehicle detection
Time series analysis is an essential tool for data forecasting, allowing data analysts to make predictions about the future events and track relationships between data. In this liveProject, you’ll utilize the Python data ecosystem and time series analysis to analyze the spread of the COVID-19 virus in different parts of the globe.
Your goal is to make near-future predictions about virus spread based on your available data. You’ll start with an exploratory data analysis into the types of data you have access to, establishing the kind of questions it can reasonably answer. You’ll then develop an ARIMA model for time-series forecasting. Finally, you’ll develop an interactive Voilà dashboard using ipywidgets that will allow stakeholders to access and understand your analysis.
skills learned: time series forecasting with ARIMA • univariate and bivariate analysis • data visualization
The Python data science ecosystem is a powerful and open-source toolset utilized daily by thousands of data scientists and machine learning engineers. But with so many Python machine learning libraries to choose from, which tool works best for your needs?
In this liveProject, you’ll go hands-on with the scikit-learn and H2O frameworks, using them both to build working machine learning classifiers. You’ll use raw financial data and the tried-and-true random forest model to predict the chance of financial loan defaults. Once you’ve built your models, you'll compare implementations to find out which works best and evaluate your results against existing hard-coded tools.
skills learned: exploratory data analysis • working with pandas DataFrames • feature engineering • machine learning modeling with random forests • optimizing machine learning • model evaluation and comparison • deploying a model in a Python module
A big city receives thousands of daily calls to its emergency services, reporting everything from illegal parking to life-threatening emergencies. In this liveProject, you’ll take on the role of a data scientist called in to advise on how the city can better allocate resources for these safety events. Your challenge is to create a machine learning model that can predict when and where different emergencies will occur. To do this, you’ll analyze data to identify trends, build and enhance a predictive model, and make your model explainable with model interpretability tools. You’ll also perform checks to ensure that the model won’t lead to bias or discrimination, and tweak your model so it can account for major lockdown events such as a pandemic.
skills learned: using machine learning to analyze and visualize location-based and time dependent data to make predictions • interactive data visualization • evaluating risks of bias and discrimination in production models
Step into the role of data scientist at Finative, an analytics company that uses environmental, social, and governance (ESG) factors to measure companies’ sustainability, a brand new, eco-focused trend that's changing the way businesses think about investing. To provide its clients with the valuable insights they need in order to develop their investment strategies, Finative analyzes a high volume of data using advanced natural language processing (NLP) techniques.
Recently, your CEO has decided that Finative should increase its own sustainability. Your task is to develop a method to optimize the runtime for the company’s machine learning models. You’ll apply principal component analysis (PCA) to the data in order to speed up the ML models. To classify handwritten digits and prove your theory that PCA speeds up ML algorithms, you’ll implement logistic regression with scikit-learn. You’ll use the explained variance ratio to gain an understanding of the trade-offs between speed and accuracy. When you’re done, you’ll be able to present your CEO with proof of PCA’s efficiency in optimizing runtime.
skills learned: algorithm optimization with principal component analysis (PCA) • matrix manipulation with NumPy • nuances of scikit-learn's PCA library
In this liveProject, you’ll build a Prophet model that can forecast airline passenger numbers using data from the DataSF portal. The hotel you work for believes that analyzing the travel trends of US customers will help them forecast potential travel to Europe, and bookings in the hotel. You’ll enhance your model with "changepoints" that mark a significant change in trends, and make adjustments so your model can account for uncertainty in the trend and seasonality components.
skills learned: implementing prophet models • configuring changepoints • analyzing time series data with uncertainty interval configuration
In this liveProject, you’ll develop an AI driving agent that can simulate independent driving. Your agent should be able to handle changing lanes, navigating roundabouts, and even self-parking. In order to create this complex agent, you’ll use powerful reinforcement learning techniques including model-based learning, model-free learning, and simulation-search/planning algorithms. Go hands-on to train your AI in AI Gym on Google Colab, improve your model’s performance, and provide professional-level documentation of your work for your colleagues.
skills learned: working with OpenAI Gym • developing reward-shaped training agents • using rl-agent and stable-baselines packages to directly train models
This liveProject puts you on the front lines at an indie bookstore, where poorly scrawled notes threaten to bring sales to a standstill. Learning classification algorithms from the ground up, you'll use four different and surprisingly simple classifiers to develop an AI solution that turns illegible scribbles into recognizable numbers.
skills learned: simple classification algorithms • K-nearest neighbors (KNN) • K-means • Naïve Bayes • hierarchical clustering
In this liveProject, you’ll create a product recommendation engine for an online store using collaborative filtering techniques from the Surprise library. You’ll work with Amazon review datasets to create your data corpus, and identify which would be best for a collaborative filtering recommender. You’ll then use two different approaches—neighbourhood-based and matrix factorization—to implement different solutions to the rating matrix completion problem. You’ll learn how to select and clean the necessary data for these different approaches. When you’re finished, you’ll have built a system that can predict the rating for a product a user has not yet purchased.
skills learned: selecting, cleaning and choosing data for collaborative filtering • neighborhood and model based collaborative filtering techniques with the Surprise library
In this liveProject, you'll implement particle swarm optimization and the Boids algorithm to develop computational models to track flocks of finches. You’ll start with a simple flock simulator, then modify it to adapt to obstacles, take a different approach with Gravity Boids, and finally use a swarm-inspired algorithm to find the highest point on a complex mathematical surface. You’ll soon have an algorithm that can predict the movements of everything from flocks of finches to swaying concertgoers!
skills learned: swarms • modeling complex systems • particle swarm optimization (PSO)
Forecasting is one of the most useful techniques a data scientist can bring to an organization. By making predictions from complex data, they can guide policy and resource management and allow businesses to plan and prepare for the future.
In this liveProject, you’ll take on the role of a data scientist who’s been tasked with forecasting the future consumption of an energy company’s customers. Energy consumption is seasonal and complex, and so you’ll be using the powerful Python ecosystem to tame your data and make your predictions. Your challenge is to use regression and time series techniques to forecast and visualize hourly energy usage for millions of customers, and present your findings in a clear report to allow your bosses to oversee resource allocation.
skills learned: visualizing complex relationships between variables and across time • build linear regression and time series models (exponential smoothing, ARIMA) with statsmodels • adding intervention terms to time series models
In this liveProject, you’ll combine the power of deep learning with probabilistic modeling. You’ll build a structural time series model that can develop probabilistic forecasts of hotel cancellations, and use this model to identify anomalies across your cancellation data. You’ll perform a similar analysis of an air passenger dataset, and then use Bayesian Switchpoint analysis to determine the approximate time interval in which searches for the term “vacation” declined.
skills learned: structural time series modeling • forecasting and detecting anomalies • conduct Bayesian Switchpoint Analysis
In this liveProject, you’ll fill the shoes of a developer for an e-commerce company looking to build a machine learning solution to help identify bad product reviews. If one of your company’s products receives too many bad reviews, it’s policy to take it down from the e-commerce store. Until now this process has been manual—but your boss has decided that this is too expensive and time-consuming.
Your mission is to automate this process, dramatically increasing the speed of identifying bad reviews, and decreasing the cost to your company. To complete this project you will have to train a machine learning model to recognize and rank positive and negative reviews, expose this model to an API so your website and partner sites can benefit from automatic rankings, and build a small webpage that can run your model for demonstration.
Updated March 2022
skills learned: use an existent sentiment classification API • create a web API to expose an ML model • build a simple demo website
In this liveProject, you’ll take on the role of a data scientist employed by the cybersecurity manager of a large organization. Recently, your colleagues have received multiple fake emails containing links to phishing websites. Phishing attacks are one of the most common—and most effective—online security threats, and your manager is worried that passwords or other information will be given to an attacker. You have been assigned the task of creating a machine learning model that can detect whether a linked website is a phishing site. Your challenges will include loading and understanding a tabular dataset, cleaning your dataset, and building a logistic regression model.
skills learned: work on tabular datasets with pandas and NumPy • build a logistic regression classifier • use machine learning for security
You’re the star data engineer at Free Power Corporation Limited (FPCL). The London-based power company is interested in gaining insight into its customers’ energy usage patterns, and it’s up to you to deliver a data-rich solution that satisfies the requirements of FPCL’s various teams. You’ll create a streaming Spark application to read the consumer event stream from Kafka, you’ll add information that helps the teams determine when data was generated, ingested, and processed, and you’ll write logic to reorder any late or out-of-order data. To provide vital household energy consumption statistics to the sales and electrical engineering teams, you’ll join Kafka data streams and perform complex computations on the resulting stream. To be sure your solution is ready for the teams to use, you’ll test it on the local Spark cluster. When you’ve finished, you’ll have learned advanced stream processing skills that empower you to meet the different business requirements of various enterprise departments.
skills learned: perform complex arbitrary stateful computation on streams (such as handling out-of-order data and custom computation) • set up a Spark cluster • test your solution on the local cluster
Apache Camel is a lightweight and easy to use integration framework that forms the backbone of numerous distributed systems. In this liveProject, you’ll go hands-on with Apache Camel to build a working medical registration system from scratch.
Your system will help a busy hospital unite laboratory information systems, patient records, and practice management systems that track appointments and finance. Your challenges will include developing API and integration challenges for a new patient portal, and integrating it into your records system. This kind of IT portal is in high demand from any industry that wants to streamline its information, and automate costly human-fronted customer services.
skills learned: integrate heterogeneous systems with Camel • implement Camel Routes using Java DSL • expose a REST API, messaging, and other kinds of endpoints • deploy Camel routes to cloud environments
You’re a senior developer at Travel World Agency (TWA), which has grown to become the largest travel agency in the world. The company has built a next-generation system that uses a microservice architecture running on Amazon Web Services (AWS). But while TWA’s success is rocketing higher, the performance of its reservations microservice is crashing and burning. As a solution, the company has replaced the microservice with a new one, using Kotlin and Spring Boot to improve performance and maintainability. Your job is to improve the performance of the new API.
With the help of the Maven Enforcer plugin, you’ll deal with dependencies that slow the microservice. You’ll use ktlint to format the source code according to a single standard, thereby increasing efficiency. You’ll create a Docker image using GraalVM and optimize it to decrease resource consumption. When you’re finished, your API will start up quicker and be more reactive, even on high-traffic days like Black Friday and Cyber Monday!
skills learned: format the source code • reduce the conflicts with dependencies • reduce the use of resources of the microservices
You’re a senior developer at Travel World Agency (TWA), which has grown to become the largest travel agency in the world. The company has built a next-generation system that uses a microservice architecture running on Amazon Web Services (AWS). But as TWA’s success has soared, the performance of its reservations microservice has taken a nosedive. TWA has decided to replace the reservation microservice with a new one, using Kotlin and Spring Boot to improve performance and maintainability. Your task is to review the architecture of the existing microservice and create a new one that has the same endpoints as the old one, saves all relevant information, has a default error handler, and communicates with other microservices to access other vital information.
skills learned: create the basic structure of a microservice • persist the information and interact with other microservices • transform the exceptions in a common structure of error
You’re a senior developer at Travel World Agency (TWA), which has grown to become the largest travel agency in the world. The company has built a next-generation system that uses a microservice architecture running on Amazon Web Services (AWS). But while TWA’s success is on the right track, the performance of its reservation microservice is off the rails. As a solution, TWA has replaced the microservice with a new one, using Kotlin and Spring Boot to improve performance and maintainability. Your job is to document the API endpoints for this new microservice—following the Open API 3 standard—to reduce the risk of someone invoking the endpoints incorrectly. You’ll also create custom rules for validating the documentation in an external library, allowing for reuse in other projects across the company.
skills learned: document the different endpoints using Open API 3 • determine whether the documentation follows the standard format
As a first step in dealing with surging energy prices, Free Power Corporation Limited (FPCL) has installed Smart Meters, which generate energy readings every thirty minutes, in households across London in order to analyze consumers’ energy usage. As a new data engineer for the power company, your task is to ingest the data from the Smart Meter readings and stream it to FPCL data centers for processing. Using the Kafka command-line tool, you’ll create topics in a Kafka cluster for storing the data, and you’ll create partitions for distributing the load within the topics. You’ll add logic to deal with potential problems such as data loss and duplicate records, and you’ll add a method to convert the energy readings to the widely used, easy-to-parse JSON format before the final step of ingesting the data. When you’re finished, FPCL will have pertinent data for analyzing energy consumption patterns, and you’ll have practical experience using Kafka to ingest large amounts of data.
skills learned: set up Kafka Cluster • write a Kafka Producer • add real-life complexities to data • ingest the data into the Kafka cluster
As part of an endeavor to better handle surging energy prices, Free Power Corporation Limited (FPCL) has a Kafka cluster that ingests large amounts of consumer energy data. As a data engineer for FPCL, you’re already familiar with the data, so the London-based power company has tasked you with building a streaming solution that processes the data as soon as it’s available. Using Apache Spark, you’ll create an application to read the data from the Kafka streams, and you’ll save the streams to a data lake. Using a Spark API, you’ll prepare the data for analysis by performing aggregation on the fly. You’ll join the real-time stream with the static data, enriching it with customer details and enabling FPCL’s research team to gain insights about customer energy consumption patterns. When you’re done, FPCL will be better equipped to deal with rising energy costs, and you’ll have hands-on experience building a real-time data processing solution using Apache Spark and Kafka.
skills learned: connect Spark to Kafka • read the data Stream • build a streaming pipeline to perform various tasks (such as cleansing and filtering aggregation)
You’re a senior developer at Travel World Agency (TWA), which has grown to become the largest travel agency in the world. The company has built a next-generation system that uses a microservice architecture running on Amazon Web Services (AWS). But while TWA’s success is flying high, the performance of its reservation microservice has taken an unfortunate detour. As a solution, TWA has replaced the microservice with a new one, using Kotlin and Spring Boot to improve performance and maintainability. Your job is to secure the API against possible attacks. You’ll configure a Keycloak authentication server to keep track of valid users. Using Spring Security, you’ll add security mechanisms on the microservice to ensure that only valid users can access it and that those users can only access their own reservations.
skills learned: validate whether the user has permissions
In this liveProject, you’ll make use of Amazon Web Services tools to convert customer review videos to text for sentiment analysis. You’ll step into the role of a developer at a startup that offers a video alternative to feedback surveys, and help scale up your current platform so that it can handle thousands of incoming videos.
You’ll start creating your highly scalable solution with secure uploading, then build a video processing pipeline using event-based architectures. You use AWS Elastic Transcoder and Amazon Transcribe to transcribe video to text, and Amazon Comprehend to run sentiment analysis to determine whether feedback is positive or negative.
skills learned: create a serverless project and event-driven architecture with AWS Chalice • video manipulation with AWS Transcoder and Amazon Transcribe • sentiment analysis with Amazon Comprehend
You’re a senior developer at Travel World Agency (TWA), which has grown to become the largest travel agency in the world. The company has built a next-generation system that uses a microservice architecture running on Amazon Web Services (AWS). But while the company’s success is moving quickly in the right direction, the performance of its reservations microservice has taken a wrong turn. As a solution, TWA has replaced this microservice with a new one, using Kotlin and Spring Boot to improve performance and maintainability. Your job is to reduce the risk of deploying the application with bugs—a common problem for the previous API—by implementing robust testing.
Following business-driven development (BDD) practices, you’ll create a series of unit tests that validate the code’s logic in a number of plausible scenarios. To test the behavior of the code itself without affecting or being influenced by external classes, you’ll create a series of mocks. Using several libraries, you’ll test to ensure database queries work as expected.
skills learned: create a unit test to check the logic of the application • create a unit test that checks access to the database
You’re a senior developer at Travel World Agency (TWA), which has grown to become the largest travel agency in the world. The company has built a next-generation system that uses a microservice architecture running on Amazon Web Services (AWS). But while TWA’s success has been steadily climbing, the performance of its reservation microservice has been losing altitude. As a solution, TWA has replaced the microservice with a new one. Your job is to improve performance by leveraging cache mechanisms, including the Caffeine, Varnish, and Redis libraries, that will reduce traffic between APIs.
skills learned: understand the different mechanisms of cache • determine where to use one mechanism of cache instead another one
In this liveProject, you’ll help travel company SimpleTravel transition their booking app from a JavaScript codebase to TypeScript. SimpleTravel is experiencing problems with its development flow due to typing errors not being caught at development time. You’ll work to fix this problem by taking an existing Node.js application and rewriting it using TypeScript features like classes and interfaces. Finally, you'll implement a new building mechanism to compile your TypeScript code and run it on AWS Lambda.
skills learned: OOP with Lambda functions • TypeScript coding
SimpleTravel Co has just established IaC—now they’re ready to start automating all the steps of their deployment pipeline! In this liveProject, you’ll help them do just that. You’ll utilize the Amazon CodePipeline and CodeBuild services to build a multi-step deployment pipeline, automating dull manual tasks and carefully deploying your application while checking for bugs and errors.
skills learned: Automating deployment with CI/CD • progressive deployments • error mitigation
SimpleTravel has grown—and now your boss wants multiple teams to handle different microservices that all interconnect and communicate through the exchange of domain events. You’ll be overseeing this by developing a prototype event-driven application that’s fully serverless. Your system will be built on three core principles: automation, decoupling, and type safety. You’ll begin by setting up shared infrastructure for your team, then implement microservices for the site’s checkout and shipping. Your new system will be poised for success, combining efficiency, flexibility, and reliability.
skills learned: Event-driven applications using Amazon EventBridge • Microservices
SimpleTravel Co has scaled too fast! Their travel booking app has proven wildly successful, but now they’re facing a lack of accountability, inconsistencies in their infrastructure, and issues rolling back problematic deployments. Luckily, the CTO has an idea—one he’s given you the job of implementing. Your task in this liveProject is to investigate and establish Infrastructure as Code (IAC) for SimpleTravel, so that they can describe their infrastructure using friendly YAML or JSON syntax and sidestep all the issues of manual deployments. Let’s get started!
skills learned: writing predictable serverless resources with IaC
In this liveProject, you’ll use the Julia language to build a classification-based machine learning model that can predict the salary of a customer based on their sociodemographic data. This model will then be used to serve premium advertising to wealthier customers. You’ll build and evaluate XGBoost models with the dedicated Julia XGBoost.jl package, tune the hyperparameters, and assess your model’s capabilities using ROC curve, and measures such as AUC, accuracy, recall, and precision.
skills learned: comparing distributions of predefined train and test data • building XGBoost model in Julia • evaluating classification model’s quality
Predict the future! You’re an academic researcher working on a project that predicts what policy areas the U.S. government will prioritize. To achieve your goal, you’ll train three kinds of deep learning neural networks on a legislation dataset (a CSV file containing one row for every bill introduced in the U.S. Congress). With the resulting text classifications, you’ll predict the area of focus for future policy bills.
skills learned: sample datasets for unbiased measures of model performance • feature engineering for text data • fit models using Keras • evaluate classification models using appropriate metrics • tune hyperparameters to maximize model performance • explain how a machine learning model generated specific predictions
In this liveProject, you’ll develop a detailed dashboard for serving complex data to medical scientists working on a cure for cancer. Using the R language and Shiny framework, you’ll develop a dashboard that allows easy querying of different facets of the dataset using a web-based GUI. You’ll work to preprocess your dataset for efficient access, and refine and deploy the dashboard to your company’s web servers. When you’re done, you’ll have built a working prototype of an in-demand piece of data software.
skills learned: setting up a reproducible environment for an exploratory data project • creating an R dashboard package • deploying an R dashboard application
In this liveProject, you’ll test your data wrangling and data processing skills using the Julia language. You’ll step into the role of a data scientist for a real estate company with a new task from your boss—analyze and clean housing and census data for the marketing and sales teams. You’ll employ the popular Julia package DataFrame.jl as well as powerful statistics related libraries to successfully explore these datasets, and prepare them for machine learning.
skills learned: tabular data ingestion and integrity validation • exploratory data analysis using descriptive and graphical techniques • feature selection and feature engineering
In this liveProject, you’ll use the Julia programming language and dimensionality reduction techniques to visualize housing sales data on a scatter plot. This visualization will allow the marketing team to identify links and demand patterns in sales, and is also a useful tool for noise reduction or variance analysis. You’ll use the popular PCA algorithm to visualize the sales dataset with overlaid clustering assignments from k-means and DBSCAN methods, and then expand Julia’s capabilities by calling Python modules using the PyCall.jl package. This extra flexibility will allow you to explore the t-SNE and UMAP algorithms which have excellent results for high-dimensional datasets.
skills learned: PCA, t-SNE, and UMAP dimensionality reduction techniques • validating and analyzing output of PCA algorithm • calling Python modules from Julia
Step into the shoes of an academic researcher tasked with predicting which areas will be the focus of the U.S. government’s policy-related efforts. In this liveProject, you’ll prepare for predictive modeling by exploring the policy areas and text descriptions in legislation data, using statistical visualizations and ggplot2, and identifying notable trends and outliers.
skills learned: import and clean data • generate basic data visualizations for time series datasets • tokenize and clean text data • calculate summary statistics for text data
Imagine you’re an academic researcher working on a project for predicting trends in the U.S. government’s policy-making priorities. Using modern techniques for text data feature engineering, you’ll fit a set of models, subsample the training data to minimize bias, evaluate the models’ performance using a test-set of observations, and leverage a tidy workflow to explain how a model generates specific predictions.
skills learned: resample datasets • generate feature hashes for categorical variables • implement pre-trained word embeddings in a machine learning workflow • subsample an unbalanced dataset • evaluate classification models • explain how a machine learning model generates specific predictions
In this liveProject, you’ll use the Julia language and clustering algorithms to analyze sales data and determine groups of products with similar demand patterns. Clustering is a well-established unsupervised learning technique that’s commonly used to discover patterns and relations in data. You’ll apply k-means and DBSCAN clustering techniques to housing sales data for a retail startup, leveraging your basic Julia skills into mastery of this machine learning task.
skills learned: basic data preparation for clustering methods • clustering data with k-means and DBSCAN algorithms • evaluating and visualizing results
Play the role of an academic researcher preparing a machine learning model to predict the U.S. government’s focus for new policy legislation. You’ll process the legislation dataset with resampling and feature engineering techniques, employ a range of algorithms, including penalized regression and XGBoost, to fit a series of ML models, evaluate the effectiveness of the models, and tune them accordingly.
skills learned: resample datasets for unbiased measures of model performance • feature engineering for text data • fit models using a tidy framework • evaluate classification models using appropriate metrics • tune machine learning models to maximize their effectiveness
In this liveProject, you’ll use the Julia language to build a regression-based machine learning model that can predict median house value in a neighborhood. You’ll start out with a simple linear regression model to give you a baseline value for quality metrics created with Julia’s package for Generalized Linear Models. You’ll then tune and assess a random forest model, and compare and contrast the two approaches to pick the best results.
skills learned: build linear regression and random forest models • evaluate models and explore their output • save model to the file for further reuse
As the researcher for venture capital firm Action at a Distance Corporation your job is to evaluate proposals from quantum startups hoping to secure an investment. But first, you need to expand your knowledge of quantum computing.
You’ll build your quantum muscles by investigating and coding key quantum algorithms including the quantum teleportation algorithm, the quantum phase estimation algorithm, the quantum Fourier transform algorithm, and Grover’s algorithm. With your new knowledge, you’ll compose a brief report about whether or not now is the right time to invest in quantum startups.
skills learned: Shor’s algorithm concepts/techniques • quantum superdense coding teleportation • quantum Fourier transforms • quantum phase estimation • quantum oracles
Enter the world of quantum computing and discover how quantum computers solve problems in a fraction of the time. You’re a researcher for Action at a Distance Corporation, a consortium of venture capitalists who believe the time to learn about and invest in quantum computing startups is now. Your task is to learn fundamental quantum computing skills so you can evaluate proposals from quantum startups and brief the consortium’s partners. Get familiar with the Qiskit environment as you create your own Qiskit programming Python imports template, then discover features of the Qiskit ecosystem as you add code to your template. You’ll set up a quantum circuit, getting first-hand experience with amplitudes and probabilities associated with quantum states. With these fundamentals under your belt, you’ll prepare brief notes for your report to the consortium, researching which companies will be the major players in the quantum race, what types of quantum hardware they’re pursuing, and what exactly is the “quantum advantage.”
skills learned: create quantum registers and circuits and begin to program them with Python and Qiskit
Action at a Distance Corporation, a consortium of venture capitalists, believes that now is the time to invest in quantum computing startups. As its resident researcher, your job is to get familiar with quantum techniques and applications. You’ll code quantum circuits involving four different quantum gates, the fundamental processing units of quantum. You’ll visualize the effects of the gates, run and measure the circuits, and use IBM Quantum Composer to demonstrate the use of the gates. With a deeper understanding of quantum, you’ll investigate major quantum use cases to help the consortium determine whether or not the startups’ proposals have commercial applications.
skills learned: investigate and program quantum circuits and quantum gates • use IBM Quantum Composer to demonstrate the use of gates • program with Python and Qiskit
Action at a Distance Corporation, a consortium of venture capitalists, believes that the time to invest in quantum computing startups is now. As the consortium’s researcher, your task is to gain knowledge of quantum computing capabilities.
You’ll explore matrix representations—mathematical underpinnings of quantum computing—and examine quantum circuits that use different arrangements of gates to achieve identical functionality. You’ll upgrade your quantum toolbox with phase kickback, an essential component of many quantum algorithms, and you’ll work with Bloch spheres, a way of visually representing qubits. You’ll then use two different methods to run a circuit on IBM quantum hardware, a task that will be commonplace in the not-so-distant future.
skills learned: quantum gates as matrices • circuit identities • phase kickback • Bloch spheres • run programs on IBM quantum hardware systems on quantum computers
Get tangled up in quantum computing! Action at a Distance Corporation, a consortium of venture capitalists, believes the time to invest in quantum computing startups is now. As the consortium’s resident researcher, your task is to understand the power of quantum computing.
You’ll learn to recognize normalized quantum states of two qubits, a key skill in implementing quantum algorithms. You’ll get familiar with the Controlled Not (CNOT) gate, vital to the construction of important, entangled states, and you’ll observe what Einstein called “spooky action at a distance” as you program the (famous!) entangled Bell states. Using the IBM Quantum Composer, you’ll visualize and animate quantum circuits, gaining insight into handling gates and their outcomes.
skills learned: programming circuits involving 2 qubits • quantum gates • Bell states • IBM Quantum Composer
The future of the RoboPrototypes company is in your hands. It’s your first day at the company, which specializes in bespoke robotic solutions. The CEO has asked you to develop a prototype of a mobile robot that will serve drinks to mall food court customers. An important client will decide whether they’ll provide follow-up funding after they see your prototype in simulation. Working with Gazebo 11 and employing ROS best practices, you’ll create a model for a differential drive robot that meets the provided specifications. Next, you’ll simulate the robot, implement a basic teleoperation node for controlling it, and add velocity multiplexing for safety purposes.
The version of Gazebo used in this project reached end of life in January 2025.
skills learned: basics of URDF and XACRO modeling • load a robot model in RVIZ2 and Gazebo 11 • send Twist messages to the robot (and some of the safety implications involved)