Last updated: April 2019
Hello! What's your background, and what are you working on?
Hi! My name is Clément Mihailescu. I'm a Software Engineer at Google and the co-founder and CEO of AlgoExpert.
AlgoExpert is a website that helps prospective Software Engineers prepare for algorithm-intensive programming interviews. The website offers 65 curated practice interview questions, with more being added periodically. Each question is accompanied by:
- an in-depth two-part video explanation consisting of a conceptual "whiteboard" overview of the algorithm at hand, covering its inner workings and its space-time complexity analysis, and an entire coding walkthrough of the solution
- a full-fledged coding workspace where you can type out your code, run it against pre-made test cases, and look at hints if you need help
Ever since our official launch in September 2017, our gross monthly revenue has followed a healthy upward trend, breaking $2,000/month in April 2018 and 40,000/month in April 2019.
What motivated you to get started with AlgoExpert?
Entrepreneurship has always been an intrinsic part of who I am, from high school days spent working on small projects with friends to college years spent taking a series of classes on entrepreneurial management. In fact, the pull towards entrepreneurship is why I decided to enroll in a coding bootcamp immediately after graduating from college with a degree in Mathematics. I wanted — I needed — the practical programming skills to turn an idea into a real, working product.
The idea of AlgoExpert came to me while preparing for my own tech interviews in February 2017.
I had just graduated from a coding bootcamp and realized I was underprepared in the domain of algorithms. I began reading through page after page of dense interview prep books, and scouting the web for YouTube videos that might shine a speck of light on cryptic text solutions to the algorithm problems that I was coming across. I dreamed of a world where I could just open my browser, quickly find a good interview question, code out a solution for it in my preferred programming language, get hints if I was stuck, run my code against premade test cases, and watch a video explanation of the solution to truly understand the problem — all in one place.
That's when I conceptualized AlgoExpert.
And a couple of weeks later, after pitching the idea to one of my best friends and now co-founder Antoine Pourchet, a Software Engineer at Uber who had experienced the same struggle during his interview preparation, AlgoExpert was born.
What went into building the product?
We started developing AlgoExpert at the end of February 2017, just two months before I started my full-time Software Engineering job at Google.
It took us about a month and a half of non-stop work to build and launch a closed, free Alpha version of the website in April 2017. This version had the core functionality of the current website with roughly half of the questions, minus C++ and Java support, mobile responsiveness, and a few other non-essential features.
Since then, we've been juggling our full-time day jobs with our AlgoExpert responsibilities, squeezing in every possible opportunity to put time towards it and often working 100-hour weeks. My weekday commutes are dedicated to working on AlgoExpert. My 40-minute morning and evening train rides are typically spent developing new features on my laptop, and I generally use my 15-minute morning and evening subway rides to send emails to partners and customers from my phone. My weekday evenings and nights are likewise spent working on AlgoExpert. And my weekends — you guessed it — are also, in large part, spent working on AlgoExpert. Building this out has taken a lot of focus and dedication, and we think it’s been worth it.
The website is a React app running on Google Kubernetes Engine and Google Cloud Datastore against a Go backend. We've built our own code-execution engine optimized for speed to drive costs down, and we rely on Docker containers for network and resource isolation. Our metrics-tracking, monitoring, and alerting efforts are driven by Stackdriver and Slack bots.
In terms of funding, we decided to finance it ourselves with a one-time investment of $2,500 each, which covered our initial fixed costs and left us with a few months of runway. Start-up expenses included an iPad Pro for the "whiteboard" portion of our videos, mandatory LLC-formation fees, hosting, etc. AlgoExpert has been self-sustaining ever since.
How have you attracted users and grown AlgoExpert?
When we launched our Alpha in April 2017, we had a modest zero users. Since then, we've grown very organically to over 3,000 users, thanks in large part to my connection to Fullstack Academy (FSA), the coding bootcamp I attended between September and December 2016.
In the early months of our business, we gave the product out for free to FSA students who contacted me with questions about my post-bootcamp journey. We received great feedback from those early users and testers, which helped validate the product. Eventually I started teaching a class on algorithms and giving an evening talk on programming-interview preparation every six weeks at FSA, advertising AlgoExpert in the process. I also did an interview about these topics on a friend's podcast.
Slowly but surely, people started buying the product, enjoying it a lot, and spreading the word.
In September 2017, our first month actually selling the product, we made three sales. The next month, we made about 15, and our monthly sales have continued to increase ever since. In April 2018, we surpassed 40/month with the help of advertising that we placed on Quora in order to supplement our other marketing efforts, and in August 2018, we closed a deal with FSA whereby they would buy a copy of AlgoExpert for each and every student in all of their programs.
Since then, we’ve focused on aggressive social-media marketing: guest posts on coding blogs, Facebook/Google/LinkedIn/Reddit/Quora ad campaigns, and sponsored videos with YouTubers in the Software Engineering field. Our advertising through YouTubers, which we started in November 2018, has generated the best results thus far.
What's your business model?
Our product is very simple with a deliberately narrow and targeted scope. We sell access to our platform (questions, videos, coding workspace, etc.) for a $70 one-time fee or $25 a month.
Some of our targeted customers get a discount via special promo codes. In fact, if you're reading this and would like to purchase AlgoExpert, use the promo code indiehackers on our purchase page to get a discount!
Our goal since day one has been to keep the website as simple and focused as possible. We provide our users with a convenient and practical tool to help them learn how to solve algorithm problems in the scope of a programming interview. We do that one thing and that one thing only, but we do it really well.
What is your competitive advantage?
AlgoExpert has three huge competitive advantages over the other products that exist in the space:
- Our comprehensive explanation videos — no other product has this, and we've heard time and time again from our customers how invaluable our videos are. Our videos truly distinguish us from everybody else.
- The all-in-one-place aspect of our platform — we give you 70 curated questions that you can code out right there on the website in any of 5 popular programming languages, with hints that you can toggle, test cases that you can run your code against, and written solutions that you can refer to, all in the same place. You don't need to supplement your study with YouTube or to write your own test cases and struggle to figure out if your solutions are correct.
- Our price — at just a dollar a question, our price is simply unbeatable for the content that we provide.
What are your finances like?
As an online software company, we've been fortunate to have fairly low expenses. Our current monthly expenses are as follows:
- Google Cloud Platform – $600/month
- Advertising – $10,000/month
- Miscellaneous (Adobe Creative Cloud, Vimeo Premium, etc.) – $115/month
- Stripe – $500/month (note that Stripe operates more like a tax, since its cost is proportional to our revenue)
The only two costs that we anticipate will increase significantly in time are advertising costs and of course, Stripe costs.
When we developed our product, we optimized for simplicity and cost minimization. Simplicity meant outsourcing certain complex features like our payment-processing and authentication services. We use Stripe for the former and Google OAuth, Facebook Login, and Github OAuth for the latter. Cost minimization meant implementing our own version of features when it made financial sense to do so. For instance, we built our own code-execution and an in-house continuous integration tool because we had the necessary expertise and because it saved — and continues to save — us a lot of money.
Our gross monthly revenue has naturally followed the same growth as our sales, with April 2019 being our best month to date at $40,000/month. Note that we experimented with our price a bit throughout the months, which explains some potentially puzzling figures.
What are your goals for the future?
Our main goal moving forward is to continue growing our user base.
An avenue that we're considering is to potentially partner with various coding bootcamps, where students lack the algorithms and data structures preparation and knowledge required for tech interviews. Ideally we'd like to actually incorporate AlgoExpert in their curriculum. We're also exploring the possibility of teaming up with the creators of popular programming-interview-prep books and other online platforms.
Ultimately, as mentioned above, our primary objective and challenge going forward are one and the same: to expand our market and to get our product in the hands of thousands of users.
What are some lessons you've learned?
Building out AlgoExpert over the past year has been incredibly rewarding and has taught us some invaluable lessons. The two that stand out to me the most are:
1. Your company's founding team is indescribably important.
- You need to have a strong relationship that's based on trust and open communication (if this sounds like marriage advice, it's because a founding team is very much like a marriage). My co-founder Antoine and I are incredibly fortunate to have such a strong relationship, which has allowed us to build AlgoExpert completely remotely (I'm based in New York City, whereas he's based in Silicon Valley) with virtually no problems or friction. Without trust and communication, we would have had a tremendously difficult time accomplishing this.
- You need to have complementary skill sets. My frontend skills and product management tendencies meshed perfectly with Antoine's expertise in developing robust APIs and scalable infrastructure. Had our skills overlapped too much, we might not have been able to create every part of our business.
2. You have to put in the work.
It's very easy to come up with cool ideas, to fantasize about what they could look like, to tell people about them, but never to materialize them, especially when you have a full-time job. If you truly want to launch a business, you have to pour your heart and soul into it, and that involves a lot of hard, sustained work.
How can we learn more?
—, Founder of AlgoExpert
Want to build your own business like AlgoExpert?
You should join the Indie Hackers community! 🤗
We're a few thousand founders helping each other build profitable businesses and side projects. Come share what you're working on and get feedback from your peers.
Not ready to get started on your product yet? No problem. The community is a great place to meet people, learn, and get your feet wet. Feel free to just browse!
—, Indie Hackers founder