Photo by Chris Ried on Unsplash

Some Introduction

Rarely do big projects are done individually. They usually are developed by a team of developers which have their own assigned tasks in contributing to the project. Not every developer codes in the same way. One might like to do one thing, and another might do another thing. Therefore, there needs to be a universal “style” of programming as a guidance for all developers so that each and every developer have the same style of programming.

Clean Code

This is where the style of clean code comes in. Clean code is code that’s easy to read, understand, and maintain. Clean code helps…



Test-driven development (TDD) is a software development process relying on software requirements being converted to test cases before software is fully developed, and tracking all software development by repeatedly testing the software against all test cases.


TDD is the reverse of the traditional development then testing approach. So, instead of writing code for development first, we first create test cases based on the requirements of the product then code until it passes all the test cases made. This will result in a cleaner and less prone to breaking code for the long run.

Why TDD?

Here are the benefits we…

Photo by Marvin Meyer on Unsplash

Most of the time, working in teams to deliver a working product is the way to go, especially to a customer. The traditional way of waiting for an individual to finish their code and then passing to another individual is bothersome and time inefficient. More than that, a way to track what has been done or changed by the previous individual is not an easy thing to do. Therefore, a more modern way of working in teams is needed to solve the problem. This is where Git comes in handy, as it is the most used version controller.


Git is…

How do you think popular e-commerce websites handle millions of users in a fast and reliable manner? And most importantly, with no errors.

High Availability is what a good website has. It is a term used to describe a system that works perfectly in a long-term period. In it’s applications, a web does not rely only on one web server as it will overload and overwork the server thus resulting in a degradation of it’s performance. Multiple web servers is the way to go to maintain it’s high availability.

Now, how do we achieve this so called high availability?

A load balancer sits in front of your server distributing millions of user requests across a number of web servers. They improve the overall performance of applications by decreasing the burden on servers associated…

Photo by Austin Distel on Unsplash


In this modern era, software development is rarely an individual work. Planning, analysis, design, implementation, testing, integration, and maintenance involve designers, developers, testers, and graphic artists that work collaboratively on their own assigned dependent tasks. In addition to that, product requirements that are often that not not well defined or incomplete and delivery within the time limit and budget is not something a group may do well in, let alone an individual.

To overcome these problems, several development methodologies have been made. One of the most popular was the Waterfall Process where its phases are followed in order:

  • Requirement
  • Design


Computer Science Student at Universitas Indonesia

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store