Truly Full-stack - The Tech That Makes Minut

As a developer at Minut, you have the opportunity to work on all areas of the stack, from electronics all the way to animations in the app. We’re truly full-stack, love what we do, and are looking for like-minded people to join our team.
By
Johan Nystrand
in
Minut news
Calendar icon
November 26, 2021
5
min read
Truly Full-stack - The Tech That Makes Minut

At Minut we design and build mechanics, electronics, firmware, backend, ML models, tools, and mobile and web apps in-house. This is truly full-stack. 

Minut is a noise sensor and automation platform for short-term rental hosts. We strive to be the best co-host a property manager can have, helping hosts and PMs around the world protect their rental properties and provide amazing experiences for guests while being respectful of neighbors.


TL;DR

This is what we use at Minut:

  • Web: React, Typescript, Webflow
  • Apps: Swift, Kotlin
  • Backend: Node.js, Typescript, Python, Tensorflow, Keras
  • Storage: MongoDB, MySQL, S3
  • Infrastructure: AWS, Kubernetes, Docker, Jenkins, Github
  • Firmware: C, FreeRTOS, LwIP, Protobuf, Python (tooling)
  • Electronics: KiCad
  • Mechanics: Solidworks, Fusion 360

Working with a truly full-stack team means you get to see and learn from people with a wide range of skills. We frequently have both planned and spontaneous technical discussions about architecture, tools, developer experience or anything else central to software development.

Release and iterate

We’re a tight-knit team of engineers working closely with designers and key stakeholders to develop the best experience for our customers. Engineers on the team are involved early in problem scoping and product development. 

Our front-end web application is a single-page application built using React and Typescript. It uses react-query for managing server-side data in a sane way. There's also an e-commerce site built in Gatbsy.js and a marketing website that runs on Webflow (a low-code platform). Releases are done continuously and on a regular basis, we prefer to release several times a day, which is done automatically after code-reviews are passed. Prettier and Eslint run automatically on all code to make sure it's clean.

The web app (and mobile apps) leverages the same REST-ful versioned HTTP API that our Pro and Enterprise customers use to integrate with Minut. The backend is primarily written in NodeJS with Typescript and stores data in both MongoDB, SQL and S3 databases. 

Having a great developer toolchain and workflow makes our lives as developers easier. It allows us to deliver faster and with better quality. This is the reason why we invest and encourage developers to spend time on tools. For instance, the backend team runs Automation Wednesdays to dedicate time to improving the developer experience, whether that be improving the test-suites or adding more automated code validation. 

Privacy at the core

Privacy-safe monitoring is a simple concept in principle, but its execution is complicated. We designed and developed a novel way of identifying specific events on battery-powered sensors without compromising on guest privacy (US patent: US20200143823A1). 

Raw data is processed on the sensor directly and never shared with Minut or anyone else. When the device senses a potentially critical event, such as glass breaking or a sudden sharp increase in temperature, a ‘fingerprint’ of the event is sent to the cloud where it is analyzed by even more powerful algorithms before being sent to the user. 

Yes, this means we are able to run ML models on an MCU with 96 MHz and less than 256 kB RAM on battery power for up to 12 months. 

Read more about our approach to privacy.

Native apps

Minut’s mobile app is developed natively on both Android and iOS. Apart from having better access to APIs like Bluetooth and Networking, we want to provide users with a familiar look and feel on both platforms. We strive to stay up to date with both language features and frameworks (SwiftUI and Jetpack Compose are two recent examples).

While we think native is the best foundation, we keep our eyes open for ways to improve consistency and development speed. At a recent engineering offsite, the team experimented with replacing shared views with frameworks like Flutter and React Native.

Two smartphones with Minut UI
Hardware is hard (read: fun)

Since the start we have designed, prototyped and built custom mechanics and electronics with its accompanying firmware in-house. We select the best suitable components and integrate them with our firmware stack (written in C) to build a system that respects the privacy of guests. 

Test systems, along with custom hardware jigs and software (Python), all built in-house, collect and upload stats about every hardware unit directly from the manufacturing line allowing us to continuously increase the quality of the hardware.

The firmware is updated regularly over-the-air after the unit is installed in a customer’s home. Through these updates, we’ve been able to improve battery performance by >100% as well as add completely new features we hadn’t thought of when we started shipping.

Enabling all of this is a well-equipped hardware lab at our office in central Malmö. 

Minut in a box

There are Minut sensors on almost every continent of the world. (Anyone knows an Airbnb host in Antarctica? Intros welcome.) In fact, we have deployed sensors in over 100 countries. To manage these sensors, we’ve built a rigorous suite of testing and automation tools to minimize the risk of deploying software that accidentally affects the operations of a sensor that our customers depend on to run their businesses. 

Any developer at Minut can bring up a complete environment on their local (or remote) machine for testing. A suite of tools is available to emulate both users, apps and hardware sensors. 

Our in-house test fleet consists of over 100 sensors that are continuously being exposed to different environments, software configurations, firmware versions, and Wi-Fi routers. 

Tools and automation are one part of the equation, the other is workflows. All teams use code reviews rigorously and frequently do pair programming to further deliver new features and maintain existing code with high quality. The combination of tools, automation and workflows allows us to release software to all parts of the stack continuously, sometimes several times a week.

Minut sensor with its lens off, exposing electronics


 Join our full-stack team

As a developer at Minut, you have the opportunity to work on all areas of the stack, from electronics all the way to animations in the app. We’re a truly full-stack organization, love what we do, and are looking for like-minded people to join our growing engineering team.

If you’re interested, check out our open positions!