Product Engineering at Assignar

Nick Christiansen

Nick Christiansen

Engineering Team Lead

Building a software application in a complex domain is not easy. At Assignar, we have multiple teams across product, platform, data, integrations, and infrastructure. The majority are product teams, who work on user-facing features. I believe a key ingredient to the success of these these teams, is product-oriented engineering, and engineers who employ this.

It has been approximately a year since I moved from Individual Contributor (IC) to Engineering Team Lead. During this time, there have been a number of challenges which we have learnt from, and can also reflect on.

Do you rely on your URL?

Nick Christiansen

Nick Christiansen

Engineering Team Lead

An essential and often forgotten part of state management includes URL design. The benefits of knowing when to use your URL as state, and what state to include in a URL can enable multiple benefits for both user and developer experiences.

For example, you build a brand new feature in your web app, using the latest state management tools. Users can sort it, filter it, paginate it, zoom in, zoom out, and find sweet new operational insights. Now, how do your users share it with everyone so they can see it?... Luckily you have relied on your URL. A simple copy and paste and a user can directly share the exact insight on your new feature.

The Do's and Don'ts of Testing Apollo in React

Adam Hannigan

Adam Hannigan

Engineering Team Lead

As the Apollo ecosystem evolves we find ourselves relying extensively on the underlying functionality it provides. The recent version 3 has highlighted this with the introduction of domain driven type policies and local state management. This enables engineers to consolidate business logic, centralise state and perform advanced data manipulation. However, we now enter dangerous territory where our apps are heavily dependent on external data and the Apollo library.

Writing tests is essential for any Apollo application that aims to be scalable, robust and allows its developers to sleep soundly at night. By harnessing a range of tools you will be able confidently release, ship higher quality code and improve your team’s efficiency.

This article uses Typescript, Apollo version 3 & React Testing Library for examples.

Testing Custom React Hooks With State Machines

Nick Christiansen

Nick Christiansen

Junior Software Engineer

Hi! My name is Nick Christiansen and I am Software Engineer on a Planning & Scheduling team at Assignar. Recently, we started building new React table views to replace existing Angular 1.x tables. Finding the right pattern which will scale, while allowing iteration was both a key objective and a challenge. One of the solutions for this was a custom React hook to manage the table state. To be able to iterate with confidence, without regression, having tests around it was critical. This article will show a simplified example of how we implement tests on our own custom useTable React hook.

Breaking down technical tasks with Atomic Planning

Adam Hannigan

Adam Hannigan

Engineering Team Lead

The best thing about software engineering is that we get to build things. Cool, cutting-edge and complex things! Whenever I see a shiny new technical task I want to get my hands dirty straight away. From the outset it usually looks like it will only take a couple hours. I wave goodbye to my product manager and without much of a plan dive right into the code base, confident and full of hope.

Days later I emerge tired, defeated and with a monolithic commit that my team members refuse to review.

This is a common story in software development. Underestimated features and missed deadlines. We often have help from product and design in breaking down user stories and defining Vertical Slices, but it is up to the engineers to clearly define a technical solution and plan of attack. This article is a guide for engineering teams looking to break down, swarm and deliver features more efficiently.

Serverless ETL Pipelines

Noel Llevares

Noel Llevares

Data Engineer

In Assignar, we have several requirements for delivering business analytics both to our customers and for our own internal use. To accommodate those requirements, we use extract-transform-load (ETL) pipelines to process our customer data and prepare it for analytical queries. In this article, we describe how we use serverless architectures to implement the ETL strategies we employ to deliver business intelligence to our customers.

Assignar Forms Library

Zarmina Muhammad

Zarmina Muhammad

Data Analyst

I would like to share my project story, with challenges faced and learnings during revamp and transformation to build readily available templates that could facilitate with forms autofill and swiftly generate refined and cleaner data to assist in future ML solutions, adding value to forms automation.