Today I'm so happy! I've opened the doors of my new product and started collecting emails for a very soon release of my new learn to code platform, AI Code Mentor. But before we get into that, let's talk about how I got to the idea and how I'm building it.
I'm a software engineer, I'm a nerd, I love it, it's my passion and I have been doing it for almost 20 years now, but it's only about 3 years ago that I made a mental switch. During COVID, I learned that I also have a passion for teaching, and writing content. I discovered that when I started blogging, and my blog took off, which allowed me to interact with a lot of people who were asking for advice on their coding careers, but also on how to learn to code, as it was a common subject of my blog content.
In those iterations I learned a lot, and I started coaching some people, helping them learning to code, all in my spare time. Talking and helping all these people I learned some of the hurdles non tech people (but also some tech people) face when learning to code, learning new frameworks, etc. And so I went ahead and started thinking on a solution.
I'm now building AI Code Mentor, which is a hands on learning platform, meaning that it has an integrated coding environment, that includes previews and validation, and it also offers an AI assistant called Ada.
I know, when you read assistant you immediately think of ChatGPT, and you're partially right. So Ada is not a thing, we all know that. Ada is an API that runs multiple features through-out the platform. Let's examine some of them, and what kind of AI models I'm working on.
When you're working on a course lesson, you can start a chat with Ada. This chat is powered by chat-bison (from Google) and it is kind of like chatGTP, with a minor difference. The model is trained with the lesson's contents, which makes it more accurate when needs to reply specific questions about the lesson. For example if the lesson is on tailwind, you can ask "how do I add a green button?" and it will reply with the code using tailwind (or at least try).
But that's not it, in the chat window you can also ask about the current code you are writing, it can help you spot errors, give code explanations, or even help you write code. For that you can ask a simple question, or even better, you can use a command !code <your query>, e.g. !code explain it, or !code add a button with an alert that says hello world. When you use the !code command, I no longer use chat-bison, but instead I use the code-bison which is better suited for the task.
There are other commands like !quiz, that uses a recommender model to first identify the level of "confidence" of the user, and then it uses text-bison model (from Google) to generate a quiz based on the lesson's content and the confidence level of the user, the higher the confidence, the mode advanced the question should be. I'm still working hard on this and the model is still not highly reliable, but will get it fixed!
Within the platform there are programs, programs can be courses, bootcamps, and more. One particular program is called "Generate your own curriculum". This course, has no lessons, but instead it provides the user a small form that asks:
After the user provides the answers, I'm using gpt-4 to generate a custom lesson that helps the student build X in the technology of their choice. For now I'm only supporting static web page or React as technologies, but have plans to expand to Python and other programming languages soon.
This feature will not be live for the first iteration, however, it is planned and I'm already thinking on how to design such a feature. The idea is simple, Ada will get to know you over time, so instead of waiting for you to input something into the chat, it will make it's own suggestions, like perhaps recommending to skip a lesson, or to reinforce previous concepts you don't seem to master yet. On another spectrum it will also learn your learning patterns, and send reminders, and things like that.
That will require to collect some information about the user behaviour, and process it with ML algorithms, I'll get there and I'll provide more details about the algorithms as soon as I know for certain.
That's pretty much for now with AI, but now we need to talk about the platform general stack.
I know the tech stack is not the most common one for a first iteration, and it can have some cost overheads at start in comparison with tools solutions like Amplify, but there are reasons for my selection, experience being an important one. But also, because the integrated code environment needs to run user code, and that code needs to run in isolation from the main code, and other user's code, which is something very hard to do. The best way to do it, is with docker, and other projects like isolate, and that is a no go for amplify.
For AI I'm mostly using LLMs, though I make selections of the LLM based on function, GPT-4 outclass chat-bison in some aspects, but it's slow and too verbose for many things. Bison is relatively fast and can adapt to my own content. Custom models to evaluate user's confidence level, and other factors will improve the overall user experience, though it has been very hard on me, as my background is on software engineering, even though I have some data science knowledge, it is restricted in comparison. I honestly couldn't have built some of the custom models without the help of friends that know so much more than more about it, so I'll be always grateful for their help and inputs.
If you are interested in know more about the stack, or the platform, leave me a message in the comments. I'd love to hear what you all have to say.
And remember, if you wan to learn to code, you can join the wait list, we'll soon go live! Join the wait list for exclusive early bird discounts