Alexandre Ryjoukhine - Java architect

ar@alryj.com

I am an experienced Java architect who provided applications and solutions for companies on the national and international level in Belgium and the European Union.
I can deliver turnkey applications for various businesses and cover almost all aspects of this process: alignment on uses cases, application design, development, (unit, integration, performance) testing, continuous build, deploy, release and support.
I enjoy translating business challenges into useful applications because for me it is a personal fulfilment and my contribution to the society.
I always try to keep up with the modern technologies, tools and methodologies. In most cases I used to work with agile methodology. I have worked on a wide range of projects from as simple as making this website to complex systems used across many countries.
Most of the IT projects require coordinated efforts of many people - team(s) of developers, project managers, business analysts, testers. I have used to work in such environment mostly in technical lead and architectural roles to align on the requirements implementation, manage developers and provide an overall application design.



Services


Application design
Before writing the first line of code, it is essential that stakeholders agree on business requirements and have well defined idea on how their application should function. For complex systems it is usually an interactive process where involved parties mutually align until reaching a certain 'consensus point'.
I use the following approaches in an application design:
  • Any application design should help developers to communicate the business value to customers from the first implementation iteration.
  • It must be user friendly with as little as possible initial training efforts for users.
  • It should be based on proven design standards and frameworks.
  • It must be designed for a future growth: extensible and scalable.
  • The design must be documented.
  • The design should facilitate unit and performance tests.
  • Creation and maintenance costs must be minimal.
A challenge of building the right system at a reasonable cost is always one of the biggest developer challenges.
Application development

I have written a lot fo code and every time I try to create as few lines of code as possible to achieve the goal but not at the expense of clarity. There are so many frameworks and tools that facilitate the application development these days. In Java it is probably Spring/Spring Boot ecosystem that is dominating for new projects. My recent project were Spring Boot based and I have observed a significant productivity/quality gains from configurations by default for various systems (messaging, database, web services etc.), embedded web server and outstanding testing support.
Businesses are integrating a lot of things these days so some sort of message routers or complete enterprise service buses are used almost everywhere. I have recently worked with Apache Camel in the project to modernize the Belgian social security system and with Spring Integration for new applications to merge banking systems of Belgium and Netherlands.
I found that I do more and more JavaScript/TypeScript programming for the front end development. I prefer Angular and VueJs (similar to old good AngularJs). I think that with NodeJs JavaScript can compete with traditional server back-end languages and will take a significant market share from them.
For my private projects I prefer to use Python to make some experiments in the data science and artificial intelligence fields.

testing

Testing is a very important part of the development process. Developers need to prove their implementation contract by unit tests. Components need to work together and this has to be proved by integrations tests. There should be no regression and the performance of the overall system should comply with the non-functional requirements.
All this should be planned, executed and controlled from the begging of the project till the end. Test coverage reports give some peace of mind to the management. Green light after tests does the same for developers. Architects feel more comfortable if they are reasonably sure that the new system will not collapse under some load in production etc.


Skills

Programming Languages & Tools
Specific
  • Technical Management of Development Teams
  • Project Management
  • Cross Functional Teams
  • Agile Development & Scrum
  • Business Requirements

Case Studies

New "Unite" platform of ING bank in Belgium and Netherlands

ING bank has decided to merge its Belgian and Dutch operations in one cloud/micro-service based platform (Unite).
As a technical lead I was responsible for the design and development of a new credit risk assessment application. The application was based on Spring Boot with some custom ING extensions for security. It exposes and consumes REST APIs (Swagger) and also consumes services via Tibco and WMQ. The file exchange (sftp and xfb) was implemented via Spring Integration. When the foundation for the credit risk assessment application was created I had to leave the project in Brussels because my wife got an assignment in Singapore where I am located now.

Belgian Social Security System

The Belgian government has ordered a new version of the Social Security system running on Java to its dedicated IT contractor Smals. As an application architect I was developing the business logic of several modules in JEE/Spring/Spring Boot and user interfaces in Angular.
Apache Camel was used to manage the message exchange between modules. The system runs on several JBoss and WebLogic servers with Oracle database. The development and deployment have been done on time without major issues.

Document management for Toyota

I was an architect and lead developer for this project.
The business process can be describes as following: Car dealers are using on-line technical documentations of cars for their service needs. After logging in they are can reach relevant interactive documentation and other information depending on their access level. The documents come continuously from various sources all over the world. Some documents/information has to be delivered to dealers with a higher priority than others are. The documents should be accessible base on the context e.g. car/electrical system or as a flash message on a dealer screen after a log in. The statistical information of the application usage should be available to the European and country level headquarters.
The implementation was using Apache Lucene with specific indexing rules and Spring/Spring Web. The application was deployed on WebSphere servers. This project was the first to use Apache Lucene based technologies in Toyota.


Clients