Mastering The System Design Interview: Advanced Topics |
|||||
|
https://i124.fastpic.org/big/2025/0402/c5/4b68f86ae18e8d103da6b13bcb8d43c5.jpg
Mastering The System Design Interview: Advanced Topics Published 12/2024 MP4 | Video: h264, 1920x1080 | Audio: AAC, 44.1 KHz Language: English | Size: 5.26 GB | Duration: 22h 30m Master modern Android app architecture, privacy and security in mobile system design interviews at FAANG companies What you'll learn Solve advanced mobile system design problems Have a toolbox of advanced clarifying questions to ask during the interview Be able to discuss a wide variety of privacy and security-related topics including cryptography, authentication & authorization, local & network data protection Design apps with modern Android app architecture in mind Decide between different architectural styles, patterns and modularization strategies Requirements Some prior experience in mobile app development (preferably Android) is expected. Not strictly required, taking the foundational course "Mastering the Android System Design Interview" is a plus Description Take your mobile system design interview skills to the next level with this advanced course, building on the foundations laid in "Mastering the Android System Design Interview". If you've already mastered the basics, this course is your gateway to make you stand out in challenging and advanced system design topics - privacy, security, and modern Android app architecture - to ace your interviews at FAANG companies like Google, Apple, and beyond.Led by Stefan, a seasoned Tech Lead from a Google Developer Agency, this course is built with over a decade of hands-on experience designing and developing Android, iOS, and multiplatform apps. Having successfully navigated system design interviews himself, Stefan understands the challenges and will share his expertise, practical tips, and interview-tested strategies to set you apart.Mobile system design interviews are notoriously tough, with privacy and security being some of the least understood yet often critical areas. Additionally, modern Android app architecture requires a deep understanding of patterns, different architectural styles, and best practices to build scalable, maintainable apps. This course is specifically designed to address these gaps, giving you a competitive edge in your interviews. Despite the course being especially targeted at Android, many concepts are also applicable to iOS.Over 20 hours of on-demand video content will cover what you need to know for your mobile system design interview:Clean Code Principles: Apply DRY and SOLID principles to create codebases that are maintainable and easy to scale.Architecture Patterns: Master MVC, MVP, and MVVM, and learn how to choose the best approach for your app's complexity and development team.Clean vs. Layered Architecture: Learn how Clean Architecture focuses on the independence of business logic from frameworks, while Layered Architecture emphasizes logical separation into data, domain, and UI layers.Android Architecture Components: Streamline your system design with ViewModel, LiveData, Flow, Room, DataStore, WorkManager, and other essential libraries.Seamless Navigation: Simplify complex app flows using the Android navigation component.Dependency Injection (DI): Leverage frameworks like Dagger, Hilt, Kodein, or Koin to make your code cleaner, more modular, and easier to test.Mastering Modularization: Break down complex codebases into feature-based and/or layer-based modules for better scalability based on the principles of component cohesion and component coupling.Android Privacy Fundamentals: Explore essential topics like permissions, location handling, data, transparency & control, app hibernation, and the Privacy Sandbox.Cryptography: Understand symmetric cryptography, asymmetric cryptography, and hashing. Learn when to use each technique effectively.Local Data Protection: Learn how to safeguard sensitive data stored on devices using encryption and secure storage solutions.Network Data Protection: Explore strategies for securing data in transit, including SSL/TLS, certificate pinning, certificate transparency, and Android's network security configuration.Authentication & Authorization: Implement secure user authentication based on standards like OAuth 2.0 and OpenID Connect, and session management.Practical tips & tricks: Get additional tips & tricks, and a toolbox of clarifying questions to ask to tackle system design questions related to app architecture, privacy, and security.Hands-On Learning: Practice solving architectural, and privacy & security challenges through 2 extensive mock interviews from requirements definition to high-level and detailed designs. Overview Section 1: Introduction Lecture 1 Introduction Lecture 2 Course Overview: Modern Android App Architecture Lecture 3 Course Overview: Privacy & Security Lecture 4 Download your slides Lecture 5 Course demo code on github Section 2: Clean Code: System Design Principles Lecture 6 Clean Code Lecture 7 Clean Code: Overview Lecture 8 Clean Code: Goals Lecture 9 KISS Lecture 10 YAGNI Lecture 11 DRY Lecture 12 SOLID Lecture 13 SOLID: Single Responsibility Principle Lecture 14 SOLID: Open/Closed Principle Lecture 15 SOLID: Liskov Substitution Principle Lecture 16 SOLID: Interface Segregation Principle Lecture 17 SOLID: Dependency Inversion Principle Lecture 18 Clean Code: Demo Code Lecture 19 DRY: Demo Lecture 20 Single Responsibility Principle: Demo Lecture 21 Open/Closed Principle: Demo Lecture 22 Liskov Substitution Principle: Demo Lecture 23 Interface Segregation Principle: Demo Lecture 24 Dependency Inversion Principle: Demo Section 3: Architectural Patterns Lecture 25 Architectural Patterns Lecture 26 Architectural Patterns: Overview Lecture 27 MVC: Model-View-Controller Lecture 28 MVC: Demo Code Lecture 29 MVC: Demo Lecture 30 MVP: Model-View-Presenter Lecture 31 MVP: Demo Code Lecture 32 MVP: Demo Lecture 33 MVVM: Model-View-ViewModel Lecture 34 MVVM: Demo Code Lecture 35 MVVM: Demo Lecture 36 Comparison: MVC vs. MVP vs. MVVP Section 4: Clean Architecture Lecture 37 Clean Architecture Lecture 38 Clean Architecture: Overview Lecture 39 Clean Architecture: Goals Lecture 40 Clean Architecture: Strategies Lecture 41 Clean Architecture: Components Lecture 42 Clean Architecture: Demo Code Lecture 43 Clean Architecture: Demo Section 5: Layered Architecture Lecture 44 Layered Architecture Lecture 45 Layered Architecture: Overview Lecture 46 Architectural Principles & Best Practices Lecture 47 Recommended App Architecture Lecture 48 Unidirectional Data Flow Lecture 49 Layered Architecture: UI Layer Lecture 50 UI State Production Pipeline Lecture 51 Exposing UI State Lecture 52 Consuming UI State Lecture 53 Layered Architecture: Data Layer Lecture 54 Repositories: Advanced Topics Lecture 55 Build Offline First Lecture 56 Layered Architecture: Domain Layer Lecture 57 Layered Architecture vs. Clean Architecture Lecture 58 Layered Architecture: Demo Code Lecture 59 Demo: Intro Lecture 60 Demo: Layered Architecture Outline Lecture 61 Demo: Layered Architecture Structure Lecture 62 Demo: UI & Domain Layer Lecture 63 Demo: Data Layer Lecture 64 Demo: Sum Up Section 6: Android Architecture Components Lecture 65 Android Architecture Components Lecture 66 Android Architecture Components: Overview Lecture 67 View Binding Lecture 68 Data Binding Lecture 69 Data Binding: Advanced Topics Lecture 70 Lifecycle-Aware Components: Lifecycle API Lecture 71 Lifecycle API: Demo Code Lecture 72 Demo: Lifecycle API Lecture 73 UI Layer Libraries: ViewModel Lecture 74 ViewModel: SavedStateHandle Lecture 75 Saving UI State Lecture 76 ViewModel: Best Practices Lecture 77 Demo: ViewModel Lecture 78 UI Layer Libraries: LiveData Lecture 79 LiveData vs. Kotlin Flows Lecture 80 UI Layer Libraries: Coroutines Lecture 81 Demo: Coroutines Lecture 82 Data Layer Libraries: SharedPreferences & Jetpack DataStore Lecture 83 Data Layer Libraries: Room Lecture 84 Data Layer Libraries: WorkManager Lecture 85 WorkManager: Advanced Topics Lecture 86 Demo: WorkManager Lecture 87 Multi-Layer Libraries: Paging Library Lecture 88 Paging Library: Demo Code Lecture 89 Demo: Paging Library Section 7: App Navigation Lecture 90 App Navigation Lecture 91 App Navigation: Overview Lecture 92 Principles of Navigation Lecture 93 Navigation Component Lecture 94 Navigation Controller Lecture 95 Destination Types Lecture 96 Back Stack Lecture 97 Navigation Graph: Overview Lecture 98 Navigation Graph: Nested Graphs Lecture 99 Navigation Graph: Deep Links Lecture 100 Navigation Graph: Type-Safe Navigation Lecture 101 Navigation Component: Integrations Lecture 102 Navigation: Demo Code Lecture 103 Demo: Navigation Component Section 8: Dependency Injection Lecture 104 Dependency Injection Lecture 105 Dependency Injection: Overview Lecture 106 Dependency Injection: Intro Lecture 107 Service Locator Lecture 108 Comparison of Frameworks Lecture 109 Comparison of Frameworks: Dagger Lecture 110 Comparison of Frameworks: Hilt Lecture 111 Comparison of Frameworks: Koin Lecture 112 Comparison of Frameworks: Kodein Lecture 113 Comparison of Frameworks: Sum Up Lecture 114 Dependency Injection: Demo Code Lecture 115 Demo: Hilt & Kodein Section 9: Modularization Lecture 116 Modularization Lecture 117 Modularization: Overview Lecture 118 Principles of Component Cohesion Lecture 119 Principles of Component Coupling Lecture 120 Multimodule Projects Lecture 121 Types of Modules Lecture 122 Modularization Strategies Lecture 123 Architecture by Layer: Demo Code Lecture 124 Modularization Demo: App Module Lecture 125 Demo: Architecture by Layer Lecture 126 Architecture by Feature: Demo Code Lecture 127 Demo: Architecture by Feature Section 10: Mid Course Wrap Up Lecture 128 Recap & Outlook Lecture 129 Privacy & Security: Overview Section 11: Permissions Lecture 130 Permissions Lecture 131 Permissions: Overview Lecture 132 Permissions Intro Lecture 133 Workflow Lecture 134 Demo: Permissions Lecture 135 Special Permissions Lecture 136 Permissions Best Practices Lecture 137 Request Minimization Lecture 138 Demo: Request Minimization Lecture 139 Prominent Disclosure & Consent Section 12: Location Lecture 140 Location Lecture 141 Location: Overview Lecture 142 Location Intro Lecture 143 Background Location Lecture 144 Location Permission Best Practices Lecture 145 Location Usage Minimization Lecture 146 Demo: Location Section 13: Data Privacy Lecture 147 Data Lecture 148 Data: Overview Lecture 149 Package Visibility Lecture 150 Package Visibility Use Cases Lecture 151 Scoped Storage Lecture 152 Unique Identifiers Lecture 153 Unique Identifiers Use Cases Section 14: Transparency & Control Lecture 154 Transparency & Control Lecture 155 Transparency & Control: Overview Lecture 156 Data Access Auditing Lecture 157 Demo: Data Access Auditing Lecture 158 Data Safety Lecture 159 Demo: Data Safety Lecture 160 Privacy UI Elements Lecture 161 Demo: Privacy UI Elements Section 15: App Hibernation Lecture 162 App Hibernation Section 16: Privacy Sandbox Lecture 163 Privacy Sandbox Lecture 164 Privacy Sandbox: Overview Lecture 165 SDK Runtime Lecture 166 Privacy-Preserving APIs Section 17: Android Security Concepts Lecture 167 Android Security Concepts Lecture 168 Android Security Concepts: Overview Lecture 169 Android Security Intro Lecture 170 Kernel Security: Linux Kernel Lecture 171 Kernel Security: App Sandbox Lecture 172 Kernel Security: SELinux Lecture 173 Kernel Security: Verified Boot Lecture 174 Kernel Security: Rooting Lecture 175 Kernel Security: User Security Lecture 176 Kernel Security: Additional Concepts Lecture 177 App Security: Permissions Lecture 178 App Security: IPC Lecture 179 App Security: Signing Lecture 180 App Security: Additional Concepts Section 18: Secure Storage Lecture 181 Secure Storage Lecture 182 Secure Storage: Overview Lecture 183 Trusty TEE Lecture 184 Secure Element Lecture 185 KeyStore Lecture 186 Secure Storage: Authentication Lecture 187 Secure Storage Applications Section 19: Symmetric Cryptography Lecture 188 Symmetric Cryptography Lecture 189 Symmetric Cryptography: Overview Lecture 190 Cryptography: Intro Lecture 191 Symmetric Cryptography Lecture 192 Modes of Operation Lecture 193 Modes of Operation: ECB Lecture 194 Modes of Operation: CBC Lecture 195 Modes of Operation: CFB Lecture 196 Modes of Operation: OFB Lecture 197 Modes of Operation: CTR Lecture 198 Data Encryption Standard (DES) Lecture 199 Data Encryption Standard: Walkthrough Lecture 200 Demo: Data Encryption Standard Lecture 201 Cracking Data Encryption Standard Lecture 202 Triple DES (3DES) Lecture 203 Demo: Triple DES Lecture 204 Advanced Encryption Standard (AES) Lecture 205 AES: Walkthrough Lecture 206 Demo: Advanced Encryption Standard Lecture 207 Cracking Advanced Encryption Standard Section 20: Asymmetric Cryptography Lecture 208 Asymmetric Cryptography Lecture 209 Asymmetric Cryptography: Overview Lecture 210 Asymmetric Cryptography Intro Lecture 211 Diffie-Hellman Key Exchange Lecture 212 Example: Diffie-Hellman Key Exchange Lecture 213 Demo: Diffie-Hellman Key Exchange Lecture 214 Cracking Diffie-Hellman Key Exchange Lecture 215 RSA Lecture 216 Example: RSA Lecture 217 Demo: RSA Lecture 218 Cracking RSA Lecture 219 Elliptic Curve Cryptography Lecture 220 Elliptic Curve Cryptography: Diffie-Hellman Algorithm Lecture 221 Elliptic Curve Cryptography: Digital Signature Algorithm Lecture 222 Demo: Elliptic Curve Cryptography Lecture 223 ECC vs. RSA Lecture 224 Cracking Elliptic Curve Cryptography Lecture 225 Android KeyStore System Lecture 226 Demo: Android KeyStore System Section 21: Hashing Lecture 227 Hashing Lecture 228 Hashing: Overview Lecture 229 Hashing: Intro Lecture 230 MD5 Lecture 231 SHA-1 Lecture 232 SHA-1 vs. SHA-2 vs. SHA-3 Lecture 233 SHA-2 Adoptions Lecture 234 SHA-3 Lecture 235 Demo: Hashing Lecture 236 HMAC Lecture 237 Demo: HMAC Section 22: Local Data Protection Lecture 238 Local Data Protection Lecture 239 Local Data Protection: Overview Lecture 240 Storage Types: File System Storage Lecture 241 Media Permissions: Android 13 & 14 Lecture 242 Demo: Media Permissions Lecture 243 Storage Types: SharedPreferences & DataStore Lecture 244 Storage Types: SQL & NoSQL Databases Lecture 245 Jetpack Security: Intro Lecture 246 Jetpack Security: MasterKey Lecture 247 Modes of Operation: Galois Counter Mode Lecture 248 Demo: MasterKey Lecture 249 Jetpack Security: EncryptedFile Lecture 250 Demo: EncryptedFile Lecture 251 Jetpack Security: EncryptedSharedPreferences Lecture 252 AES256-SIV-CMAC Lecture 253 Demo: EncryptedSharedPreferences Lecture 254 Securing DataStore Lecture 255 SQL Databases: Passcode-based Encryption Lecture 256 NoSQL Databases: Security Considerations Section 23: Network Data Protection Lecture 257 Network Data Protection Lecture 258 Network Data Protection: Overview Lecture 259 Public Key Infrastructure Lecture 260 Transport Layer Security (TLS) Lecture 261 Certificate Pinning Lecture 262 Certificate Transparency Lecture 263 Demo: Certificate Transparency Lecture 264 Certificate Revocation Lecture 265 Network Security Config Lecture 266 Demo: Network Security Config Section 24: Authentication & Authorization Lecture 267 Authentication & Authorization Lecture 268 Authentication & Authorization: Overview Lecture 269 Authentication vs. Authorization Lecture 270 Biometric Authentication Lecture 271 Demo: Biometric Authentication Lecture 272 User Authentication: Authentication Methods Lecture 273 Credential Manager Lecture 274 WebAuthn Lecture 275 Demo: Credential Manager Lecture 276 OAuth 2.0 Lecture 277 OAuth 2.0: Google OAuth 2.0 for Mobile Lecture 278 Demo: OAuth 2.0 Lecture 279 Refresh Token Lecture 280 OpenID Conn
Ссылки: (для качалок)
Общий размер публикации: 1,53 ГБ
Еще Видео: (похожие ссылки)
|