To shed light on the state of today’s education and the role technology plays in it, better ask a professional. Masnad Nehith is a software architect with nearly a decade of experience in building infrastructure and applications in many domains. He is currently Director of Technology at New Nordic Schools, an educational company originally from Finland aimed at improving learning at schools worldwide.
With Masnad who joined the company as Director of Technology, the work on the Nordic Learning Platform entered its most productive phase and the product was brought to release in the autumn of 2021.
Below, Masnad speaks on the specifics of development in the field of education, his approach to code assessment, and the importance of code quality for business.
Why Education Is Longing for Changes
People are learning things for a lifetime, right? So I better start with my own experience with learning. When learning new technologies, all the available materials I found were really dull. I had to read incredibly long manuals and then watch even longer YouTube videos. For example, some videos regarding blockchain were technically correct but just overly long to bear.
Why does it happen that people who teach even the most advanced topics are doing it in such a boring manner? I think they are simply giving information the way they were used to getting it at school or university. For them, this way of sharing knowledge is acceptable because major institutions do so. And that, in my opinion, is the problem with them.
So I thought I'd make others’ lives easier by creating very short and straight-to-the-point videos based on my hands-on practical experience. In a nutshell, it allowed me to apply a new approach to teaching. It went well, and nothing is more exciting than getting students’ feedback and answering their questions.
In 2021, I joined New Nordic Schools as a Technical Director. Speaking of our Nordic Learning Platform, a great thing about it is allowing students to be creative. I was born in Bangladesh and raised in Saudi Arabia, where approaches to education were quite different, and still, none allowed for any creativity. Both were based on exercises from books that had to be followed rigorously. An educational platform, in its turn, can be whatever you like with all kinds of various tasks - and it’s fascinating.
What we’ve done to engage students is we’ve adopted the Finnish curriculum as a way of studying, and now, with the Nordic Learning Platform, we’re trying to make it accessible to everyone. That again, the Finnish curriculum is not about following the program strictly by the book - it allows students to be creative. The educational model in Finland is more about teaching skills useful in life rather than in a classroom. And thanks to the programming capabilities we have, we can spread this approach far beyond one country.
Transforming Education with AI & ML
We are building a platform to be used at new and existing schools. The objective of New Nordic Schools is to apply interactive methods of learning and promote students’ critical thinking with a non-standardized individual approach. We are providing, on one hand, a solution for teachers and students and, on the other hand, a platform that helps both the teacher and the student evolve and grow.
Here’s how. With the help of Artificial Intelligence and Machine Learning, we’ll be figuring out how a student is studying and trying to improve this process for them with no need to ask questions to the teacher. For example, if the student finds some topic difficult, our system will manage to detect it and the recommendation engine will propose useful resources on the matter.
The teacher, in their turn, will enter our platform and have their lesson plans ready based on the year they teach and also receive a bunch of recommended materials. So we're trying to make teachers’ and students’ lives better. We’ll also make sure that students at school and those at home don't feel estranged. They should feel that even sitting at home, they’re still seeing the teacher and collaborating with their classmates.
Aside from the recommendation engine, we're also thinking of adding an AI-driven module we call e-portfolio. It will graphically display students’ performance and progress and give them ideas on how to improve.
Both the recommendation feature and e-portfolio are still in development. And you know, it’s not that easy to find specialists capable of implementing all AI and ML stuff. These have been a hot topic for how long, several years now? Ironically enough, most only speak of them but don’t develop actual AI/ML-based solutions. That’s why I find Anadea’s work really impressive. It’s amazing to see them working and wisely allocating responsibilities between team members.
Code Quality & Business
A software product that serves business needs consists of code, and the way the product performs is all about code quality. It can be challenging for a non-programmer to evaluate it. First I’ll give advice for entrepreneurs with no technical background and then share some of my personal experience with code assessment.
When writing code, it’s important to follow certain guidelines for its uniformity. The code can be written in multiple different ways and be completely differently structured to perform the same task. For me, the most important thing in code is making sure that the next person who will see it understands what that piece is about. It shouldn’t be multiple lines of code written down in one function and later is impossible to debug, but more of multiple clean functions broken down into simple self-explanatory code. A good code doesn’t need additional text explaining what it means - it’s clear as is.
Next, the code needs to have running tests that confirm it works correctly. Once these criteria are met, you can use a platform such as SonarCloud to get information about what code has test cases covering different scenarios. It goes through the code and then tells the developer to do changes giving them some sort of guidance. It’s really handy because sometimes there are 100 lines of code, 98 of which comply with the internal standards and 2 don’t. This platform detects such inconsistencies way faster than a developer, so my advice would be to automate all that can be automated.
One more option is a peer-to-peer code review. A person makes a pull request and tells another, “Hey, please check out my code”. The more programmers see the code, the better, as it will make for an unbiased opinion. Or, a Senior Developer can simply check out Junior’s code.
Cost of Mistakes
Why bother checking the code? Well, a good one saves the development cost. So if a developer writes bad code, that means that at the end of the day, when the platform becomes bigger, the code needs to be redone by someone else. Sometimes, a person doesn't even understand the code and hence needs to be redone. The company is spending more money just to redo something that had been done poorly.
For some businesses, such mistakes cost millions and millions of dollars. For example, at one of the companies that I've worked with before, we had to redo a whole sector of the business because the code was not working as it should have been. To hire good developers who could understand and re-write the code, the company spent lots of money and also time, because hiring is a complex and time-consuming process.
And of course, you need to look at things from the customer’s perspective. If the code is bad and things don't work, the customer simply won’t return to the platform. That’s it, bad code affects pretty much every side of the business.
Choosing a Developer
When building your platform, it’s all about trusting your gut in the beginning - you’re just hoping that you're choosing the right developer for the job. However, there’s a couple of things that can simplify the process of selecting one.
You can use platforms where developers do coding exercises - LeetCode, Codeforces, etc. - so that you know they fit you based on their results.
The next step would be interviewing. In a dev’s CV, you can see how many years of experience they have, and there’s a big difference between two and, let’s say, six to eight years of programming. In the first case, the developer has probably been building only basic functionality, while in the second case, they can already build multiple scalable applications.
Then, you’ll need to understand if the person fits the project and shares your team’s vibe and morale.
If all three work out, I’d say that’s a really good starting point, if no other issues arise.
Insights on Team Management
When I meet team members for the first time, I don’t know them, right? Here’s how I got to know Anadea’s educational software development team when we were getting started.
First, I looked at how they performed a few small tasks and if they could accomplish them within a 2-week sprint. Another thing that mattered is how they communicated with one another and what they were doing together to bring out the feature within the deadline. And if something was difficult for them, I looked at how they switched tasks from Junior to Senior Developer.
They were doing great thanks to a well-thought-out team structure. They had a Technical Lead, Business Analyst, Scrum Master, and developers. If something was not communicated well, a Business Analyst came and broke it down for the team in clear terms, and Tech Lead explained things if there was something way too technical.
I myself tried to make everyone more comfortable too. There can always be small things here and there that need a bit of tweaking and more time in case of emergency. If there’s a complex and important task to be released next week, I’d make sure developers have 20% fewer tasks in general so that if something goes bad, developers could fix it in no hurry. I think such an approach makes everyone a bit happier and we get more things done in the end.