Best of MediumJuly 2024

  1. 1
    Article
    Avatar of medium_jsMedium·2y

    12+ Things I Regret Not Knowing Earlier About Python Lists

    Learn various useful techniques to handle Python lists effectively. Discover the power of the * operator for combining and unpacking lists, the difference between .sort() and sorted(), and advanced methods like list comprehensions, .insert(), and .extend(). Understand the distinct advantages and limitations of tuples compared to lists.

  2. 2
    Article
    Avatar of medium_jsMedium·2y

    40 Must-Read White Papers to Learn System Design and Software Architecture

    This post lists 40 essential white papers for learning system design and software architecture. It is geared towards those preparing for system design interviews or aiming to understand complex system architectures. Each white paper provides in-depth technical insights from industry leaders like Google and AWS, covering topics from distributed file systems to data processing models and consensus algorithms.

  3. 3
    Article
    Avatar of medium_jsMedium·2y

    System Design: Load Balancer

    Load balancers are essential in distributing workloads effectively across multiple servers in distributed applications. They can operate at various application layers and employ static or dynamic algorithms to manage requests. Static algorithms depend on predefined parameters while dynamic ones use real-time system state data. Popular load balancing strategies include Round Robin (and its variations), Least Connections, Least Response Time, IP Hashing, and URL Hashing. The choice of strategy depends on specific system needs and configurations to ensure optimal performance.

  4. 4
    Article
    Avatar of medium_jsMedium·2y

    Clean Code Notes - Chapter 1: Clean Code

    Chapter 1 of 'Clean Code' emphasizes the significance of writing clean, maintainable, and readable code. It discusses the long-term benefits of clean code, the pitfalls of bad code, and the high cost of maintaining a messy codebase. The chapter highlights the importance of a developer's attitude towards their work, the balancing act between speed and quality, and the value of incremental improvements. Adopting principles like simplicity, clarity, and efficiency leads to better software development practices.

  5. 5
    Article
    Avatar of medium_jsMedium·2y

    Learning React: 5 Important Principles About Hooks You Have To Know

    Learn key principles about React hooks to avoid common pitfalls and optimize your code. Understand when not to use hooks, the importance of re-renders, when to choose between useState and useReducer, the proper use of useEffect, and the underrated power of useRef.

  6. 6
    Article
    Avatar of medium_jsMedium·2y

    Practial Domain Driven Design

    Practical application of Domain Driven Design (DDD) requires hands-on experience to achieve a true understanding, beyond theoretical knowledge. The post discusses common challenges such as rigid rules that may complicate DDD implementation and emphasizes the importance of context in applying these rules. It introduces Business Oriented Architecture, which integrates Tactical DDD patterns with Resilient Messaging to simplify development by managing issues like resiliency, scalability, and configuration. This approach allows developers to focus more on business logic, enhancing efficiency and project outcomes.

  7. 7
    Article
    Avatar of medium_jsMedium·2y

    The 5 Deadly Sins of Text Communication for Software Developers

    Developers often face communication challenges that hinder productivity, such as not providing enough context, writing multiple short messages, and not trying hard before asking for help. Effective communication includes asking direct questions, providing sufficient context, and composing clear messages. Tips also include pre-explaining problems and investing in communication practices to build better relationships and get faster help.

  8. 8
    Article
    Avatar of medium_jsMedium·2y

    Agentic AI: Creating An AI Agent Which Can Navigate The Internet

    WebVoyager is an innovative AI agent designed to navigate and interact with the internet using annotated screenshots and textual inputs. Leveraging large multimodal models (LMMs), it mimics human web browsing behavior by using visual cues, enabling it to perform tasks like clicking, typing, and scrolling autonomously. This agent showcases the advanced capabilities of GPT-4 models and underscores the significance of multimodal inputs for sophisticated web interactions.

  9. 9
    Article
    Avatar of medium_jsMedium·2y

    Advanced Kotlin Coroutine Cheat sheet (for Android Engineer)

    This cheat sheet provides advanced insights and best practices for using Kotlin Coroutines in Android development. Key elements like CoroutineContext, Job, Dispatcher, and CoroutineScope are thoroughly explained. It covers essential concepts such as coroutine builders, dispatcher selection, and how to manage parallel execution and cancellation of coroutines. Additionally, it offers practical advice on avoiding synchronization issues and optimizing performance.

  10. 10
    Article
    Avatar of medium_jsMedium·2y

    Full Guide to Building a Professional Portfolio with Python, Markdown, Git, and GitHub Pages

    This guide explains how to create a professional portfolio using Python, Markdown, Git, and GitHub Pages. It covers setting up the necessary software, configuring the local environment, creating a custom website structure with mkdocs, and deploying it using GitHub Pages. The tutorial highlights iterative improvements, website configurations, and the use of mkdocs-material for an enhanced visual experience. Instructions for tracking site traffic via Google Analytics are also provided.

  11. 11
    Article
    Avatar of medium_jsMedium·2y

    Hidden Gems of .NET: Tricks and Features Every Developer Should Know

    Discover some lesser-known features and tricks in .NET that can significantly enhance your development experience. Learn about global using directives, string interpolation enhancements, Span<T>, top-level statements, source generators, file-scoped namespaces, nullable reference types, custom attributes, records, and .NET Interactive Notebooks.

  12. 12
    Article
    Avatar of medium_jsMedium·2y

    How to Build a Streaming Agent with Burr, FastAPI, and React

    Learn how to build a streaming agentic chatbot using Burr, FastAPI, and React. This guide covers why streaming is important, introduces the open-source tools used, and provides a step-by-step example of integrating these technologies to create an interactive chatbot. The chatbot streams responses in real-time, leveraging Burr's state machine capabilities, FastAPI's SSEs, and a React frontend. Key steps include modeling the chatbot as a state machine, setting up streaming actions, building an application, exposing it through FastAPI, and creating the UI to handle streaming data.

  13. 13
    Article
    Avatar of medium_jsMedium·2y

    Simulating Wildfires in a Forest🔥

    Simulating wildfires involves using a computational model called Cellular Automaton (CA), leveraging Python libraries such as NumPy and Matplotlib. The simulation describes a forest grid with cells representing trees, wildfires, and burned areas. The model applies rules to change cell states over time, incorporating additional elements like temperature, wind, and precipitation to closely mimic real-world wildfire scenarios. The more sophisticated model includes additional states (water, bedrock, grass) and weather conditions to make the simulation more realistic.

  14. 14
    Article
    Avatar of medium_jsMedium·2y

    How We Decreased Our Monthly AWS Costs from $10,000 to $1,500

    Managing cloud infrastructure can become costly if not optimized. This guide shares steps to significantly reduce AWS costs from $10,000 to $1,500 per month. Key actions include cleaning up ECR images, optimizing ECS Fargate services, managing S3 storage, converting VPN usage to SSH tunnels, right-sizing RDS and DocumentDB instances, purchasing ECS savings plans, consolidating load balancers, removing redundant IPv4 addresses and environments, and right-sizing remaining resources.

  15. 15
    Article
    Avatar of medium_jsMedium·2y

    Maestro: Netflix’s Workflow Orchestrator

    Netflix has open-sourced Maestro, a versatile and horizontally scalable workflow orchestrator designed for managing large-scale workflows like data pipelines and machine learning model training. Maestro supports both acyclic and cyclic workflows and includes reusable patterns such as foreach loops, subworkflow, and conditional branches. It is capable of handling numerous workflows and tasks, boasting features such as predefined run strategies, dynamic parameter support, and secure code injection. Maestro ensures efficient workflow management with a single orchestrator handling all workflows accessing Netflix's data warehouse, thus reducing complexity and improving user experience.

  16. 16
    Article
    Avatar of medium_jsMedium·2y

    Fine-Tune Llama 3.1 Ultra-Efficiently with Unsloth

    The post provides a comprehensive guide to fine-tuning the Llama 3.1 model using the Unsloth library. It explores supervised fine-tuning (SFT) techniques, including Full Fine-Tuning, Low-Rank Adaptation (LoRA), and Quantization-aware LoRA (QLoRA). Practical steps to implement fine-tuning with Google Colab are detailed, focusing on hyperparameters, dataset preparation, and optimization. The advantages of using Unsloth for efficient training with limited GPU resources are highlighted, along with suggestions for further steps such as model evaluation, preference alignment, and deployment.

  17. 17
    Article
    Avatar of medium_jsMedium·2y

    Angular 18 — Zoneless & Change Detection

    Angular 18 introduces Zoneless mode, enabling developers to build applications without using ZoneJs. The post explores change detection mechanisms under various conditions like Click events, Input + NgModel, AsyncPipe, Signal, and setInterval. Tests show OnPush strategy is essential for reducing checks in both NgZone and Zoneless modes, with Signals proving highly efficient for isolated template updates.

  18. 18
    Article
    Avatar of medium_jsMedium·2y

    Employing AI in Finance Analytics

    AI is revolutionizing predictive financial analytics by utilizing machine learning algorithms to handle vast datasets and complex, non-linear relationships. These advanced models, such as neural networks and decision trees, improve the precision of economic forecasts by continuously learning from diverse data sources, including transactional data and social media trends. Case studies highlight AI's effectiveness in predicting stock market trends and assessing credit risks, underscoring its impact on financial stability and profitability. Strategic integration into financial systems and a robust data foundation are vital for leveraging AI's benefits.