How the MEF.DEV platform created by Ukrainians works and saves time

Ukrainians came up with a service that helps companies get a software solution for business (and not only) several times faster than if it were done by a team of internal or hired developers. The secret is simple — to hire several teams to project or develop a particular product at once, each of which will write its own piece of code, then they are automatically combined into a single whole. Thus, the customer, firstly, saves time and receives the product faster, and secondly, receives twice as much useful resource for development. The developers learn to work in maximum synchronization with other teams when the documentation is updated in real mode, thereby minimizing processing and getting the opportunity to work with each specific team at any time convenient for it from anywhere in the world. Dev.ua learned how the MEF.DEV platform is arranged and makes life easier for IT specialists and businesses.

The creator of the MEF.DEV platform is Sergey Polovnikov with NATEC R&D team of engineers.

Since 1999, we have been working on the creation of billing systems and know enough about billing to do this work perfectly. To speed up and simplify the development process, we have created a project that allows you to accelerate the creation of a complex IT product at times
Sergei Polovnikov Director of Engineering at Natec

Advantages of using MEF. DEV is not visible to the naked eye. According to Polovnikov, the platform has four main advantages over other ways of generating code for software products and solutions.


First, in the MEF.DEV system, one product or project is coded simultaneously by different development teams

“We say that there are highly specialized teams of 5-12 people who can do a piece of work over a certain period. And in order to do more work in the allotted time period, several such teams are taken and the project is done at the same time,” says Polovnikov. According to him, many resort to this practice, but not everyone succeeds. “In order for teams to work together, they must comply with the general requirements of the project implementation. Our platform gives such manual (or reference architecture) from design to production,” he says. — Developers can code separately and not depend on each other. The platform itself combines parts of the code. All teams are independent organizationally. This greatly speeds up the process.”

The second advantage is the use of code, which is automatically assembled into a single application

According to Polovnikov, the platform implements the association of pieces of code on the fly through inversion of control and the dependency injection patterns. In this case, such a tool can be used when writing code in different languages. Thus, using MEF.DEV, code is easy to rebuild after any updates, as opposed to code that requires re-building using various tools after they are changed. According to Sergey, the current version of MEF.DEV supports Microsoft programming languages based on Net Core framework. This causes some stack restrictions — which is why Java or Python developers usually utilize the platform within a microservice architecture, for which the platform exposes auto-generated API interfaces with different data exchange formats.

The third plus is the code in MEF. DEV can be published and hosted not in the cloud, but in-house, that is, inside the enterprise

“Not all of our customers can use clouds to process data, and we made such an in-house solution for them,” says Polovnikov.

The fourth advantage is the transparency of data models and the auto-generation of the technical specification of each version of such code

“In order to facilitate the process of synchronizing developers at the level of technical specifications, we came up with a container of business logic that is standardly combined with each other,” says Sergey. According to him, this was made possible by the approach to design, which is based on domain-driven design. “In business analysis, we create a set of entities and actions that a container of business logic can implement (in other words, a separate block). And such blocks from different teams can be combined with each other,” he explains the principle of the platform.

The fifth advantage is the automated code re-generation from updated data models that support patterns such as model-first and database-first, including using a reverse engineering approach

“Standardization of models for code generation allows the platform to extract decorator attributes data from the code for technical documentation of developers with examples of use when uploading each container of business logic (block). All developers see the current version of the specifications due to the fact that this update is automated. All requirements are reduced to a single standard, which is updated automatically,” says Polovnikov. On this functionality and benefits for developers does not end. According to the project founder, the team is currently working on improving reference (consistently ready to reuse solution) architecture for digital transformation processes in enterprises. And soon MEF.DEV will have the option of automated tests for third-party plug-in developers.


Companies that involved MEF.DEV in solving their problems are very satisfied with the service. “We cooperated with the platform as part of the replacement of the billing system and a number of provisional systems. The experience is positive. For 6 months, we were able to migrate the subscriber base to a new billing and new provisioning” says Dmytro Zubkov, Head of Project and IT Products Implementation Department at Kyivstar. He says that with the help of MEF. DEV, the largest telecom operator, quickly replaced a billing system that had lived for 20 years. “No one knew in detail how it works at the level of procedures and functions. Support sabotaged the basic processes, the development was engaged in additional elements, and the expertise was lost. And when the question arises about transferring all these processes to a new platform, we could not do it as a basic team,” Zubkov shares. According to him, the contractor himself suggested an approach to code analytics on the old platform. “There were many microservices, each entity lived in a separate branch. Subscribers, personal accounts lay in the structure of databases separately and were recorded as separate branches. And the approach helped to implement updates quickly and effectively,” he says.

