Engineering Management: Lessons Learned

I made my jump over to management a number of years ago when I was at a startup. I didn’t understand what I was getting into until years later. Management is rewarding and exhausting. It tests your courage and ability to handle conflict.
Read more →

Getting started with Nerves; embedded elixir on Raspberry Pi 3

Why elixir for an embedded device? Elixir treats binary as a data type. Sending a binary stream to a device can be trivial and elegant. Pretend that we have a device that requires 17 bits per message (like a MCP3008 analog input). We can send a start bit, followed by a mode bit, then 3 bits for sensor id, then 12 bits of empty bits, in a very succinct way1:
Read more →

Playing short sounds in iOS with Swift 3

It was hard to find a concise example of playing a short audio sound in an iOS application using Swift 3. I write one such example here for posterity:
Read more →

Why I have two Dockerfiles for the same project

My phoenix-based project uses two Dockerfiles. There is one for local development and CI and another one for production. Ideally I would want one Dockerfile; use the same image for local and production. But ease of development is also important.
Read more →

Using docker-compose & mysql with CircleCI

My Elixir/Phoenix application uses docker-compose and mysql. I decided on CircleCI for continuous-integration (CI) for its free container support. There were a few problems making it all run inside the CircleCI container environment.
Read more →