Home

Latest Articles

  • Python Unittest Mocking Constructors

    Python Unittest Mocking Constructors

    Writing effective unit tests can be challenging, especially with mocks. The post discusses issues with mocking constructors in Python’s unittest framework, suggesting that imports be structured differently to enable successful mocking. By importing the module instead of the class directly, the @patch decorator can function correctly, allowing for effective testing.

  • Debug Server Performance

    Debug Server Performance

    In this article, I compare the performance of an application hosted on AWS and Scaleway, revealing that AWS was significantly slower despite higher resources. Through testing various instance types and configurations, they determine that the issue lies in CPU performance and instance age impacting response times. Ultimately, a better instance type was found on AWS,…

  • Architecture for my Generative AI Application

    Architecture for my Generative AI Application

    In this article, I explore using AI image generation models accessed via platforms like Hugging Face but faces challenges with high GPU costs and inefficient resource management. The solution involves a web application and a backend service that auto-scales GPU usage via asynchronous messaging, ensuring resources are only used when necessary.

  • Advantages and Disadvantages of Alembic

    Advantages and Disadvantages of Alembic

    In this article, I compare Alembic to other database migration tools like Flyway and Liquibase. Alembic excels in handling parallel migrations and enforcing rollback actions but lacks checksum validation, posing risks for schema consistency. While not perfect, it offers advantages, particularly for team development, using SQLAlchemy for ORM migrations.

  • Mastering Docker Compose for Local Development and Testing

    Mastering Docker Compose for Local Development and Testing

    This article emphasizes the importance of creating a local development environment that closely resembles production using Docker Compose. It covers setting up microservices, databases, and caching systems, while discussing necessary configurations for effective unit testing. The ultimate goal is to minimize discrepancies and enhance software development efficiency.

  • Multi-Environment Configuration in Spring Boot

    Multi-Environment Configuration in Spring Boot

    In this article, I talk about the importance of proper configuration in Spring Boot applications across multiple environments. By using Maven profiles, environment variables, and CI/CD pipelines, developers can maintain clean and flexible configurations. The goal is to ensure a seamless application experience whether running locally or in production, without the risk of misconfigurations.

  • React Performance Tips and Tools

    React Performance Tips and Tools

    In this article, I discuss the importance of optimizing React app performance, placing the responsibility on developers rather than blaming users. I highlights common issues, such as unnecessary re-renders, inefficient state management, and large bundle sizes. Solutions include memoization, flattening component trees, state centralization, code splitting, and using appropriate tools for diagnosis and improvement.

  • I’ve Created a RAG in Two Days

    I’ve Created a RAG in Two Days

    In the AI era, web developers must integrate AI into projects to stay relevant. I’ve built a Retrieval-Augmented Generation (RAG) system in two days, combining a knowledge database with an LLM. Key components included data chunking and retrieval. The project showcased AI’s ability to provide specific responses, using creative datasets for testing.

  • Forms in React, with or without React Forms

    Forms in React, with or without React Forms

    Forms in web development are essential for user interaction, yet often frustrating. This content compares traditional HTML forms with React Form Components, discussing their pros and cons. Basic forms are simplistic but limited in validation, while React libraries enhance user experience with advanced features. Choose based on form complexity and validation needs.