From Starting to Code at 20 to Leading a Multi-Million Dollar Startup by 25
I started coding when I was 20. By 25, my business had made over $1M for our customers with the code I wrote. I used to feel insecure when I heard about programmers who began experimenting with computers at a young age. How could I possibly write better software than those who were decades ahead of me? The truth is that writing software is not that hard. It's quick to learn, and it only takes a few years to become good at it. By sharing my story, I hope to show you that mastering code doesn't take a long time and that you can use this superpower to create tremendous value in the world.
Why Code
Coding is nothing but a way to describe a process you want a computer to perform. Many people think that coding is technical and requires in-depth knowledge of computer science or math. While that knowledge is helpful, it’s not a requirement. In today’s world, building most practical applications doesn't require any scientific knowledge. Imagine you want to build an application that would purchase a sweater online that’s currently out of stock. To do that, you can write a simple script that performs 5 actions in sequence:
These instructions mirror what a human would do. Writing a script to do this would take 100 lines of code in modern programming languages.
I learned to code because I’m lazy, and I don’t enjoy repetitive tasks. I got hooked when I realized that I could simply describe a boring process in code, let it run, and forget about it.
My First Lines of Code
During my third year of university, while studying Chemical Engineering, I had the opportunity to intern at a Mineral Processing Lab. They ran experiments that involved creating bubbles and measuring their size. As an intern, I observed the team's work process.
The experiment involved recording bubbles as they ascended through water. We then used a digital ruler to measure their size from the video frames. We manually measured 100-200 bubbles in each run and documented the results in an Excel spreadsheet.
This process was the most tedious and unexciting part of my job. There had to be a better way.
I searched online and discovered articles discussing the use of image processing software to identify and measure shapes from photographs. That was all I needed to know - automation was possible. All I had to do was learn how. In academia, MATLAB is the go-to programming language. Not knowing any better, that's where I started. Since I knew nothing, I started with Google and wrote the most basic queries, including: "How to upload an image to MATLAB,” "What is a pixel?", "how to measure an object based on the number of pixels it occupies in an image.”
One query at a time and a lot of copy-pasting, I completed my program by the end of the summer. I saved hundreds of hours for the team, and they thought it was brilliant. What I did was profoundly simple. I took a boring, repeatable process done by hand and described it with code, one step at a time.
I Followed My Curiosity
After graduating with a Chemical Engineering degree, I landed a consulting job. Despite being committed to a day job to pay off my student debt, I was still young, ambitious, and full of my own ideas. Money was my biggest problem at the time, so I decided to start there. I had learned about algorithmic trading and was eager to try developing my own algorithm, hoping to create a money-making machine. Still using MATLAB, I developed a pattern recognition script that would trade stocks based on price patterns. While that was fun, my testing results showed significant losses, so I decided to try something else.
While trying to predict stock prices, I could only use the price data because it was free on the internet. I thought that adding financial data about the companies could improve my predictions, but accessing that data was expensive. I figured that I could extract data from the companies' financial statements, which were extensive 200-page PDF documents. Over the next six months, I dedicated myself to learning how to parse a PDF document line by line and store that data in a database, which I had not yet learned how to use. After tabulating data for 10,000 companies, I realized others might find it useful for trading, so I decided to create a website to upload the data. Of course, I didn't know how to build websites yet.
Screenshot of a terminal printing out a table I extracted from a financial document
Looking things up on the internet worked well for me, so I went on YouTube and found a 20-hour tutorial teaching how to build a simple Twitter app in Python. Coding along, I finished that in a few weeks and felt well-educated on creating a simple backend. A friend suggested that Python may not be the best option for creating web pages and recommended that I learn a Javascript-based framework instead. He recommended Vue.js, so I did a few more tutorials on that. Having learned the building blocks for web development, I had my own website up and running soon enough. It was a one-page application where users could enter a company name and download financial data. Unsurprisingly, it didn’t go viral, so I decided to improve it.
I spent the next year and a half turning my one-page application into sophisticated software to analyze stocks, screen investments, and value companies. Having tried long enough without much traction, I pivoted to working with finance creators who talked about stocks and wanted to create content behind a paywall. I’ve built tools for creators to book paid meetings, host paid web pages, and even create courses. Eventually, some of my customers made $1,000 - $5,000 on the platform. I felt proud of what I’ve built, and the skills I developed along the way made me feel there was nothing I couldn’t do.
It Takes 6 Months to Become 80% Good
A recurring theme in my journey has always been starting with the destination in mind. I never approached learning with the sole goal of learning. The questions I asked always followed a pattern of: “I want to build that. How do I get there?” instead of “I want to learn Python.”
This goal-oriented learning is effective because it forces you to focus on learning what’s essential to accomplishing a practical task, as opposed to merely acquiring knowledge. It’s unfortunate that many Computer Science students spend 4 years studying and still can’t build a website after graduation. The self-learning path I took allowed me to focus on learning only what’s helpful to achieve my objective, and that was hyper-efficient.
I discovered that spending a month with a new technology trying to do something with it gives you a basic understanding of how it works. After 6 months of using it to do something practical, you learn 80% of all there is to know about it. I only needed 6 months to become proficient, but learning all the skills I needed to become fluent in all aspects of web development took me 2-3 years.
Following my curiosity in the 1.5 years I spent turning my one-page website into a sophisticated web application, I tried every buzzword technology I heard about, diving into microservices, load balancing, containers, CDN, CI/CD, Terraform, AWS, Serverless Applications, and many others. Trying to use them in some way while learning at the same time, I became proficient at them.
Opportunities Come To Those In The Arena
Three years into coding, I felt there wasn't anything I couldn't build. I was working a full-time job and improving my application after hours. From an engineering perspective, it was a beautiful product. I was addicted to using it, as were some of my customers. Unfortunately, it was not growing at a pace that justified quitting my job to focus on it full-time.
Along the way, I met someone with the opposite problem. He was incredibly passionate about helping creators make money working for themselves. He could get people excited about the vision but didn't have the technical prowess to build a platform capable of doing that well. He was building a platform called Stan and invited me to join as a co-founder. I wrestled a lot with the idea of needing to share ownership with someone else. At the same time, I felt I needed someone to help my work get discovered by other people, so I said yes. One year later, the very code I wrote was processing over $1M in payments, helping thousands of creators make money online.
Meeting my co-founder was one of the luckiest encounters I've had in my life. But it wasn't just luck because many years of hard work brought me there. I was in the arena long enough, and I got to meet my co-founder because one of my customers was also a customer of Stan. He connected the dots and made an introduction. After a month, we realized that we needed each other and decided to build a business together. I quit my job and became a founder.
Conclusion
My story is an example of what can be achieved by focusing on a goal. Learning software is not difficult, and the knowledge is accessible to anyone. You don't need a degree, a lot of money, or anything else to become good at it. I started coding when I was 20 and earned the privilege of running a multi-million dollar business by the age of 25 in an area unrelated to my background or education. If I could do it, so can you.
.
You made it look so easy with the drywall bubble measuring code, Vitalii!!! Wow!
Engineer-in-training
1 年Very inspiring! Thanks Vitali
Multidisciplinary technologist ??| Full-stack Product Engineer ?????? | Ex-Investment Banker. Passionate about Art, Innovation and Community.
1 年Brilliant journey, Vitalii! I loved your emphasis on learning with an end goal in mind, and learning by building.??
Entrepreneur fellow @ NEXT
1 年Code itself alone is not enough to justify such achievements. But it’s more about the keen eyes of discovering needs of a market, strong understanding of the value that codes bring to the target audiences, and the exceptional ability to seize the luck. Congratulations!
Business Student UNB, Data analytics.
1 年Vitalii Dodonov thanks brother, your story really inspired me. Thanks, wish you the best for your future.