Code[ish] logo
Related Podcasts

Looking for more podcasts? Tune in to the Salesforce Developer podcast to hear short and insightful stories for developers, from developers.

Tags

  • COVID19
  • ShopLocal
  • SupportSmallBusinesses

111. Gift Cards for Small Businesses

Hosted by Chris Castle, with guest James Dong.

How much can a day of coding help others? James Dong created a platform to help small businesses impacted by the COVID-19 pandemic sell gift cards online. Learn how this platform, built on Heroku, provided a way for residents to support local businesses by generating over $6000 in sales.


Show notes

This episode is a conversation between Heroku developer advocate, Chris Castle and James Dong, developer and owner of Last Minute Gear. The business enables San Francisco residents to buy, rent, and borrow clothing and outdoor gear for activities such as camping, snow sports, and climbing. During the early days of the pandemic, the business was forced to close to comply with shelter-in-place regulations. There was an outpouring of support for small businesses, but not everyone has a Venmo account or wants to donate to a GoFundMe appeal.

While many used the pandemic to catch up on Netflix and banana bread baking, James spent a day coding a website and platform where businesses could sell gift cards. It not only helped his own anxiety and insomnia but helped brick-and-mortar businesses like gyms and restaurants (and his own shop) to still earn revenue.

It allowed customers to purchase gift cards to be remunerated once businesses reopened. While other platforms with this functionality already existed, James’ project included business-critical functions, such as processing payments and gift cards.

James talks about his experiences of anxiety and insomnia which acted as catalysts in making his website operational in just one day. Support from Stripe and Heroku meant there were no fees—all money generated went to the businesses.

The conversation offers interesting insights into the value of using a decision logger to document ideas and milestones as well as notes and commit messages to explain why particular decisions were made at certain points in time. It’s also a great example of what can happen when developers build projects that help others in need.

Transcript

Speaker 1: Hello, and welcome to Code[ish], an exploration of the lives of modern developers. Join us as we dive into topics like languages and frameworks, data and event-driven architectures, and individual and team productivity, all tailored to developers and engineering leaders. This episode is part of our Heroku in the Wild series.

Chris Castle: Hello, and welcome to another episode of Code[ish]. I'm developer advocate, Chris Castle, and today we're gonna chat about a one day anxiety fueled project to build something helpful for small businesses struggling during the pandemic. My guest is James Dong. Welcome James. Can you tell us a little bit about yourself?

James Dong: I am in San Francisco and I own a gear shop called Last Minute Gear. We are the only outdoor gear shop where people can buy, rent, or borrow gear for camping, or skiing, or climbing adventures, because our mission is to reduce waste and increase access to the outdoors. And last year, the pandemic shelter in place for San Francisco came on March 16th. And, you know, even before then being aware of what was going on in the world, it was very challenging. Um, I wasn't sleeping very well. And a few days after that, you know, I had this notion in my head, what if I built something to help small businesses sell gift cards? Because a lot of small businesses don't necessarily have gift card functionality, even if they have e-commerce functionality.

So, the Last Minute Gear-

Chris Castle: Yeah.

James Dong: ... my business was actually a prime example. Um, we process all of our rental requests online, but we still didn't have ability to sell gift cards online. So, I started building this thing for me, and then I realized that, you know what, I can actually help way more people with this because a lot of my friends are small business owners and didn't have this either. And even the ones that did, you know, at that time, early days in the pandemic, uh, a lot of the providers of gift card sales, uh, software, a lot of traditional e-commerce platform providers, they weren't really offering any discounts or concessions.

Chris Castle: Mm-hmm (affirmative).

James Dong: And I wanted to make this 100% free with no processing fees of any kind.

Chris Castle: Can you explain why, why are gift cards or why were gift cards an important or useful thing for small businesses during the pandemic?

James Dong: It's just a way to generate cash right away. I think a lot of small businesses don't have the luxury of having so much cash on hand to withstand however long the pandemic will take.

Chris Castle: Mm-hmm (affirmative).

James Dong: And I say that because it's still going on (laughter).

Chris Castle: Yeah. Right.

