ByteByteGo’s cover photo
ByteByteGo

ByteByteGo

Software Development

San Francisco, California 600,332 followers

Weekly system design newsletter you can read in 10 mins.

About us

A popular weekly newsletter covering topics and trends in large-scale system design, from the authors of the best-selling System Design Interview series.

Industry
Software Development
Company size
1 employee
Headquarters
San Francisco, California
Type
Privately Held

Locations

Employees at ByteByteGo

Updates

  • I’ve been writing the system design newsletter for 12 months. Here are the 5 most popular ones: 👇 1. From 0 to Millions: A Guide to Scaling Your App 2. A Crash Course in Caching 3. API Architectural Styles 4. How does ChatGPT work? 5. 8 Data Structures That Power Your Databases Subscribe to our weekly newsletter to get a Free System Design PDF (158 pages): https://bit.ly/3FEGliw .

    • No alternative text description for this image
  • ByteByteGo reposted this

    Honored to be spotlighted by ByteByteGo! Discover how Amazon Key’s team tackled the challenges of secure access control at scale, unlocking over 100 million doors annually across 10+ countries. The story dives into our evolution from a small idea to a robust, scalable system, featuring insights from Kaushik Mani and Vijayakrishnan Nagarajan. A big thank you to ByteByteGo and Alex Xu for sharing our journey. Read the full article here: https://lnkd.in/gbxN6RZe

    View profile for Alex Xu

    Amazon Key is a REALLY convenient way to have your packages securely delivered right inside your garage or multifamily property. We sat down with Kaushik Mani and Vijayakrishnan Nagarajan to learn how a small side project evolved into a global platform: now powering over 100 million secure door unlocks every year. This story is packed with valuable lessons on: - Scaling IoT infrastructure across thousands of locations - Building resilient, field-ready hardware for real-world environments - Overcoming cold starts and connectivity challenges - Designing a microservices architecture for global expansion - Creating a secure, partner-ready platform to support third-party integrations - And many more Dive into the full newsletter here: https://lnkd.in/gQNXwDFz

    • No alternative text description for this image
  • Why is Kafka fast? There are many design decisions that contributed to Kafka’s performance. In this post, we’ll focus on two. We think these two carried the most weight. 1️. The first one is Kafka’s reliance on Sequential I/O.   2️. The second design choice that gives Kafka its performance advantage is its focus on efficiency: zero copy principle.   The diagram below illustrates how the data is transmitted between producer and consumer, and what zero-copy means.   🔹Step 1.1 - 1.3: Producer writes data to the disk    🔹Step 2: Consumer reads data without zero-copy 2.1: The data is loaded from disk to OS cache 2.2 The data is copied from OS cache to Kafka application 2.3 Kafka application copies the data into the socket buffer  2.4 The data is copied from socket buffer to network card 2.5 The network card sends data out to the consumer   🔹Step 3: Consumer reads data with zero-copy 3.1: The data is loaded from disk to OS cache 3.2 OS cache directly copies the data to the network card via sendfile() command 3.3 The network card sends data out to the consumer   Zero copy is a shortcut to save multiple data copies between the application context and kernel context. –  Subscribe to our weekly newsletter to get a Free System Design PDF (158 pages): https://bit.ly/bbg-social #systemdesign #coding #interviewtips  .

    • No alternative text description for this image
  • API Vs SDK!    API (Application Programming Interface) and SDK (Software Development Kit) are essential tools in the software development world, but they serve distinct purposes:    API:  An API is a set of rules and protocols that allows different software applications and services to communicate with each other.    1. It defines how software components should interact.  2. Facilitates data exchange and functionality access between software components.  3. Typically consists of endpoints, requests, and responses.    SDK:  An SDK is a comprehensive package of tools, libraries, sample code, and documentation that assists developers in building applications for a particular platform, framework, or hardware.    1. Offers higher-level abstractions, simplifying development for a specific platform.  2. Tailored to specific platforms or frameworks, ensuring compatibility and optimal performance on that platform.  3. Offer access to advanced features and capabilities specific to the platform, which might be otherwise challenging to implement from scratch.    The choice between APIs and SDKs depends on the development goals and requirements of the project.    Over to you: Which do you find yourself gravitating towards – APIs or SDKs – Every implementation has a unique story to tell. What's yours? -- Subscribe to our weekly newsletter to get a Free System Design PDF (158 pages): https://bit.ly/bbg-social   #systemdesign #coding #interviewtips  .

    • No alternative text description for this image
  • Algorithms you should know before taking System Design Interviews What are some of the algorithms you should know before taking system design interviews? I put together a list and explained why they are important. Those algorithms are not only useful for interviews but good to understand for any software engineer. One thing to keep in mind is that understanding “how those algorithms are used in real-world systems” is generally more important than the implementation details in a system design interview. What do the stars mean in the diagram? It’s very difficult to rank algorithms by importance objectively. I’m open to suggestions and making adjustments. Five-star: Very important. Try to understand how it works and why. Three-star: Important to some extent. You may not need to know the implementation details. One-star: Advanced. Good to know for senior candidates. Over to you: did I miss anything important on the list? Which ones do you know and which you don’t? --  Subscribe to our weekly newsletter to get a Free System Design PDF (158 pages): https://bit.ly/bbg-social #systemdesign #coding #interviewtips  .

    • No alternative text description for this image
  • A picture is worth a thousand words: 9 best practices for developing microservices. When we develop microservices, we need to follow the following best practices: 1. Use separate data storage for each microservice 2. Keep code at a similar level of maturity 3. Separate build for each microservice 4. Assign each microservice with a single responsibility 5. Deploy into containers 6. Design stateless services 7. Adopt domain-driven design 8. Design micro frontend 9. Orchestrating microservices --  Subscribe to our weekly newsletter to get a Free System Design PDF (158 pages): https://bit.ly/bbg-social #systemdesign #coding #interviewtips  .

    • No alternative text description for this image
  • ByteByteGo reposted this

    We're hiring two new positions at ByteByeGo: Full-Stack Engineer and Sales/Partnership Role Type: Part-time (20+ weekly) or Full-time Compensation: Competitive Full-Stack Engineer (Remote) We are hiring a Full Stack Engineer to build an easy-to-use educational platform and drive product-led growth. You'll work closely with the founder, wearing a product manager's hat when needed to prioritize user experience and feature impact. You'll operate in a fast-paced startup environment where experimentation, creativity, and using AI tools for rapid prototyping are encouraged. We’re less concerned with years of experience. We care more about what you've built than about your resume. Share your projects, GitHub, portfolio, or any artifacts that showcase your ability to solve interesting problems and create impactful solutions. When you're ready, send your resume and a brief note about why you're excited to join ByteByteGo to [email protected] Sales/Partnership (US based remote role) We’re looking for a sales and partnerships specialist who will help grow our newsletter sponsorship business. This role will focus on securing new advertisers, nurturing existing relationships, and optimizing revenue opportunities across our newsletter and other media formats. We’re less concerned with years of experience. What matters most is that you’re self-motivated, organized, and excited to learn and take on new challenges. How to Apply: send your resume and a short note on why you’re excited about this role to [email protected]

  • Data is cached everywhere, from the front end to the back end! This diagram illustrates where we cache data in a typical architecture. There are 𝐦𝐮𝐥𝐭𝐢𝐩𝐥𝐞 𝐥𝐚𝐲𝐞𝐫𝐬 along the flow. 🔹 1. Client apps: HTTP responses can be cached by the browser. We request data over HTTP for the first time, and it is returned with an expiry policy in the HTTP header; we request data again, and the client app tries to retrieve the data from the browser cache first. 🔹 2. CDN: CDN caches static web resources. The clients can retrieve data from a CDN node nearby. 🔹 3. Load Balancer: The load Balancer can cache resources as well. 🔹 4. Messaging infra: Message brokers store messages on disk first, and then consumers retrieve them at their own pace. Depending on the retention policy, the data is cached in Kafka clusters for a period of time. 🔹 5. Services: There are multiple layers of cache in a service. If the data is not cached in the CPU cache, the service will try to retrieve the data from memory. Sometimes the service has a second-level cache to store data on disk. 🔹 6. Distributed Cache: Distributed cache like Redis hold key-value pairs for multiple services in memory. It provides much better read/write performance than the database. 🔹 7. Full-text Search: we sometimes need to use full-text searches like Elastic Search for document search or log search. A copy of data is indexed in the search engine as well. 🔹 8. Database: Even in the database, we have different levels of caches: - WAL(Write-ahead Log): data is written to WAL first before building the B tree index - Bufferpool: A memory area allocated to cache query results - Materialized View: Pre-compute query results and store them in the database tables for better query performance - Transaction log: record all the transactions and database updates - Replication Log: used to record the replication state in a database cluster Over to you: With the data cached at so many levels, how can we guarantee the 𝐬𝐞𝐧𝐬𝐢𝐭𝐢𝐯𝐞 𝐮𝐬𝐞𝐫 𝐝𝐚𝐭𝐚 is completely erased from the systems? -- Subscribe to our weekly newsletter to get a Free System Design PDF (158 pages): https://bit.ly/bbg-social   #systemdesign #coding #interviewtips  .

    • No alternative text description for this image
  • Popular interview question: What happens when you type google .com into a browser? 1 - First up, you type the website address in the browser’s address bar. 2 - The browser checks its cache first. If there’s a cache miss, it must find the IP address. 3 - DNS lookup begins (think of it as looking up a phone number). The request goes through different DNS servers (root, TLD, and authoritative). Finally, the IP address is retrieved. 4 - Next, your browser initiates a TCP connection like a handshake. For example, in the case of HTTP 1.1, the client and server perform a TCP three-way handshake with SYN, SYN-ACK, and ACK messages. 5 - Once the handshake is successful, the browser makes an HTTP request to the server and the server responds with HTML, CSS, and JS files. 6 - Finally, the browser processes everything. It parses the HTML document and creates DOM and CSSOM trees. 7 - The browser executes the JavaScript and renders the page through various steps (tokenizer, parser, render tree, layout, and painting). 8 - Finally, the webpage appears on your screen. Over to you: Which other step will you add to the overall process? -- Subscribe to our weekly newsletter to get a Free System Design PDF (158 pages): https://bit.ly/bbg-social   #systemdesign #coding #interviewtips  .

    • No alternative text description for this image

Similar pages

Browse jobs