Docker compose is a tool that is automatically installed when Docker is installed on your machine.

Docker Compose automates some of the CLI commands and allows you to connect and start multiple Docker containers.

It makes use of a yml file which is designed to build, network and run the docker containers required by the project. The yml file will then be executed by the docker-compose script and parse the instructions to configure the containers and connections. In the project directory, create a docker-compose.yml file:

> touch docker-compose.yml

The yml file makes use of a special syntax to execute the…

It may be a great understatement to say that programming can be complex. Between the many dozens of languages, trendy libraries, choice of paradigms and use of patterns, it is a wondrous feat that development teams can produce such well-oiled, cohesive results. Owing in large part to that complexity, it is well known that developers can spend countless hours troubleshooting and debugging their code, instead of developing new features. …


This post is a continuation of a series I am writing on using Django as an API. In this section, I will cover initializing the Django app, creating models and migrations, and setting up PostgreSQL as a database.

Django, as I suspect many people reading this post know, is a high-level Python framework which simplifies and streamlines web development. As with other frameworks, Django does much of the heavy lifting by making design and implementation decisions for developers, providing pre-built solutions to common requirements and allowing developers to spend more time solving business-specific challenges, instead of commonplace tasks. For…

Lights, Camera, Action
Lights, Camera, Action
Lights, Camera, Action

State management is quite an undertaking in a large scale application. I recently had the experience of refactoring a React app into a React-Redux app in order to unify the codebase and make the application more predictable. It was not a fun process, but the experience was well worth the time. It is understandable, particularly starting out, to avoid learning yet another JavaScript library, but Redux is such a helpful tool that it is well worth your investment.

Initially, I was put off by Redux. Why learn another tool when React was literally designed around the idea of state? The…

Computer in front of a window
Computer in front of a window


This post is for people who are interested in why certain patterns are used by developers when choosing Python as a backend language and also need a quick and clear set of instructions on how to set up a Django backend as an API. Since set up can often be an achilles heel for newer programmers, owing how little of our time is actually spent on set up as opposed to coding (and debugging), I decided to save people some heartache and headaches.

In my case, I will be using a certain set of tools. First, I will use…

Photo by Artem Sapegin on Unsplash

Single Page Applications (SPA) have become a common web development technique over the past 5–10 years. Owing to their speed, interactivity, versatility, and rich developer community; SPAs are fantastic for quickly deploying modern web applications. Additionally, they reduce the need for constant, costly and lengthy network calls which are characteristic of multipage applications.

However, SPAs have limitations as well. The reliance on Asynchronous Javascript (AJAX) calls makes Search Engine Optimization (SEO) difficult, since search engines rely on stable content structured in pages for indexing. SPAs can be more vulnerable to Cross-Site Scripting (XSS) attacks and disproportionately depend on Javascript to…


In many cases, basic OOP education focuses on data types, variables, methods, arrays and hashes, and classes. There are plenty of good reasons to start with the basics and to become comfortable with these tools before delving deeper into less navigated, turbulent waters. Indeed, some of the oldest human wisdom praises simplicity. However upon achieving a certain level of comfort with the basics, a programmer should look forward in order to continue growing. Consequently, the basics become building blocks which allow programmers to engage with other, elaborately designed libraries and frameworks. Generally, the better that a person understands the…

Learning something new can be scary. Learning to program… can be terrifying. Even though there is a continually expanding stockpile of excellent articles, insightful videos, and interactive websites to teach beginner programmers how to program, sometimes the why of programming is left aside. On the one hand, you may find generalities like, “Ruby is an object-oriented language,” in many introductory courses. And certainly, by classifying it as an OO language, an educator is implying something broadly about Ruby. On the other hand, you may find yourself clicking into some highly-specialized resource with source code presenting information with more symbols than…

Enrique Pittaluga

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