James Dong: So, you know, there's that. We just needed something to drive cash flow right away, because for a lot of small businesses, especially ones that were completely shut during San Francisco Shelter in Place order, there was no way of generating revenue, none at all, right? So, uh, I, I have a lot of small business owners who own restaurants, who own fitness studios that are 100% shutdown. Last Minute Gear is retail, and we were also 100% shut down for a little bit, but we've been allowed to reopen at limited capacity for longer than people in many other industries, which is something that I'm very grateful for.

Chris Castle: Yeah. Okay.

James Dong: But it's just this notion that, you know, like there are payables that are due now. From the moment of shutdown, there are, uh, accounts payable that you have to your vendor partners, there's rent due to your landlord, there's payroll that you have to pay to your staff and where are you gonna come up with the cash for this?

Chris Castle: Yeah. And it makes sense for customers or potential customers of those small businesses, because it's like, Oh, I, I want to support my local economy.

James Dong: Exactly.

Chris Castle: I like this business or I want to be able to use this business in the future, buy things from them in the future. So, it's kind of like a loan, I guess, you could describe it as like, uh, and maybe it is like on the balance sheet or in, in the accounting software, but it's like, I'm gonna pay you now, and then I can use this later on when I wanna buy some sporting equipment for some trip, maybe I'm taking later on. Or maybe you're not taking trips, but maybe I'm going on (laughs) like a, a day hike or something later in the winter.

James Dong: Yep. It's exactly like that. It's alone. It's also really good marketing. Um, because especially during early as in the pandemic, people, like you mentioned, wanted to support their local economy.

Chris Castle: Mm-hmm (affirmative).

James Dong: And so through selling gift cards, they often found out about businesses that they otherwise may not have been aware of.

Chris Castle: Yeah, actually I think personally I had that same experience. I was in Seattle at the time, and, um, uh, I remember getting an email from like my neighborhood community organizations saying like, here's a bunch of restaurants, buy from them now, or you can buy gift cards, uh, from them now-

James Dong: Yeah.

Chris Castle: ... if you'd like to, um, gift them to other people or even use them for yourself in the future.

James Dong: Yeah.

Chris Castle: Um, but generally, like then, the, the like foundational idea is, yeah, you're helping to support the, like you said, accounts payable, the bills that the business has right now that they may be struggling with because of the reduced business they're, they're getting with walk-in customers.

James Dong: Right. Right. And you bring up something really interesting because it's also true that, you know, around late March and early April, um, a lot of people had built really nice aggregator sites.

Chris Castle: Yeah.

James Dong: Uh, so these were websites that, like you mentioned for the one in Seattle, um, they were a landing page essentially that maybe had a map or a list of local businesses and then linked directly to that business is gift card sales platform.

Chris Castle: Yeah.

James Dong: So, often it was for restaurants. I saw something for other businesses as well. And the main way that s- gift cards for small businesses, the project that I built was a little bit different was that we were actually processing, uh, the payments and the gift cards as well. Because again, it was for the businesses that didn't previously have that functionality.

Chris Castle: Yeah.

James Dong: And for a lot of small business owners, that early time was so overwhelming (laughs) there wasn't really a way to say, okay, how do I do this for myself right now? You know, there are a million other things that you were concerned about, and, and I'm grateful that as a developer, I could think about this and, and get this out the door quickly.

Chris Castle: Yeah. It makes sense. You have the-

James Dong: Mm-hmm (affirmative).

Chris Castle: ... technical understanding to be able to build something. Um, and so you said, yeah, it was the, the website is, or was depending on when you're listening to this, gift cards for smallbusinesses.com.

James Dong: Yeah.

Chris Castle: But for building this thing, can you talk a little bit about, more about like, uh, I think you said you were filled with some (laughs) anxiety or wasn't, wasn't sleeping too well when like the, the stay at home order went. Did you just turn on your computer and be like, okay, I'm gonna build this, this website and, and get it out there. At what point did the inspiration convert to being a developer? Like building something and, and-

James Dong: Hmm.

Chris Castle: ... like getting it live.

James Dong: It's interesting. I'm not sure if there was an actual point of conversion. You know, after a couple of days of not sleeping well, I, I just couldn't think of what to do.

Chris Castle: Yeah.

James Dong: You know, it was weird because prior to the pandemic, I definitely had defined to-do lists and whatnot.

Chris Castle: Mm-hmm (affirmative).

