LearnWithShobhan

Blog

Free tutorials

Practical guides on AWS, serverless backends and the command line, written from the courses, with the same diagrams and real code.

AWS & serverless

AWS · CDK · CloudFormation

AWS CDK tutorial in TypeScript: from CloudFormation to your first stack

Why infrastructure as code beats clicking in the console, how CloudFormation works, what CDK constructs are, and how to bootstrap, synth and deploy a real stack with S3, Lambda, DynamoDB and API Gateway in TypeScript.

AWS · DynamoDB · NoSQL

DynamoDB data modeling explained: partition key, sort key and GSI (with diagrams)

How DynamoDB stores data in partitions, what partition keys, sort keys and primary keys are, when to add a global or local secondary index, and how to design a table from access patterns. With a real AWS CDK example.

AWS · OpenSearch · Lambda

Full-text search on AWS with OpenSearch, Lambda and CDK (step by step)

Why DynamoDB can't do search, how an inverted index works, OpenSearch clusters, mappings and the Query DSL, multi_match search from a Lambda, and creating the index automatically with a CDK custom resource.

AWS · Serverless · Architecture

How to build a YouTube-like video streaming backend on AWS (serverless architecture)

A complete serverless architecture for a video platform on AWS: API Gateway, Lambda, S3 presigned uploads, MediaConvert transcoding, EventBridge, DynamoDB and OpenSearch, deployed with CDK. The design behind the VidShare course.

AWS · Lambda · API Gateway

One Lambda or many? Building a REST API on API Gateway with a single CRUD handler

Should each HTTP method get its own Lambda function, or should one handler serve GET, POST, PUT and DELETE? How API Gateway's ANY method and Lambda proxy integration work, and how to branch on event.httpMethod in TypeScript.

AWS · S3 · TypeScript

S3 presigned URLs in TypeScript: upload large files straight from the browser

How S3 buckets and objects really work, then generate a presigned PUT URL with AWS SDK v3 in a Lambda, fix the 403 AccessDenied with the right IAM policy, and upload directly from the browser.

AWS · Lambda · Jest

Test-driven development for AWS Lambda with Jest: mocks and spies explained

Stop deploying to test. Write Lambda handlers test-first with Jest: the TDD loop, a to-do list per function, mocking the database with jest.spyOn and mockImplementation, and validating input with Zod. Real tests from the VidShare course.

AWS · MediaConvert · EventBridge

Transcode video on AWS with MediaConvert, EventBridge and Lambda

How AWS Elemental MediaConvert jobs work (inputs, output groups, presets, IAM role), creating a job from Lambda with the AWS SDK v3, and reacting to job state changes with an EventBridge rule, all defined in CDK.

AWS · S3 · Lambda

Trigger a Lambda on S3 upload and read video metadata with MediaInfo

Use S3 event notifications to run a Lambda on every upload, read the event's bucket and key, run the MediaInfo binary inside Lambda on a presigned URL, and decide transcoding resolutions. Wired up with AWS CDK.

AWS · CloudFormation · DynamoDB

Your first CloudFormation template: YAML anatomy and creating a stack (DynamoDB example)

A step-by-step walk through a minimal CloudFormation template in YAML: the Resources section, logical names vs real names, then creating, inspecting and deleting a stack in the AWS console, including the rollback option.

The full course

VidShare: 109 lessons

Build a production-style video streaming backend on AWS, from architecture to final test.

See the course and free lessons →

Linux & the command line

Linux · Bash · Beginners

Absolute vs relative path in Linux: the Unix filesystem explained

How the Unix filesystem tree works, the difference between absolute and relative paths, and how to move around with pwd, cd and ls, plus the shortcuts /, ~, ., .. and -.

Linux · Bash · Zsh

Customize your shell: .bashrc vs .zshrc, aliases and the PS1 prompt

Why your aliases vanish when you close the terminal, which config file Bash and Zsh read at startup, how to make aliases and environment variables permanent, and how to change your prompt with PS1 or PROMPT.

Linux · Bash · Zsh

How the shell finds commands: PATH and environment variables explained

What really happens when you type ls: how the shell searches the PATH variable directory by directory, how to use which, why you see 'command not found', and how to add your own folder to PATH.

AWS · EC2 · SSH

How to SSH into an AWS EC2 instance and set up an nginx web server

What SSH is, how key-pair authentication works, launching a free-tier EC2 instance, fixing the .pem permission (chmod 400), connecting with ssh -i, and serving your own page with nginx.

Linux · Bash · Permissions

Linux file permissions explained: ls -l, chmod and chown (with diagrams)

Read every column of ls -l, understand owner, group and others, and change permissions with chmod (symbolic and octal like 755, 700, 400) and ownership with chown. With diagrams and real terminal examples.

Linux · Bash · grep

Linux pipes and redirection explained: |, >, >>, < and grep

Standard input and output, redirecting output to files with > and >>, feeding input with <, chaining commands with pipes, searching with grep, and silencing output with /dev/null. With diagrams and examples.

Linux · Bash · Processes

Linux processes explained: ps aux, top and kill -9 vs kill -15

What a process is, how to list them with ps aux and top, process states, and how to stop one: Ctrl+C, kill (SIGTERM 15) and kill -9 (SIGKILL). With diagrams and real terminal examples.

Bash · Shell scripting · Linux

Shell scripting for beginners: your first Bash script, step by step

Write and run your first shell script: chmod +x, the shebang line, variables, command substitution with $(...), reading user input and arguments ($1, $2), plus export and alias.

Linux · Bash · Beginners

Terminal vs shell: what's the difference? (Bash, Zsh, PowerShell explained)

Why it's called a terminal, what a shell actually does, how the terminal, shell, kernel and hardware fit together, which terminal and shell each OS uses, and why developers pick Bash or Zsh.

Linux · Unix · Beginners

The Linux directory structure explained: what /bin, /etc, /home, /var and /tmp are for

A beginner's map of the Unix and Linux filesystem: the root directory, what lives in /bin, /etc, /home, /usr, /var and /tmp, how macOS differs, and the two shortcuts (/ and ~) you'll use constantly.

The full course

CLI Mastery: 57 lessons

Get fast and fluent in the terminal, from the filesystem to shell scripts and real servers.

See the course and free lessons →

Free download

Linux command line cheat sheet

One printable page: navigation, files, permissions, pipes, processes, scripts and SSH.

Occasional emails with new tutorials and courses. Unsubscribe any time.