Volodymyr is a software engineer, who started his career as a back-end Java programmer 18 years ago. Now he is enthusiastic about typed functional programming, streaming data processing, and various aspects of software design and architecture. He wrote his first program in Scala about 10 years ago, and has been using it as a primary programming language since 2016.
- What is the biggest misconception of a reactive architecture system?
Probably, the common belief is that using some principles of reactive programming will automatically make the architecture of your software reactive. However, creating a reactive architecture system requires careful design on architecture level.
- What are the advantages of using OSS (open source software)?
- It is virtually impossible to build any complex software system without using open source software nowadays. It has become a critical infrastructure for the economy, like a road network.
- Software development is very expensive. Companies developing closed source software often cut corners to save costs. On the contrary, popular open source software is usually of very high quality, since it incorporates combined efforts of lots of people who tested it, reviewed the code, and contributed numerous new features and bug fixes.
- Using open source software reduces risks of vendor lock-in, when a customer becomes dependent on products of one company. This may be very dangerous to the business if that company stops releasing required features, abandons the software, or decides to raise prices for new versions of software or for renewing subscriptions.
- What would you say is the number 1 business value gain from moving to a reactive architecture?
If it’s done right, less downtimes occur when the software system is unresponsive. As a result, customers are happier and no urgent manual interventions are required.
- What would you say are your top 5 benefits of an agile environment?
- Focusing on delivering value to the customer.
- Accepting uncertainty and dealing with it effectively.
- Emphasizing effective communications between all participants as a key to success.
- Removing unnecessary cargo-cult practices brought from other engineering disciplines which do not work well in software development.
- Flexibility and adaptability to different cases.
- What is one thing you are most excited about in the tech industry for the near future?
There are many fascinating things happening right now. However, if I am to name only one of them, this would be the ongoing growth in popularity of advanced type systems and their adoption in general-purpose programming languages. The most successful example is probably the Rust programming language, which has brought affine types to masses. Another notable mention is Idris, a language with dependent types that compiles to efficient executable code which makes it suitable for applied programming. Some older programming languages with rich and powerful type systems, such as Haskell and Scala, are getting exciting new features. I am sure that this trend will continue in the future giving programmers better tools for creating robust, secure, and well-performing software.
- What do you like about working at Yoppworks?
A lot! First of all, I’d like to tell some good words about the management team. I have been working in many teams at different companies throughout my career, and I can say that an adequate, competent, and understanding management on all levels is the key to comfortable work in any company.
Here at YoppWorks, everybody is encouraged to grow professionally. For example, employees can use 3 weeks of the paid time to learn new technologies, prepare for certifications, write a blog post, etc. The company pays fees for some certification exams.
The members of the technical team who I worked with are competent and professional, with expertise in different areas of software development. At the same time, people here are very friendly and supportive of each other.
All this makes YoppWorks a great place to work