James Dong: And my mind was just very scrambled. And this was almost a way of putting some organization. It was sitting down the computer saying, okay, there are a million things that I wanna do, and I don't know why, but I'm having trouble focusing and prioritizing with the same expediency and logic that I previously would have. So, let's just take one of those things and, and just do it, and just sit down and do it. And, you know, don't get up until you finish. Not literally, but, you know-

Chris Castle: Yeah.

James Dong: ... just a way of putting orders to those things. Because I, I think-

Chris Castle: Yeah.

James Dong: ... don't know. And, and, Chris, we're talking about this and, and you've done some issues in the past on mental health.

Chris Castle: Yeah.

James Dong: Outwardly, I don't think there was any way to tell that I was anxious or that I was depressed, except for the fact that my sleep patterns and my thought patterns were really disrupted.

Chris Castle: Mm-hmm (affirmative).

James Dong: Um, so this was almost in that moment, kind of like self-help for me almost. It was like-

Chris Castle: Yeah.

James Dong: ... how do I put order to the mess in my brain-

Chris Castle: Right.

James Dong: ... and give it some kind of direction and focus for right now.

Chris Castle: So, like what, what made you decide to offer it to other businesses?

James Dong: Oh, that happened in a quick one, two step. So, it wasn't that-

Chris Castle: Oh okay.

James Dong: ... I was planning this platform for a while for myself, and then I decided to, uh, do it for other businesses. It was very much, my thought process was, Last Minute Gear needs to sell gift cards ASAP. We don't have a way of selling gift cards and I can build it. And also, a lot of my friends who are small business owners that don't have a way of selling gift cards. How do I do this all together for everybody?

Chris Castle: And then how did you find other businesses that were interested in selling gift cards and, and like get them, um, incorporated or somehow integrated with gift cards for smallbusinesses.com?

James Dong: So, everyone on there right now is either a business that I know, like I'm friends with the owner, or I think, um, I sent this to a few groups who were interested as well, and then they did some promotion for it. For me, I d- I didn't do a ton of promotion, the emphasis around, on this wasn't, wasn't really around growth and vitality, you know, like I wasn't, (laughs) I wasn't-

Chris Castle: Yeah.

James Dong: ... looking for fame as a builder of gift card sales platforms (laughs). Uh, it was, it was more that whoever needed this get on as fast as you can so that you can be helped as fast as possible.

Chris Castle: As a developer or building that, what was the, the process or kind of iteration cycle of, of actually building this thing?

James Dong: Yeah.

Chris Castle: You kind of described it as like not sleeping for a few nights, and then I sat down and built this thing. Was it a one day thing? Like, did you go through a couple, a couple of different versions of it? How did you make technical decisions like, is it Python or Ruby or-

James Dong: Mm-hmm (affirmative).

Chris Castle: ... or node and like, what frameworks did you use?

James Dong: So, it was literally one day. And because it was literally one day, I took shortcuts on everything and my decision-making largely came down to, what will take the least amount of time? (laughs) It was definitely a case where I remember thinking, I was like, okay, if I need a monkey patch something, I'm just gonna do it. I do- I don't think I needed to do anything because fortunately, we're, we're in this world where developing something quick and deploying it quickly has never, has never been easier, right? So-

Chris Castle: Yeah.

James Dong: ... I use as many libraries as possible. We use Stripe for the processing. Um, well, obviously we use Heroku to deploy both are super fast and really easy, and we were able to get sponsorship from both. So, that again, there wouldn't be any fees of any kind associated with the site and all 100% of whatever was sold would go directly to the business. So, I guess there were technically two versions if you think about it that way. There were two versions that I had deployed and sent out to other people. And the, the only real difference between them is that it was super text-based.

James Dong: And my friend who I sent this to, uh, was like, wow, that is super ugly. (laughter).

Chris Castle: Right.

James Dong: And it's one of those things where it's like, I, I know, you know, and you can-

Chris Castle: Yeah.

James Dong: ... compare that screenshot with the current screenshot, with the final version, and it's still not that pretty. You know, it's-

Chris Castle: Yeah.

James Dong: ... still something where you would look at and you are like, wow, A, did a child do this? Uh-

Chris Castle: (laughs).

James Dong: ... you know, possibly yes in my current mindset at that point.

Chris Castle: Yeah.

