The world of video content creation is rapidly changing thanks to artificial intelligence. Lumen5 is at the forefront of these innovations, developing a platform that allows everyone to create professional videos using AI. TechBullion spoke with Stepan Mikhailiuk, Principal Software Engineer at Lumen5, about the challenges and opportunities of developing AI-powered video editors, his experience implementing innovative approaches at Alfa-Bank, his contributions to the open-source community, and his vision for the future of video technology. Stepan’s rich experience, from backend development to AI engineering, combined with his active participation in the tech community, speaking at conferences, and teaching, provides a unique perspective on the evolving intersection of technology and creativity. He is a recognized expert in this field and regularly shares his knowledge at leading industry events such as HolyJS and Videotech.
Stepan, you are the Principal Software Engineer at Lumen5, which focuses on AI-powered video creation. Based on your experience developing innovative technologies, how do you see the future of video production in the context of evolving AI technologies?
I see enormous potential in using AI to transform video production. In the future, it will play an even more significant role in all stages of video creation: from idea generation and scriptwriting to automatic editing, adding special effects, and even voiceovers. This will significantly simplify and accelerate the video production process, making it accessible to a wider audience. AI will be able to take on more routine tasks, freeing up time for creativity and allowing creators to focus on the content of the video.
Moreover, AI will open up new creative possibilities, allowing for the creation of more engaging, dynamic, and personalized video content. For example, it will be able to automatically select music, create dynamic transitions, and add visual effects that best match the mood and content of the video. Imagine video editors that can automatically adapt videos for different platforms and audiences, analyze content effectiveness, and even suggest ideas for new videos based on current trends. Content personalization will reach a new level, as AI will be able to take into account the individual preferences of viewers and create videos that best match their interests.
At Lumen5, we already see how AI is helping our users create high-quality videos in minutes, and I am confident that this trend will only intensify in the future.
Under your technical leadership at Lumen5, important components of the platform have been implemented. Could you elaborate on the innovative solutions you’ve applied to the project?
At Lumen5, we are developing a platform that democratizes the video creation process, making it accessible to everyone, regardless of their technical skills. Our goal is to enable anyone, even without video editing experience, to create a professional video in minutes. The platform leverages the power of artificial intelligence to automate various stages of video production: from analyzing text using natural language processing (NLP) algorithms and selecting relevant video clips and images from our extensive media library to generating voiceovers using text-to-speech technologies, creating dynamic transitions, and animated titles.
I work on the library that allows video playback on the screen and creates final video files in the required quality. The core functionality of our system is built on this library. Recently, I implemented several innovative solutions. One of them was the experimental launch of client-side video rendering using webcodecs. This will allow us to reduce cloud computing costs, and users will get results faster.
In addition, I developed a new method for texture allocation in WebGL, which significantly reduces the amount of video memory used. This change makes Lumen5 accessible to users with less powerful computers, significantly expanding its audience and increasing the maximum video length supported by the platform.
Stepan, have you implemented many other optimizations for Lumen5 before?
Yes, I’ve worked on optimizations at different levels. I introduced the practice of using SPOT VMs to optimize cloud computing costs. This allowed us to reduce rendering costs by half, while the system didn’t lose its scaling speed. I also optimized the hardware configuration to our needs to get better performance for less money.
Predicting computing costs is a complex task that requires a lot of measurements and careful calculations to avoid errors. Since hardware updates are a regular procedure, I automated the process of collecting data on rendering performance on various systems. This report always contains up-to-date information on computing costs, which has already helped us make the decision to switch to new CPUs and GPUs.
In the world of cloud computing, it’s important to consider providers’ commitment systems. If you forecast your needs in advance and rent certain capacities for a long period, you can get a discount, which can reach up to 70%. We recently checked how things are going with our commitment and found out that we are fulfilling it at 98% of the planned amount. This was made possible thanks to the automated reporting I implemented.
Speaking about the changes that users felt, it is worth noting a significant increase in the system’s responsiveness. This was especially noticeable for users who create long videos. The page load time was also optimized by 40%.
Stepan, I know that you’ve done a lot not only to speed up the Lumen5 service itself but also to accelerate development within the company. In particular, you contributed to the implementation of TypeScript and the improvement of testing culture and tools. Could you tell us a little about how this affected the processes?
Of course! I already had experience implementing TypeScript at a previous company. I started with one project, showed my colleagues all the pros and cons, and they agreed that the advantages significantly outweighed the disadvantages. I trained my colleagues, and now the company uses TypeScript.
TypeScript’s static typing significantly reduces the number of runtime errors, which used to take a lot of resources to debug. This not only speeds up development at the code writing level but also allows us to focus on more comprehensive testing. And comprehensive testing, in turn, reveals complex, “edge” cases that might have gone unnoticed before.
Improving testing tools, including creating specialized tools for screenshot testing of the graphics engine, allowed us to automate processes that were previously manual and time-consuming. This, in turn, reduced the risk of regressions when making changes to the code and gave us the opportunity to take a more flexible approach to the refactoring process. Thus, we not only accelerated the development process but also increased the overall stability and reliability of the product — a critically important component for such a dynamically developing service as Lumen5.
As an experienced developer of high-load systems, what other technical challenges did you face when creating the platform, and what solutions did you find?
One of the key challenges we face is balancing high performance and smooth editor operation in the browser, given the computational requirements of AI algorithms. Working in the browser imposes limitations on access to resources and performance, so we use various optimization techniques, such as Web Workers and caching, to ensure smooth editor operation even during complex video processing. Video processing is a resource-intensive process, and we have to constantly optimize our algorithms and use modern web technologies such as WebAssembly to achieve optimal performance. WebAssembly allows us to use solutions originally written for desktop and server solutions in the browser.
A further obstacle is the scarcity of resources for video-related tasks in the browser. Many video operations that are easily performed in native applications require non-standard solutions in the browser. We actively participate in the development of open-source projects to address these issues and expand the possibilities of web video editing. We believe it’s important to share our findings with the community and contribute to the development of open-source. I regularly give talks at conferences, where I strive to share my knowledge about video and graphics in web design with the community. Before joining Lumen5, I shared my experience gained at Alfa-Bank.
Another problem we successfully solved was the unification of codebases. We had a period when there were two separate codebases: one for playing video on the client and the other for rendering video on the server. This created difficulties with synchronization, and some browser APIs had to be emulated on the server, which did not always give the ideal result. In the end, we did a lot of work to unify these bases. Using nwjs, I was able to get easier and more direct access to graphics acceleration, which significantly increased video processing speed and simultaneously reduced the number of bugs by reducing the amount of code.
You’ve managed to work on various aspects of Lumen5 and implement many innovative approaches. Did your experience and achievements from previous companies help you?
Every job and every project has been invaluable experience that helps me to this day, despite the fact that my current company uses a different tech stack, as well as different processes and products. For example, at Alfa-Bank, I was responsible for the launch of “Alfa-Online,” and earlier — for the launch of the foreign economic activity system for legal entities.
To launch the project from scratch, I had to understand the complex infrastructure: Mesos, Marathon, Ansible. Later I mastered Kubernetes and learned how to set up CI/CD. I wrote several key infrastructure solutions for the “Alfa-Online” project. For example, I implemented isolated test environments, which simplified testing and design reviews of changes significantly. Interestingly, I picked up the idea of such environments from Wrike, where I was engaged in completely different tasks. And at Alfa-Bank, among other things, I was engaged in the implementation of e2e tests and a set of modules for mocking requests, working with the network, and other tasks.
When the neighboring team at Lumen5 was implementing e2e tests, I had something to offer, because I have vast experience and expertise. The experience of quickly launching the huge “Alfa-Online” project still helps me achieve results in a company whose activities are concentrated in a hyper-competitive environment.
But I also came to Alfa-Bank with accumulated experience working at Wrike, where we worked on a component library used by dozens of developers. There I learned to interact with a huge number of different people and find compromises in solutions. This helped me a lot at the start.
Given your extensive experience in various companies, including Alfa-Bank and Wrike, how do you assess the specifics of working in the international team at Lumen5?
Working in an international company like Lumen5 is an invaluable experience. I work with talented people from different countries, each of whom brings their unique perspective and experience. This allows me to broaden my horizons, learn new approaches to problem-solving, and develop as a specialist. Constant interaction with colleagues from different parts of the world helps me stay abreast of global trends in the IT industry and develop intercultural communication skills, which is extremely important in today’s world.
You also participate in open-source projects and teach at ITMO University, where, as far as we know, you even established your own “Front-end Jedi” scholarship for students. Could you tell us more about these activities?
I am convinced that open-source plays an important role in the development of modern technologies, and I try to contribute to this community. I participate in several open-source projects related to video processing and web development, sharing my work and helping to improve tools that many developers use. This allows me not only to develop professionally but also to help other developers.
Teaching at ITMO University is another way to share my experience and help the next generation of developers. I teach the course “Web Application Programming,” where I try to give students the practical skills they need for successful development. I believe that education plays a key role in the development of the IT sphere, and I am happy to contribute to this process. As for the scholarship, I am glad to support talented and proactive students in matters related to my professional activity.
Stepan, we know you also dedicate a lot of time to mentoring and judging at prestigious international hackathons, including, for example, the hackathon organized by NASA’s International Space Apps Challenge. This is the largest annual global hackathon, providing participants with the opportunity to use NASA’s open data to solve real-world problems. That’s incredible! Based on your experience, what other qualities, besides technical skills, are important for a successful career in IT, in your opinion?
Besides technical skills, soft skills are critical for a successful IT career. The ability to work in a team, communicate effectively with colleagues and clients, and express your thoughts clearly and concisely – these are all essential skills for a modern IT specialist. Proactivity, the ability to independently seek solutions and take responsibility, is also very important. The IT industry is constantly evolving, so it is important to be ready for continuous learning, explore new technologies, and expand your horizons. An analytical mindset, critical thinking, and the ability to solve complex problems are also indispensable qualities for success in IT. And, of course, it’s important to be passionate about your work, to have the desire to create something new and useful.
