Microservices – small, self-contained applications that can be developed and deployed by dedicated teams within relatively short periods of time – have been gaining traction in the business world as they bring companies a number of benefits. Having an application as a bunch of different smaller services means flexibility (you can use a number of different programming languages) and scalability (you can scale the particular services independently depending on your needs), as well as reduced development cycles.
In many cases, the employment of a Microservices architecture (MSA) leads the time of a product’s delivery to the market to be reduced by up to 75%. However, the transition from a Monolithic architecture to a Microservices architecture tends to be difficult and riddled with challenges. The move needs to be carefully planned and here the know-how and experience of an expert in the field – a Microservices software engineer – proves crucial. The Demand for this kind of specialists is on the rise, but who can make a career in Microservices?
A successful Microservices expert is usually someone who likes learning new technologies and experiment with new software frameworks. He is also good at adapting to new environments and changing requirements. As is the case with most other IT specialists, such people just seem to have computer science coded in their genes. Nir Makmal, a Microservices software architect at Toga Networks, an Israeli-based IT company that has been part of the Chinese technology giant Huawei since 2016, and a cybersecurity expert, is a typical example.
He has been working on software projects for two decades now with his achievements including reducing application development costs by more than 20% and reducing the time of developing new features by over 50%. He also led the research and development of a next-generation SaaS public cloud security firewall application.
An engineer’s life
Computers have been part of Makmal’s life since his earliest years. When he was still a child, he taught other kids computer skills and while in high school he was an IT instructor at a local community center. It was one of Makmal’s father’s friends who inspired him to become a software engineer in the 1990s. Later on, a lot more inspiration came from such leaders in the field as Ada Lovelace, Bill Gates, Chris Richardson, Jeff Bezos, Kent Beck, Larry Page, Linus Torvalds, Martin Fowler, Reshma Saujani, Ruth Amonette, Sergey Brin and Steve Jobs.
Makmal started programming almost as soon as he discovered the PC. His first applications were targeted at pupils and were supposed to help them learn maths and English. By the end of the 1990s, he had built a smart home management system. The Assembly programming language and the Intel 8085 microprocessor were all he needed to create the system, which allowed for electric home devices to be controlled through the phone. “This was a very innovative idea at the time, but due to the lack of wireless connectivity it was difficult to deploy it,” he recalled.
Makmal’s parents have always supported him in his education in the computer science field buying him books and electronic equipment. During school vacations, he would help in his father’s office writing reports on a Macintosh computer. Since those days, Makmal has had a chance to work on a whole range of software projects in several fields, each time learning a lot from the people he cooperated with. The projects included a state-of-the-art fintech system, which was designed for one of the top financial companies in Israel.
Learning from mistakes
Of course, there have also been failures along the way. On one occasion, a project consisting of the transition from a Monolith architecture to a Microservices architecture that he was responsible for did not succeed since MSA was an emerging technology and it was hard to engage the senior management and the leading developers to move to a new territory. Making the transition now would require too much effort and building the product from scratch is currently the only viable option, Makmal said.
Another project, a rule-based decision system, did not make it to production as the team encountered serious problems with an AI-based solution that was to support it by automatically labeling inputs. A vast amount of historic data was needed, but it was hard to come by and the machine could not be trained properly. The achieved accuracy was not satisfactory and the AI solution remained at the PoC phase. In Makmal’s opinion, the imperfection of AI technologies is one of the biggest challenges that the IT sector will be facing in the coming years.
Those technologies are developing very fast and one can imagine a scenario in which humans come to depend on them for crucial decisions. Meanwhile, there are still bias problems with AI machine algorithms, which means that some of those machines’ decisions and predictions may be inaccurate or outright wrong. It is often difficult to say if a given AI machine decision is biased or not, and if you employ AI in such areas as stock market trading the problem could potentially lead to dangerous situations, Makmal noted.