James Dong: Um, and then B, you're thinking, there's no way this is a professional service, right?

Chris Castle: Yeah.

James Dong: But I think what was important to realize is that I built this site for my friends, my customers, and the customers of my friends. So, especially during a pandemic, there's a lot of forgiveness there, right?

Chris Castle: Mm-hmm (affirmative).

James Dong: My customers that have used Last Minute Gear before and are big fans of Last Minute Gear, are gonna trust because this comes from Last Minute Gear.

Chris Castle: Yep.

James Dong: The customers of a friend's business are gonna trust this because it comes from their business. And that is-

Chris Castle: Yeah.

James Dong: ... who I was trying to support. I think the most important realization there is that, like, I, again, I wasn't trying to make this like a startup or something, you know.

Chris Castle: Yeah.

James Dong: I wasn't trying to build this into something, I wasn't trying to appeal to anyone and their mother off the street. It was-

Chris Castle: Yeah.

James Dong: ... very much, uh, a core group of people that already trusted, already believed in the businesses. And the emphasis again, was on speed as quick as possible.

Chris Castle: Right.

James Dong: And so really between V1 and V2, all I did was I slapped on a couple of more pictures and I made a couple more colors and, and that was, (laughs) and that was it.

Chris Castle: Uh, yeah, it was like, it had enough functionality such that like both a technical person, maybe, but, but a, a like non-technical person could go in there and purchase a gift card for whatever business, you know, local, local business they wanted to support.

James Dong: Right.

Chris Castle: It met the, the basic bars that you had, um, of like, Hey, I want anybody to be able to go in here with a web browser with, and, and be able to buy something.

James Dong: Exactly, exactly.

Chris Castle: Yeah.

James Dong: And thank, uh, again, thankful for so many libraries already have that. You know, like Stripe already has-

Chris Castle: Yeah.

James Dong: ... an integration that's really quick and simple. You just push the button and that's, I think that's exactly what I used (laughs).

Chris Castle: Yeah, totally. I mean, that's like the power, the power of, of this like huge open source communities out there and-

James Dong: Yeah.

Chris Castle: ... being able to, it almost seems like the, the task of a developer these days is understanding how to glue things together. Obviously, you've got to think about like security and, and-

James Dong: Right.

Chris Castle: ... and other.

James Dong: Right.

Chris Castle: Is this co- other person's code that I'm using secure? Or is it, is it adding risk in some way, but yeah, if you can glue things together, you have a pretty, you've become a pretty powerful builder.

James Dong: Oh, for sure. I joke with people about this all the time, you know, like my, my friends we're developers and just like, yeah, what, what library is this (laughs), you know? And if it's not a library, like, can I ask a few questions on stack overflow and make it into a library? (laughs).

Chris Castle: Yeah. Yeah. That's great. Going back to the concept of like Quick & Scrappy versus something much more kind of refined and built out, even create a business out of, out of this idea.

James Dong: Right.

Chris Castle: Did you think about like turning this into a business or making it something more, just much bigger or more complex than, than you went with?

James Dong: To be honest, in my anxiety riddled mind, I don't think-

Chris Castle: (laughs).

James Dong: I was aware. I, I, I don't think I could have had that level of higher (laughs)-

Chris Castle: Yeah.

James Dong: ... dimensional thought process to be like, could this be a business in itself? But even if I'd asked that question, I honestly don't think the answer would have been yes, because selling gift cards alone is not a substantial feature that would be valuable-

Chris Castle: Yeah.

James Dong: ... to businesses. You know, uh, you look at gift cards and they are often features that already are present with a provider, like a payment service provider like Square as like an add-on, right? So, it's not enough as a standalone feature. I just had to build it this way, because Last Minute Gear, you know, we were an e-commerce, uh, company that didn't already have this existing functionality. And I, I actually, uh, was aware of a different organization that was taking a more well, thought out, methodical approach to building this, and I think-

Chris Castle: Yeah.

James Dong: ... they did have ambitions to potentially make this a platform, uh, and a service offering for businesses even past the pandemic.

Chris Castle: Yeah.

James Dong: And they started with a very, very large team of volunteers, uh, doing everything, you know, "the right way," right? Like having-

Chris Castle: Yeah (laughs).

