Position: Senior Java Developer
Category: Java
English level: fluent
Years of experience: 11

Full Stack Development - Udemy Course Developer
How to Build a Startup for Remote 4G Drone Operations
udemy. com/course/lets-build-startup-for-remote-4g-drone-operations

In this Project/Course we are building a Cloud Application for Remote Drone Operations
from the grounds up - line by line - from 0 to the complete working solution.
Application main capabilities:
- on the web page user will be receiving very low latency live video stream from all of
the drones
- sharing video link with anyone anywhere in the world,
- seeing all of the drones on the interactive map,
- full manual control of each of your custom build DIY Drone
- control it from anywhere in the world,
- at any time to setup and activate missions on any of those drones while they are
flying.
Tech used:
- Java, to build a single file easy to deploy backend of our cloud platform that will
manage drone connections. This is a control station app in the form of a Uber Jar that can
be deployed either on a VPS or at the home server. This application exposes frontend on
the http port so the user, knowing VPS IP address can access app from anywhere and any
device. This app allows user to see on a map location of each of his drone, access their
video feed, talk from a drone loud speaker and manipulate each drone to perform
missions or FPV flights.
- Python, to build a drone control app that runs on a companion PC mounted on the
drone itself. On drone startup it automatically connects to the Java Control Station app
and constantly transmits drone telemetry data, video feed and also receives and executes
command coming from the Control Station.
- JavaScript, to write a single page application for our interactive user interface
We integrate all those applications to work together as a single cloud platform for remote
drone operations
By the end of this course, students not only learn a useful skills in Java, Python and
JavaScript, but most importantly, they see how all these technologies could work together
as one coherent distributed application that could easily have a real world usage.
Tech Stack:
Java / Python / JavaScript, Spring Boot, Sockets, Protobuf, Multi-threading, WebSockets,
MAVlink APIs, DroneKit framework, HTML/CSS, JQuery
My current position: Senior Java Developer, Ezbob
This is a complex microservices-based fintech startup project with over 70 different active services.
Its business value to small and medium-sized enterprises is to allow them to get loan approvals and money into their accounts 100% online in a matter of minutes instead of days or weeks.
As such, we work with a lot of data adaptor services, multitenant data in simultaneous transactions in the domain layer, dynamic switching of multiple tenant-related databases, complex user-defined rules-based service output behavior, and various state machine logic flows depending on the results of user input data (or received risk data on the user profile).
My work on this project as a member of a team is focused on the design and development of the functionality of core services.
Most notable work executed:
- designed and implemented from scratch an Admin data management service application that works with remote services databases in a consistent, atomic manner. It first generates drafts with all user changes that he wishes to apply to remote services, and only after pushing those changes will they apply atomically to all remote databases. A rollback is available to a previous successful application state as many times as needed (to any previous point).
- designed and implemented a Spring Cloud distributed multi-tenant microservice configuration system with Kafka for runtime triggering of configuration updates on microservices that needed to do it.
- Implementation of multiple dynamic domain logic switching databases (database per tenant)
- created adaptors for mongoDB GridFS engine persistence, AWS S3 cloud persistence, remote Adobe Document Signing, and so on.
- created a JEXL-based Rule Engine service for evaluating custom JavaScript-like client rules against variable data objects
- daily new features development and optimization of an old code base according to devops/performance needs and constraints
- code reviews and support for junior developers; their project integration
Technology used daily: Java, Spring Boot, Spring Cloud, MongoDB, Kafka, Bitbucket, AWS, Jenkins