Headless Architecture for Headless Training Operations

Posted by Peter Beckham on June 01, 2023 | architecture

As Administrate moves towards embracing being a Headless Training Platform, we look at Headless and Composable Architecture principles and how they can benefit our customers by creating a more flexible and reliable platform.

Headless Architecture diagram showing separation of Frontend and Backend

Advanced TypeScript

Posted by Sean Newell on April 06, 2023 | typescript

TypeScript has taken the front end world by storm and is eating its way into the backend and fullstack world as well. It’s important to get familiar with the tool and how best to leverage it, as it has some super powers beyond simple string | number types or interfaces like type checking the format of a string or doing exhaustive switch case checking that some may not be as familiar with.

Want fewer bloated tests? Build yourself a Testkit!

Posted by Chris Palmer on September 19, 2022 | design-system, react, typescript

Space is Big

Posted by Jason Kottler on September 12, 2022 | scheduler

Being an intern at Administrate

Posted by Wako Anindo on August 25, 2022 | internship, learning

My Internship at Administrate

Posted by Alexandra Goffova on August 22, 2022 | internship, learning

Using AWS EC2 Image Builder to speed up the set up of your EC2 instances

Posted by Vlad Ionescu on August 08, 2022 | AWS, EC2

Amazon’s Elastic Compute Cloud (or EC2, for short) allows you to deploy and run any application you can build in the cloud. Here at Administrate, we make extensive use of it for a number of our applications, with one of the the most exciting ones being our Cloudboot development environment.

How to perform when it comes to performance

Posted by Gavin Bannerman on August 02, 2022 | performance, observability

As an engineer early in my career, I haven’t had a lot of experience with optimising systems for performance. Most of my work has been focused on individual user stories or journeys. In these cases, the consideration of performance has largely been scoped to pieces of code - is a function efficient? Is a React component rendering too often?

That’s not to say that I haven’t cared about the overall performance or the experience of the end user, but I had been prioritising code that worked and was readable. I would describe it as being pragmatic about performance. You can always be chasing better performance, but it’s important to know when that will deliver value and when it won’t.

This blog post is about how my recent experience of focusing on performance has changed how I’ll work for the rest of my career.

Mocking GraphQL requests in front-end unit tests with Jest

Posted by Erika McVey on July 18, 2022 | react, graphql

Unit tests are commonly a core component of a company’s product testing strategy. The fast feedback cycle and focused tests help to identify potential defects quickly, which in turn helps ensure the quality and reliability of the product.

Test-Driven Development (TDD)

Posted by Craig Houston on June 02, 2022 | tdd

Are you looking for a programming technique that eliminates bugs, increases test coverage, helps with designing solutions, and provides documentation for your API? Look no further than Test-Driven Development (TDD)!

Making WFH Work for You

Posted by Emilia Jiao on April 21, 2022 | working, remote

Due to a certain global situation that’s been going on for the past three years, many of us had to retreat into the safety of our homes. While the world is starting its slow but steady transition back into pre-covid life, we have to face the fact that certain changes are here to stay, one of them is working from home.

Streamlining Administrate Platform Integration with WordPress

Posted by Jad Khater on April 04, 2022 | WordPress

WordPress is a free and open-source content management system (CMS) written in PHP and paired with a MySQL or MariaDB database. Features include a plugin architecture and a template system, referred to within WordPress as Themes. WordPress was originally created as a blog-publishing system but has evolved to support other web content types including more traditional mailing lists and forums, media galleries, membership sites, learning management systems (LMS), and online stores.

Postman Use of Environment Variables & Collections

Posted by Jad Khater on April 04, 2022 | developer-environments

Postman is an API platform for building and using APIs. Postman simplifies each step of the API lifecycle and streamlines collaboration so you can create better APIs—faster.

Embedding React Components

Posted by Sean Newell on March 07, 2022 | react

