Development

Software Development Guidelines

Drew Leske

Regardless of language or environment, there are core principles we follow in software development, to encourage readability, maintainability, and joy. Each member of the team is responsible for adhering to these principles and guidelines and to assist and encourage others in doing so.

Coding norms

Drew Leske

Where the Software Development Guidelines are about the practice of developing software, this document is about details of implementation in all or specific environments.

Advanced querying with Django

by Archie To, 24 February 2025

One of the most powerful features that come with Django is the ORM (object-relational mapping). It allows you to easily fetch data from the database by writing intuitive Python code. However, if you don’t know (maybe read a different article if you do), there is more to Django’s ORM than the simple objects.get and objects.filter. This article aims to take your ability to use the Django’s ORM to the next level.

Background and context for the Software Development Guidelines

by Drew Leske, 28 January 2025

It can take a while to learn a team’s culture, and there’s no quick solve for that: it’s the culmination not only of the group’s shared experience but the years of lived experience each individual brings in, and it evolves over time and is always unique. Expected practice, on the other hand, can and should be clarified–and if your team culture has “inclusion” as a core tenet, then setting clear expectations is essential to keeping everybody on the same page.

Creating Custom Modules for the ARCsoft Library

by Lee Napthine, 9 December 2024

At ARCsoft we have begun building a repository of custom Helpers libraries that will be included in future projects. First on the docket was looking at several giant UI test code blocks in Django. These often span dozens of modules and thousands of lines of code. Quite common throughout was the use of repetitive and non-descriptive JsonResponse calls. Let’s walk through how we compartmentalized these calls into a more cohesive set of custom JsonResponse classes and how we added them to our repository of custom methods that we will use here at ARCsoft. Along the way we will document the setup of the Helpers repository and the essential inclusions to a project for the package to be able to be used, imported, and published.

Generic spreadsheet ingestion

by Bhavy Rai, 27 May 2024

In academia, it is quite common to collect data in spreadsheets due to its simplicity and ease of use. Managing a full-fledged database is boss-level stuff in comparison. However, a database is necessary for making that data available via the web, so we're having to load spreadsheet data into databases in multiple projects. Here's how we started to build a generic solution we can use for multiple projects.

Introduction to Helm

by Archie To, 24 May 2024

This article assumes readers have a basic knowledge about Kubernetes, as Helm and Kubernetes are closely related. Reading Introduction to Kubernetes is highly recommended prior to reading this article.

Django authentication and authorization

by Archie To, 29 April 2024

Authentication and authorization are two vital concepts in web development. You don’t want somebody to break into your house, view your private rooms, rearrange furnitures, or take away your stuffs. The same thing applies for your web app. You don’t want a random person to see private contents, make changes or delete important information. Fortunately, Django provides developer an easy way to implement authentication and authorization out of the box.

Introduction to Kubernetes

by Archie To, 11 March 2024

This article is meant for total newbies (such as myself a month ago) in Kubernetes. I will try to explain Kubernetes and some of its basic concepts in the simplest terms possible. However, we assume that you already know some basics about Docker containers. If you don’t, I recommend checking out our Docker basics article.

Introduction to the OpenStack SDK

by Nick Wurzer, 13 December 2023

OpenStack is open source software for running cloud services. Recently I worked on a Python program that would scan ARC cloud instances and determine which instances have been running longer than their allotted time. This mostly used the compute API which is a proxy for OpenStack’s Nova service.