James Dong: ... meetings and having developers and leads and designers. Um, they got some press release, they even got a little bit of funding to do this. And actually it's, Last Minute Gear is listed (laughs) uh, as a platform on them. Because again, my mentality was very much like, I just need money. So, from-

Chris Castle: Yeah.

James Dong: ... from wherever and whoever, I will go ahead and list myself, right? And, you know, honestly, I'm not sure if that platform ever really got off the ground and ever really launched and, and made a bunch of sales. I, I do- I don't know because I'm not privy to that backend stuff, right?

Chris Castle: Yeah.

James Dong: I think one of the things that was very subconsciously going through my mind and that in hindsight turned out to be absolutely accurate, was that in the early days of the pandemic, there was this outpouring of support for small businesses. So, there was this outpouring of, you know, how do we buy gift cards for people? How do we donate directly to Venmo accounts, to GoFundMe accounts? And I could see that it was very palpable and very much, that was one of the reasons whether subconscious or consciously, that I realized speed was the most important thing, because I had to capture this right now. I don't think I had anyone to reach out to Last Minute Gear. Any of my customers reach out specifically and say, Hey, how can we send you money?

Chris Castle: Mm-hmm (affirmative).

James Dong: But I do know of stories where that was happening. I know that from a customer perspective, it can be, it can be sketchy to send things just straight to someone's Venmo account, right?

Chris Castle: Yeah.

James Dong: But then even with a GofundMe, that takes time to create and not every business owner has the time to do that when they're dealing with a million other things. And so very much, I was like, okay, how do I capture this energy that people have, but also make it, UH, somewhat of a two way transaction? So, it seems more-

Chris Castle: Mm-hmm (affirmative).

James Dong: ... more legitimate from them. They're getting something from the business, uh, down the line. And that was really how I thought about it. And, and it's funny because this Quick & Scrappy approach, it's even quicker and scrappier, if you actually buy a gift card. Because-

Chris Castle: Mm-hmm (affirmative).

James Dong: ... at the backend, after you buy a gift card, so I send you an automated email and then on the website, you never leave that landing page. The confirmation that you have successfully bought a gift card is literally a JavaScript alert (laughter).

Chris Castle: Okay.

James Dong: Which is quite possibly like the worst UX, UX, best practice you can think of. You know-

Chris Castle: Yeah.

James Dong: ... like never use alerts for anything. But again, I was like, okay, like once someone's bought a gift card, I no longer, you know, like they've already trusted this site. And again, I'm going for Specie or I no longer need to have a really beautiful landing page that acknowledges or completion. I just need to, you know, tell them it was, it went through.

Chris Castle: Yeah. Yeah. That makes sense.

James Dong: Mm-hmm (affirmative).

Chris Castle: So, yeah. How did it go? Like what, what were the results or the uptake, or how many gift cards did you sell, uh, or how many businesses did you help out?

James Dong: Yeah, so I think, um, there's a little bit over a dozen businesses on the platform, but I know that not everyone ended up selling a gift card, because again, this isn't really a discovery platform for anyone.

Chris Castle: Yeah.

James Dong: This is really, you have to go with your existing customers and some of the businesses are newer, some of them didn't have like robust mailing list to send out. But in total, we sold over $6,000 in gift cards. And Last Minute Gear was not the top seller, which is really great. And, you know-

Chris Castle: Yeah.

James Dong: ... it's funny because like, obviously like divided among, you know, at least 10 businesses. That's, that's not a lot of money and I acknowledged that this is just an attempt. But I think as a small business, you know, every business on that page, I believe has like less than five people or something. I think there might be-

Chris Castle: Mm-hmm (affirmative).

James Dong: ... like one exception or two exceptions, but most of the businesses on that page are micro businesses.

Chris Castle: Yeah.

James Dong: ... and micro businesses really, we just need any kind of help ASAP. It's definitely that, that notion that every little bit counts is absolute true when you're a micro business.

Chris Castle: One thing you mentioned when we were chatting earlier is that the gift card rage has kind of died down a bit.

James Dong: Yeah.

Chris Castle: Um, what's your kind of feeling of that? Or when did you start to, to get the sense that it's like, was it just like a news cycle? Or what, what, like, like how did it die down or what ways did it die down?

