Make your smartphone a little dumber

For many, MANY years, I’ve been an advocate for the simplicity of dumbphones. My go-to? The LightPhone 2. However, modern life sometimes demands the functionalities of a smartphone, such as banking or GPS navigation. Every once in a while, I wish my smartphone would be just a touch simpler, but I can’t abandon its smart features entirely. There are times I need them, especially for those updates or browser-based app handshakes. ...

September 1, 2023 · Shane Dowling

Streamlining OS Development Pipelines for the Beepberry - A Fun Challenge

Introduction Imagine a cool device that brings together an LCD screen, Raspberry Pi Zero, and a Blackberry keyboard – that’s the Beepberry! It’s designed to work like a WiFi-only keyboard phone, and one of the main goals is to reach a super-fast boot time of under 5 seconds. Sounds challenging, right? Well, to speed up the development process and test boot optimization, using QEMU to emulate the OS is a smart move. In this blog post, we’ll explore the tough parts of creating pipelines for entire operating systems, their limitations, and the benefits that the Beepberry project will gain from using QEMU. ...

June 5, 2023 · Shane Dowling

Harnessing the Power of NixOS for Platform Engineering

Introduction NixOS is an innovative and powerful Linux distribution built on top of the Nix package manager. Its unique approach to package and configuration management sets it apart from traditional Linux distributions, making it an excellent choice for platform engineering tasks. In this blog post, we’ll explore the benefits of using NixOS for platform engineering and provide an overview of its key features. Immutable Infrastructure and Reproducible Builds NixOS’s immutability and reproducibility are its most significant strengths. All software packages and system configurations are stored in an isolated and immutable manner, ensuring that any changes to the system will not affect existing dependencies. This approach allows for consistent and reproducible builds, reducing the risk of “works on my machine” issues and simplifying deployment across environments. ...

March 19, 2023 · Shane Dowling

De-risk early when engineering platforms

Platform engineering encompasses a broad domain with continually evolving frontiers that require overcoming new challenges to level up the solutions offered to engineers. However, this evolution can lead to situations where previously-made assumptions may no longer be applicable to new solutions. Our team recently encountered this scenario when using AWS Stacksets across multi-account/region rollouts of our platform, which highlighted some interesting dependency challenges that we only discovered at the 11th hour of our project. The new world introduced edge cases that we didn’t anticipate, and we learned that it’s crucial to identify unknowns early and be honest about them. It’s essential to deliver a first step that cuts across those unknowns as soon as possible and iterate from there, even if that means doing something hacky. If a hack doesn’t work, it’s better to discard it than a polished solution that would never work. ...

March 11, 2023 · Shane Dowling

Reduce developer cognitive load with nix

Nixpkg is a package manager that uses a purely functional approach to package management, isolating packages and ensuring that there are no conflicts between them. It provides a powerful language for defining packages, which makes it easy to manage dependencies and ensure that software environments are reproducible and reliable. Additionally, Nixpkg makes it easy to manage multiple software environments and share projects with other developers. In addition to Nixpkg, there are two other tools that can be used in conjunction with Nix to improve developer productivity: Homemanager and Direnv. ...

March 11, 2023 · Shane Dowling

Nonviolent Communication

What is Nonviolent Communication? Nonviolent Communication(NVC) helps us communicate clearly by breaking down and identifying our needs and communicating them compassionately. Why? NVC can help reduce conflict towards others and ourselves. It can also help us to hear others out and recognise each other’s needs and support acting more compassionately day to day. How At a high level, the steps involved are: Observation Be present and listen carefully to what the other person is saying. How is it affecting you? Just observe, don’t evaluate. ...

August 27, 2021 · Shane Dowling

5 Steps to a better Personal Development Plan(PDP)

Reviewing your PDP can be a somewhat overwhelming process. So many areas of improvement can be highlighted, it can be a real challenge to discover what to focus on. Not only that but you also want to make sure your areas of focus have high impact benefits to the squad, so much to think about! These 5 steps should help give you the direction needed to turn those PDP opportunities into something actionable, demonstrable and focused on what you care about. ...

March 26, 2021 · Shane Dowling

Learning Python as a Platform Engineer-First Steps

I’ve relatively recently moved into a Platform Engineering position after working in very developer oriented teams for many years. What’s interesting is that the engineers you work with have much more diverse and interesting backgrounds in terms of their experience, so there’s a real opportunity to grow and learn a lot more, as opposed to a more homogenous set of developers. With that in mind, I wanted to put together materials on how a more ops focused engineer can up-skill in Python(as that’s more my wheel-house), in particular what are the things that would help you move into a more Python-focused role. ...

January 1, 2021 · Shane Dowling

Populate Ansible from Amazon secrets manager

One of the ways to improve your security and avoid passing around env files is to follow the twelve factor app and start populating your secrets from the environment. Another improvement is to pull those secrets from a known secret store, with features like rotation, auditing etc. Requirements Ansible Have some secrets stored in AWS Secrets Manager Ansible should have access to the latest aws-cli command(secrets manager is a recent addition) Jq if you’re storing json in your secrets It’s worth testing your AWS calls to just extract the secret you’re interested in to stdout, from the terminal tests some calls like: ...

September 3, 2020 · Shane Dowling

Better local development for Serverless Functions

Lambda is a terrific piece of kit for all the benefits listed on the AWS product page and Serverless is a very useful framework for developing Lambda functions. However, developing serverless applications locally is a total pain if what you’re solving isn’t totally trivial. When things get complicated and your Lambda functions start to integrate with other AWS services, things really begin to break down. There are a few things that look like silver-bullets, I’ll share them here and explain why they didn’t work for me, then give you a working example that I myself struggled to find(hence me writing this). ...

February 11, 2019 · Shane Dowling