ALTERNATE UNIVERSE DEV

FounderQuest

Do Developers Actually Pay Money For Things?

Show notes:
Links:

Sidekiq-cron  
TextExpander
Alfred
Sondors Metacycle

Full transcript:

Ben:
So, you may not be surprised to hear this, but I've been doing a lot of shopping for electric vehicles this past week.

Starr:
Oh yeah?

Josh:
Oh.

Ben:
And there are some new electric motorcycles and scooters coming out that are very, very tempting. There's one in particular, the Sondors model, which is going to be first released near the end of the year and it's only $5000 and it had a top of speed of 80 miles per hour. The battery is not really rated for doing 80 miles per hour very long. You're not going to commute for 20 miles at that speed, but it's nice to have that in case you just need to hop on the freeway to get someplace really quick.

Starr:
Wow. That's only like $60 per mile per hour.

Ben:
But I really got my eye on it. And my wife's not a big fan of the whole motorcycle idea, but it's been there in the back of my mind for years and this year might be the year that I actually get my two wheel endorsement and do the training course and all that.

Josh:
Yeah, that would be fun.

Ben:
I just didn't want another combustion powered vehicle and so I've been holding off on the whole motorcycle thing until they got electric motorcycles that were not crazy expensive but also not just useless because it only has a batter for five miles worth of range. And I think 2021 is the year that is actually-

Josh:
Is this going to be your big 2021 post-pandemic life change?

Ben:
Exactly, yeah.

Josh:
Nice.

Ben:
Maybe this is my midlife crisis where I actually buy that motorcycle.

Josh:
You should get a hog, though. Be like a-

Ben:
The LiveWire is really nice. That's Harley Davidson's electric, but it's like $30,000 and I just, I have qualms about spending as much on a motorcycle as I would spend on a car.

Josh:
Yeah.

Ben:
Maybe that's not the right way to look at it, but it's just, I have problems with that.

Josh:
I'm seeing you with some of the... the trike handlebars or whatever.

Starr:
Oh, like a Chopper?

Josh:
Yeah.

Ben:
Yeah.

Starr:
I'm wondering if the electrics have the same cache. Because I'm trying to figure out if all the Bruce Springsteen songs still apply to the electric motorcycles. Like would you call an electric motorcycle a Suicide Machine? It seems a little bit too environmentally friendly for that. I'm not really sure.

Josh:
Ben totally needs an electric Chopper. It'd be the first.

Starr:
I go on walks... I'm sorry. I go on walks in the morning and occasionally an electric car will pass by me because it's Seattle and there's a couple of them. And it always feels so sneaky. It feels like they're just sneaking up on me because I just hear this low whine and next thing I know it's right behind me. It just feels like they're sneaking up on me.

Ben:
Yeah, I think they are.

Starr:
I don't trust that Elon Musk fellow. I don't trust him.

Josh:
Eventually you'll be just hearing that whining throughout your entire walk, just constantly.

Starr:
Yeah.

Ben:
Yeah, like the state of Washington, I think they recently passed a law that prevents any new combustion based cars from being sold after 2035. I think that's what it is. So yeah, the clock is ticking man.

Josh:
Pretty wild.

Ben:
Yeah. But for-

Josh:
Are consumers going to go for it?

Ben:
I think so. I think so.

Josh:
I think they will.

Ben:
But for those who don't know, the reason why it's kind of an inside joke is I've been interested in electric powered vehicles for a very long time and Starr and Josh are well aware of having-

Starr:
As long as I've known you. As long as Honeybadger's been a company.

Josh:
Yeah. Honeybadger was actually going to be a electric vehicle company initially, then we pivoted.

Starr:
Yeah, we really chose wrong with that one. That was a really bad decision.

Josh:
Yeah.

Ben:
It might have required a little more capital than we put into our initial business, though.

Starr:
Yeah, that's true. Well-

Ben:
So that's my week. I've been shopping for electric bikes all week.

Starr:
Well that's good.

Josh:
This has been another one of those weeks where I don't remember where it all went, what I did, but I know I did a lot.

Starr:
That's sort of the pandemic life, isn't it? I mean, you've been doing all the contracting stuff, right?

Josh:
Yeah. Yeah, I've actually been-

Ben:
Yeah, you've been doing the PHP. The library's really had some improvement this week. That's been really cool to see.