Among the advantages of using MEF. DEV — flexibility of the approach to implementation and the simplest implementation at the code level

“When we signed a contract with them, Sergei Polovnikov said one simple phrase: “I promise that I will do it, whatever it cost me. He pulled the project within the required time in the initial budget, despite the uncertainty and a bunch of external destabilizing factors,” says Zubkov. Another option for using MEF. DEV — in the telecom company, for example, for the development of services. According to Vitaliy Lakei, former Technical Director of Volia, the digital TV operator should provide each user with certain service packages. “There are subscriptions to the line TV service package — basic, extended, sports, adult, children’s, etc. There are also transactional purchases on separate titles. And some external middleware platform is responsible for the client’s access to content,” he says. “It so happened that we needed to move to a new middleware platform that will allow us to launch new services, work with new types of client devices. There was no backward compatibility in older devices, so seamless migration and business continuity could only be ensured by the parallel operation of two platforms for a transition period of several years. At the same time, ensure synchronous development on completely different ideological platforms. And ensure the consistency of data, taking into account all business logic.”— an example of the ex-director of Volia. We were more flexible as the billing platform is developed and maintained by a local IT team. It took a lot of effort to run the two platforms seamlessly in parallel. At the same time, it was necessary to change the level of abstraction of services. If we imagine that all systems are surrounded by vendors, where flexibility, cost and duration of a complex change request leaves much to be desired, then this can be a significant obstacle. In this case, an integration platform like MEF.DEV becomes a very good solution. Support for legacy platforms, versions of interfaces, transactionality of operations, low-code solutions — all this ensures the speed and seamlessness of such migrations,” he says. Another Volia case, where MEF. DEV could save time and money by interacting with bulk SMS messaging. “We sent millions of messages to our customers through an external contractor. A certain cost of services was billed. At some time, the company conducts a tender to select a new supplier or review prices. Since prices in this market are quite volatile, the new contractor gives an offer, for example, a penny cheaper. And on the scale of the year, it can be tens of thousands of dollars. But in order to move from one supplier to another, you need to make a new integration, ensure a seamless transition. Sometimes they paid at a higher rate, taking into account the cost and duration of the new integration. And again, the MEF.DEV integration platform solves this problem times faster and cheaper,” says ex-CTO of Volia.

Another request that could be easily and quickly implemented with MEF. DEV— create a URL shortening service

“We have a product for B2B, and one of its modules is the URL shortening. There are API services like bit.ly, but we have higher security requirements. And our link is a token, we needed to work on it,” says Sviatoslav Lobach, VP of Product at Revenue Grid. According to the dev.ua interlocutor, customers complained that they could not send links by tokens to each other and could not remember them. Similar ideas are implemented by other services. But if you do this through a full cycle of development, then it is a very long time. “Therefore, it would be optimal to run this through the MEF.DEV platform on our servers in a base as a connection string. As a result, we would get a ready-made package inside the product with minimal refinement and would bypass a long history of connection, configuration and involvement of many specialists,” says Svyatoslav. He says that now if other products need such functionality, they can be easily used. According to Lobach, the main task is the speed of development. “This is exactly what the platform itself gives. We will reduce the release cycle because it will not be necessary for developers to deal with the connection of service packages,” he says.

MEF.DEV will be better

Many businesses are still wary of the new service, which Kyivstar already uses. The reason for this attitude is distrust of external products from companies that know how to code on their own. “SLA (service level agreement) for companies is often very tough. And enterprises, as always, choose other enterprises. But it is not a fact that those others are better in terms of some tasks,” says Vitaliy Lakei. “I would like to debunk these fears in some way.” However, for MEF.DEV such concerns are just a boost to development. The developers plan to develop the platform as an open-source project in the coming year. “We are now preparing for the release on GitHub, and we will develop on the basis of contribution. But the plugins of specific developers can be paid or free — this is at their discretion,” says Polovnikov about the plans.

Text: Maria Brovinska