Position: Lead Java Developer
Category: Java
English level: upper
Years of experience: 11


My total experience in software development is more than 14 years, 8 of them are in Java development, including team leading and software architect experience. I worked both on large enterprise projects and small to mid-size startups in different domains: aircraft, energetic, logistics, building, health industries, blockchain-related technologies etc. I have diverse experience of  projects creation and growing from the scratch, supporting and developing existing mature projects, working with legacy code, bug fixing and refactoring (on code level as well as on architecture level).

Last years I worked on Java backend projects mostly using the following technologies:
- Spring Framework (Core, MVC, JPA, Data, Security, AOP, Integration, AMQP);
- Hibernate as ORM provider for JPA;
- I had experience with different relational databases, such as Microsoft SQL Server, Oracle, MySQL, SQLite; last years I work mostly with PostgreSQL; my database experience includes database schema design, development and optimization of complex native SQL queries and stored procedures (in cases when Hibernate/JPA are not enough);
- I also have some experience working with some NoSQL databases (Redis, MongoDB, Neo4J);
- RabbitMQ and ActiveMQ message brokers;
- My experience also includes some more rarely used technologies like Camunda BPM, BitShares blockchain, JavaFX, Java EE platform etc;

Last several years I have been not only just coding, but also participating in architecture solution design of backend part and leading the backend team leading (usually up to 3 developers). As the team lead, I analyzed the tasks coming from the client/product owner, thinked over the possible solutions, broke down them into technical tasks for the team and kept track of tasks execution, actively using SCRUM methodology. In case of the most complex tasks I usually did some prototyping or proof-of-concept solutions before passing the tasks to the team.
On my dream job I would like to:
1. Work on the architecture of the backend side and grow myself to the solution architect role.
2. Solve complex development tasks using Java-based technology stack as well as SQL/NoSQL databases.
3. Be tech lead of small backend team (role with focusing more on technical component, not managing one).

The things I would NOT like to do:
1. Work with web frontend-related technologies (JavaScript/HTML/CSS/etc.).
2. Spend too much time on team management.
3. Mandatory usage of screen trackers/recorders during the work is completely inappropriate for me.