Josh:
Yeah, we're almost to zero issues.

Ben:
Yeah, that's pretty awesome.

Josh:
Including enhancements and features. Although I've got a few that I'm going to be creating, so now we can get on to the fun stuff like adding new things.

Ben:
Oh, speaking of enhancements, we had a really awesome customer just last night, this morning, who sent us a request for new functionality in the Ruby gem to be able to notify the API of deployments. We didn't have that code in the gem for a Ruby app to use as a consumer. We had a command line task for that, but it wasn't exposed as code. So I wrote back to the customer, I'm like, "No, we don't have that but I'll create an issue in GitHub and if you want to open a PR, wink, wink, go right ahead." I woke up this morning and there's the PR. I'm like, "Wow, all right."

Josh:
Yeah, isn't that great?

Ben:
Yeah. And he tested it in his app. I'm like, well that's pretty awesome. We have the best customers. We really do.

Josh:
Yeah.

Starr:
That's awesome. So why are we paying people again? Let's just make it all community maintained.

Ben:
This was a related thread and a couple of tweets going back and forth this week on Twitter and people talking about, "Well, you know, developers are a terrible market. They don't buy anything." And a number of entrepreneurs are like, "Oh, I beg to differ, they actually do buy things."

Starr:
Yeah. But they don't buy things, but their employers buy lots of things.

Ben:
Right. Right. And they definitely are interested in not spending their time on things if they can realize that there's a way to get something that's a quality product. And they are the best customers because when they file those bug reports, it's so easy to fix them. It's great.

Josh:
Yeah, I never get that argument. We buy a lot of things.

Ben:
We do buy a lot of things.

Josh:
We buy things all the time.

Starr:
Yeah, we do buy a lot. So I wonder if it has to do with the age of the developer. Like if you're around 20-something developers, early 20 developers who don't have jobs then, yeah, they're not going to buy much

Josh:
That's just age. 20-somethings don't buy anything.

Starr:
I know because you don't have money.

Josh:
Period. I mean, they buy Netflix and iPhones.

Starr:
Yeah, but as soon as they get one of those sweet startup gigs, they're buying fricking $200 fidget spinners.

Ben:
Don't they have company issued fidget spinners if they're working for that sweet startup?

Starr:
I mean, probably. Probably, yeah.

Josh:
Is that the new retirement gift? The gold fidget spinner? Like the gold watch.

Starr:
Yeah, they give it to you when you're 30.

Ben:
But one thing I actually did do... I guess I got a little bit of work done this week. I spent some time working on moving our stack so that we can more easily have Docker containers running it. So we currently use VMs for everything, but we really want to have an on-prem version. And we're most of the way there, but one of the things is we want to make it easy for people to deploy and so we think that doing so with Docker images is the way to go versus giving a customer, "Here's a bunch of Terraform that you can run and spin up a bunch of VMs. I think people will be happier with Docker images.

Ben:
So I've been moving a lot of our cron jobs from just cron on the box to Sidekiq cron, which an extension to Sidekiq that inserts another puller. So, Sidekiq has puller, it's running your background jobs and it's pulling, I don't know, every whatever seconds to see their new things to do and to spinoff and stuff like that. So Sidekiq cron is a gem that adds another puller that looks for cron jobs that you've defined in a particular configuration, then runs Sidekiq jobs for those things. So, I've been converting a bunch of rake tasks to Sidekiq jobs and it's pretty nice. I like it.

Ben:
It does avoid the problem of having multiple boxes running the same cron job at the same time. It does have that ability, which is the prime thing that we need since we have clusters of VMs running. We were using console to coordinate that before, but yeah, we needed a solution for inside of a Docker container and this seems to do the job.

Josh:
That's good, yeah.

Ben:
Yeah. Happy. Do recommend.

Josh:
I wonder what else Sidekiq can do for us.

Ben:
I know. Have to get it to wash the dishes. That'd be pretty cool.

Starr:
It already does a lot doesn't it? That's kind of the center of everything.

Ben:
Yeah. Oh, for sure. Yeah we use Sidekiq Batch for the export jobs because export jobs do a lot of work. So we split that into a bunch of little jobs and combine them all with Sidekiq Batch. That's been pretty cool.

Josh:
That's cool.

Ben:
Yeah. Periodic jobs, exclusive jobs. Yeah, it's all good.

