Latest posts — page 2

Automating S3 File Uploads with Jenkins

Amazon S3 is a highly scalable, secure, and durable object storage service provided by AWS. It stores files such as application artifacts, backups, media, etc. Automating file uploads to S3 can be integrated with AWS S3 to automate file uploads.

Running Integration Tests in Docker Containers

Integration testing is a critical phase in the software development that ensures different components of an application work together as expected. Running integration tests in Dockes offers several advantages, such as consistency, isolation of dependencies, and ease of setup.

Setting Up a Web Server on Ubuntu (LAMP/LEMP Stack)

If you’re looking to set up a web server on Ubuntu, you're in the right place! This post will guide you through the process of setting up a web server using the LAMP (Linux, Apache, MySQL, PHP) and LEMP (Linux, Nginx, MySQL, PHP) stacks.

Step-by-Step Guide to Debugging with Git Bisect

Debugging complex codebases can be one of the most challenging tasks in software development, especially when you're trying to pinpoint exactly where a bug was introduced. Git Bisect is an essential tool that simplifies this task by using a binary search algorithm to identify the problematic commit.

When One Dropbox Icon Became Two (And Then Everything Broke)

On Ubuntu 24.04 with Wayland, starting Dropbox suddenly made every tray icon appear twice. What looked like a small cosmetic glitch turned into a long debugging journey through GNOME extensions, scripts, and terminal tricks—until one hidden setting finally solved it.

Configuring Jenkins to Deploy to AWS EC2 or ECS

Integrating Jenkins with AWS provides a powerful combination for automating the deployment of cloud-native applications. Jenkins, a popular CI and CD tool, can be used to build, test, and deploy applications to AWS. Automating these deployments can accelerate software delivery.

Reducing Final Image Size Using Multi-Stage Builds

In the world of containerization, optimizing the size of Docker images is crucial for improving application performance, reducing deployment times, and minimizing storage costs. One of the most effective techniques for achieving smaller images is the use of multi-stage builds.

Git Bisect: Debugging with Binary Search

Debugging issues in a large codebase can be challenging, especially when you need to identify which specific commit introduced a bug. If you have hundreds or even thousands of commits in your Git history, manually checking each one to locate the problematic change is time-consuming and error-prone.