Position: Software Engineer
Category: Java
English level: fluent
Years of experience: 9

From the most recent position:
- Designed & implemented a brand new system for event-processing of mobile analytics data to notify the bank about patterns in user activities. Consistts of a bunch of Spring Boot services communicating via HTTP, Google Pub/sub and RabbitMQ. With a central part being a reactive-style engine for executing finite state machines (FSM) for efficiently matching the stream of user events collected from mobile app against a set of predefined scenarios and notifying of the results.
- A new system for real-time collection of problematic client events that was implemented to offload work from the call center to the AI voice assistant.
- Bank-wide internal Java library for microservices to meet defined observability requirements.
- An ETL-like process to continuously transfer mobile analytics events to an internal DWH storage. An Airflow DAG + Java service working with Google Cloud Storage and MongoDB.

Other prominent experience:
- Designed core architecture of a (rather niche) industry-fastest disk-to-disk data copying solution. 
- Implemented APFS and ExFAT filesystem drivers
- Regular expressions search of the data while it being copied, without the loss of copying speed
- Implementation of forensic industry-specific open binary file formats: AFF4 and E01
I worked on a variety of projects: from a low-level data-copying and recovery solution, an open-source WebRTC-based alternative to Zoom to an enterprise-grade distributed microservice-style system. Also, have an experience with front-end using React&TypeScript. 

My responsibilities have been:
-planning, discussions with stakeholders, research & discovery regarding implementing new and refactoring/optimizing/rewriting features
- architectural design, systems design, and implementation of the requirements
- code review, pair programming, mentorship, onboarding
- architectural overview & system maintenance, setup of the code-quality process
- occasional leading of the development process of a small (3-5 people) team
- company representation in North American/European industry conferences as a technical consultant

I am used to and prefer a highly independent, and self-organized development process where I can be not told what to do specifically, but receive i.e. a vague idea and work from that. Also, I like being involved not only in the implementation but in the discussion of the business requirements and ideas, design approach, and other non-technical stuff if I can contribute.