• Storytelling

    I love telling stories, and I’m learning daily how many fields and industries rely on compelling storytelling to succeed.

  • Sciencing the Data

    Over the past month I’ve been engaged in a Coursera specialization to better understand the field of data science. As part of the capstone project I was tasked with evaluating various neighborhoods in the region of my choice to make a business decision. As part of the project, I was also asked to produce either a PowerPoint presentation or a blog post. The Problem My goal was to help a new (fictitious) brewery identify the best neighborhood in the Portland metro area in which to open a new location. They specifically want to target neighborhoods with relatively high concentrations of…

  • Unboxing the Lemur Pro

    Over the past several months I’ve dug deep into the RingCentral Game Changers challenge in the hope of redeeming my points for the grand prize of an all expense paid trip to Coder Cruise. Given the current state of the world, however, it’s become increasingly unlikely I’ll attend this (or any) cruise in the foreseeable future. As an alternative, I elected to cash in my points for a new laptop – the Lemur Pro from System76. For those of you taking notes, this is not my first System76 machine. I picked up an Oryx Pro about 2 years ago and…

  • Slack Autoresponder – Part II

    Last time, we talked about my motivations for building a Slack autoresponder so I can better communicate with my colleagues. Today we’ll walk through the components required and all the steps for wiring together the full application. Serverless Framework First things first, we need to build the application itself. We’ll be leveraging the Serverless framework, so if you don’t already have that installed go ahead and install it: We install this tool globally to make the sls command available everywhere. When we’re ready to deploy our application, a simple sls deploy will push everything up to AWS. That said, the…

  • Slack Autoresponder – Part I

    The impacts of the COVID-19 pandemic are legion; millions contracted the disease, hundreds of thousands have died, schools are closed, businesses are closed, the economy is in turmoil, and I’m working remotely once again. This last impact is the least concern, but as a software developer it’s also the easiest thing for me to address in the immediate term. I’ve worked remotely before. It’s an enjoyable work experience to skip your morning commute, make as much coffee as you want, and even take a break to have lunch with your family on a daily basis. It’s a wonder more people…

  • System76: Reflections of a Superfan

    Back in September, I saw a random post on Twitter from the team at System76 about a “superfan contest.” The goal was to build something awesome using open source tools and tell the world about it. The announcement video was pretty inspiring, too. Superfan is taking off! Now until October 4th, we're looking to recruit 10 loyal fans to join us for Superfan 3: Mission to Thelio. Visit https://t.co/OuIt1hjbBt to see how YOU can be part of the mission! #superfan3contest pic.twitter.com/xlDZ9XE96L — System76 (@system76) September 13, 2019 Given I have little time available these days for side projects, I was…

  • Keeping Fresh

    How do you keep your coding skills fresh when you’re no longer coding on a daily basis?

  • WordPress Nonces: Why We Can’t Have Nice Things

    WordPress’ implementation of nonces was one of my first encounters with cryptographic protections in software development. It’s too bad WordPress nonces aren’t really nonces in the first place …

  • In the Wild: Phone Automation

    Over the weekend, I encountered a fully-automated phone system similar to the virtual voicemail assistant we’re building through the RingCentral tutorials. I wanted to share my experience so you too can see how powerful such a system can be.

  • RingCentral Game Changers: Automated Messaging

    We want to send a text message to a manager whenever a voice message is received by our system. In this walkthrough, we do exactly that!