Your first work experience, before your first job.

Each lab drops you into a real company case. You solve it yourself, on a real server, and you come away with what theory never gives you: confidence.

  • A real business case
  • Ready in minutes, nothing to install
  • A skill to talk through in interviews
Create an account

Your first lab is free.

Labs (52)

Pick your next challenge. Every lab is built by practitioners, from missions they carry out in companies across Africa.

  • BeginnerPath: AWS Cloud Practitioner: IAM, S3, EC2, DynamoDB, Lambda hands-on

    Amazon EC2: launch an instance, networking and pricing models

    Baobab Market's showcase website runs on S3, but the real shop needs a server: a machine that runs a program on every visit. Two years ago, it would have cost 2 million CFA francs and six weeks of waiting. Today, Awa asks you to launch it this morning, make it reachable, be able to log into it without leaving a password lying around, and know what it costs. This third lab of the preparation path for the AWS Certified Cloud Practitioner certification starts with what the exam asks about EC2 most often: reading an instance type, choosing a family, and what remains your responsibility in the shared responsibility model. Then you read the instance's network architecture on a diagram: Region, VPC, Availability Zones, public and private subnets, Internet gateway, security group and network ACL. You then launch the instance, after a first denial triggered on purpose, with an IAM role and a startup script that installs a web server. The website does not respond: you open exactly the port needed in the security group, and the shop appears. You open a shell on the instance through Session Manager, with no SSH key and no administration port, find its EBS disk there, then stop and restart it to watch its public address change. The lab ends on pricing models: On-Demand, Savings Plans, Reserved Instances, Spot and Dedicated Hosts. Everything happens in the real AWS console, on a real instance. The guide is illustrated with screenshots of the console and an architecture diagram, explains what the exam expects from each chapter, and ends with a ten-question practice exam.

    • No reviews yet
    • Beginner
    • 2 h 30 min
    • 1,500 credits
  • GeneralPath: AWS Cloud Practitioner: IAM, S3, EC2, DynamoDB, Lambda hands-on

    AWS ELB and Auto Scaling: high availability and elasticity

    The Tabaski sales are coming, and Baobab Market's shop runs on a single server: a single point of failure. Awa asks you to make sure the shop stays open if a server goes down, adds servers when the crowd arrives, and removes them when the crowd leaves. This fourth lab of the preparation path for the AWS Certified Cloud Practitioner certification starts with the words the exam uses most to talk about the benefits of the cloud: high availability, fault tolerance, horizontal and vertical scaling, elasticity. An architecture diagram shows what you are going to build: a load balancer present in two Availability Zones, in front of an Auto Scaling group driven by CloudWatch. You read the provided launch template, then create a target group and its health check, an Application Load Balancer and its listener, and an Auto Scaling group with a target tracking policy, after a first denial triggered on purpose. The shop responds at a single address, served in turn by two instances. You kill one: customers see nothing, and Auto Scaling replaces it on its own. You then go up to three instances, and watch the policy scale back to two, triggered by a CloudWatch alarm it created itself. Everything happens in the real AWS console, with no Elastic IP address. The guide is illustrated with screenshots of the console and an architecture diagram, compares ALB, NLB and Gateway Load Balancer, explains the ways to scale and what a load balancer and public IPv4 addresses cost, and ends with a ten-question practice exam.

    • No reviews yet
    • Intermediate
    • 3 h
    • 2,000 credits
  • GeneralPath: AWS Cloud Practitioner: IAM, S3, EC2, DynamoDB, Lambda hands-on

    Amazon DynamoDB: keys, queries, capacity and backups

    Since Baobab Market's shop has been running on several instances, carts disappear when a customer switches instance. Moussa would like to install a database on a server; Awa wants a serverless database that handles the sales and costs almost nothing while the shop sleeps. This fifth lab of the preparation path for the AWS Certified Cloud Practitioner certification starts with what the exam asks most often about databases: choosing between relational and NoSQL, between RDS, Aurora, DynamoDB, ElastiCache, Redshift, DocumentDB and Neptune, and knowing what remains your responsibility depending on the service. Then you design a DynamoDB table from its questions, on a diagram: partition key, sort key, partitions copied across three zones. You create the table after a first denial triggered on purpose, write orders with different attributes into it, then compare a query and a scan: the console shows the items read, returned, and the read units consumed. You query and update the table in PartiQL, choose between on-demand and provisioned capacity, then protect the data: automatic expiry of carts, restore to the second, a backup before the sales, encryption always on. Everything happens in the real AWS console. The guide is illustrated with screenshots of the console and a diagram, explains global tables and DAX, and ends with a ten-question practice exam.

    • No reviews yet
    • Intermediate
    • 2 h 30 min
    • 2,000 credits
  • GeneralPath: AWS Cloud Practitioner: IAM, S3, EC2, DynamoDB, Lambda hands-on

    Amazon SNS and SQS: notifications and message queues

    When an order is paid, Baobab Market's shop notifies preparation, sends the customer a confirmation, then calls accounting, one after the other. The day accounting crashed for ten minutes, not a single payment went through. Awa asks you to decouple all of this: the shop announces only once that an order is paid, and each team receives it at its own pace. This sixth lab of the preparation path for the AWS Certified Cloud Practitioner certification starts with what the exam asks about decoupling: synchronous or asynchronous, SNS that pushes or SQS that keeps, EventBridge, and the fan-out pattern to several queues, on an architecture diagram. You create an SNS topic, after a first denial triggered on purpose, then subscribe your email address to it, and not someone else's, as a second denial shows. You create two SQS queues, connect them to the topic, and publish an order only once: it lands in your inbox and in both queues. You read the received message and its SNS envelope, discover the visibility timeout, filter what accounting receives, and set aside failing messages in a dead-letter queue. Everything happens in the real AWS console. The guide is illustrated with screenshots of the console and a diagram, explains standard and FIFO queues, and ends with a ten-question practice exam.

    • No reviews yet
    • Intermediate
    • 2 h 10 min
    • 2,000 credits
  • GeneralPath: AWS Cloud Practitioner: IAM, S3, EC2, DynamoDB, Lambda hands-on

    AWS Lambda: process events without servers

    Baobab Market's paid orders arrive in an SQS queue, but nobody processes them automatically. Rent a server that runs day and night for a few minutes of work a day? Awa does not want that. She asks you to write the program, and only that: for each order, it runs, records it in DynamoDB with the status "being prepared", then stops. This seventh lab of the preparation path for the AWS Certified Cloud Practitioner certification starts with what the exam asks about serverless computing: EC2, containers or Lambda, the 15-minute limit, billing per request and per millisecond, and the shared responsibility, on an architecture diagram. You create a Lambda function, after a denial triggered on purpose, with the provided execution role. You write and test its code in the console, read its logs in CloudWatch, then make it write to a DynamoDB table: a second denial makes you add the only permission it lacks, with least privilege. You connect the SQS queue to the function, after a third denial, and your orders get prepared on their own. You see what becomes of a message that makes the function fail, set the memory and the timeout, and work out what the function costs. Everything happens in the real AWS console. The code is provided and explained line by line: no programming knowledge is needed. The guide is illustrated with screenshots of the console and a diagram, and ends with a ten-question practice exam.

    • No reviews yet
    • Intermediate
    • 2 h 30 min
    • 2,500 credits
  • GeneralPath: AWS Cloud Practitioner: IAM, S3, EC2, DynamoDB, Lambda hands-on

    Amazon SES: send transactional emails

    In lab 6, the customer received an email from Amazon SNS: sender "AWS Notifications", raw JSON, and a subscription to confirm before receiving anything. Awa wants a real order confirmation, sent from Baobab Market's address, automatically, as soon as an order is paid. This eighth lab of the preparation path for the AWS Certified Cloud Practitioner certification starts with what the exam asks about sending email: SNS or SES, transactional and marketing emails, and AWS's other business applications, on an architecture diagram. You verify your address as an SES identity, after a denial triggered on purpose for someone else's address. You discover sandbox mode, trigger a second denial by writing to someone else, then send yourself a first email. You then write a Lambda function that sends the confirmation through SES, give it the only permission it lacks, and connect it to the SNS topic of paid orders: a published order becomes an email in your inbox within seconds. You finish with deliverability (bounces, complaints, SPF, DKIM, DMARC) and pricing. Everything happens in the real AWS console. The code is provided and explained. The guide is illustrated with screenshots of the console and a diagram, and ends with a ten-question practice exam.

    • No reviews yet
    • Intermediate
    • 2 h 15 min
    • 2,500 credits
  • AdvancedPath: AWS Cloud Practitioner: IAM, S3, EC2, DynamoDB, Lambda hands-on

    AWS challenge: deploy a complete serverless application

    Baobab Market opens a shop in Abidjan tomorrow morning, and Moussa is on leave. Awa hands you the platform: this time, no step-by-step instructions. Each mission comes with a specification and success criteria to check in the console, a hint if you are stuck, and the solution as a last resort. This challenge closes the preparation path for the AWS Certified Cloud Practitioner certification. On your own, you set up a least-privilege IAM team, proven with the policy simulator, a private, versioned S3 invoices bucket archived by lifecycle, the DynamoDB orders table, an SNS topic and the SQS preparation queue, then a Lambda function that records each order automatically. A trap awaits you between SNS and SQS: the message envelope. As a bonus, the confirmation sent to the customer by Amazon SES. An acceptance test checks that everything works end to end, and a grid tells you which labs to review. The challenge ends with a full 30-question practice exam, weighted like the four domains of the CLF-C02 exam, which also covers the services the exam mentions that you did not use in the labs, then with everything you need to know for exam day.

    • No reviews yet
    • Advanced
    • 3 h
    • 3,000 credits
  • BeginnerPath: SQL and PostgreSQL: from your first query to optimisation

    SQL for beginners: explore a PostgreSQL database

    Mama Ngo has run her shop in Nkoldongo, Yaoundé, for twenty years. Groceries, soap, sardines, Maggi cubes. And a notebook, where everything was written down. In the spring, her nephew set up a till on an old laptop; since then, everything is entered and nobody knows anything any more. "The notebook, I opened it and I could see. Here, I see a black screen." This workshop is a first encounter with a database, and it is designed for someone who has never opened one. You will not write a line of SQL and you will not open any terminal: you work in a web interface, from a link, and you look. Learning the command line and the idea of a table at the same time means stacking two difficulties that have nothing to do with each other. The guide is not read, it is practised. In six places it asks you to answer before carrying on, and the commented answer waits under a ribbon you only pull once you have decided. Looking for an answer, even getting it wrong, fixes an idea far better than reading it. In an hour and a quarter, you will know what a table, a column, a row and a type are; why a price stored as text breaks the calculations six months later; and why an empty cell and a zero do not mean the same thing, the confusion that will make two thirds of someone else's sales disappear, later in the path. SQL is the most requested technical skill for entry-level jobs, and the one most independent of the employer's technical choices: it is just as useful in an SME running an ERP as for reconciling a mobile money account. This is where you start.

    • 4.0 out of 5, (1 reviews)
    • Beginner
    • 1 h 15 min
    • 250 credits
    • First lab free
  • BeginnerPath: SQL and PostgreSQL: from your first query to optimisation

    SQL: filter and sort with WHERE and ORDER BY

    "Before, I opened the notebook on Sunday and I could see what was going to run out. Now I can't see anything coming. What is about to run out on the shelves?" You know what a table is. This workshop teaches you to ask it a question: your first SQL query, in the same web interface, still without a terminal. SELECT chooses the columns, WHERE chooses the rows, ORDER BY sorts, LIMIT cuts. Every chapter ends with an exercise you write yourself, with the commented answer under a ribbon. In an hour and a half you write the query that gives Mama Ngo back her Sunday page. And you meet the two mistakes that raise no message. The first: looking for an empty cell with "= NULL" returns zero rows when there are three, and nothing warns you. The second: AND comes before OR, silently; your query answers you, and it has answered a different question from yours. You will see it on a result that changes before your eyes depending on where you put two brackets. The workshop ends with a troubleshooting table built on PostgreSQL's real messages, including the most dangerous of all, the one that does not exist: an empty result that looks like an answer.

    • 5.0 out of 5, (1 reviews)
    • Beginner
    • 1 h 30 min
    • 250 credits
    • First lab free
  • BeginnerPath: SQL and PostgreSQL: from your first query to optimisation

    SQL: count and group with COUNT and GROUP BY

    "How much did I sell this month? And above all: what really brings money in? Because rice, I sell a lot of it, but the bag is expensive too." Until now you were narrowing and sorting rows. Here they disappear: three hundred and twenty sales fold into a handful of figures. It is SQL's second wall after the join, and it gets a workshop of its own rather than a sub-chapter. COUNT, SUM, DISTINCT, GROUP BY, HAVING, and SQL's most frequent error message, the one that complains about a column missing from the GROUP BY. You will trigger it on purpose, and you will understand why PostgreSQL refuses rather than inventing an answer where other databases used to pick a row at random without saying anything. You will also learn to filter the groups themselves, which WHERE cannot do, and you will see why: when WHERE does its work, the groups do not exist yet. The workshop ends with a challenge with no solution given: find the product that brought in the most money in August. The answer is in the guide, folded under a ribbon you only pull after searching. And a surprise awaits you in the figures: a category comes second when it should not. You already know the cause. Wrong data does not show in the data, it shows in the result that surprises you, and a surprising result is checked before it is announced. That is the professional reflex this workshop builds.

    • 5.0 out of 5, (1 reviews)
    • Beginner
    • 1 h 30 min
    • 250 credits
    • First lab free
  • BeginnerPath: SQL and PostgreSQL: from your first query to optimisation

    SQL: combine two tables with JOIN

    "The notebook said: three soaps to Mrs Essomba. The screen tells me: product 5, customer 1. I have a shop to run, not numbers to decode." This is SQL's wall, and it gets a workshop of its own. No functions, no decorative aliases: linking two tables, and understanding what the operation keeps and what it throws away. You will start by answering yourself the question workshop 1 left open: why the till records a number rather than a name. The answer fits in one sentence that holds every database in the world together: a piece of information is written in one place only. Then you will see 218 sales disappear at a stroke. A strict join on customers takes the shop from 320 sales down to 102, without the slightest error message, because two thirds of people pay cash without leaving their name. That is the difference between JOIN and LEFT JOIN, and it is never chosen out of habit: it is chosen by the question you are asking. A whole chapter is devoted to the reflex that will one day stop you announcing a wrong figure: counting the rows after each join and comparing with the starting total. A join does not only lose rows, it can also invent some, and no message will warn you. Finally you will learn the anti-join, the pattern that answers every "who has never" question: customers with no order, invoices with no payment, products nobody ever buys on credit. The workshop ends with a challenge, Mama Ngo's five biggest debtors, whose answer is folded under a ribbon you only pull after searching.

    • 5.0 out of 5, (1 reviews)
    • Beginner
    • 1 h 30 min
    • 400 credits
    • First lab free
  • BeginnerPath: SQL and PostgreSQL: from your first query to optimisation

    SQL: INSERT, UPDATE, DELETE and first steps with psql

    "A lady asked for the liquid soap. The till said twelve thousand five hundred. She left. Ludovic typed one zero too many. Fix it, but don't break anything, my whole shop is in there." Until now, a wrong query returned a wrong result. From this workshop on, a wrong query destroys. It is the first workshop of the path where the interface allows writing. You will first open your first terminal, and it is not a decorative extra: what follows requires a session, that is, a continuous conversation with the database. A web interface does not show you the session; psql does, and the prompt itself changes before your eyes to tell you at every moment what you are risking. You will then trigger the disaster on purpose: an UPDATE without a WHERE clause, which sets the shop's twenty-five products to the same price in one second. Then you undo it with one word. That is the whole lesson: BEGIN before, a check in the middle, COMMIT only once you understand what you are touching. You will also discover that the row counter lies by omission. "DELETE 1" proves you deleted a single row, never that it was the right one; a false duplicate will show you. And "UPDATE 0" proves your fix never happened, which nothing else will warn you about. Finally the workshop adds writing a new row with INSERT, the primary key that physically refuses a duplicate, and the foreign key that stops you leaving a sale orphaned. A well-built database is not an obstacle to get around: it is a colleague who reviews your work and stops you when you get it wrong. It is also the bridge to the backups path, whose founding incident is exactly the UPDATE without WHERE you have just triggered safely.

    • No reviews yet
    • Beginner
    • 1 h 30 min
    • 400 credits
    • First lab free