Out with the Old (Decade), in with the New
I was in a reflective mood and noticed that my last post was written way back in late 2017, just before the Great Crypto Crash (!!), so it felt like a good time to post a little update. Remember that hindsight is 20/20, folks. If you’re curious what I’ve been up to since then (I know you are), let me fill you in.
Since my last post, I took a job at a company called Flowhub, building store management software for cannabis dispensaries. I’ve always been a proponent of legalizing cannabis. Incarcerating people for a drug that’s less harmful and less addictive than alcohol or tobacco is unethical, for starters. Facilitating a legal & compliant cannabis market is extremely exciting and one of the main reasons I joined. Flowhub is one of several major players enabling legal cannabis transactions to take place, which includes stopping underage buyers, preventing looping (evasion of purchase limits), ensuring all taxes are properly collected, pushing data to state regulatory systems like Metrc, in addition to all other functionality you’d expect from a POS system.
From mid-2018 onwards, my focus was building a brand new point of sale experience called “Cashier”, peeling that functionality off of a previous monolithic app and building it as a separate web app. Working alongside a small team of devs, I was able to greenfield an important product and refine my full-stack web development skills along the way. Having the freedom to make technical decisions along the way, we chose React/Redux for the frontend, building a new shared component library for other teams to leverage in the future. The backend was modern Node.js (ES9), with some functionality in microservices and some in serverless functions. We picked Google Firestore as a data store, which was in beta at the time, due to its reactive data functionality and tight integration with Google Cloud Functions. As our company started to build out a DevOps team, we didn’t have to handle those aspects, but had visibility and some input into the tooling that made it all work (GitLab CI -> Docker image -> Kubernetes cluster). That was a really fun stretch of my career, one of those rare moments where you’re given general direction, a blank slate, freedom, and are able to write a ton of code quickly.
Going into 2019, our new Cashier app was in beta, and some interesting hardware requirements started to pop up. Many dispensaries already owned iPads, and iPads were a popular form factor for POS due to Square and other general-purpose POS providers. It was around this time that I put on a new hat and learned a little bit of Swift (and a tiny bit of Objective-C) to build an iOS wrapper for our web app. The two-way communication between the web app and the native iOS app was a really interesting problem to solve, since we had to print receipts & labels from the web app to the iOS app, as well as send barcode scans from the iOS app to the web app. Grinding through those iOS vendor SDKs was also a character-building experience. 🙂
In February 2019, I had an unfortunate ski accident in Montana, which resulted in me breaking my right tibia & fibula. I won’t share any images here, but for the morbidly curious, you can find some pictures on my Instagram. In a way, this was a life changing event. I’m not sure if I’ll ever be 100% the same as before, and my body always sets off certain metal detectors. But I’ve been able to get back to hiking, skiing, climbing 14ers, and overall I’d say I’m ~95% back to normal physically. So I’m very thankful to my surgeon in Bozeman, MT and to lady luck that my accident wasn’t somehow worse. Racked up a lot of quality WFH days in the weeks after that happened.
Now the past few months have been a bit of a blur. Our app went into GA and has been rolled out widely to hundreds of retail locations. In September 2019, I was promoted to become the dev lead for the Cashier team. In October 2019, Flowhub closed their Series A round, entering a new phase of the company. Looking back, I’ve helped scale up the engineering team to roughly 5x the size it was when I started. A lot of interviews conducted, growing pains, and big transitions along that journey. But I’ve learned a lot and improved my software engineering skills greatly along the way. 🛠
The 2010s Are (Not) Over
It’s tempting to think deeply about any arbitrary length of time (a year, a decade, etc) as “the end of an era”. Time is just a human construct, right? Thinking about the themes of the 2010s, what strikes me is just how many trends will continue to snowball into a much bigger impact on everyone’s lives in the 2020s. I’m certainly biased, but the main trend I’ll remember from the 2010s is the rising impact of technology on everyone’s lives. Remember your first Uber ride? Some other thoughts:
- Rise of the ‘gig economy’ - Uber, Lyft, DoorDash, Amazon Flex, the list goes on… The labor market will never be the same.
- Social media becomes pervasive - I remember getting access to Facebook soon after they opened it to non
.eduemail addresses, how exciting! Now everyone and their grandma is on there. Twitter, Instagram, TikTok, and many others I probably don’t know about because I’m old.
- Smartphones everywhere - No explanation needed, you’re probably reading this on your smartphone.
- Big Cannabis - In 2012, Colorado and Washington took the plunge and legalized recreational cannabis through voter referendum. Since then, many other states have moved forward with new medical & recreational cannabis programs and collected billions in tax revenue. Everyone has dabbled in weed stocks, the industry has survived both democratic and republican presidencies, and the era of corporate cannabis has begun.
- eCommerce hegemony - This trend is actually really old, from the 1990s dot-com boom onward. Amazon has survived so many attempts to dethrone it and just keeps growing. Remember Webvan? An idea ahead of it’s time, now successfully implemented by Amazon Prime Now and Instacart. Brick & mortar retail isn’t going away, but it’s certainly up against the ropes.
- Globalization/Anti-Globalization - This one is a little bit spicy. For me, the phenomenon of globalization, and the political reactions it has caused, is one of the most interesting trends of the 2010s. In the US, the politics around it seem to transcend democrat vs republican. The reality is a little more complex than Economics 101 (trade benefits both parties), but with technology making transfer of goods and information cheaper than ever before, don’t expect this to slow down in the 2020s.
- Endless bull market - If you’ve been trading stocks for a decade, all you know is bull market. My sweet summer children… let me tell you about 2008. Sadly, this trend will end.
My 2020 Goals
Setting goals for an entire decade sounds exhausting. Let’s focus on the next few months, ok? Here’s what is on my TODO list going forward:
- Career continuous improvement - I like to strive for continuous improvement in any software project I’m working on. My life and career are no different, I want to make sure I move the needle a bit here in 2020.
- Read more - I enjoy reading, but it’s hard for me to set aside time and focus consistently enough to get through a book. I started Sapiens a few months ago and it’s one of my favorite books in a while. Gonna finish it and crank through a few more.
- Write more - They don’t all have to be long-winded like this one, but I want to blog a bit more often and create some content. Even if it’s short form stuff like Stack Overflow posts, just to share a bit of knowledge.
- Complete a side project - I haven’t done anything substantial with side projects in a few years. Mainly due to being busy with work and other hobbies. But I’d like to actually complete one side project in 2020, even if it’s as simple as open sourcing a React component or Node.js boilerplate that might be useful to others.
- Stay healthy - This one is straightforward. After a major medical event in 2019, I’d like to have a healthy year, eating better, and trying to manage stress in healthy ways. Also need to watch out for COVID-19…
Cryptocurrencies: The Next Dot-com Bubble?
Using GitHub Pages with a Naked Domain