Starr:
Well, let's see, I guess this has been a pretty boring week. I've been working on just writing a bunch of article descriptions, which is very... it's not very fun to talk about. It's kind of boring work, which is why I put it off for so long for so many of these articles.

Josh:
For the rest of the podcast, why don't we just have you read them?

Starr:
We'll just read them. Oh, I'll share my one.

Josh:
You could just go down the list

Starr:
I'll share my one lyfe hack that I figured out. My lyfe hacks are spelled with a Y. The thing about publishing... So, we pay people to do these articles, they give them to me, they're done basically but they're not ready to go on our blog because our blog uses a static site generator and so I've got to add front matter to them, I've got to write descriptions, I've got to make sure they actually render okay in our particular version of Markdown that we accept and all that stuff. There's like a million steps to this. One of the things that made me procrastinate on this is because it would just stress me out that I would... I always felt like I was forgetting a step in this or even if I wasn't forgetting a step, I was worried that I was forgetting a step.

Starr:
So what I eventually did is I made a checklist of about 10 items or whatever and I put that checklist in TextExpander. So now when I want to publish an article, I just do my TextExpander snippet. With TextExpander, you type in a little keyword into whatever app you're using and it just pastes in a predefined snippet. So I can just do my little keyword and it pastes in this list of 10 things into my to do list and then I just check them off as I go through it. It's so much less stressful doing it.

Starr:
And also, the other thing that I found is really useful about this is that before I had this system in place, when I had to start working on one of these article descriptions, because... I don't know, it just seemed overwhelming because I would start and be like, "Okay, I've got to read this article. I've got to figure out what it's about." Because I have a lot of articles in progress, so I forget the details about individual ones until I'm looking at them. They just seemed overwhelming but now with this process in place it's like, okay, all I have to do now is run my image optimization script in that directory. So, I could do that. That's a mechanical thing, it's not big deal. And it's like, "Okay, all I need to do now is I need to go fix Markdownlint errors in VS code or whatever. It just makes it so much easier to get into it, and by the time I've done all these mechanical tasks it's like, "Oh, I remember what the article's about and now I can actually write the description." So it kind of is like boot strapping into this task, which I find kind of useful.

Josh:
That's cool.

Ben:
That is cool. Have you considered using GitHub Actions for things like doing the image squishing and stuff like that?

Starr:
Yes. I would definitely like to set up Markdownlint to run as a GitHub action just because some of this stuff should really be caught at the time that the author pushes it, not by me. But for the image stuff, I don't know... Yes, but also, I'm just like, "Well, I don't know, do I..." I just don't know if I want that run every time. It just seems like there would be some sort of complication there, so it's just kind of scared me off from it. Maybe it wouldn't be that big of a deal. But yeah, so the thing I'm getting at is like, okay, if I... Yeah, would I be interfering with the author if I just... If they committed an image and they were just working on it and suddenly it's like, "We compressed this for you and changed the dimensions of it." I don't know, it seemed like it might get in the way a little bit.

Ben:
Yeah. Yeah. You can do actions just on a pull request, though. So while the author is working, they're committing and nothing happens. And then when they open the PR, then that action does the squishing.

Starr:
Yeah, that's a good point. That's a good point, I'll think about it. I mean, image squishing is relatively easy, but-

Ben:
Yeah, it's like five seconds of your job, yeah.

Josh:
Or you could just use some sort of image squishing CDN. Those exist out there.

Starr:
You know, I'd rather just run my little image squisher in the terminal because I know that shit works and I know that it's not just going to suddenly stop working randomly on a Wednesday.

Ben:
And then you have hand-crafted squished images. I mean, what's... premium, right?

Josh:
You know, Netlify actually has that built into it. I think you might need to use their file storage service. It's built on top of a... I think it's called... It's a Git feature. Git Large File Storage, I think. But basically it's a feature of Git that your platform, your Git provider, can support. And GitHub supports it. So it's like a way of basically pushing... Like managing large files inside of a Git repository. Because otherwise, I don't know if you've ever tried to commit super large files, say like videos or something, to just a regular Git repo, it becomes very hard to manage. And it turns out Git actually has a feature that's specifically for that. But Netlify supports that through... I think if you manage your media through that, then you can actually use their... they just have like an end point that you can use for your images that has parameters where it automatically does the resizing and cropping and compression and everything. Kind of like that thing you built at one point, Ben, upload... What was it called?

