Posted on: April 28, 2018 at 4:59 PM    

Blog written by Stacy Rendall, Principal Spatial Researcher, Interpret Geospatial Solutions

As a researcher I often develop for Python, JavaScript (both Node.js and browser) and HTML/CSS on Windows. This series of blog posts will describe my development environment, from high level technologies down to specific apps.  It may be of interest to anyone doing Python or web development - hopefully you pick up some new ideas or handy apps!


This blog introduces the five core technologies that make up the overall stack. My subsequent blogs in this series will describe some of the particular apps that I have found work well for each technology, and integrate together in my development environment. This series is not intended to be prescriptive, but food for thought about your environment in general.

The technologies

The set of technologies consists of a few things you probably already use on a daily basis, some things you might have heard of but may not use yet, and possibly a few new concepts. I have ordered the technologies by the way in which they build upon each other or integrate together (which you can roughly think of as the order in which you might install/configure them). No matter which operating system you use or set of languages you develop for, this generalised stack of technologies should still apply (but the particular software you might use could be different).

  • Package manager - convenient way of installing, removing, managing and updating software (particularly tools for developers such as languages or utilities), and also managing the software which each package depends on.
  • Version control system - a means of tracking and managing different versions of code, also essential in development teams for recording who changed what and why, and managing situations where two people have both changed the same code.
  • Terminal - command-line interface used for interacting directly with the operating system and files, running scripts, managing services or working with an interpreter.
  • Editor - the tool you use to edit your code.
  • Linter - a program that reviews code, which can assess conformance to coding styles and check for common code errors - Linter is particularly useful in a team, ensuring that everyone is developing to a similar standard and style.

Stay tuned for my upcoming blogs which will present some of the programs I use for each of these technologies, how to install and configure then, and how they all work together.  I welcome your feedback or comments, at

stacy blog stack image2 resized