Orkhan Hasanli
Orkhan Hasanli
About Me

👋 Hi there! I'm Orkhan Hasanli, a Java Software Engineer with a passion for building reliable, efficient solutions. I specialize in Java development and love solving complex problems with clean, maintainable code.

💻 With 9+ years of experience, I've honed my skills in web development, microservices, and enterprise solutions using Java, Spring, Hibernate & related technologies.

🌟 Let's connect and explore opportunities to create impactful software together!

Role
Java Senior Developer
Experience
9+ years, since 2017
Location
Baku, Azerbaijan · UTC+4
Languages
Azerbaijani · Russian · English · German
Availability
Not looking for a job
Fun Facts
Learning Electric Guitar
Sci-Fi & Detectives
INTJ Personality
Doctor Turned Developer
My Services
Back-end services in Java

Spring Boot applications from the data model through to production — REST interfaces, background jobs, monitoring and the migrations that keep a schema moving.

Microservices and integrations

Spring Cloud, RabbitMQ, Eureka and API gateways. Splitting a monolith, or making systems that were never meant to talk to each other work as one.

AI inside existing systems

Spring AI and MCP servers over the data you already hold — answers streamed over SSE, models run locally through Ollama or hosted. A feature in the product, not a chatbot bolted to the side of it.

Routing and scheduling

Planning problems solved with OptaPlanner, GraphHopper and Jsprit over OpenStreetMap data — courier routes, business trip plans — and the map in the browser that shows the result, on Leaflet.

Telephony and call centres

Asterisk wired into a Java application through asterisk-java — call routing, operator screens, and call records kept where the rest of your data already lives.

Business process automation

Processes drawn in BPMN and decisions in DMN, so the rules sit in a diagram the business can read and argue with, instead of scattered through conditionals only you can find.

Reporting and analytics storage

ClickHouse or DuckDB alongside the operational database, so reports over hundreds of millions of rows stop competing with the system that writes them.

Rescue and modernization

Version upgrades, moving a system between platforms, paying down technical debt in code that has to keep running while you work on it.

Testimonials
Resume
Experience
  1. 2023 - current
    Java Senior Developer
    AISTGroup

    Routing and scheduling services on Spring Boot and Spring Cloud — courier routes and business trip plans, with OptaPlanner and GraphHopper behind the search.

  2. 2022 - 2023
    Java Middle Developer
    AISTGroup

    Call centre application wired into an Asterisk PBX, with Oracle and MariaDB behind it.

  3. 2019 - 2021
    Java Junior Developer
    Freelance

    REST back-ends on Spring Boot for mobile applications.

  4. 2017 - 2020
    WordPress & PHP Developer
    Freelance

    Twenty-odd sites built and maintained end to end.

Education
2020 - 2021
Java Enterprise
IT-Academy, Minsk, Republic of Belarus
2020
Java Fundamentals
IT-Academy, Minsk, Republic of Belarus
2019 - 2020
Clinical Residency in Urology
"Belarusian Medical Academy of Postgraduate Education", Minsk, Republic of Belarus
2016 - 2017
Deutsche Sprache
Internationale Sprachzentrum Baku (BDM), Baku, Azerbaijan
2009 - 2015
Medical Education (Bachelor's degree)
Stavropol State Medical University, Stavropol, Russian Federation
1998 - 2009
High School
Elitar Gymnasium named after Ilyas Efendiyev, Baku, Azerbaijan
My Skills
Languages
  • Azerbaijani (Native Speaker)
  • Russian (Native Speaker)
  • English (Intermediate)
  • German (Upper-intermediate)
Programming
  • Java
  • Kotlin
  • Apache Groovy
  • SQL
  • Go
  • HTML 5
  • CSS 3
  • PHP
  • JavaScript
  • TypeScript
  • Python
Technologies
  • Spring Framework
  • Spring Web
  • Spring Boot
  • Spring
  • Spring Data JPA
  • Spring Rest Repositories
  • Hibernate
  • Spring Security
  • Keycloak
  • JDBC
  • R2DBC
  • JSoup
  • Lombok
  • Spring Session
  • Thymeleaf
  • JSP / JSTL
  • Oauth2
  • Spring Data JDBC
  • jOOQ
  • FlyWay
  • Liquibase
  • SQL
  • Apache Derby
  • H2
  • MySQL
  • SQlite
  • PostgreSQL
  • MariaDB
  • Oracle
  • Spring Websockets
  • Spring Webflux
  • Spring Validation
  • Spring Actuator
  • Eureka Client / Server
  • Zuul API Gateway
  • Spring Cloud API Gateway
  • OpenFeign
  • Hystrix
  • ELK stack
  • JavaMail
  • JavaFX
  • AWS
  • Heroku
  • Apache
  • nginx
  • Apache Maven
  • Gradle
  • Intellij IDEA
  • CMS WordPress
  • CMS Joomla
  • Android API
  • JUnit
  • Mockito
  • VestaCP
  • JQuery
  • Java Core
  • JPA
  • Docker / Docker Compose
  • XML
  • JSON
  • Git
  • Linux
  • Windows
  • Apache Tomcat
  • Jsprit
  • GraphHopper
  • OptaPlanner
  • OSM
  • Leaflet
  • Sentry
  • Spring Cloud Sleuth / Zipkin
  • RabbitMQ
  • Hibernate Envers
  • Javers
  • ANTLR
  • Asterisk / Asterisk Java
  • Project Reactor
  • Netty
  • Apache Kafka
  • Redis
  • Jedis
  • Spring Statemachine
  • Apache Felix
  • Artificial Intelligence
  • AI
  • Spring Batch
  • MongoDB
  • ClickHouse
  • DuckDB
  • Spring AI
  • MCP
  • SSE
  • OpenAI
  • Ollama
  • Kubernetes
  • Prompt Engineering
  • Claude
  • ChatGPT
  • Spec-Driven Development
  • Test-Driven Development
  • Apache Camunda
  • BPMN
  • DMN
My Certificates61

202615

20257

20248

20239

20224

20219

20207

20181

20161

My Works

Engineering projects

CourierCloud — Routing & Optimization2019 — current

  • Spring Boot
  • Spring WebFlux
  • RabbitMQ
  • Spring Cloud Netflix
  • OpenFeign
  • Eureka Server & Client
  • +3

A delivery platform built as a set of Spring Boot microservices talking over RabbitMQ, with Eureka for discovery and a Spring Cloud Gateway in front. The part that carries the product is the routing: working out the order and the path a courier should take, which is not the sort of answer you can reach by sorting a list.

View project

Optimization and planning of business trips2022 — 2024

  • Spring Boot
  • OptaPlanner
  • GraphHopper
  • Nominatim
  • OpenStreetMap
  • RabbitMQ
  • +6

Planning trips for field staff: who goes where, in what order, and on which day. Addresses are resolved through Nominatim, distances come from GraphHopper over OpenStreetMap data, and OptaPlanner searches the schedule itself under the constraints — working hours, travel time, how much a person can fit into a day.

View project

CallCenter App2022 — 2023

  • Spring Boot
  • Asterisk
  • asterisk-java
  • Oracle
  • MariaDB
  • Spring MVC
  • +4

Support and development of a call centre application wired into an Asterisk PBX through asterisk-java. Operator screens on Spring MVC and JSP, call and customer data split between Oracle and MariaDB.

View project

Web projects 20

Get in Touch

Not looking for a job, but always glad to talk shop — an interesting problem, a project, a question about something I have built. Drop me a line, I usually reply within a day.