James Dong: So, first off, like, uh, the pandemic has gone on for longer than I think anyone thought it would go on for, right? I think-

Chris Castle: Yeah.

James Dong: ... in March we had our Shelter in Place order for like, I think it was two months or something like that. And I think people-

Chris Castle: Mm-hmm (affirmative).

James Dong: ... were like, okay, well, at the end of two months, it'll just be back to normal, right? I don't think people realize how long and how long and how long it would go for. And at some point, you know, you've bought all the gift cards that you wanna buy. (laughter) You know, like, it, it's true. It's like at some point, if you, if you are a consumer of this service, uh, and if you are buying gift cards to support your businesses, at some point you've bought all the gift cards that you can buy. Because again, if your mindset is, Oh, this will be over in a few months, you're gonna upfront all your spending, right? You're gonna say-

Chris Castle: Yeah.

James Dong: ... okay, I'm gonna spend $1,000 on gift cards in March for all my favorite businesses and then I'm done. And I think that's what happened for most people. You know, they, they, we had a ton of gift card purchases in April and May, and that slowly just died down. I think the last few came through in the fall, but then really there was no more after that because I think whatever appetite people had at that point was over. And no, not to mention at the same time, by then businesses were, were more allowed to operate in some capacity.

Chris Castle: Right.

James Dong: So, that support transitioned from, um, just don't buy gift cards to, okay, this business is available, now I'm gonna start actually patronizing them on a regular basis.

Chris Castle: And I bet some businesses are kind of adapting to or changing. They ha- they've, they've now had more time to adapt to this.

James Dong: Right. And create an offering that people can actually buy directly. Yeah.

Chris Castle: So, what about like learnings from this project? What did you learn about, about this? Like, do you think it helped you become a, uh, a better small business operator or owner? Did you, did you learn some things about, maybe about yourself or about, um, how to more effectively run, run a business? Or even, you know, do you have any advice for others out there? I don't know, like the thing I draw from this, or one like piece of inspiration I draw from this is, if you're inspired by an idea and, you know, you spent a little bit of time thinking about (laughs) it to make sure it makes sense or there's someone that would benefit from it. Just go and run with it.

James Dong: Mm-hmm (affirmative).

Chris Castle: Sometimes you need to stop worrying about the chaos and complexity of like, Oh, how do I do this in a perfect way? Or how do I do this in the right way?

James Dong: Yeah. I mean, I think that's very much the theme of, of kind of the conversation that we've had this duality where on the one hand you're like, okay, I need to get an MVP out the wind, a minimum viable product out the window. I don't care what it looks like. And on the other hand, this tendency to say, Oh, no, I wanna make it really nice. I wanna make it really perfect. It should be really clean. Uh, the UX should be really buttoned up. As a developer, I feel that all the time. You know, like even-

Chris Castle: Yeah.

James Dong: ... even when I'm working on something on the back end for actual Last Minute Gear related to our systems and processes, there will be days. So, right now I, I will tell you, I'm, I'm working on, uh, an inventory management optimization problem.

Chris Castle: Mm-hmm (affirmative).

James Dong: And I worked on a potential solution for like a few weeks. I mean, uh, for, for me, keep in mind, I'm never working on anything full time. So, it's always like, you know, like a few after hours and I'm gonna stop. So, I worked on this one solution for a few weeks and, uh, you know, I took a few weeks off 'cause I got really busy 'cause we, we had to move the store because of the pandemic as well. And when I picked it back up, I was like, Oh, did that make sense? I don't think that made sense. And I-

Chris Castle: Yeah.

James Dong: ... I think there are specs that I can write that this solution just won't pass. And now I'm like, Oh gosh, like, I should just start over everything. You know, like (laughs) I'm at this place-

Chris Castle: (laughs).

James Dong: ... where like you, you reached the bottom and you're were like, you know what, tear the whole thing down. I'm gonna rebuild Last Minute Gear from scratch (laughs).

Chris Castle: Yeah.

James Dong: And make it perfect from the get-go.

Chris Castle: Yeah.

James Dong: And, and that is a huge tendency that I notice. You know, it's like every time I, you know, 'cause, uh, occasionally we will outsource a specific chunk of development, uh, to a developer.

Chris Castle: Mm-hmm (affirmative).

