The opinions stated here are my own, not those of my company.

There are a variety of tools to build a blockchain-based web app. For example, you can see a simple banking app below:

Simple Bank on the web, with deposit/withdraw smart contracts

These contracts were written in Solidity and executed through Truffle. While I could verify they worked, getting them to run in a browser environment was hard. In fact, there is basically no documentation on the integration of these technologies.

This blog post gives you a setup of everything together, but does not go into the specifics of building a simple bank. …

The opinions stated here are my own, not those of my company.

I’ve been a fan of Spotify ever since they launched in the US. The ability to stream music rather than storing hundreds of gigabytes of MP3 files had a profound effect on how I listen to music. Beyond that, the weekly recommendations I get are often spot-on, and I have discovered many new artists this way.

However, as I have continued to listen to songs I started to notice certain patterns. These song titles bridged across artist, genre, and decade. I started collecting these songs in specialized playlists…

The opinions stated here are my own, not those of my company.

Cyanobyte logo

Over the past few years I’ve continued to iterate on this idea I’ve had for a while. When building applications for embedded devices, you’ve often need to connect to a peripheral using something like I2C. This requires you to either look for an existing library for that device on your platform, or write the library yourself from scratch.

For embedded software this is often an exercise in frustration, having to read through convoluted datasheets or cherry-picking from manufacturer sample code.

Cyanobyte was created to define a common spec…

The opinions stated here are my own, not those of my company.

I enjoy writing code. In fact it’s the easiest part of my job. Knowing what code to write, and getting reviewers to agree, is certainly a more human and less fun part.

These reviews may go through several layers including style, functionality, and sometimes even the title of my commit. Many years ago there was a lot of debate we had over the way we write commit titles, whether to past tense, present tense, or imperative tense.

  • Past: “Added new field”
  • Present: “Adds new field”
  • Imperative: “Add new…

The opinions stated here are my own, not those of my company.

I’m all-in on RSS, the standard used to subscribe to updates from a website. I’ve spent close to a decade subscribing to various news sources and webcomics, occasionally adding and removing feeds.

Paying for news is important as well, as newsrooms shutting down have created a vacuum for misinformation and malicious actors to grift. Increasing the number of paid news sources is one goal I’ve had this year.

Additionally I have purchased a subscription to Feedly Pro. After Google Reader shut down, I easily transitioned to Feedly and…

The opinions stated here are my own, not those of my company.

A little while ago, I came across a blog post on FreeCodeCamp about how the author wrote their own programming language. In my time I’ve used a wide variety of programming languages, and the choices made for different syntaxes have been interesting. It led me to wonder what choice I would make.

Defining the syntax can be the easiest part of a language, as then you need to write the tooling to make it work. After reading a second blog post, I took the route of transpiling my…

The opinions stated here are my own, not those of my company.

Good morning!

A few weeks ago I was working on a side-project that involved checking into various entities. While this implementation is coffee, it could be easily swapped out for other types of crafts, like pizza or tea by changing a few strings. It’s also a Progressive Web App, making it easily accessible across platforms.

s/coffee/anything else/

Everything is hosted on Firebase, using its services for authentication, hosting, databases, and server execution. In particular, Firebase Callable Functions make it trivial to serve authenticated code with JSON payloads. …

The opinions stated here are my own, not those of my company.

Semantic Versioning 2.0.0

Last week I read an article by Hynek Schlawack called “Semantic Versioning Will Not Save You” and disagreed with a great deal of it. I posted a reply on Twitter, but it’s a quiet evening and I feel like elaborating a bit more on this because I think this points to a looming trouble in the software engineering space.

Semver is good and should be adopted as the industry standard. By this I mean that someone who doesn’t adopt this is generally doing the wrong approach. …

Cyanobyte is an ongoing project which aims to define machine-readable datasheets for embedded peripheral devices. Through this, one is able to quickly generate device drivers for a given hardware platform like Arduino or Raspberry Pi.

One additional benefit is around documentation. By defining it in this way, not only can code be generated, but any type of file. In the past, LaTeX was used as the basis for generating documentation as PDFs. Now, there is a new type of output: HTML.

You can try this out with a peripheral file and version 0.0.2 of the Cyanobyte codegen from pip.


A year ago I suddenly had to learn how to cook food. As we learned from Ratatouille, anyone can cook. And indeed, it’s not that hard to boil pasta or caramelize onions.

Yet over the months, I wanted to branch out to new foods and desserts. In particular, my crème brulee came out very nicely.

Baked to perfection

When browsing the Internet for new recipes, I found a lot of problems with the user experience:

  • The amount of ingredients were often allocated for a family’s worth of servings. Living by myself, I would make too much.
  • I’d have to read in-between the lines…

Nick Felker

Social Media Expert -- Rowan University 2017 -- IoT & Assistant @ Google

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store