Operations | Monitoring | ITSM | DevOps | Cloud

The Hidden Cost of Misalignment

Let’s suppose you’re building an even smarter fishtank. You’re adding temperature and salinity sensors, logging timestamped readings to flash. The struct is your binary record format – every field at a fixed byte offset, so you can read it back on any system that knows the layout. You use fixed-width types from stdint.h and pack(1) to strip out compiler-inserted padding. This is the advice I had always received and given, and it’s correct – as far as it goes.

Connecting Matter-over-Thread Devices to the Internet

While it has taken longer than some people expected, Matter is finally going mainstream. Brands including Ikea, Kwikset, and Bosch have shipped matter devices, and matter hubs can increasingly be found in people’s homes. Many dev kits out there are matter compatible, and if you want to build a simple application you can find good example code and get started quickly. This is fine if your use case fits neatly within existing Matter clusters, but direct internet communication is not straightforward.

Embedded Systems Roadmap: Bridging the Gap

It was around mid-2023 that I realized, despite working as a developer in the field, my knowledge of embedded systems needed a significant refresh. It was time to revisit some of the fundamentals and catch up on the latest technologies and best practices. As I began listing topics to review, I searched for existing embedded systems roadmaps online. However, none perfectly matched my specific learning goals.

Smart Ring Development (Part 2) Hardware Design

This series of articles discusses the development of a SOTA Open Smart Ring - a tiny wearable packed with electronics that fits on your (even the smallest) finger. We dive deep into what it means to develop such a product, its challenges, and ultimately, how to make it a manufacturable and usable piece.

Smart Ring Development (Part 1) Research and Prototype

This series of articles discusses the development of a SOTA Open Smart Ring - a tiny wearable packed with electronics that fits on your (even the smallest) finger. We dive deep into what it means to develop such a product, its challenges, and ultimately, how to make it a manufacturable and usable piece.

Linux Coredumps (Part 2) Shrinking the Core

In our previous article, we outlined what a Linux coredump is and how they work under the hood. One common constraint we see in embedded Linux, however, is a limited amount of storage space. Whether we’re trying to limit writes to disk, or need to reserve most of the disk space available to a device for other data, sometimes we just don’t have enough space to store coredumps.

Beyond Error Codes - Debugging Ill-Defined Problems

It’s Friday around 4 PM. You’ve been on a productivity tear and are getting to wrap up for the week when, all of a sudden, things go off the rails. Logging has stopped entirely with no clues to the problem, your LED has stopped blinking, and even the debug CLI you painstakingly coded has stopped responding to any of your commands. “But I wasn’t even making a complicated change!” you yell into the void.