James Dong: And often there's a tendency where it's like, you know what, James, this would be so much easier if I just rewrite the whole thing. But that is really often not the right answer. Because if you rewrite everything, you know, your, um, all the bugs fixes, you're, you're losing a history of bug fixes that like, there are so many bugs that we have no control over as developers, right? Like we can do all the planning, and all the preparation, and all the specs, but they, they're just, and bug fixing is all about edge cases. And they're just some edge cases exceptions that just don't cross anyone's mind until-

Chris Castle: Yeah.

James Dong: ... some random case comes up-

Chris Castle: Yep.

James Dong: ... and it happens, and you patch it, and it's great and you're losing that entire history.

Chris Castle: Yeah.

James Dong: So, for me, I, you know, like this was the ultimate exercise because I did it in a day and curbing all of those things.

Chris Castle: Yeah.

James Dong: So, if you, if you actually, uh, my, my commit messages are, are a mess. Uh, (laughter) I wasn't doing anything in any rational order, but I left myself notes everywhere. So, if I look at the-

Chris Castle: Mm-hmm (affirmative).

James Dong: ... actual code for gift cards for small businesses, I think it's, it's not that many lines of code, but there's like lots of comments where it's like, Oh, in theory, if I need to do this better, I'll leave myself a note. This is like the scrappy version, right? If I want to make it better, I should do X, Y, Z. So, th- this duality is really strong and I, and I think about companies, startups in San Francisco, this is very much like, uh, am I in stealth mode, right? And like waiting to button everything up before I launch, or do I-

Chris Castle: Right.

James Dong: ... literally send out, uh, a landing page to folks and start collecting emails and that kind of stuff?

Chris Castle: Right. Yeah.

James Dong: It's challenging because I wish even after, you know, five years of doing this, I wish I could say that there was a formula to predict when one is better than the other.

Chris Castle: Yeah.

James Dong: Actually, I think every developer wants that, right? I think that would be like a holy grail for development. It's like, can you tell me, please, when I should get something out the door now versus really button it up? You know, I think for me, the context of this time was that it was about speed.

Chris Castle: Mm-hmm (affirmative).

James Dong: And I actually had to, and, and, you know, I, I hope people are understanding of this, but I actually had to turn down offers of help on the technical side.

Chris Castle: Yeah.

James Dong: Because, you know, one thing that I, that I told people who offered to help me with the code or to help me with the design is that, the problem that I'm facing right now, the context right now is it's not a technical challenge.

Chris Castle: Yep.

James Dong: Because of all these libraries, because Stripe exists, because Heroku exists, the challenge is how do I get this in front of as many customers as possible so that they can buy the gift cards? How do I get-

Chris Castle: Yeah.

James Dong: ... this in front of other businesses to help them, if they want a platform to sell gift cards for free, without the processing fees?

Chris Castle: Yeah.

James Dong: There is nothing technically challenging that I can't build personally. Um-

Chris Castle: Yeah.

James Dong: ... it's just, I'd have to will myself almost to not build it because it's like, it's just not, it's just not worth the time. And one thing about this, another, another UX no-no I'm sure. Um, is that if you click on a business, it opens up a modal, like a pop-up window.

Chris Castle: Yeah.

James Dong: They don't have a page, you know, like literally this is a landing page. Everything is an alert message or a pop-up window (laughs).

Chris Castle: Yeah. It's like the true single page app for real (laughs).

James Dong: It is. This is like, this is like a UX nightmare, right?

Chris Castle: (laughs).

James Dong: Um, but it was like, I didn't need, uh, uh, an architecture of pages. I didn't need all that, you know, complex functionality and, and that's not something that's hard to build either. So, I think it's just being really aware that that dichotomy exists-

Chris Castle: Yeah.

James Dong: ... and paying really careful attention to the context. If there's one piece of advice I would say is, I keep a decision logger-

Chris Castle: Hmm.

James Dong: ... where I write down milestone decisions and it's not just in code. Most of it's in code, I'm not gonna lie. Like, uh, a decision logger has different categories and subcategories. Most of the categories are related to code and development.

Chris Castle: Mm-hmm (affirmative).

James Dong: Um, but I also have them in merchandising and how we set up the store, um, in inventory management and, um, in accounting and finance with all of these different categories. And every time I hit this major milestone decision, I will clearly write out the different options. I've considered.

