Episodios

  • Mastering Object-Oriented Design Interviews
    Jul 7 2025

    a guide to Object-Oriented Design (OOD) interview questions, providing insights from an experienced interviewer at major tech companies. It begins by explaining why OOD skills are crucial for software engineers and addresses common reasons why candidates find these questions challenging. The article then outlines a five-step approach to effectively answer OOD questions, emphasizing clarification, use cases, object identification, operation definition, and interaction mapping. Finally, the text presents ten popular OOD interview problems, ranging from designing an online shopping platform to a social network, and highlights key considerations interviewers look for in each scenario

    Más Menos
    10 m
  • What every programmer should know about memory
    May 8 2025

    discussing memory management concepts essential for software engineers. The speakers, Ahmed Elemam and Ahmed Abd Elhay, cover topics such as the stack and heap memory allocation methods, explaining their differences and use cases. They also explore virtual memory, clarifying how operating systems provide applications with the illusion of more memory than physically available and the performance implications of techniques like swapping. Furthermore, the conversation explores CPU cache levels and their significant impact on performance, illustrating how efficient data access patterns can dramatically improve execution speed through a matrix multiplication example. The speakers emphasize that memory access patterns are often more critical for performance optimization than complex code structures and recommend resources for further study on memory management and system architecture

    Más Menos
    44 m
  • Intro to Distributed Systems Example of a system for dealing with image files extensively.
    May 8 2025

    Designing a Distributed Image Processing System on the Cloud

    This is approached through a simulated dialogue between two individuals: one representing the client defining the core requirements, and the other acting as the system architect who analyzes and explains how to build the system. The discussion emphasizes the rationale for using a cloud-based environment instead of local hardware, particularly when dealing with complex image processing tasks.

    Key system functionalities are identified, including image uploading, applying filters, and downloading the results. The text also presents various diagrams illustrating data flow and interactions between the system’s main components, with a particular focus on the design of the image processor module.

    Finally, the conversation explores different failure scenarios across various system components and how to address them using previously studied design concepts and architectural patterns.

    Más Menos
    15 m
  • How to Pass the System Design Interview Anywhere?
    May 8 2025

    strategies for succeeding in a System Design interview, contrasting it with typical programming interviews where solutions are more standardized. The speaker highlights the inherently complex and often subjective nature of system design, noting that the goal of the interview is to assess a candidate's ability to handle this ambiguity and contribute effectively to the design process. Key points include the importance of asking clarifying questions to define the scope and requirements, understanding that there's rarely a single "correct" answer, and the necessity of considering various constraints and design trade-offs during the interview process. The speaker emphasizes that success often hinges on effectively communicating your thought process and justifying your design choices, even if the final output is not perfect

    Más Menos
    11 m
  • Intro to Distributed Systems Netflix Example
    May 8 2025

    designing a distributed video streaming system, using Netflix as an example reference. It emphasizes the importance of asking the right questions early in the system design process to scope the problem effectively and save time, particularly in an interview setting. The process begins by asking why such a system is needed, then progresses to what the system should do (functional requirements), and finally how it will be built, considering aspects like storage, scaling, and failure recovery. The speaker suggests using cloud services for storage and focusing on delivering byte streams to the client, while also outlining potential solutions for handling instance failures and time-outs

    Más Menos
    14 m
  • Intro to Distributed Check-In, Time Out
    May 8 2025

    A proposed hotel booking system, similar to platforms like Booking.com and Expedia, is presented. The speaker explains the core architecture of the system, including components such as the Availability Service and the Metadata Service. The video demonstrates how the system processes user queries to search for hotels and how booking data is updated by the hotels themselves. It also discusses considerations for scaling the system and handling potential challenges to ensure service continuity, emphasizing the importance of understanding requirements at the outset of designing any distributed system


    Más Menos
    10 m
  • The Art of Readable Code
    Apr 20 2025

    How to write code that is easy to understand, modify, and debug

    Más Menos
    23 m
  • Web Application Hacking_ Exploiting Security Flaws
    Apr 15 2025

    Guide for security professionals, ethical hackers, and developers who want to understand and exploit security flaws in web applications. It provides hands-on techniques for finding vulnerabilities, bypassing authentication mechanisms, exploiting injection flaws, and understanding modern web security threats

    Más Menos
    44 m