Position: Java Developer
Category: Java
English level: intermediate
Years of experience: 1.5


Technical skills:
- Java 8
- Java Core, OOP, Collections, Streams
- SQL: SQL Server, PostgreSQL; NoSql: MongoDB
- Spring framework (boot, data)
- Hibernate, JDBC
- REST, WebSocket
- TeamCity
- Git
- JUnit, Mockito
- Maven
- Jira, Confluence, Agile Methodologies

Project:
Platform for automatic trading and resolving arbitrage situations at key crypto
exchanges (Binance, Okex, Cexio, Bithumb, Huobi, FTX, GateIO, etc.)

Responsibilities:
 participating in full-cycle backend development. New features implementation
with unit tests coverage and supporting them during their life cycle. Existing
codebase refactoring and supporting. Project architecture improving
 taking part in planning and grooming, working under Scrum methodology, teamplayer
 delivering code adjustments to the running application through TeamCity
 code-reviewing
 creating project documentation in Confluence and project API in Apiary

Tasks:
 revising and researching APIs documentation of external systems, implementing
integration with such exchanges as Binance, Okex, Cexio etc. using REST API
and WebSockets
 implementing receiving notifications from external systems (order book updates,
orders and balances states changes) by WebSocket using Netty library.
 integrating various functions such as placing and cancelling orders, getting
balances, getting trades, getting metadata and others by REST.
 implemented immediate-or-cancel method for placed orders
 implemented profit report for given period of time
 implemented getting crypto-wallets addresses and block chains
 reducing numbers of microservices calls in order to enhance architecture
 refactored unit tests and updated Junit version from 4 to 5