I'm 38.
When I was 32 I worked in a bank, went woke (then broke) & suffered depression.
Then I discovered Naval Ravikant's "How to get rich" post & made several million dollars by 38
8 of his insights that transformed my life (and will do the same for you):
Your brain is a hardware.
Every day the battery goes to 0
If you don't charge it, the software becomes useless.
Give me 2 minutes and I'll show you how to gain a super brain in 8 steps:
Becoming AWS Data Engineer (Quick Guide) 📄
There are 100s of services available on Amazon Web Services, the thing is you don't need to learn all of them.
You need to focus on 10-20 services that you might use as a Data Engineer and services for other work (networking/access management)
📈 AWS Services for Data Engineers:
✅ Simple Storage Service (S3):
It is an object storage (you can store anything) basically, the center of your work, all of the data you will get will be stored here for future processing.
✅ AWS Glue:
Want to write ETL (Extract, Transform, Load) jobs in Python/Spark without worrying about servers? Glue is a serverless service where you just need to focus on writing your code and everything will be taken care of by AWS
✅ Amazon Redshift:
So you processed data and wrote the ETL script, where to load it? Yes! Data Warehouse. Amazon Redshift is a fully managed data warehouse service that makes it simple to analyze all your data using standard SQL and your preferred business intelligence (BI) tools.
✅ Amazon EMR (Elastic MapReduce):
Maybe you already have your processing scripts on on-premise servers written in Hadoop/Spark and want to migrate to a similar system then EMR is the way to go.
It is a managed big data platform that makes it easy to process large amounts of data using open-source data processing frameworks like Apache Hadoop and Apache Spark.
✅ AWS Lambda:
Want to run quick scripts on specific times/triggers/events? Lambda is your best friend!
AWS Lambda is a serverless computing service that enables you to run your code without managing servers. This service can be used to run data engineering workflows and transform data in real time.
✅ Amazon Athena:
Why load data on Data Warehouse, when you can just direct run SQL query on top of actual files? Athena is an ad-hoc query interface that you can use for SQL queries directly on top of files stored on S3 buckets
✅ Kinesis:
Want to process real-time data, analyze it, and store it? Kinesis is used for this type of work, just like Apache Kafka, you can process real-time data using Kinesis.
✅ DMS (Data Migration Service):
I spent my early data engineering days working on migration projects and DMS makes your life so much easier.
There are many more services you can focus on such as EC2, IAM, VPC, Batch, Sagemaker, etc...
If you want to learn all of these services by building a project then check below👇🏻
Struggling with Machine Learning algorithms? 🤖
Then you better stay with me! 🤓
We are going back to the basics to simplify ML algorithms.
... today's turn is Logistic Regression! 👇🏻
🚨 Breaking news:
Google Chrome just got an AI upgrade.
You can now ask Gemini anything directly from the search bar.
Here's how to use it directly in Chrome search bar with just 2 steps: 🧵 👇
𝗗𝗼 𝘆𝗼𝘂 𝗵𝗮𝘃𝗲 𝗮 𝗳𝗶𝘅𝗲𝗱 𝗺𝗶𝗻𝗱𝘀𝗲𝘁?
If you have it, you think you cannot be better or have a better job or life.
This is a prejudice that constrains you from growing further.
Outstanding achievement and well-being have all been associated with a growth mindset, the belief that one's talents can be developed through work and learning.
Shifting one's mentality can be time-consuming and effort-consuming, requiring confronting rooted ideas and thought habits.
But you can start today and improve yourself in every way.
The future still needs to be written. It's up to you to write it.
Anything is possible!
I wish you a great week ahead 👋.
#personaldevelopment
Ever wonder what it means when your manager asks you to design for "high availability," "high scalability," or "high throughput"? Let me break it down in simple terms.
𝗛𝗶𝗴𝗵 𝗔𝘃𝗮𝗶𝗹𝗮𝗯𝗶𝗹𝗶𝘁𝘆 - 𝗞𝗲𝗲𝗽𝗶𝗻𝗴 𝘁𝗵𝗲 𝗦𝗲𝗿𝘃𝗶𝗰𝗲 𝗨𝗽 𝗮𝗻𝗱 𝗥𝘂𝗻𝗻𝗶𝗻𝗴
This refers to maximizing uptime of a service, usually targeting 99.9% availability or higher. Each additional nine usually means an exponential increase in complexity. To achieve this, we build in redundancy at multiple levels, with failover systems ready to step in if the main system crashes.
𝗛𝗶𝗴𝗵 𝗧𝗵𝗿𝗼𝘂𝗴𝗵𝗽𝘂𝘁 - 𝗛𝗮𝗻𝗱𝗹𝗶𝗻𝗴 𝗛𝗲𝗮𝘃𝘆 𝗟𝗼𝗮𝗱
Throughput refers to the number of requests a system can handle per second, measured in transactions per second (TPS) or queries per second (QPS). Common techniques include adding caches, tweaking thread usage, optimizing bottlenecks, and enabling asynchronous processing to handle more simultaneous requests.
𝗛𝗶𝗴𝗵 𝗦𝗰𝗮𝗹𝗮𝗯𝗶𝗹𝗶𝘁𝘆 - 𝗚𝗿𝗼𝘄𝗶𝗻𝗴 𝗖𝗮𝗽𝗮𝗰𝗶𝘁𝘆
Scalability means a system can expand its workload capacity as needed. To scale out horizontally, it’s common to break services into independent modules or microservices. Leveraging load balancers and service registries enables seamlessly routing requests to new resources.
Over to you: What stories do you have tackling these in system design?
–
Subscribe to our weekly newsletter to get a Free System Design PDF (158 pages): https://t.co/kNfv0DVDdf
How To Release A Mobile App
The mobile app release process differs from conventional methods. This illustration simplifies the journey to help you understand.
Typical Stages in a Mobile App Release Process:
1. Registration & Development (iOS & Android):
- Enroll in Apple's Developer Program and Google Play Console as iOS and Android developer
- Code using platform-specific tools: Swift/Obj-C for iOS, and Java/Kotlin for Android
2. Build & Test (iOS & Android):
Compile the app's binary, run extensive tests on both platforms to ensure functionality and performance. Create a release candidate build.
3. QA:
- Internally test the app for issue identification (dogfooding)
- Beta test with external users to collect feedback
- Conduct regression testing to maintain feature stability
4. Internal Approvals:
- Obtain approval from stakeholders and key team members.
- Comply with app store guidelines and industry regulations
- Obtain security approvals to safeguard user data and privacy
5. App Store Optimization (ASO):
- Optimize metadata, including titles, descriptions, and keywords, for better search visibility
- Design captivating screenshots and icons to entice users
- Prepare engaging release notes to inform users about new features and updates
6. App Submission To Store:
- Submit the iOS app via App Store Connect following Apple's guidelines
- Submit the Android app via Google Play Console, adhering to Google's policies
- Both platforms may request issues resolution for approval
7. Release:
- Upon approval, set a release date to coordinate the launch on both iOS and Android platforms
Over to you:
What's the most challenging phase you've encountered in the mobile app release process?
–
Subscribe to our weekly newsletter to get a Free System Design PDF (158 pages): https://t.co/FIzCeaWsZV
System Design Blueprint: The Ultimate Guide. The method to download the high-resolution PDF is available at the end.
We've created a template to tackle various system design problems in interviews.
Hope this checklist is useful to guide your discussions during the interview process.
This briefly touches on the following discussion points:
- Load Balancing
- API Gateway
- Communication Protocols
- Content Delivery Network (CDN)
- Database
- Cache
- Message Queue
- Unique ID Generation
- Scalability
- Availability
- Performance
- Security
- Fault Tolerance and Resilience
- And more
Subscribe to our newsletter to download the 𝗵𝗶𝗴𝗵-𝗿𝗲𝘀𝗼𝗹𝘂𝘁𝗶𝗼𝗻 𝘀𝘆𝘀𝘁𝗲𝗺 𝗱𝗲𝘀𝗶𝗴𝗻 𝗯𝗹𝘂𝗲𝗽𝗿𝗶𝗻𝘁. After signing up, find the download link on the success page: https://t.co/uc5M7CdXXC
A Visual Overview of Kubernetes
Containers revolutionized modern application development and deployment. Unlike bulky virtual machines, containers package up just the application code and dependencies, making them lightweight and portable. However, running containers at scale brings challenges. Enter Kubernetes!
Kubernetes helps deploy, scale, and manage containerized applications across clusters of machines.
𝗖𝗼𝗿𝗲 𝗞𝘂𝗯𝗲𝗿𝗻𝗲𝘁𝗲𝘀 𝗖𝗼𝗺𝗽𝗼𝗻𝗲𝗻𝘁𝘀
Control Plane: The brains behind cluster management, handling scheduling, maintaining desired state, rolling updates etc. Runs on multiple machines for high availability.
Worker Nodes: The machines that run the containerized applications. Each node has components like kubelet and kube-proxy alongside the application containers.
The smallest deployable units in Kubernetes are Pods. A Pod encapsulates one or more tightly coupled containers that comprise an application. Kubernetes assigns Pods to worker nodes through its API server.
𝗞𝗲𝘆 𝗞𝘂𝗯𝗲𝗿𝗻𝗲𝘁𝗲𝘀 𝗖𝗮𝗽𝗮𝗯𝗶𝗹𝗶𝘁𝗶𝗲𝘀
- Scalability: It's easy to scale applications up and down on demand. Just specify the desired instance count, Kubernetes handles the rest!
- Portability: Applications can run anywhere - on premise, cloud, hybrid environments etc. No vendor lock-in!
- Resiliency: Kubernetes restarts failed containers, replaces unhealthy nodes, and maintains desired state, reducing downtime.
- Automation: Manual tasks like rolling updates, rollbacks are automated, freeing teams to focus on development.
𝗧𝗿𝗮𝗱𝗲𝗼𝗳𝗳𝘀
The power of Kubernetes comes with complexity. Installing, configuring, and operating Kubernetes has a steep learning curve. For many teams, it's overkill.
Managed Kubernetes services help by handling control plane management, letting teams focus only on applications and pay for just the worker resources used.
𝗜𝘀 𝗞𝘂𝗯𝗲𝗿𝗻𝗲𝘁𝗲𝘀 𝗮 𝗚𝗼𝗼𝗱 𝗙𝗶𝘁?
Consider:
- Are you running containers already at meaningful scale?
- Will portability or resiliency resolve production issues?
- Is your team willing to invest in learning and operating Kubernetes?
If you answered yes, Kubernetes may suit your needs. Otherwise, containers without orchestration may still get the job done.
–
Subscribe to our weekly newsletter to get a Free System Design PDF (158 pages): https://t.co/kNfv0DVDdf
ChatGPT can now create Flowcharts and Diagrams.
No more wasting hundreds of hours creating visuals for presentations or research papers.
Here’s how to do it for free in a few minutes:
𝗛𝗼𝘄 𝘁𝗼 𝘁𝗲𝘀𝘁 𝘆𝗼𝘂𝗿 𝗔𝗣𝗜𝘀 𝗱𝗶𝗿𝗲𝗰𝘁𝗹𝘆 𝗳𝗿𝗼𝗺 𝗩𝗶𝘀𝘂𝗮𝗹 𝗦𝘁𝘂𝗱𝗶𝗼 𝗖𝗼𝗱𝗲?
You can immediately do this from your Visual Studio Code. @getpostman just released a VS Code extension in GA at POST/CON 24 that integrates API building and testing into your code editor.
What you can do with the extension inside VS Code:
🔹 𝗦𝗲𝗻𝗱 (𝗺𝘂𝗹𝘁𝗶𝗽𝗿𝗼𝘁𝗼𝗰𝗼𝗹) 𝗿𝗲𝗾𝘂𝗲𝘀𝘁𝘀
🔹 𝗦𝗲𝗻𝗱 𝗿𝗲𝗾𝘂𝗲𝘀𝘁𝘀 𝗳𝗿𝗼𝗺 𝘆𝗼𝘂𝗿 𝗵𝗶𝘀𝘁𝗼𝗿𝘆
🔹 𝗨𝘀𝗲 𝗰𝗼𝗹𝗹𝗲𝗰𝘁𝗶𝗼𝗻𝘀
🔹 𝗨𝘀𝗲 𝗱𝗶𝗳𝗳𝗲𝗿𝗲𝗻𝘁 𝗲𝗻𝘃𝗶𝗿𝗼𝗻𝗺𝗲𝗻𝘁𝘀
🔹 𝗩𝗶𝗲𝘄 𝗮𝗻𝗱 𝗲𝗱𝗶𝘁 𝗰𝗼𝗼𝗸𝗶𝗲𝘀
🔹 𝗪𝗼𝗿𝗸 𝗮𝘀 𝗮 𝘁𝗲𝗮𝗺 𝘄𝗶𝘁𝗵 𝗔𝗣𝗜𝘀
🔹 𝗔𝗻𝗱 𝗺𝗼𝗿𝗲 ...
Download the extension from the VS Code Marketplace: https://t.co/HQi2hc6Mcb
#api
The weekend is the best time to read new things.
Here are 16 articles that can help you get better at System Design:
[1] Practical Intro to Kubernetes
Why read it: To learn the basics of Kubernetes, its internal architecture, and code examples
https://t.co/dK0bH7foSa
[2] CAP Theorem with Tom the Prankster
Why read it: Understand CAP Theorem in a way you’ll never forget
https://t.co/EUvWBban69
[3] 5 Strategies for High Availability Systems
Why read it: Simple tips to improve your system’s availability
https://t.co/GCkXzcjYbe
[4] Change Data Capture and Microservices
Why read it: To learn how CDC can help implement Outbox and Strangler Fig pattern
https://t.co/ltbd8535E1
[5] 23 System Design Interview Tips
Why read it: To learn key principles to consider while designing a system.
https://t.co/5sjkaCPDo9
[6] Introduction to ACID Properties
Why read it: To learn about the basic guarantees provided by a database.
https://t.co/S7kGr3m5dM
[7] How DNS Works?
Why read it: To understand what happens when you open a website in the browser.
https://t.co/9Xyqfr87J4
[8] Intro Circuit Breaker Pattern
Why read it: Learn about the circuit breaker pattern of building microservices
https://t.co/Ni858Ns3vy
[9] Introduction to Pre-caching
Why read it: To understand the secret technique that can boost application performance
https://t.co/d1POnfwKuP
[10] Load Balancers
Why read it: To understand the types, algorithms, and high availability considerations behind a load balancer
https://t.co/iumQMuTIoH
[11] JSON Web Tokens and Authentication
Why read it: To learn how JSON Web Tokens help with user authentication
https://t.co/LJgZ4izW7I
[12] Database Caching Strategies
Why read it: To understand the various database caching strategies and how to choose one
https://t.co/oUAmzhgsOM
[13] Cookies and Sessions
Why read it: To understand the difference between cookies and sessions with regards to authentication.
https://t.co/dzZiXewgzw
[14] API Performance Strategies
Why read it: To learn about the best strategies to boost your API’s performance
https://t.co/8hfGoeIF2H
[15] Types of NoSQL Databases
Why read it: To learn about the most popular NoSQL database types and where to use them
https://t.co/QxnudjZIe3
[16] How to Scale a Component?
Why read it: Interview Tips on Vertical and Horizontal Scalability
https://t.co/sL0rr7tww4
Load Balancer Realistic Use Cases 𝐘𝐨𝐮 𝐌𝐚𝐲 𝐍𝐨𝐭 𝐊𝐧𝐨𝐰.
Load balancers are inherently dynamic and adaptable, designed to efficiently address multiple purposes and use cases in network traffic and server workload management.
Let's explore some of the use cases:
1. Failure Handling:
Automatically redirects traffic away from malfunctioning elements to maintain continuous service and reduce service interruptions.
2. Instance Health Checks:
Continuously evaluates the functionality of instances, directing incoming requests exclusively to those that are fully operational and efficient.
3. Platform Specific Routing:
Routes requests from different device types (like mobiles, desktops) to specialized backend systems, providing customized responses based on platform.
4. SSL Termination:
Handles the encryption and decryption of SSL traffic, reducing the processing burden on backend infrastructure.
5. Cross Zone Load Balancing:
Distributes incoming traffic across various geographic or network zones, increasing the system's resilience and capacity for handling large volumes of requests.
6. User Stickiness:
Maintains user session integrity and tailored user interactions by consistently directing requests from specific users to designated backend servers.
Over to you:
Which of these use cases would you consider adding to your network to enhance system reliability and why?
–
Subscribe to our weekly newsletter to get a Free System Design PDF (158 pages): https://t.co/uc5M7CdXXC