Ben:
Upload Juicer.

Josh:
Juicer. Yeah.

Ben:
Yeah.

Josh:
Same idea.

Starr:
Yeah. That's really cool maybe for a more intensive use case, that would be good. I kind of like that I can just preview the post with the changed images and it's like I just don't have to worry about it working, it's just, it's very obvious if it worked, didn't work, or whatever.

Josh:
Yeah. Yeah, I looked into it at one point and it was a little bit involved to set up, which is why we don't currently have it.

Starr:
Yeah. Yeah. If the rest of this whole process could be as easy as the image squishing, I would be in heaven. Netlify needs to have a service that reads the article and writes a marketing description.

Josh:
Yeah, you push your just general, your title, to it and it spits out the rest of the article.

Starr:
Yeah, they could just make it, make the whole article.

Josh:
The Markdown TextExpander process you mentioned, that would be a useful process in Notion. I've seen people do similar things with their Roam notes or personal knowledge system. But yeah, anything that supports Markdown that will automatically convert it into task lists or something.

Starr:
Yeah. You want to know something cool?

Josh:
What?

Starr:
This is actually very cool. I just recently discovered it. TextExpander can also paste in rich text. So if you want to... Like if you use Apple Notes or something and you wanted to do the same process and have it paste in things with actual check boxes and all that stuff, you can just copy that stuff out of Apple Notes and paste it into the TextExpander thing and then tell it to paste in rich text and it'll do it.

Josh:
That's cool.

Starr:
So it doesn't just have to be Markdown. I happen to use Markdown for my daily to-do list, so that's what I use but it's actually pretty sweet.

Josh:
Yeah, Ben and I use Alfred. You use the snippet manager in Alfred don't you Ben?

Ben:
You know, these days more often than not I use the built in keyword expansion in Apple.

Josh:
Oh, do you?

Ben:
macOS, yeah.

Josh:
Oh, okay.

Ben:
Because my needs are pretty simple typically so, yeah.

Josh:
Yeah. I prefer the one in Alfred because actually I really don't like the text expansion and Alfred actually has... You can do a keyword search. So you can search for just a quick fuzzy find on the snippet you're looking for. So you can have your snippet library in there. And it does support text expansion. Like you can give it a keyword and say, "Expand this," but it gives you the option not to. Yeah, I don't like when I'm typing and I accidentally type the wrong... Make a typo and all of a sudden my text expanded. Or sometimes I don't want to expand it.

Ben:
All my keyword triggers in macOS have a semicolon as the prefix

Josh:
Okay, yeah.

Ben:
So I can't have any accidental unless I'm typing a random semicolon for some reason, but yeah.

Josh:
Yeah. That makes sense. Yeah. But at the same time then I'm like, well that's basically my Alfred workflow where I do whatever command space for the launcher and then I just find it. So, yeah it's just a couple extra keystrokes.

Starr:
I'm conservative, so I have two semicolons as my-

Josh:
It's like a path-

Starr:
I might be writing some JavaScript or something but I'm never going to have two of them right next to-

Josh:
It's two semicolons and a password that you change every couple months.

Starr:
Yeah.

Ben:
You have to plug in your security key.

Starr:
Exactly. It's two semicolons followed by the ND5 and the current date.

Ben:
The thing that's really cool about TextExpander, I used to use it and I loved it-

Josh:
Yeah, me too.

Ben:
... was it's not just plain text. You can do fields and stuff. It's pretty advanced. So you can have it like you expand the text but it has placeholders for you to go in and fill in some stuff. So you can put in like a name or it can dynamically insert the date. It can do all kind of crazy cool stuff.

Josh:
Yeah.

Starr:
Yeah. I used to use it but then I ditched it when they moved to their subscription model because it's just like, this is a utility, I don't want to have to pay yearly for this. Which I still think is kind of a valid thing, but I tried a couple of the alternatives and then I tried this and I was just like, "This is clearly better and it's really not that much per year," so it's like, "Eh, maybe, yeah, I'll give it a shot." I haven't actually upgraded yet, but I'm thinking I might.

Josh:
What, you might pay for something?

Starr:
I pay for lots of things.

Josh:
Completely out of character.

Starr:
I pay for lots of things.

Ben:
Developers don't buy anything, come on.

Josh:
I have a lot of paid software on my Mac, come to think of it. I almost prefer to pay for it these days.