Chris Castle: Yeah.

James Dong: Uh, they, you know, MECE, mutual exclusive collectively exhaustive set of options, pros and cons of each option, and then why I decided why I decided. And I think that has been super helpful for me. It's super helpful whenever I hand off projects as well. Um, but the most important thing about that is, a lot of times when time passes, I mean, I think people, we often think, Oh, I'm gonna remember this. You know, I'm gonna remember exactly-

Chris Castle: (laughs).

James Dong: ... why I did this. No, no one ever remembers why, right?

Chris Castle: Yeah.

James Dong: Uh, I will look back at some just the other day for the inventory piece. You know, like this was a few weeks that I stopped working on this, right? I look and I was like, why did I decide to take this approach that ultimately is the one that I'm probably gonna scrap? And then I looked back at my notes because I had this decision locker and I was like, Oh right. Because in this case I was optimizing for X, Y, Z and not A, B, C. But now in hindsight, I realized that A, B, C was not the right thing to have optimized for.

Chris Castle: Yeah.

James Dong: And the one thing that that clarity helps provide is that it helps remove a lot of emotion, a lot of blame. I'm not as annoyed with myself as I otherwise would be for making a horrible decision, because I know that the decision that I made at the time was well thought out, and-

Chris Castle: Yeah.

James Dong: I had just picked the wrong set of things to optimize for which given the information that I had at the time, seemed correct.

Chris Castle: Yeah, totally. You're being kind to, to future James. Future self.

James Dong: Yes. Yes. And, and especially if anyone out there is like a one person business or a sole proprietor, uh, or has a really small team, there's such a tendency to skip it. There's such a tendency to not do that because you have so many other things. It, it's the exact same tendency I feel to not write a great commit message (laughs) because I'm in a really big hurry and I'm like, Oh, I will remember what this message means later and I never do, (laughs) you know. Or, or the other thing I've realized is that like, I let a lot of spelling errors persist in my commit messages, which I actually realized it's been horrible because sometimes I'm searching an old commit message for something, but-

Chris Castle: (laughs) Yeah.

James Dong: ... I can't find it because I spelled the word incorrectly or something like that, right? Um, so it's very much, it'll have a longterm benefit if you just invest like another second of time into doing it on the short term and the moment.

Chris Castle: Cool. Well, that is all the time we have for today for Code[ish]. But I really, uh, James, I really appreciate you joining us to share your story here. I think, as I said a little bit earlier, like it's super inspirational to hear of, like, you ha- you had an idea, you (laughs) kind of just sat down and you, and you just like pumped it out, you got it done.

James Dong: (laughs).

Chris Castle: And you made an impact to, to a community of people, a group of people. You know, it wasn't just helping your business, it wasn't just helping you. It was kind of ha- had a broader, positive impact in addition to helping you and, and your business. Yeah. It's super cool to see like the power of developers. Like, we have this-

James Dong: Right.

Chris Castle: ... ability to build things. We can choose to build many different things and-

James Dong: Right.

Chris Castle: ... and what we choose to build, um, can, you know, either benefit our world and society in many ways or, or add negative effects-

James Dong: (laughs).

Chris Castle: ... to our world and society. So-

James Dong: Yeah.

Chris Castle: ... yeah. Thanks for, for sharing some positive inspiration there.

James Dong: Of course. Thank you so much for having me. It's been a pleasure.

Speaker 1: Thanks for joining us for this episode of the Code[ish] podcast. Code[ish] is produced by Heroku, the easiest way to deploy, manage, and scale your applications in the cloud. If you'd like to learn more about Code[ish] or any of Heroku's podcasts, please visit heroku.com/podcast.

About code[ish]

A podcast brought to you by the developer advocate team at Heroku, exploring code, technology, tools, tips, and the life of the developer.

Hosted by

Avatar

Chris Castle

Director, Developer Advocacy, Heroku

Chris thrives on simplicity and helping others. He writes code, prototypes hardware, and smiles at strangers, helping developers build more and better

With guests

Avatar

James Dong

Owner, Last Minute Gear

James is passionate about sustainability, the outdoors, & access to resources as represented in his gear shop where you can buy, rent, or borrow gear!

More episodes from Code[ish]