Technologies that I have used and have experience with
To implement a huge and complex software product, you always use some set of technologies. And the final result is mainly determined not by how many technologies were used of how extensively they were used , but rather by how clever they were used. An ideal case - when not used at all .
So it is my list of technologies I more-or-less confident with:
Programming languages
- Java 8-15 (more than 11 years of experience: Stream API, collections, generics, multithreading/concurrency, debugging, garbage collecting)
- Scala (2.12/2.13) and I’m looking for Scala 3
- Python
- Groovy (mostly for scripting some routine tasks of scripting support inside application)
- R (used only for log analysis, data visualization and analysis prototypes)
Databases (RDBMS & NoSQL)
- Oracle
- PostgreSQL
- MySQL
- MongoDB
Application Frameworks
- Spring (Core, Web, Integration, Boot)
- Dropwizard
- Akka, Akka HTTP, Akka Streams
Distributed systems
- Apache Spark
- Apache Storm
- Apache Hadoop
Message brokers
- Apache Kafka
- RabbitMQ
Build systems
- Gradle
- Maven
- Ant
Application servers / Cluster managers / Virtualization / etc
- Docker
- Kubernetes
- AWS
- GCP
- WAS (WebSphere Application Server)
- Google Cloud
- Tomcat
- JBoss
Version control systems (and their providers)
- Git
- BitBucket
- GitHub
- GitLab
… and many other medium and small libraries and frameworks.