Starr:
Oh, me too. I prefer to pay for it.

Josh:
Weird. It's like-

Starr:
I know how they're making money that way.

Josh:
Yeah. You know how they're making money. You feel like there might be some actual... like they actually care about proactive support and maintenance and stuff. Not that just regular open source software can't have good support, but financial incentive does help.

Ben:
Yeah, reminds me of that tweet from DHH when they were launching Hey and someone tweeted like, "Well how are they going to monetize it? His response was, "Money. We're going to charge money."

Josh:
What? Yeah. Love it. DHH is such a radical.

Starr:
You know, I do admit also one thing I kind of like about TextExpander is because it's such a hokey thing that they seem to have built into some weird enterprise business, I don't even understand it. But I kind of have a little fondness in my heart because it just seems like... I don't know, it seems like a chipmunk somehow entered the Wimbledon and is winning or something. It just makes no sense to me, but I kind of am glad that it's happening.

Josh:
The story with that was that after you downloaded it and they had your email, they sent you some enterprise sales like, "Let's hop on a call" type email, right? Is that what happened?

Starr:
Oh, yeah. Yeah, yeah, they were like, "Oh, I see somebody else in the Honeybadger domain also has an account with us, so let's see about how we can make this work better for y'all's teams so you're not just doing individual stuff." It wasn't sleazy or anything. It was a little bit weird and unexpected but I didn't feel dirty by it. I was just like, "I'm sorry, I'm just using this by myself so you're not going to sell this to my team." And they were like, "Okay, bye."

Josh:
It's interesting, though. Yeah.

Ben:
I added that email to my swipe file for when I start doing that for Honeybadger customers, yeah.

Josh:
Yeah, it seems like something along the lines of what we could do. I think it's interesting that they're... I had forgot that they had pointed out that someone else at the team had it. So if you look for flags basically to figure out who you actually should reach out to and who you shouldn't.

Ben:
Yeah, that's much better than just scraping the email addresses out of our documentation site and spamming us.

Josh:
Yeah.

Ben:
They're actually ethically emailing people for sales leads, I think.

Josh:
Mm-hmm (affirmative).

Ben:
Speaking of that though, I had a great conversation with a mentor this week talking about sales and growth and things to do. He gave me a bunch of great advice, but on the one hand, I was kind of embarrassed because he was sharing some things that are pretty basic. Kind of like table stakes for SaaS. I'm like, "Yeah, yeah, we could do better at that." Like, "Oh, we don't have all of our ducks in a row." But on the other hand, going over the numbers, the business is great as far as our revenues and our RPU and our LTV and all those things that you want to measure. All those numbers are good for us. So it's like, well, you've done really well so far. If you continue to do what you've been doing and you add these other things that can improve on, well then, great. It'll be even better.

Josh:
Yeah, that's what I've been thinking. Yeah.

Ben:
So I left that conversation much more hopeful and enthused and excited than going into it, so that was a good time. So I guess the moral of the story is find a mentor and talk to that person every now and then.

Josh:
Yeah, I was thinking earlier this week that if there is a risk in us... because we all tend to get impatient from time to time and be like... One of us will... It happens pretty... Seems like it's kind of predictable. Every so often one of us gets the bug. It's like, "Okay, I got to just go and just burn out on this." And I think that it's good to get inspired and want to go and try new things and try to move the needle, but if there is a risk to that besides the obvious just you don't want to burn out, is that if you get distracted form the things that are actually working and stop doing something just so you can go and try to do some big... Look for some big growth event or outcome, I think we want to make sure we don't stop doing what is working. We want to be consistent and systematic with that. And look for new things to try that we haven't done before.

Ben:
Yeah. Which is a great argument for building those systems like we've been doing. Because-

Josh:
Yeah. Things are running themselves.

Ben:
Yeah. Once you have that content system running like Starr has, then you don't have to put a lot of effort in that. Then you can go and look at those other things that you also want to do without dropping the ball-

Josh:
Yeah, without worrying. Yeah, that's it.

Ben:
Yeah.

Josh:
It's like, how do you juggle? How do you keep adding balls to juggle?

Ben:
Right.

Starr:
Yeah, that was the reason for doing the third party blog stuff in the first place is just because one of us would start blogging, or I would start blogging, and then it's like, "Oh, I have to go do something else. Okay, no new blog posts for a couple months."

