Fedor Malyshkin
Java/Scala backend developer
About me
Hi, my name is Fedor. I am a seasoned developer whose experience has been mostly concentrated around Java and its ecosystem. I started with Java 1.4 and now work with Java 11 (and now 'm playing with 15). However, to have only one tool, it's not a decent idea. So I've added Scala and Python in my toolbox and was fascinated by how these tools stand out in some areas compared to Java.
I'm a big fan of cloud computing, TDD, CI, and various automation in the development process. My current interests in development are data streaming and functional programming.
The thing that could highlight me, among others, is my ability to study new things and "technical full-stack"' ish. When I'm saying "technical full-stack", I mean the ability to track the cause of a problem through the whole stack: from a user browser -> through network communication (whatever it is REST/WebSocket) → to service inside → and to a database / or other chains of services. And, of course, to set up a whole staging/development/production environment on my own.
And, yes, by the way - when I have some time, I publish articles on "Medium".
Projects
I took part in and led different IT projects. Not always they were software projects, they were also some integrations that required more people communication rather than development. But speaking of software development, there are some of them:
- Project under NDA [Java 8/11, Spring Boot, Apache Spark, React, Vaadin, Docker, Kubernetes, Jenkins, Apache Kudu, Apache Impala]
- System for client data processing in Russian's biggest bank (Sberbank) [Java 8, Spring Boot, Spring Integration, WAS (AS, MQ), RxJava 2, Oracle, Kafka, Hadoop, Maven, TestNG, DBUnit]
- Backend part of online broker's exchange platform [Scala 2.12, Akka, Akka Stream, Akka Http, Monix, PostgreSQL, ScalaTest]
- My side-project "StoryLine 2" (news aggregator) (in fact - right now in an abandoned state) [Java, Scala, Kafka, Akka, Gradle, Apache Spark, Apache Storm, No-SQL Spring, REST, Android]
- GLR parser to extract structured data from text in natural language [Java, Spring, NLP]
- Magnet Platform and DMS "Big Archive" [Java, Ant, SQL, JSP, Lucene]
Technologies
Any more-or-less worthwhile solution/project requires some technologies (not always cutting-edge, in fact), so I'm always trying to study and test in practice technologies that I've found helpful (but sometimes as fancy ones only):
- Programming languages: Java, Scala, Python, Groovy, R
- Version control systems (and their providers): Git, BitBucket, GitLab, GitHub
- Build systems: Gradle, Maven, Ant
- Databases: relational and NoSQL (Oracle, PostgreSQL, MSSQL, MySQL, MongoDB)
- Testing frameworks: TestNG, JUnit, AssertJ, DBUnit, REST Assured, ScalaTest
- Continuous integration systems/services: Jenkins, TeamCity, Git Actions
- Distributed systems: Apache Spark, Apache Storm, Apache Hadoop
- Systems of statistics collection (TSDB) and presentation (dashboards): InfluxDB, Grafana
- System configuration management: Puppet, Ansible
- Containerization, orchestration and cloud computing: Docker, Kubernetes, AWS, GCP