Interviewed by: Mehadi Hasan
Developer: Ruvarashe S. Nemaramba
Role: Artificial Intelligence Student, Developer & Technical Writer
Location: Mutare, Zimbabwe
Website: ruva.dev
Some developers build tools because they identify a gap in the market. Others build them because they remember struggling with a problem themselves. For Ruvarashe S. Nemaramba, the motivation behind one of her most meaningful projects came from the experience of being a beginner who simply wanted to understand what her code was doing.
Today, Ruvarashe is an Artificial Intelligence student at Africa University, exploring machine learning, deep learning, and creative computing while developing tools that make programming more approachable. Her work includes Code Learner, an AI-powered Visual Studio Code extension designed to help beginners understand code directly inside their development environment.
But her journey into technology did not begin with programming. It started with an interest in statistics and data, a university recommendation, and an unexpected introduction to neural networks. Along the way, she has also challenged conventional ideas about developer tools, demonstrating that technical functionality and personal creativity can exist together.
Her story offers an interesting perspective on learning AI, building for beginners, and finding your own identity as a developer.
From Statistics and Data to Artificial Intelligence
Ruvarashe's journey into technology began in 2024, after completing her A-levels the previous year. At the time, she was considering which university to attend and what degree to pursue. Although she had no previous experience in technology, she knew that she enjoyed statistics and working with data.
During a visit to Africa University in January 2024, she met a lecturer who asked what she wanted to study. When she explained her interests, he encouraged her to apply for the Artificial Intelligence degree programme.
Initially, she was hesitant. Technology was unfamiliar territory, and she had very little knowledge of programming or computer science. Nevertheless, after thinking about the opportunity for a few days, she decided to follow the recommendation.
Seven months later, she began her university classes.
The early experience was a significant adjustment. She recalls that she did not even know what a command line was. Her existing knowledge was centred on statistics and data rather than using computers to work with them.
Then came an introduction to neural networks.
During one class, the lecturer divided students into groups, and Ruvarashe ended up in the neural networks group. Within three days, she had explored the fundamentals of neural networks and discovered something that would shape her interests in technology.
She had fallen in love with the subject.
That initial experience helped establish her interest in artificial intelligence, particularly deep learning and the possibilities of teaching machines to recognise patterns and learn from information.
Learning to Build Solutions, Not Just Software
Studying for a B.Sc. Hons in Artificial Intelligence at Africa University has influenced more than Ruvarashe's technical knowledge. It has also shaped how she thinks about software development and problem-solving.
One important aspect of her academic experience is learning to consider the African context when developing technological solutions.
For her, building software is not simply about completing an assignment or implementing a feature. Developers need to understand the problem, consider the environment in which their solution will be used, and determine whether the result genuinely addresses the need.
She illustrates this with a university database assignment. Creating the database is only one part of the task. It is equally important to understand the problem it is intended to solve, how it fits into the wider African context, and whether the proposed solution is effective.
This perspective has encouraged her to approach development more critically.
Rather than immediately selecting a programming language, framework, or model, she believes developers should first understand the problem and identify the tools that are appropriate for solving it.
It is an approach that also appears in her thinking about machine learning and deep learning.
Understanding When to Use Machine Learning and Deep Learning
Ruvarashe has explored both traditional machine learning and deep learning, including the differences between the two approaches in her CoderLegion article, Machine Learning VS Deep Learning: What's the Difference?
One misconception she identifies among beginners concerns feature engineering.
Traditional machine learning often requires developers to manually select and engineer useful features from a dataset. Deep learning, on the other hand, can learn features and representations automatically during training.
Understanding this distinction can help developers make better decisions when choosing an approach.
Ruvarashe believes the dataset and the intended outcome should guide that decision.
For relatively small, structured datasets where interpretability matters and meaningful features can be identified, traditional machine learning may be the more appropriate choice.
For complex or unstructured data, such as images, deep learning can be particularly useful because it can learn intricate patterns and representations directly from the data.
Her approach is not to assume that one technique is always superior.
She also enjoys experimenting with different approaches, including exploring traditional machine learning models for image-related tasks, even though deep learning is more commonly associated with computer vision.
Working with tools such as Python, TensorFlow, Keras, and scikit-learn has reinforced this mindset.
She sees TensorFlow and Keras as particularly useful for neural networks, while scikit-learn offers tools for traditional machine learning, preprocessing, and evaluation.
The important lesson is that choosing a tool should come after understanding the problem, the available data, and the results a developer wants to achieve.
One project that stands out in Ruvarashe's development journey is Code Learner, an AI-powered Visual Studio Code extension designed to help beginners understand code without the additional complexity of configuring API keys or setting up external tools.
The idea came from a problem she had personally experienced.
When she was learning programming, looking at an unfamiliar line of code could feel like trying to understand another language. To get an explanation, she would often copy the code, write a prompt describing what she needed, and paste everything into ChatGPT.
Although the process worked, it involved unnecessary steps, particularly for someone who was still learning the fundamentals.
She began thinking about how to make that experience easier.
Code Learner brings AI-powered code explanations directly into the development environment. It uses a Large Language Model (LLM) to interpret and explain code, allowing beginners to understand what they are working with without repeatedly moving between different applications.
One of its particularly interesting features is the ability to analyse an entire code file and generate a flowchart representing its logic and execution flow.
This offers an alternative way to understand how a program works. Instead of relying entirely on written explanations, users can explore a visual representation of the code's structure.
For beginners who are still developing their ability to read and interpret code, this kind of visual assistance can make unfamiliar logic easier to approach.
What makes the project especially meaningful to Ruvarashe is its personal motivation.
She did not begin with an abstract idea of what an AI-powered developer tool should look like. She started with a frustration she understood from experience and attempted to create something that could make the learning process easier for others.
As she puts it, Code Learner is essentially a tool she wishes she had when she was first learning to code.
The Engineering Challenge Behind Making AI Accessible
Building an AI-powered feature is one challenge. Making it accessible to the people who need it is another.
During Code Learner's development, Ruvarashe had to think carefully about how users would access the underlying AI functionality.
One initial option was to ask users to download Ollama and run a model locally. However, the size of the models and the computing resources required would introduce another barrier for beginners.
Requiring users to provide their own API keys was not an ideal alternative either. Many people who are just starting to learn programming are unfamiliar with managing API credentials.
She eventually decided to implement a serverless proxy, allowing users to access the AI functionality without configuring their own API keys.
This made the initial user experience simpler, but it introduced a different engineering constraint.
The proxy currently relies on her own API key, making the extension dependent on the API provider's usage limits. As more people use the extension, those limits can become a bottleneck. The current arrangement is not designed to support sustained usage from a growing number of users.
Rather than treating this as a problem that can be ignored until later, Ruvarashe has been exploring possible improvements.
Two approaches she is considering are:
- Bring Your Own Key (BYOK): An optional setting that allows users who prefer it to provide their own API credentials.
- Daily usage limits: A way to manage API consumption and make usage more sustainable.
She is also interested in exploring other approaches that could help the system remain sustainable as its user base grows.
This experience has taught her an important lesson about software development: getting a feature to work is only part of building an application.
Developers also need to understand the services their applications depend on, the limitations of those services, and how those dependencies affect the ability to scale.
A design decision that makes an application easier to use initially may introduce operational challenges later. Those decisions sometimes need to be revisited as a project evolves.
For Code Learner, balancing beginner accessibility with sustainable API usage remains an important part of the development process.
Not all of Ruvarashe's projects are focused on artificial intelligence. She also enjoys creating developer tools that combine functionality with visual creativity.
Interestingly, her first developer tool was a Visual Studio Code colour theme.
The motivation was simple: she could not find a pink theme that looked the way she wanted it to.
She noticed that she was not coding as much as she would have liked because she did not particularly enjoy the appearance of her development environment.
Her first attempt at creating a theme was unsuccessful. However, she decided to try again a week later and eventually published it.
She downloaded the theme herself and was happy that her IDE finally looked the way she wanted.
Then something unexpected happened.
Just two days after publishing it, she discovered that the theme had already received 26 installs.
She was genuinely surprised that other developers wanted to use something she had created.
That small experience encouraged her to continue building developer-focused tools, including playful extensions such as Bunny Code Tracker and Code Orb.
Her creative process often begins with inspiration from something outside the conventional developer space. She might see an interesting visual idea and start thinking about how it could be incorporated into an IDE.
For Ruvarashe, developer tools do not have to follow the familiar dark backgrounds and neon colours often associated with programming environments.
They can be colourful, playful, and personal while still serving a practical purpose.
Her philosophy is straightforward: technology can be functional without being boring.
Choosing Technologies That Support Creativity
Ruvarashe also brings this creative mindset into her personal web projects.
Her technology choices are influenced by the type of experience she wants to build rather than simply following popular trends.
For example, she chose Next.js for ruva.dev, her personal portfolio, because she wanted to create something more ambitious and interactive.
She appreciates the flexibility Next.js provides when working with complex interfaces, routing, and different rendering approaches.
Her experience with JavaScript, TypeScript, React, and Next.js has given her opportunities to experiment with different layouts, colours, and interactive elements.
She believes frameworks should provide structure and capabilities without limiting a developer's creativity.
The tools may determine how certain things are implemented, but they should not dictate the personality of the finished product.
This idea connects her portfolio, VS Code themes, and extensions. Each reflects an interest in making technology more personal and enjoyable to use.
Technical Writing as Another Way to Learn
Alongside development, Ruvarashe has also discovered an interest in technical writing.
She initially approached writing as a side hobby, mainly as a way to share her projects and reach a wider audience.
However, after publishing her first article, she realised that she genuinely enjoyed explaining technical concepts in a way that other people could understand.
She describes the experience as learning alongside her readers.
As she develops her own knowledge and works on new projects, someone reading her articles can follow a similar learning journey.
Writing has also improved her confidence in expressing ideas and sharing her work publicly.
More importantly, explaining technical concepts has encouraged her to understand them more deeply. Communicating an idea clearly requires more than simply knowing how something works; it requires understanding it well enough to explain it to someone else.
Her CoderLegion contributions reflect this combination of learning and sharing. Among her published articles are:
- The Birth of Artificial Intelligence
- The New ML Perspective
- Machine Learning VS Deep Learning: What's the Difference?
- Five Internship Mistakes I Made
These topics span artificial intelligence, machine learning, and professional development, reflecting her interests as both a student and an emerging developer.
Looking Beyond the Current AI Landscape: NLP and African Languages
Although deep learning currently holds a special place in Ruvarashe's interests, Natural Language Processing (NLP) is one area she particularly wants to explore further.
She is interested in how machines can understand, interpret, and generate human language.
One area that stands out to her is the development of language technologies for African languages.
Many African languages remain underrepresented in language technology development, creating an opportunity to explore AI applications that are more relevant to different linguistic communities.
She is particularly interested in conversational AI and machine translation, as well as building systems that can understand language more effectively and make communication easier.
This interest also connects with her broader academic perspective.
Just as she believes software solutions should consider the African context, she sees opportunities for AI systems to become more accessible by supporting linguistic communities that are often overlooked.
Her ongoing exploration of PyTorch, computer vision, image processing, and NLP provides several directions for further learning, but language technology is an area she is especially excited about.
Learning to Adapt: Lessons From an Internship
Technical knowledge is only one part of professional development. Ruvarashe has also learned important lessons through her internship experience.
In her CoderLegion article Five Internship Mistakes I Made, she reflected on some of the challenges she encountered.
The lesson that had the biggest impact on her was learning not to have too many expectations.
Entering an opportunity with a fixed idea of what she should learn or how the experience should unfold sometimes made it easier to overlook the value of what was actually happening.
Her experience taught her that learning does not always take place in a structured or carefully guided environment.
Sometimes valuable lessons come from unexpected situations and experiences.
She has since adopted a more open approach to professional opportunities, allowing herself to learn, adapt, and make the most of what comes her way.
Her academic achievements have also encouraged her to continue developing.
She received Dean's List recognition at Africa University and completed the Matsuo-Iwasawa Lab's Global Consumer Intelligence course.
Rather than viewing these achievements as final destinations, she sees them as reminders that the time and effort invested in learning matter.
They motivate her to keep challenging herself, exploring new areas, and taking advantage of opportunities for academic and professional growth.
Building a Career Around Useful and Enjoyable Technology
Looking ahead, Ruvarashe wants to become a developer who creates projects that make a difference while remaining enjoyable and fun to use.
Artificial intelligence is an important part of that ambition, but she is also interested in exploring different areas of technology and finding creative ways to apply what she learns to real-world problems.
She wants to continue experimenting, building tools that reflect her personality, and exploring ideas that might otherwise seem unconventional.
Beyond the projects themselves, she hopes her work will encourage other people to explore technology and start building things of their own.
This ambition connects directly with her experience developing Code Learner. A tool created to help beginners understand code is also an example of how personal experiences can inspire solutions that may benefit others.
For her, meaningful development is not only about technical complexity. It is also about whether something is useful, accessible, and enjoyable for the people who use it.
Advice for Developers Starting Their AI Journey
For students and beginners who want to enter artificial intelligence, the number of programming languages, frameworks, libraries, and concepts can feel overwhelming.
Ruvarashe's advice is to take things day by day and remember that everyone learns at their own pace.
Comparing your progress with someone else's can create unnecessary pressure. Someone who appears to be further ahead is not necessarily an indication that you are falling behind.
Instead, she encourages beginners to:
- Trust themselves and their ability to learn.
- Stay curious and continue exploring.
- Experiment with ideas, even when they seem unfamiliar.
- Avoid being afraid of mistakes.
- Put their work out there and learn from the experience.
- Give themselves enough time to develop their skills.
She believes a lot of learning happens along the way, especially when developers are willing to explore things they do not fully understand yet.
Her own journey is a useful example. She entered university without knowing what a command line was, discovered neural networks within her first classes, and eventually began developing AI-powered tools of her own.
Progress does not always happen immediately, and the results of consistent effort may not be visible at first.
But as she reminds beginners, keep showing up. Eventually, you will look back and realise just how far you have come.
About Ruvarashe S. Nemaramba
Ruvarashe S. Nemaramba is an Artificial Intelligence student, developer, and technical writer at Africa University in Zimbabwe. Her interests include machine learning, deep learning, creative computing, computer vision, image processing, and Natural Language Processing.
She works with Python, JavaScript, TypeScript, SQL, React, Next.js, TensorFlow, Keras, and scikit-learn. Her projects include Code Learner, an AI-powered Visual Studio Code extension designed to make understanding code easier for beginners.
She also enjoys creating developer tools, VS Code themes, and playful extensions that combine practical functionality with creative design. Outside development, she enjoys crochet and designing cute, pink-themed developer tools.
Connect with Ruvarashe:
Developer Stories is a CoderLegion interview series highlighting the people, ideas, and engineering decisions behind software development.