Josh:
Yeah.

Starr:
And then it's like, I feel all guilty about that. But you know, it's like, I think there's this temptation to be like, "Well, I can do everything myself as well as a team of full time people working somewhere else could do." I mean, I know I feel that temptation. So I have to remind myself that it's like, no, I actually do have limits to the amount of time and energy I have.

Ben:
Yeah. I think the other temptation is to just hire someone to do it. Like, "Oh, this thing needs to be done. I don't have time to do it, so I'm going to hire someone to do it." And then all of a sudden you turn around, you've got 100 people working for you.

Josh:
Well you can do everything that a team of 20 people in a normal company could do.

Starr:
Yeah. But you can't do it as fast.

Josh:
You can only do everything one at a time.

Starr:
Yeah. Yeah, you can do it like 20 times slower.

Josh:
Right.

Starr:
Probably not as well because your expertise is spread pretty thin at that point.

Josh:
Yeah.

Ben:
That's the slow growth approach to business. It's ecologically sound because it's maintainable.

Starr:
Oh my god. Talking about growth, this is-

Josh:
Because it's self defeating.

Starr:
I've got a funny story. So with regard to the stock market and all this, basically all my life I've been a perma-bear. I've just been like, "Things are too wild. Things are getting too crazy." And it just keeps rising. So recently in the past month or so, I was just like, "You know, I did not jump on the whole GameStop bandwagon. I'm not going to throw my money at that because that just seems like a disaster waiting to happen." But it did kind of pique my interest and be like, "I would like to actually understand how all this stuff works." So I've been just kind of reading books. Because up until now I've just been a very, "I'm just going to put all my money in an index fund, just forget about it."

Starr:
I read a thing about value investing a couple years ago and I tried to look at companies like K10s or 10Ks or whatever they're called, and eventually I was just like, "This is just an insane amount of work and also how am I going to get better at this because I don't know if I'm right," for like, five years. So I just kind of gave that up. Anyways, so I was like, "Okay." So the past month or so I've just been kind of keeping an eye on things daily and being like, "Oh, okay, as I learn stuff, maybe I'll start trying some individual stock investments." And then it's the moment I do that the market just crashes. So I am, I think, the most accurate contrarian indicator in existence. So I'll let y'all know-

Josh:
When Starr starts investing it's time to get out.

Starr:
I'll let y'all know when I lose interest and then you'll know things are about to just take off.

Josh:
Cool. Nice.

Ben:
You should keep us apprised on that.

Josh:
Yup.

Ben:
Yeah, well, you're reading books and not just asking your random Twitter followers, though, for investing advice? That sounds like a pretty dangerous strategy. I don't know.

Starr:
Yeah, I mean honestly, I've talked before about how I just love looking at charts and stuff and I don't know why I didn't figure this out before, but the stock market is just full of all the charts you could ever look at.

Josh:
You just get to look at charts. That's your job. That's literally the job.

Starr:
Yeah. It's just looking at charts and be like, "Oh, I wonder what's happening here?" And then just kind of... I don't even... I mean, yes, I would like to be able to retire one day, but that's... the motivating factor here is just, "Oh, this is kind of interesting."

Josh:
No. No, no. The best reason about retiring on stocks is that you get to retire to your charts just to look at them all day. That's what you do in retirement.

Starr:
Oh my God. That sounds like heaven, Josh.

Josh:
Yeah. And imagine, you could have the eight monitor array eventually at your desk for-

Starr:
Oh, like the Bloomberg terminal?

Josh:
... monitoring different exchanges. Yeah.

Starr:
No, I think I'd go the other way. I'm going to be one of those people with the graph paper who takes the price every day out of the newspaper and writes it into the cell of their graph paper.

Josh:
Nice.

Starr:
But it's been pretty interesting. I've been reading some books about... I've been reading one book by this really famous trader in the 20s, 30s and he's describing his system for identifying pivot points and stuff in the market. Nowadays most people just use a chart because it's the easiest way but this way is actually writing down numbers and keeping track of them and stuff. And I was like, oh my God, this is a state machine. This guy's describing a state machine in very... very clumsily and very... if we were writing this out as a program, it would be terrible code. But he's actually describing a state machine. So it's pretty neat. So it's like, yeah, if you have today's prize, you have yesterday's prize. If this condition is true, then the state changes from upturn to downturn. Or ordinary correction. I mean, he had this list of, I think, eight states or something.