Have you ever wanted to use a component, form, modal, or relatively small piece of your modern UI React codebase in one or more of your older UI codebases? At Administrate, we needed to do just that. So we developed a way to leverage and reuse our react components across codebases. This helped create consistency for new features that touched multiple UI codebases and helped our customers have the best possible experience no matter where they were.

Cloudboot - Running a dev environment within AWS

Posted by Paul Bell on March 07, 2022 | developer-environments

We at Administrate are transitioning our dev environment from running locally on our laptops to running on an EC2 instance in our development AWS environment.

Dev Containers: A Good Development Experience Out-of-the-Box

Posted by Daniel Tariq Metcalfe on February 07, 2022 | containers

How many times have you heard the phrase “but it works on my machine”? Container technologies like Docker have done a lot to ensure our applications can run reliably in different environments but what about the reliability of the tools we use to actually build these applications?

Caching in Apollo Client - The Basics

Posted by George Walter on February 07, 2022 | graphql

Caching is a common computing technique that stores copies of data in a cache, or temporary storage, so that when the same data is next requested it can be delivered much faster than retrieving the data from the original location it was stored.

XHR requests after page close

Posted by Rachel Normand on March 04, 2021 | browsers

We recently spent some time investigating the best way to make an XHR request when a user closes their browser window. We had received reports that some learning content in our LMS was not being saved when the user closed the window. We wondered if we could trigger a save just before the browser was closed. In the end this was not the right solution for us due to the size of data we wanted to send. APIs for making XHR requests on page close are designed for sending analytics data and have a limit of 64KB. We wanted to send more than this, which led us to realise we were approaching the problem in the wrong way!

Using Pipenv and Pyenv for Python development

Posted by Steve Shanks on December 05, 2020 | python

Pipenv is a tool for managing your Python project’s dependencies, which aims to solve one of the problems with requirements.txt files. This post will get you started using Pipenv for dependency management, as well as show you how to use Pyenv to work with multiple versions of Python.

Nested Set Model

Posted by Stelios Kotanidis & David Gentles on July 15, 2020 | databases

Administrate’s users, the Administrators usually manage a large number of learners which all belong to a specific Organization. The Organizations feature a hierarchy to represent subsidiary Organizations. This relationship is essentially a tree, which helps us represent real world organizations that are usually made up of various teams.

Our Top 10 Tips for Remote and Flexible Working

Posted by Paul Bell on May 07, 2020 | working, patterns

Remote working has become a necessity at the moment for employers and employees due to the COVID-19 pandemic so they are able to keep running in these uncertain times.

Learning To Cope With Internet Explorer 11

Posted by Gavin Bannerman on April 15, 2020 | browsers

This blog post will expire on 9th January 2029. You may not recognise that date, but it’s a day that will be celebrated by many web developers across the world. It’s the date that Windows 10, and therefore Internet Explorer 11, will no longer be supported by Microsoft. It may be changed in the future depending on how Windows 10 support continues, but at the moment that date marks the death of IE11. As software engineers, we all know we’re not meant to like IE11. But why is that? And what are some practical solutions for its problems?

Setting the Story Straight

Posted by Craig Houston on March 16, 2020 | agile

Estimating product backlog items is one of the most contentious tasks in Agile software development and Scrum teams often misunderstand how they should apply Story Points when estimating. This article explains how we deal with these misunderstandings at Administrate and outlines our iterative approach to estimating backlog items.

Avoiding any in TypeScript

Posted by Jonathan Wilkins on February 27, 2020 | typescript

It can be tempting when using TypeScript to use any when you are unsure what type a variable is. This article explains why this could be a bad idea and presents some ways to avoid using it.

How We Interview Engineers

Posted by Graham Savage on February 25, 2020 | interviewing

One of Administrate’s company values is Transparency, and with that in mind, here is a look at how we interview software engineers. Not only that, here is a guide to what you need to do to be successful at each stage.