I’ve put a Haskell app in production and it’s been profitable

People don’t care about the programming language you use. Treat software as a channel to deliver what people really want and be twice as happy: (1) for working with technology that is meaningful to you; and (2) for making a profit.

Imagem de Unsplash.

Judge me if you will, but I like the poetry in the statement below.

Two questions that will make you happy:

1. What would you do everyday in your life if you didn’t need money?
2. How can you make money from that?

As software engineers, answering those questions isn’t always an easy task. We all love programming, but a big part of us hate our jobs. That’s not to blame. Our daily life requires us to do a lot of boring stuff.

A complaint I repeatedly hear in my professional circle refers to the software stack people use at work. Because we, developers, take pride in our work, we care a big deal about the languages and tools we use. Every time some rubbish piece of technology is pushed down our throats, a piece of us die.

In this article, I will give you a recipe to make money while working with the technology you want, however esoteric it might be, so that you can have your cake and eat it too.

Find out what people want

My wife is a Professional Makeup Artist. Over the last five years, she has grown a faithful audience sharing tips about makeup on YouTube and Instagram.

One thing you quickly discover when you go wild on social networks is that people are hard to please. Fortunately, though, my wife’s followers enjoyed her content and were constantly asking for more.

Then, my wife and I had this idea of creating an online course, where she would not only be able to dive deeper into the subjects, but also provide lessons in a more structured way as compared to YouTube.

After inquiring her audience about such a course, we knew it: people wanted to learn more about makeup, and they wanted to learn it from her.

Great story, but what does this has to do with software development or the technology I want to use at work?

Everything! Unless you don’t want to get paid…

The point is: people care about makeup, cars, sports, traveling, their families, you name it. As long as you provide them with access to what they want, they couldn’t care less about the underlying technology used.

Software as a Channel

Forget all the acronyms you’ve learned about software development, because if you don’t master the concept of SaaC — Software as a Channel — they’re useless. SaaC means to look at software from the perspective of users, to understand what has value to them, and then build the channel to deliver that value.

Simply speaking, that’s all my wife and I did. We noticed that:

  1. People wanted to learn more about makeup with my wife and were willing to pay for it.
  2. My wife wanted to get paid for all the knowledge she delivers through her content.
  3. I wanted to write some Haskell and, fortunately, could use it to build a platform that would give (1) and (2) what they wanted.

Can you notice the symbiosis? It’s a huge win-win-win.

As long as I deliver, the Haskell part is irrelevant to my wife and her audience. However, from my perspective, a custom e-learning platform was the opportunity I was looking for to do something useful with my favorite programming language. I know it may sound silly and a bit of reinventing the wheel to use Haskell, but I assure you I wouldn’t be half as excited if I were to write all those CRUDs using PHP or whatever.

It doesn’t matter that my motivation was on something irrelevant to the other parties, because the same rationale also works the other way around (you can guess I was not very interested in teaching or taking makeup classes). So, the bottom line here is to find this common ground, a situation where everyone gets what they want.

You could go alone, but you don’t have to

There’s a saying that says:

Want to go fast? Go alone. Want to go far? Find companion.

We launched Escola de Maquiadores (School of Makeup Artists) and the course sold out in less than two weeks. That was awesome because we made almost no investment on ads. The sales came all from the audience my wife built organically throughout these years. I told you before my Haskell app has been profitable, but the profit part has been actually 100% on my wife. I’m just the happy Haskeller behind the code.

I was blessed to marry someone with a job that enabled us to create such a cool project together. If that’s not your case, you can still find someone to join you. Maybe a friend with some skill that people would pay to learn. Maybe that guy with an idea you met the other day. I don’t know, but if you have nothing to sell, partner with someone who has and build the channel.

Eat your cake

To wrap up, if want the freedom to choose your technology stack, especially if it’s not mainstream, your best bet is to create something of your own.

However, in order to be successful in that endeavor, you have to flip some bits and change the way you think about software and money, because instead of selling your time, you are now creating a business.

If you’ve never done this before, don’t worry. Just patch your brain and follow the algorithm below:

  1. Find out what you have (or can have) that people want.
  2. Figure out what type of software could serve as a channel for people to access what they want.
  3. Have fun developing the channel and make money charging tolls.

Sounds like a piece of cake, huh?