The tech behind our design process

“Product design” can mean so many things that it's at risk of meaning nothing at all.
However, for us it means a very concrete set of technologies, which fall loosely
within the three broad categories of software, interface design, and electronics.

For areas that we don't cover ourselves, such as mechanical design, we have companies we work with or can recommend, and we can work comfortably with you or other teams.

Read on for the good stuff.

UI design & user experience

Human interaction is an integral part of our full-package software design service.
We work hard—with you—to strike the perfect balance between a lot of amazing features and
clarity of the interface. Our in-house designer understands the complex
needs of the software experience, and brings it together with beautiful, modern visuals.

Visual balance

Complexity made simple

Comfortable with 3rd-party designs

Work with existing branding

Or create new branding

Knowledge of user interface principles

Electronics

No disrespect intended to software engineers, but without our backbone of electronic
design and the ability to create complex circuit boards from scratch, we'd just be
one more competent software company. Our electronic design engineers give us our
all-important ability to interface to the physical world.

PCB layout

USB connectivity

Satellite, 4G, LoRa, etc.

WiFi & Bluetooth connectivity

UL, FCC, CE, EMC, RoHS compliance

ARM/MSP430/AVR

End-to-end production management

Software development

We craft our software carefully, with a strong emphasis on good communication between
our customers and our developers. We write well-organised code, with an emphasis on
simplicity and elegance, and we have solid development practices with automated testing,
version control, and regular code reviews.

C, C++

Python

Subversion, Git

Full-stack web software: HTML+CSS+JavaScript

SQL database programming

Linux and Windows

Technical documentation

Lots else. Just ask!

Embedded software

The embedded world, with its power, memory, and speed limitations,
and the paradigm-shift involved in dealing directly with bitwise logic, gpio pins,
analog-to-digital conversion, and much else, poses a variety of unique challenges
which we're well equipped to deal with.

We also have extensive Linux experience. A wide variety of internet-of-things and
semi-embedded devices are powered by Linux under the hood. For products that
don't need to be so close to the “bare metal”, basing your product on Linux can be an excellent
way to avoid reinventing the wheel (and using up your budget) on solving already-solved
problems.

Embedded graphical interfaces

Embedded Linux

Protocol encoding/decoding

Remote device upgrades

Ultra low-power design

Module drivers

Web and cloud apps

We wouldn't be who we are if our software wasn't connected. These days, business
software that only lives on your desktop often just collects dust. We work to keep
software living by proactively designing for the cloud first. (But we leave both feet on the ground.)

HTML5+CSS+JavaScript

SQL databases

Charts and interactive widgets

HTTP APIs, REST, JSON, XML

PHP, Python+Flask

Cloud hosting and backup

Smartphone and tablet apps

Measuring interesting things is great, but there's a big gap between having data
somewhere in a database, and actually using it to drive decisions. What makes the difference
is often just convenient access. That's where the gadget in your pocket becomes really useful.