The Birth of Penny

And Her Coming of Age During COVID-19

Written by Bret Van Horn

 
bvh-n90s-portra8006.jpg
 

If you’ve ever set foot inside of Blue Moon Camera and Machine, you probably know that our emphasis has decidedly been on analog technology—mechanical devices, things made/manipulated/repaired by actual hands working with actual tools, and tangible, physical goods and results. It’s a hallmark—nay, more of a trademark of the business. Deliberate anachronism. Postponement of obsolescence (versus today’s planned obsolescence). We are working every day to keep proven, reliable analog technology current and relevant. So what happens when a business that is decidedly anti-tech is forced to become tech-reliant?

Flash back a couple years, to when I was commissioned to replace Blue Moon’s very much anachronistic Point-of-Sale (POS) system. I had, at that point, a long working relationship with Blue Moon, maintaining and updating the website and helping out with other tech needs. When Jake approached me for this project, he voiced his concerns about their current POS. It was built on ancient technology, had grown unreliable, and was unable to scale with the business. It would frequently max out available storage space, because the developers never seemed to intend for a business to use the same version for so long, eschewing scalability for a cheaper SQL server license that tops out at 2GB. It became precarious, dangerous, and it wasn’t something we could just send away to a repair tech. Emergency tech calls would ensue, as the database filled up and the POS (interpret that acronym as you will) would stop accepting new transactions until I could back up a subsection of data and free up more space in a process of DOS commands that was akin to a virtual root canal. 

 
Our previous Point-Of-Sale system.

Our previous Point-Of-Sale system.

 

A replacement was needed. 

Jake, a savvy business person, and his accountant Kelly Palin evaluated numerous Point-of-Sale systems, trying to find one that would work the way the business works, not one that imposed its own business practices and structures on Blue Moon Camera. It had to support consignments, multiple vendors, multiple users, customer tracking, a detailed inventory system that can accommodate used equipment, specific conditions, many different vendors, and purchase orders. It also had to handle one-off SKUs of the same models of inventory, new inventory, services, Cost of Goods Sold (COGS) tracking and reporting, and First-In-First-Out (FIFO) inventory sales. 

On top of that, it had to easily tie in with a new e-commerce system, and somewhere along the way, we decided to add in real-time inventory tracking so all of our store stock is available on the website, and if someone buys it in one place, it’s instantly removed from stock to avoid overselling. Add to that, myriad other business rules, reports, uptime requirements, redundancy, and scalability concerns, paired with a brand that is ruggedly individualistic and does things its own ways. There was no way an off-the-shelf solution would get us what we wanted or needed. 

In the end, it was decided that the only way to help the business grow organically and with minimal internal impact, was to build a POS system from scratch that was structured around how we do business and with that, build a new, custom e-commerce website that ties in with the POS system via an Application Programming Interface (API), that allows us to easily and securely share the same data with multiple front-end interfaces (Admin tools, Point of Sale tools, website, mobile apps, etc.). After much debate, it was decided it needed to be cloud based for easy scaling, redundancy, and remote access, which meant we required an extra eye towards security to protect our data and your customer data. 

Thus, Penny was born. 

Now, I’ve been doing this stuff for about 24 years—I’ve built stuff for some big companies, and I’ve built hundreds of websites and applications for small businesses. I’m not a newbie. But, I have to say that this is by far the biggest, most involved, most highly engineered, and expansive system I’ve ever built. It’s often misrepresented that software engineers are nerds with Coke bottle glasses, possessing poor personal hygiene, with pocket protectors and lacking in social skills. While I identify with a few of these characteristics, more often, I feel like the person in the engine room of a ship, clanking on machinery, tightening connections, fixing bilge pumps, and exclaiming in a thick, Scottish accent, “I cannot change the laws of physics, Captain!” 

Building this new high-technology ecosystem for a mostly low-tech business has been both a challenge and a prideful accomplishment. But mostly, it’s been a tremendous learning experience. Every decision we have made has been to increase efficiency, stability, and usability. When we have bugs that appear, it stresses me out and disheartens me. I want you to be able to buy that camera you’ve been eying. I want you to be able to send in your film from our website without a hiccup. I want our staff to be able to easily help customers in the store and remotely. I want our accounting team to be able to easily pull reports and keep the machinery running that pays our bills. So I take it hard when something isn’t working right. Which is why Penny is continuously evolving and improving. We do two-week sprints where we address bugs, work on new features, and enhance existing ones. We have bug tracking, version control, continuous integration and continous deployments (CI/CD), and we have contingency plans for our contingency plans (even some more contingency plans for those). We have had actual ongoing discussions about a bomb shelter version of Penny in the event society collapses. For real. 

An excerpt from our “to do” list when it comes to issues, changes, revisions, and additions we have in mind for Penny. There is work going on behind the scenes 40 to 50 hours a week.

An excerpt from our “to do” list when it comes to issues, changes, revisions, and additions we have in mind for Penny. There is work going on behind the scenes 40 to 50 hours a week.

 

But you know for what situation we didn’t have a specific contingency plan? COVID-19. 

Suddenly, I find the tools we have built to be the critical foundation of how we must do business during these challenging times. We had two years to get this whole system to where it is today—thousands of hours of development, testing (thank you, Zeb for being the best QA person and project manager one could ask for), refinements, and sometimes throwing something away and re-writing it. 

And you know what? It all still works and has allowed us to easily transform from a brick-and-mortar business model to a virtual business model with remote workers and communication—with very minimal work. It’s downright terrifying to think about the importance of it, but I am simultaneously grateful that we have had the time to get it to where it is today. And we could not have gotten there if it wasn’t for our amazing staff (you guys are the best—patient, understanding, and helpfully critical), and our customers, who make it all worthwhile. 

We have some new features we’ll be launching in the near future, stuff I’m super excited to share with you and will help you to more enjoyably pass the time in self-isolation land. I want to thank you all for continuing to use our website and report issues when you encounter them (seriously, this helps us make things work even better). But mostly, I want you to know that no matter how bad things get, I’ll still be down here in the engine room banging on things with a big wrench, cursing from time-to-time, and speaking with a thick Scottish accent (because I can get away with that when I’m working at home).

Take care of yourselves, and we will see you on the other side.

Savvy code readers can take a peek and get a bit of a teaser for the next big addition we are making to the Blue Moon Camera website, otherwise you’ll be seeing this code in more concrete form in about a month.

Savvy code readers can take a peek and get a bit of a teaser for the next big addition we are making to the Blue Moon Camera website, otherwise you’ll be seeing this code in more concrete form in about a month.