Thanks for taking the time to do a joint interview! What are your backgrounds and what are you working on?
Hi! I'm Kirill Shirinkin, freelance DevOps and cloud infrastructure consultant and founder and CTO of mkdev.me.
I am Leonid Suschev, a digital marketing specialist and co-founder and CEO at mkdev.me, which is my full-time job.
On mkdev you can hire programming mentors and learn from their experience. Mentorship on mkdev includes:
- Unlimited messaging in a private chat
- An individual study plan
- Practical tasks and professional code review
- Lifetime access to the mkdev club
We also sell one-time voice consultations for more precise and quick support, and we plan to add more features around selling the expertise of our mentors.
It's been a number of years since mkdev was started and right now we have over 40 mentors covering most of the areas in IT, dozens of students at any given moment, and an active private community which we call the mkdev club. We make money by taking a fee from every transaction on the platform.
What motivated you to get started with mkdev?
Back in 2014, I got to the point where I was ready not only to obtain new skills, but also to share everything I'd learned so far. I am a software developer myself and my career was successful thanks to the mentors I had, and still have, along the way. It was time to give back.
The first thing I did was write a free book on how to learn web development. The book, Self-Education for Web Developers, was a relative success, helping lots of people to start their careers as web developers. Shortly after it was published online, I got a number of emails from people asking me to teach them programming. I filtered out the ones who weren't really serious by setting a modest price for learning from me and started mentoring people who did pay (which was quite a surprise for me at the time), mostly via e-mail and Gitter.
The number of people who contacted me to become their programming mentor grew, along with a list of people who were interested in programming languages and areas I didn't know much about. From there, mkdev as a product appeared quite naturally, without too much thinking about big product ideas. Things you can do via e-mail alone won't scale if there are only two mentors, and once we were able to offer different mentors from different programming areas, the platform to sell their expertise just grew naturally.
One year after mkdev had gotten off the ground, my old friend Leo joined me as a co-founder, taking over marketing and design activities. All of the beautiful illustrations for our blog posts, all the design — everything was made by him, allowing me to focus on the product and on polishing the teaching process.
For me, mkdev started as a friendly request from Kirill to create a cover for his book. Design and illustration was and is the stuff that I like to do, especially when I get paid for it. I still do some occasional freelance work to stay connected to the craft.
At some point, we decided to create a landing page — more for fun and profit rather than for the possible business opportunities. That idea eventually blossomed into a full-fledged web app, which Kirill will get into. I joined the team a bit later and was a bit of a renaissance man, mainly helping to find more students, as well as handling promotion, design, and general ideas and support. In return, I got around 15% of mkdev's profit.
Through all the chaos that is growing a business, I came to realize that I liked working on mkdev in my spare time more than my full-time job or freelance illustrating. Creating new features, presenting them to an audience, and tracking performance was fun and challenging and I wanted more of it, and Kirill and I were frustrated that I didn’t have more time to invest. The number of ideas I had and the demand for more features kept growing, so we began to discuss ways in which I could take on a more active and committed role in mkdev.
Eventually, Leo started working full-time on mkdev, and in 2017 we added another full-time employee to help us with customer support. I kept working on it only part-time, as my primary job still is an infrastructure and DevOps consultant.
What went into building the initial product?
I got my first three programming students in June 2014. I had to give them something to do, so I wrote a list of practical tasks. After completing these tasks, the student would build his or her own real and useful language-learning web application. We call this kind of task series a Quest on mkdev.me. An improved and refined version of our initial Ruby on Rails Quest has made dozens of new Ruby developers from scratch. When I was first starting out with my fledgling class, it took me maybe 30 minutes to write down the first version of these tasks and email them out to my eager students.
Over the next few weeks, requests continued to come in, so I put up a simple web page describing what I was offering and how much it would cost. Around six weeks later, I found myself juggling dozens of students via e-mail and realized I needed to automate fast. I was a Ruby on Rails developer and it took me a few weeks to write and roll out the first version of the mkdev website, which helped streamline subscriptions, payments, practical tasks, and other things I was previously doing via e-mail before. The whole process — from first payment from a student to mkdev’s launch — took around four months.
I didn't have to think much about what to include in the web application I wrote. I did what most people do in the startup circle of life: I created a problem for myself, and I solved this problem by creating a product and making an app. As the first user, I had very clear and intimate knowledge of the problems I needed to solve, like how to get notifications when a student completes a task, how to track when a paid period of mentorship expired, how to store all study content in a single place, etc.
Once there were too many students to manage on my own, I found another mentor and took a fee from every payment he received because, at the time, all of the content and marketing, the whole platform, in fact, was provided by me. So I coded a multiple-mentors setup into mkdev and started tracking payments to the mentors so that I could collect fees. As tends to happen, the more mentors we onboarded, the more problems there were to solve, and the more features were needed. We listened to both students and mentors and improved the platform iteratively based on their feedback.
How have you attracted users and grown mkdev?
Most of the initial growth mkdev had was from e-mail marketing. To get the free e-book you had to subscribe to our newsletter, a typical content strategy every newbie marketing book talks about. After subscribing, you would receive some helpful content every now and then, like tips on how to make your work more fun or success stories from people who learned programming.
At this point, our newsletter has over 10,000 subscribers and is still one of the main ways we gain paying clients. We’ve added more content magnets, like "22 Tips to Fix Your CV" and a report about the efficacy of learning through mkdev.me. We try not to send promotional campaigns out too often, focusing instead on sending useful content.
While the newsletter is one of our main sources of growth, we’ve branched out to try to find new leads and identify new client sources.
As Kirill mentioned, our marketing strategy grew naturally from the newsletter. People who wanted to read the book had to subscribe to the newsletter in order to get it, so we had to figure out how to get the book in people’s hands. Fortunately, that happened relatively organically as well. We put up a few posts on specialized forums at Google Groups and the book started to spread naturally.
We have a well-established community of Ruby on Rails developers — everyone knows everyone else. So it was a no-brainer to start offering our teaching services to the RoR developers within the community that we were already a part of and had a lot of support from.
We also started initiating conversations with our subscribers. Almost every email that newsletter subscribers receive includes something that incentives them to write back — a question, a call for suggestions or feedback, etc. In order to elicit an actual response, it’s important to be personal and avoid sounding or acting spammy. We focused on providing content that genuinely responded to the needs of our subscribers, and in that way created a trusting and beneficial relationship. By doing this, we are essentially starting the mentorship process before anyone ever throws down a payment. We get to know our subscribers, learn their goals and needs, and respond accordingly with advice and motivational support. In turn, we receive valuable feedback from potential and actual users, which allows us to improve the service and seek out mentors that have in-demand knowledge. It’s a win-win.
We keep these conversations going until the subscriber turns into a customer, which sometimes takes months, but we think the investment is worth it. All subsequent strategies around attracting customers were based on this principle. We place subtle triggers around the site to prompt visitors to start a conversation.
Once we’d landed on this strategy, the main task was to shorten the funnel from months to days. In a market that is saturated with programming courses that promise to take you from zero to six-figure employment in one month, many consumers just weren’t that familiar with the idea of mentorship as a pathway to learning and success and were reticent to pay for the service. Overcoming that hurdle became the real challenge.
It took some time and a series of site reworks to explain to the audience what mentorship is, how it’s different from courses, and how it can help put you on a pathway to success. We strategically avoided using the word “course” in public spaces, and every time we published an article, comment, or press release, we made it a practice to define what mentorship is and the benefits and advantages it has to offer. And it worked. The number of Google searches that include the word "mentor" next to the word "programming" has increased drastically compared to when we started. Most of the requests that we receive now come from people who already know that they need a mentor.
A large part of our growth can also be attributed to word of mouth. As our customer base spreads and grows, and as current customers begin to grow professionally under the mentorship offered through our platform, there’s been an increasing demand for knowledge for different programming spheres, some of which we haven’t worked with yet. So far, we’ve expanded to cover various programming languages, frontend, DevOps, system engineering, and mobile app development.
As our alumni enter the workforce and start spreading the word around their workplaces, the demand keeps growing. We’ve just begun developing an enterprise mentorship program, which will take things to a whole new level.
What's your business model, and how have you grown your revenue?
mkdev.me is completely bootstrapped and I invest my own money into it. I keep my primary job in consulting and then take part of my primary income to invest in mkdev.me when needed. By now, things like service hosts, subcontractors, and salaries are covered by the profits of the platform.
We take a fee from every payment, be it a mentorship subscription, voice consultation, or any other kind of involvement. The fee we collect is then spent on the various web services we use, server costs, and paying contractors. As most of the revenue goes to the mentors and not to mkdev, we are always careful with how we spend the money.
Our revenue fluctuates depending on the time of year. There is, of course, always a huge spike on Black Friday and a noticeable decrease in December — people tend not to sign up for intensive mentorship right before the holidays.
I've learned that the majority of educational platforms tend to focus on how to retain or recapture customers that make a purchase but never start studying (or drop after one or two lessons). They build their entire business model and marketing strategy around this premise. However, more than 90% of our customers stay engaged and keep learning until their subscription expires, so our goal is to maximize the duration of each customer’s subscription.
We are achieving this in various ways. From the mentor side, we are trying to improve the quality of mentoring so that customers come to see that it’s much better to learn and work with a mentor close at hand than through a self-guided course alone. From the service side, we offer a discount to those who purchase a longer subscription. At the same time, we are continuing to educate the community about mentorship as an investment in the future. Statistics show that it takes only 19 days for alumni to fully recuperate the cost of studying with a mentor after they get a job or a promotion.
We’re still trying to figure out ideal prices to make sure everyone feels like they’re getting a good value out of the platform. As we’ve increased the requirements for our mentors and the quality of mentoring, we’ve also increased the minimum recommended cost of training. We don’t charge on a monthly basis like other subscription-based services; the customer decides whether they want to resubscribe every time their subscription ends. We want the process to be intentional and involve a constant opting-in from the client.
While we think this is good practice overall, it does require more work on our end, and ultimately drives costs up to the point where our basic subscription may seem rather expensive. Some of our customers consider us a VIP service, a boutique university of sorts. And frankly, we don’t mind. From the beginning, our goal has been to make the learning process an individualized and personal as possible for our clients. The same is true for our mentors. We strive to create a comfortable and stress-free environment where our mentors can do what they love (teaching and coding) and not be bogged down by things that they loathe (attracting clients, marketing, support, etc).
As we continue to grow, we’ll continue to adapt and add new features to meet the evolving demands of our customers. We’ve recently added a live consultation feature for customers who just need a short session with a mentor to receive a swift solution for their burning tasks. We’ve also started splitting up the mentorship service into smaller parcels, and code review, resume review, and interview rehearsal are on the way. While all of these services are included in mentorships by default, people kept asking for them as a separate package (including customers with an active membership), so we see this as a big opportunity for growth.
What are your goals for the future?
If we are talking about personal goals, I'd love to be able to focus on mkdev full-time at some point, which requires us to be operating on a much larger scale and have a higher and more stable revenue.
There is no particular long-term goal for mkdev as a product. Its purpose is to help people learn from mentors, which we think is the fastest and most reliable way to learn. We have a ton of ideas that we haven’t yet had the chance to explore around how to best utilize the mentors we have, how to expand the selection of expertise that our mentors offer, and how to best deliver the expertise of our mentors to the people and the companies that need them.
I am more inspired by Basecamp as a company than by any of the standard growth-or-nothing startups with lots of venture capital behind them. So long as mkdev delivers value to the people that use it, I’m satisfied to keep working on it.
With mkdev, I’ve already fulfilled my personal credo: Do only the things you enjoy doing and find someone who'll pay you for it. There are still some parts of the job that I don’t like so much, though. That’s why my main goal is to lead mkdev and the team to the point where they can work, sustain, and grow without my supervision, so that I could focus on the things within mkdev that I truly love.
As for mkdev, we have a lot to do. If it’s not that obvious, mkdev.me stands for “make me a developer”. That is the main goal for the mentors, to turn their students into independent developers. On this regard, our clients are faced with a long list of challenging tasks — set a goal, learn things, get hired, get promoted, you name it. We want to cover all of these steps from all sides. We want to help companies find new talent, correctly determine the salary for their developers, and help to improve the working environment. Basically, we want to become an all-in-one employee development shop for companies, HR agencies, developers, and people who want to become programmers.
What are the biggest challenges you've faced and obstacles you've overcome? If you had to start over, what would you do differently?
We just dove headfirst into the biggest challenge we’ve faced thus far: entering the English-speaking market. We have a certain reputation in Russian-speaking countries, but we are basically no-names outside of CIS. With a handful of mentors who are ready and able to teach in English, we are ready to break into a wider market and show the English-speaking world how our approach to learning is superior :-).
Convincing people that mentoring is a reliable form of learning code was quite challenging. While I was studying the market, I'd learned that coaching is a well-known and demanded form of learning and development in western countries. But in the CIS, it is not. Not sure why, whether for cultural or political reasons, but people tend to consider studying beyond the basics of higher education more as a waste of time rather than investment in their own future. That’s why the idea that you have to pay for three, six, or nine months straight meets obstacles in the minds of some of our consumers.
We did a good job breaking through this wall and creating converts. And I am proud that mkdev is one the first (if not the first) companies in the CIS region that pushes the idea of mentoring and investing in self-education for both individual consumers and companies. But I’m not sure that I would do anything differently. We started out as courses with mentors, and that helped us to establish a strong community. And only when we had a strong community around us could we start to abandon the courses, promoting the idea of mentoring with a personalized study plan. Our community has been one of our strongest assets.
Have you found anything particularly helpful or advantageous?
Having a co-founder with a completely different skill set than mine is a huge win. I am deeply into technology and have all the knowledge and skills needed in the IT sphere, but I would never be able to build such a beautiful website. And my marketing skills are good enough to sell myself to my consulting clients, but not sufficient to sell an online product. Also, it’s critically important to have someone on my side that I can trust to pull their weight and do their job well. So I was very happy Leo joined mkdev at the very early stages!
What's your advice for indie hackers who are just starting out?
Charge early — that's the only way to quickly learn if you are offering something valuable.
Equally important: do small, imperfect releases.
I learned this lesson the hard way. Quite a few times Leo and I would envision the next big release that would change everything. But for me, it was and still is a part-time project that I have only around 15–20 hours a week to dedicate to, and I am the tech guy who builds all these potentially game-changing features. So we would work on these big releases for weeks or even months, without deploying anything else in between, which was pretty much a waterfall approach to working on a product. For a bootstrapped side-business, it's a death sentence.
I started to break everything into very small, distinct features, something I could complete in a couple of hours and deploy to production. If Leo finished a redesign of a mentor profile, I wouldn’t wait until I finished all the code for it. Instead, I would just pick one part of the design (a top navigation, for example), code it, and roll it out. It is not as good as the complete design we had in mind, but it's better than what we had before and now it's there for our users.
I think the famous advice to do things that don't scale worked really well for mkdev back then and still works today. When we want to add a new big feature, we always do it in the simplest, mostly manual form. That's what we did for the voice consultations — we released them in the form of a single landing page with a contact form, and everything after you submit the form we do manually. It prevents us from over-investing into an idea that might not work out and it also allows us to see how exactly we should automate the process to make it convenient for all parties involved.
It took a lot of time to learn how to properly slice everything into the smallest blocks of deliverable work possible, and I’m still learning how to do it better. But without this approach, the product would stagnate as it did in the past.
Done is better than perfect. This is basically the most important thing that Kirill and I learned along the way.
On a more interpersonal level, it’s important to find balance and counterbalance with your partners. I enjoy the process more while Kirill enjoys the execution and the result. It's important to have both of these types in decision-making roles so that they counterbalance each other. Kirill doesn't let me spend too much time on creating something. In return, I don't allow him to release something that is way too prototype-ish.
Where can we go to learn more?
Check out our website! Even if you are not looking for a mentor or expert advice, we still have a lot of great content on various programming-related topics on our blog, from very deep technical articles to general advice on how to make your work more fun or how to perfect your CV.
—, Founder of mkdev
Want to build your own business like mkdev?
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