
Design scalable, reliable, and practical solutions by imagining the whole system before code. Align designs with the AWS Well-Architected Framework to ground ideas in real-world standards.
Explore foundational concepts of architectural design by contrasting functional and non-functional requirements, and share tips for using back of the envelope calculations to sketch solutions quickly.
Distinguish functional from non-functional requirements with a house analogy, and apply it to a distributed system by outlining login, file storage, and messaging alongside scalability, reliability, availability, and performance.
Learn back of the envelope estimation to quickly gauge feasibility and make early decisions in cloud architecture by rough calculations of cost, capacity, and latency, with practical examples.
Apply five practical cloud-architecture tips: start small and enhance, keep designs open-ended, design stateless services for horizontal scaling, and favor simplicity over complexity.
Design cloud architecture by starting simple, then build a url shortener, weighing benefits like readability and analytics against challenges such as brand originality, third-party dependencies, and security.
Adopt a simple framework to structure cloud architecture, starting with requirement gathering, then identifying core components, crafting a high-level design, and iterating with a POC and customer feedback.
Gather requirements via documentation or 1-to-1 meetings, then document and validate them with the customer. Define functional and non-functional needs for a url service, including analytics and paid features.
Identify core components for a URL shortening and redirection system, including an efficient algorithm, redirection, compute, storage, and analytics to support a solid initial architecture.
Develop a simple high level architecture for a short URL system with compute, storage, redirection, statistics, and API driven design using POST for creation and GET for access.
Explore a deep dive into the core component and its algorithm, linking design thoughts to real-world implementation. Learn a framework for rapid solution design and interview readiness.
Evaluate options for generating a short, random, human-readable URL, and explain why hashing methods and UUIDs do not meet these needs.
Choose base62 encoding over base64 to generate short, human-readable URLs, leverage ASCII and bit grouping, and avoid rigid database auto increment features for scalable cloud architectures.
Explore how to size a short URL system with a back-of-envelope calculation, targeting 1000 URLs per second and ten years of retention using seven-character base-62 encoding.
Explore how to design very friendly URLs by comparing base 62, base 36, and base 32 encoding, removing ambiguous characters, and using eight-character URLs from a user perspective.
Learn how URL redirection works, from 301 permanent redirects to 302 temporary redirects, and why 302 is chosen here to capture accurate traffic information while avoiding client-side methods.
Compare single node and multi node compute to power a URL shortener, and choose a scalable, stateless multi node cluster with a central ID service and load balancing.
Compare EC2-style virtual machines and container workloads for application deployment, weighing boot time, licensing costs, and learning curve to decide between container and VM approaches.
Assess whether to use blob storage for unstructured data or a database for structured data, then plan capacity, leading to a database choice for analytics.
Choose a non-relational database for billions of small url records and simple queries, accepting eventual consistency for scalable capacity; use managed options like DynamoDB or Azure Cosmos DB if needed.
Choose Amazon DynamoDB for URL mapping as a fully managed, non-relational store that scales, supports TTL and DynamoDB streams, and offers global tables for analytics, with cost considerations.
Decide between real time and batch analytics based on use cases and latency, then leverage streaming or scheduled processing with tools like Kafka, Kinesis, Hadoop, and EMR.
Explore day zero architecture by launching a simple monolith, iterating quickly, and progressively scaling with two AZs, load balancing, caching, and optional serverless or containerized compute on AWS.
Discover AWS well-architected framework and its six pillars—operational excellence, security, reliability, sustainability, performance efficiency, and cost optimization—and tailor priorities for your app with the well-architected tool.
Automate infrastructure with CloudFormation and deploy Lambda updates through CodePipeline for safe versioning and fast rollbacks, while using CloudTrail, CloudWatch, and X-Ray for observability and optimization.
Improve performance by delivering near users with CloudFront and edge-optimized API Gateway, caching API calls, and provisioning AWS Lambda to reduce cold starts, balancing cost and performance.
Secure your application with aws iam and lambda roles for dynamodb and api gateway, implement certificate manager for https, cognito for user verification, and waf against ddos with kms encryption.
Explore cost optimization strategies for cloud architectures by throttling API gateway usage, applying compute savings plans, DynamoDB reservations, partition key optimization, TTL expiration, provisioned capacity, and infrequent access tables.
Design a reliable multi-region cloud architecture with backups for data, Lambda code, and API gateway configuration; enable near-region delivery with DynamoDB global tables, AWS Global Accelerator, and the health dashboard.
Emphasize sustainability as a pillar of the Well-Architected framework by tracking and reducing your application carbon footprint using AWS tools, and choosing carbon-efficient regions to meet corporate goals.
Explore commercial aspects in cloud architecture, including revenue generation, free vs paid tiers, and features such as url expiry, update functionality, detailed reporting, custom domain, api exposure, and bulk operations.
Design a scalable cloud architecture for a URL system by optimizing table design, implementing a cache eviction policy, and building an analytical pipeline while planning API design and deployment strategies.
Discover how a web crawler starts from seed URLs to fetch pages and extract links. It scrapes data for indexing, auditing, and data mining, and helps monitor web content.
Follow a simple framework: gather what and why, identify building blocks like compute and storage, create a viable high-level design, then deep-dive into components and iterate.
Outline requirements for a web crawler, detailing functional and non-functional needs, seed URLs and depth, text data focus, robots.txt politeness, scope clarity, error handling, rate limiting, and monitoring.
Identify core components for a web crawler, including seed urls, a url queue, worker nodes, a coordinator, and storage, to enable parsing, data extraction, and data delivery to other systems.
Explore a high level architecture for a heavy data flow web crawler, detailing URL queue, worker nodes, and a coordinator that handles retries, duplication checks, and scaling.
Explore seed URLs in cloud architecture design, weighing manual input, top sites lists, and search engine queries to build scalable, fresh seed lists with pros and cons and practical decisions.
Explore foundational knowledge of polite web crawling, covering robots.txt guidelines, crawl delays, rate limiting, user agent identification, and meta directives like noindex and nofollow to avoid overloading servers.
Explore how a url frontier, or url q, enables decoupled, scalable crawling by separating url discovery from processing, supporting retries, politeness, and prioritization across multiple queues.
Evaluate Amazon SQS, Apache Kafka, and Redis for queuing, analyzing speed, scalability, persistence, and features like ordering, priority, visibility timeout, and deduplication to select the best fit.
Design worker nodes that pull queue messages, crawl URLs with robots.txt, extract data, and optionally parse or store results in S3, with fault-tolerant, scalable processing and per-domain rate limiting.
Identify the platform—ec2, container, or lambda—for crawling jobs, then package your code as a library, layer, or image, and choose from scrapie, crawl for J, Apache Nutch, or Storm Crawler.
Coordinate centralized control of the URL queue, worker distribution, and storage with crawl rules and deduplication to enable scalable, reliable crawling, while evaluating Airflow and Step Functions for extensibility.
Learn how a coordinator performs URL deduplication using hash tables, URL fingerprints, bloom filters, and Redis cache, while respecting crawl rules via robots.txt parsing and delay enforcement.
Store data and metadata separately in crawling projects, saving raw HTML and parsed text alongside crawl metadata like URL, status, depth, and last modified.
Explore approximate internet data scale and derive a back-of-the-envelope estimate of 326 terabytes, highlighting object storage like S3 for large web data in cloud architecture.
Guide final architecture decisions by detailing a split data and metadata design. Compare options for queues, storage, workers, and orchestration to shape an informed solution.
Explore a scalable web crawling reference architecture on AWS using EventBridge scheduler, AWS Batch, and ECS on Fargate to fetch ESG data and store it in S3.
Explore a serverless AWS reference architecture that uses DynamoDB as a queue, Step Functions, and Lambda to crawl URLs and index results in S3 with Kendra.
Explore Amazon SQS standard queues, batch operations, and long polling to boost throughput. Learn about dead-letter queues, visibility timeout, retries, and CloudWatch-based scaling and monitoring.
Explore breadth first search and depth first search for designing web crawlers, weighing memory usage, traversal depth, and loop traps in graph traversal.
Explore next steps in cloud architecture for a web crawler, covering database schema, storage design, domain filtering, security measures, content deduplication, monitoring, and scheduling.
Great systems don’t happen by accident — they start with brilliant design.
In this course, you'll learn to think and build like a true Solutions Architect, mastering the skills that turn ideas into scalable, reliable systems.
Your instructor, Ashish, isn’t just a theorist — he’s a seasoned architect who has designed complex solutions for some of the world’s largest enterprises. With years of real-world experience behind him, Ashish brings practical insights that go far beyond typical textbook learning.
You’ll move from concepts to real-world application, learning how to simplify complexity, weigh trade-offs, and build future-proof architectures. You'll practice hands-on system design, sharpen your decision-making. Ashish will take you behind the scenes of how some of the world’s most widely used systems are architected.
We’ll align every design with proven best practices, including the AWS Well-Architected Framework, ensuring you gain skills that stand up in interviews and on the job.
Whether you're preparing for an architecture interview, aiming to level up your career, or leading real cloud projects, this course will give you the mindset, strategies, and tools to design like a pro.
If you're ready to stop memorizing theory and start building real solutions, this is the course for you.
Let’s get started!