Rocky Warren

Rocky Warren's blog. Principal Architect, Tech Lead, Product Manager. I do other stuff too.

2021-06-01
Encryption is a two-way function. You can encrypt data, like a file, and then later decrypt it provided you have the proper encryption key. This is useful when you need to retrieve the ...
2021-05-04
Some back of the napkin math no one asked for about how much daily standups cost your team compared to asynchronous standup tools like Geekbot. Assuming 20 mins per standup (this could...
2021-04-07
Recent APIs I've built follow both the OpenAPI (formerly known as Swagger) and JSON:API specs. The former allows us to generate server-side data models and API clients in a number of la...
2021-03-04
Scala is great for recent microservices I've written, enabling incredible velocity. However, certain scenarios benefit from lower-level languages. I have five years of (dated) C++ expe...
2021-02-02
Why would you want to run Linux apps in Docker on a Mac? Maybe there's a Linux program you love or you want the added security of sandboxing an app. Or maybe, as was the case with me, y...
2021-01-04
...unless YAML counts as code. Many companies have home-grown scripts and tools to start services locally. In my experience, the scripts start as well-intentioned wrappers simplifying ...
2020-12-01
Git can seem overwhelming, but while performing typical day-to-day tasks, you'll use only about ten commands. If you happen to use Oh My ZSH, the included git plugin adds many aliases. ...
2020-09-02
2020-09-08 update: Use one GIN index instead of two, websearchtotsquery, add LIMIT, and store TSVECTOR as separate column. More details at the end of the article. I started investigati...
2020-07-29
Rather than using random examples from Scala projects in the wild, these are meant as my evolving "best" way of doing things. If you're new to Scala, start here. Scala returns the last...
2020-06-14
Like any new technology, Scala and its ecosystem take a while to master and can be frustrating at times. Don't get discouraged! Here are some resources to help. Popular IDEs are Intell...
2020-03-03
I played around with Kotlin recently and was pretty impressed. It seems like they took the best parts of C#, Scala, and Go. Here's a quick rundown of some features. Expression bodied f...
2020-03-02
Scala allows you to accomplish tasks in different ways. I recently gave a talk explaining some of the more readable, maintainable approaches while attempting to add detail so the slides...
2020-03-01
Occasionally, IntelliJ goes haywire and won't run your project or tests. Next time this happens, close IntelliJ, run the script below in your project directory, and then open IntelliJ a...
2019-10-07
One of the cons of working from home is deciding when enough is enough. It's all too easy to get sucked into a problem, lose track of time, and let hours slip away. You bring yourself ...
2019-05-22T00:00:01Z
In March, Dwolla's engineering team launched an updated webhook notifications architecture, cutting delivery times during peak load from minutes to seconds. At the same time, we incre...
2019-05-22
In March, Dwolla updated its webhooks to a serverless architecture, improving their timeliness, configurability, cost and reliability. Watch the talk I gave at dsmJS to learn more about...
2017-08-07
I've only dabbled with Go in my spare time, but compiled this list of resources I found helpful. Getting Started Take A Tour of Go brew update && brew install golang Install the exten...
2017-05-23
After my rest day, I'm anxious to get moving. I have two more days of riding planned. I'll head to Joshua Tree National Park today, camp overnight, and then make my final push into Los ...
2017-05-21
It's been over five months since this trip and I haven't finished the blog. But I'm not a quitter. I wake up in Flagstaff, quickly pack my things, and, before I jump on the bike, I'm...
2017-05-20
The long way through Apache-Sitgreaves National Forest looks like a good one as I'll be riding Pine tree-lined highway all day. I'm meeting two friends, the first in Sedona and the seco...
2017-05-19
It's in the low 30s and snowing when I wake up in Santa Fe. I put on my warmest clothes including a scarf I bought 14 years ago at a ski resort in New Zealand. It's amazing how much thi...
2017-05-18
I wake up in Roswell and attempt to put my shirt on. It's stiff from 12 days of absorbed sweat. It's finally time to retire it to my dirty clothes garbage bag. I put on my second smelli...
2017-05-17
When I spent time in El Cosmico's office yesterday, there was a steady stream of people coming in to check out. The office doesn't open for an hour, though, and I'm ready to leave now, ...
2017-05-16
In the middle of the night in the Terlingua, I wake up in complete darkness and think for a second I'm back home. Realizing where I am, I remember the stars are supposed to be beautiful...
2017-05-15
Waking up in Del Rio, I haul my stuff down to the bike, drop my key card in the motel office, and grab a half cup of coffee. It's been sitting for a while and isn't hot so I drink it in...
2017-05-14
I wake up after my second night in Austin ready to go. A month back, I bought Butler Motorcycle Maps for most states I'm passing through and today is the first I'll get to use. Texas Hi...
2017-05-12
The sixth day starts like the last few, I wake up in a strange room and it takes me a second to remember which town I'm in. This Airbnb has a dorm-style setup as well and there's one ot...
2017-05-11
I wake up in New Orleans with every intention of staying a second night. I've never been downtown and Brad says he'll show me around. I sleep in and lazily check the news on my phone. I...
2017-05-10
I don't want to keep doing this, it takes too long. But my mom says I have to so in the spirit of Mother's Day, I shall. I wake up in Gulf Shores at 11 a.m. This is much later than m...
2017-05-09
Google Maps is the best app ever created. Should you choose to dispute this fact, you're wrong. To remedy the drag-and-drop issue from yesterday, you can set those new points as another...
2017-05-08
After quite a delay and a couple death threats from friends, I have some time sitting by Lady Bird Lake in Austin, TX to write about the past few days. My intention was to write about e...
2017-05-07
My one-way flight from San Francisco to Orlando arrived just before 5 p.m. on Saturday evening. The airport, I find, blocks Uber and Lyft so I wait in the cab line and get my driver. He...
2017-05-06
Last weekend I rented the bike I had reserved for my trip because I'd never ridden it before and wanted to make sure I could handle it. I'm pleased that I did because I can't. The ride ...
2017-04-24
I dismissed the idea of renting a motorcycle for this trip early on because it's expensive. I rented one for a visiting friend last year and the total for one day was almost $200. Over ...
2017-04-10
Who doesn't love a good adventure? There's something fascinating about submerging yourself in new experiences and leaving the comfort of routine. Like my first jump off the high-dive at...
2012-09-20
I like running through the Prime Factors Kata when learning a new language to help uncover the language's power. I've done this before in Clojure and now it's Scala's turn. Scala is int...
2012-08-03
By now, I hope we can all agree that unit tests are a good idea. I recently gave a presentation on why I think testing before writing production code (TDD) is better than testing after....
2012-07-10
Inspired by the Lifehacker Pack, I created my own list of tools I use on a daily basis. I've listed Linux alternatives to the Windows-only tools, but I haven't used a Mac since grade sc...
2012-06-28
I check Billboard's Hot 100 chart each Thursday to keep my playlist up-to-date. It was time consuming, however. Here were the steps I'd go through: 1. Go through entire list searching ...
2012-06-27
The first feature I wanted to add after I published v1.0 was the ability to change between Blackjack strategy cards by swiping rather than selecting from a menu. I found an example of a...
2012-06-22
I'm learning Clojure and thought doing the Prime Factors Kata would be a good way to dive in. For those unfamiliar with the Kata: > Write a static method primefactors() that, given an ...
2012-06-18
Copied below is the e-mail to my John Deere coworkers. It's a bittersweet goodbye, but I'm excited for my future with Dwolla. After 6 years, I'm leaving John Deere for a position at a ...
2012-05-15
Uncle Bob's book Agile Software Development, Principles, Patterns, and Practices calls out 5 principles that aid greatly in Test-Driven Development and make programs easier to maintain ...
2012-05-14
Maybe it's because I'm listening to The Lean Startup, but I decided to create a minimum viable product (MVP) as the first version of my app. I went with the simplest idea that still had...
2012-04-18
I've always wanted to write a smartphone app and finally got the kick I needed from a coworker. The decision for OS was between iOS and Android. I hardly considered Windows Phone 7 due ...
2012-03-26
Embedded systems sometimes require setting the system time, date, and time zone. On Linux, there are two clocks. The first is a hardware clock that is typically battery-backed and alway...
2012-03-20
I started using Mercurial, a distributed source control management tool similar to Git, about two years ago. I began interacting with it using TortoiseHg, a GUI front-end. I understand ...
2012-03-07
Bash aliases are essentially keyboard shortcuts or abbreviations for longer command sequences. If, for example, we include alias lm="ls -l | more" in ~/.bashrc, typing lm gets automatic...