Ben:
That's really cool.

Ben:
It'd be fun if you actually made that into a program and then wrote a blog post about it. That'd be pretty... I'd read that.

Starr:
Yeah. Yeah. I mean, it seems like there's much easier ways to go about things these days, but-

Ben:
Well sure, but it'd be fun.

Starr:
Yeah, it'd be fun. It's called, I think, The Livermore Market Key. I think people actually have written blog posts about it. But they did it overlaying it onto charts or something, so it's not quite the same.

Ben:
Yeah, I want to see it in Ruby.

Starr:
Yeah.

Ben:
But first you have to make a DSL for doing stock market based state machines. Then you can write your-

Starr:
Oh, that's the Ruby way. That's the Ruby way. There you go. I mean, to be honest, I actually, I started to translate it into pseudo code Ruby and then I was just like, "This is just so spaghetti. It's really hard for me to follow." So I was like, "I'm not even sure I just want to go there." It's describing a pretty simple thing, but it's got so many... it describes it in, like, 28 steps and each of them has like five sub-steps and they're all spread out. So it's really hard to make sure that you've got all the different conditions in place.

Josh:
So did you try to use a state machine library? Because that sounds like the best-

Starr:
Oh, that was my problem. That was my problem, yeah.

Josh:
That's the use case.

Starr:
That was my problem.

Ben:
I forgot there's a gem for that. Or more than one, actually.

Josh:
Yeah.

Starr:
I was trying to roll my own.

Josh:
Doesn't the financial industry... Isn't Python or... Is that the more popular... What do they use for... What's the popular language in finance, like fintech?

Starr:
Probably Python for analysis.

Josh:
Or C-

Starr:
Probably like-

Josh:
Probably not C, but-

Starr:
C++ for-

Josh:
Maybe they're moving to Rust.

Starr:
All the weird-

Josh:
What do the high frequency traders use?

Starr:
... high frequency... Oh, they probably use C++.

Josh:
You think? Yeah.

Starr:
Or Rust or something. Yeah.

Josh:
Because you got to... yeah. Well, I think it would be a fun project to go back to the beginning of the stock market and take every single person's... person who wrote a book that had their own theory of investing and code a trading algorithm from it and then run them all in parallel and see which one wins.

Starr:
Oh, yeah. But the thing is they're not giving necessarily mechanical things. They're like, "Here's..." They're like, "This feature should alert you and then you should look at these other factors and make a decision." It's not just like-

Josh:
Okay, so yeah. So just get artificial intelligence machine learning thing and just have it read the books-

Starr:
Oh, I'll just do that. Yeah.

Josh:
... let' those do the trading-

Starr:
I'll use the AWS one.

Josh:
... and we'll see what happens. Because isn't that basically what high frequency trading is these days?

Josh:
I mean, I'm pretty sure high frequency trading is that, essentially. Do they know what's going on anymore?

Starr:
Yeah, I don't know. Well there is a... I forget what it's called, but there's... it's not trading view, that's just a... Anyway, there is an actual place where you can go and sign up and you can develop your own trading algorithms. And it's basically your code will be hosted on this company's servers and will be fed in the data as it comes in. And you can actually trade algorithmically. And then if your algorithm actually produces profits and can do that in a scalable way, then they will actually license it as a black box to hedge funds and people who have actual money. I don't know how much these people pay for these algorithms, but I don't know, it's pretty interesting. It's a little bit more intense than I am personally up for. I think I'm more like a daily or weekly chart type of person. I'm not really a give me second by second stuff to feed into my AI that I developed.

Josh:
They really love their black boxes in fintech it seems and dark exchanges.

Starr:
Oh, yeah.

Josh:
They just want it all to be completely opaque.

Starr:
Well no, I mean that's just because... Well that's for the author's Benefit. Because you don't want to actually tell the people your algorithm because then they'll just use it. They'll steal it from you.

Josh:
That's true.

Starr:
But, I don't know. It'd be an interesting hobby.

Josh:
This is why there's not open source trading algorithms.

Starr:
Anyway, it seems like we're about tapped out for topics. Maybe we should wrap it.

Ben:
Sounds good.

Starr:
All right, this has been FounderQuest. If you want, go and write us a review and we will talk to you next week. 

Episode source