Riding Down a Highway of Knowledge

By looking forward at what can be achieved, Leonardo has never looked back since he began his career in programming at the age of 17. Whilst there have been setbacks he has never let that stop him and he has re-ignited his passion for building on his own terms. But what makes him a real tour-de-force is his passion for knowledge outside of programming which he shares here, showing that if you love what you do, the opportunities are endless.

...
Leonardo Bighi
Rio de Janeiro, Brazil

Who are you? Where are you from and what is your backstory?

Hi. I'm Leonardo Bighi, a web developer from the electric country of Brazil. I was a born in a poor and small town near the city of Rio de Janeiro and have always loved two things since I was a small kid: reading books and using computers.

 

When I was 17 years old I started to learn programming and it eventually changed my life. I got into one of the best universities of the country to learn Computer Science, but I quit after 3 years, when I got an interesting job offer. I said programming changed my life because it helped me earn a decent wage and move to Rio. That was 10 years ago, and I've continued to develop without looking back since.

 

 

What made you get into programming?

I hate to sound cliche but my original intention when I began programming was to make video games. I loved games when I was a teenager and used this as a launch pad to begin my journey into coding. So I bought lots of books and magazines, and they told me I had to learn C++.

 

I remember learning C++ step by step. I didn't know you could have more than one condition in a statement, so I would make 3 ifs to make 3 comparisons. But I made a pong clone, anyway. It made me so happy that I decided that was the career for me. But that was the one and only game I've ever developed.

 

What made you create Motorcycle Space?

I've always wanted to build my own projects and, one day I decided to quit my day job. I started doing that when I was 23, but after many failures I kind of gave up. Last year I was approaching my 34th birthday, and started reading stories like Pieter Levels. (https://levels.io/)  So I decided to go back to my dream of building interesting projects.

 

I decided I would build one project a month, starting in November 2018 and I soon realized that short deadlines were the thing I needed to push me into ensuring successful and continuous builds. In November I built a command-line journal app and in December I built an app for motorcycle riders like me. I've always had one problem: I never knew where to park and so with this in mind that's where the idea for Motorcycle Space came from; it helps riders find a place to legally park their motorcycles for free.

 

 

What does your process for learning to code look like?

Learning, to me, is a very hands-on process. If I just sit and read a lot of theory I get bored and learn nothing. Things don't stick in my mind unless I build stuff. At first I tried to learn new stuff that looked interesting, while also programming it. Then I just gave up.

 

Now my approach is to just learn what I need, when I need it. I start building a project using technology I already know, without worrying if I'm writing the best possible code, and I keep going until I don't know how to do something. If I hit a wall, then I google it and utilise the resources, which has allowed me to really explore the blogosphere to find articles that can assist me.

 

To make sure that I won't forget what I'm reading, I make lots of notes on the great Notion app. But I don't spend more than a few hours on it before I start writing code. My current focus these days is the product. If I can make it work, then the code is good enough. That's not sexy for a programmer, but worrying to much on the code was holding me back.

 

What does your process for building apps look like?

I made websites and web apps, so the first thing I do is to prototype an interface in HTML. I'm very very bad at photoshop, so HTML is the only tool I have to mock my interfaces. I like to look at it, feel how it's going to look like, before doing anything else.

 

I also ask my wife to look at it too, after every step in the process. She's a psychologist, and she's much better than me at understanding people. Without her, everything I do would look like the typical "UI made by a programmer".

 

When I have an interface, I start writing code. I try to build the smallest first version I can, so I can ship it before I get bored of the project. I'm a very visual person, so that's why I build the interface first. I also like to see it working, because it motivates me. I see it's becoming real.

 

Do you face any particular challenges when building over a period of time?

I have two big problems. The first one is that entertainment is so attractive. Video games, movies, TV shows, books. Every day I fight down my urges to go and play a game. Sometimes I lose the fight, but my goal is to work on my projects at least 6 days a week. My maker friend Elomar is always helping me stay productive, because we both want to become financially independent.

 

The second problem is that I tend to get bored of my projects after some time. I stop loving the idea, or the appeal of a new idea looks better, and so the old idea starts to feel lackluster in comparison. Making myself release a new project by the end of every month helps me "fix" this problem. I know that it won't take long before I start working on another new idea.

 

Are you currently learning anything new?

Yes, I'm learning something new, but it's not a programming skill. I have spent so many years of my career learning about code that I forgot to learn other stuff. Now that I'm more into the maker world I realized there are many important skills that I never learned. Marketing. Networking. Shipping.

 

I have decided to focus on non-programming skills in 2019. How to find my target audience. How to reach them. How to make my product look interesting in a few paragraphs. How to differentiate my app from my competitors, and how to make potential customers understand those differences. I realized too late that those skills are more important than writing good code.

 

 

Advice for those learning to code?

For people that are just starting: don't let people tell you're not good enough or that you can't do something. You can. There's a lot of gatekeeping in IT, but don't let that get to you. In my day job I work for a company made by a guy that didn't know how to code. He had a dream and a lot of perseverance. He started out by buying a programming book, starting making a website in Perl (perl!), and now the company has almost a hundred employees. Just build stuff, and ignore all the negative people you're going to cross paths with.

 

To people that have experience: the code is not the most important part of a product. We are programmers, we learn to love our code. But the customer doesn't see or care about the code. The customer wants a product that works and solves problems. When I was building products many years ago, I cared about writing the perfect code. I would refactor my classes two, three times. I imagined an invisible man looking over my shoulder and judging every line of code I wrote. But I'm not the best programmer in the world, so this invisible man was never satisfied. And I would not ship. Biggest mistake I made.

 

What’s your tech stack?

  • Visual Studio Code is my current code editor. I used Vim for years and still love it.

  • Ruby is my programming language of choice, using the Ruby On Rails framework.

  • I use RSpec with Factory Bot for automated testing.

  • On the front end, I'm still using jQuery. But thinking of using VueJS on my next projects.

  • I use Heroku to host my web sites and apps, because it's so simple. One git push, and it's deployed.

  • Oh, and Git as my version management system.

  • My computer is a Lenovo Thinkpad X230. This laptop was released in 2012 and, to this day, is more than good enough to do everything I need, so I never bought a new one.

What have been influential books, resources and links that have helped you?

  • Rework. This book made me rethink everything I knew about what a good company was.

  • It Doesn't Have To Be Crazy at Work. The newest book from the same authors of Rework. They talk a lot about how work doesn't have to be this stressful mess of meetings and constant interruption.

  • Make. The book from Pieter Levels that made me realize why I've never shipped a product when I was young. One idea from the book I will never forget: being a programmer sometimes makes it harder to ship a tech product, because how we get fixated on the quality of the code.

Where can people learn more about you and your work?

You can find me on Twitter, at @bighi. That's where I'm most active.

 

I'm also rebuilding my website and blog at www.leonardobighi.com, which you can check out and which should be completed by the time you’ve read this interview.