Position: Senior Android Developer
Category: Android
English level: upper
Years of experience: 8

- Created shared codebase and code conventions that were used in the development process in the small android team.
- Have successfully improved code quality and flexibility in the team. Did so by applying SOLID best practices, using a Clean Architecture approach, and some other techniques (suitable in our case)
- Improved tech process of software development and delivery in the company.
- Successfully released projects -> 10+! Some of them were huge and full of business logic on the client, different features, different payment systems, etc. Some of them required integration with the worst backend APIs you have ever seen in your life. I struggled a lot =))

Also, might be good to know that I'm a proactive team member who can say "No" or raise concern when others keep quiet and just fail their deadlines.
Worked in different teams, big and small -> from 2-3 Android engineers up to ~40 ones. 
I have got team lead experience.

Released projects: 10+. 
Some types of those Projects:
- CRMs
- A Platform for getting beauty services 
- A platform for repairing alternative energy stuff.
- "Do not disturb" app on "steroids".
- Getting cash back from purchases in particular stores and places
- Traveling app
- Application for the unique device that is used for the analysis of skimmer installation on an ATM. 
- Streaming TV app

Some of them were created in the "pixel-perfect way(If you understand what I mean...)

I tend to: 
- Focus on problems and ways to solve them, not instruments.
- doing TDD whenever it's useful.
- apply SOLID principles
- write simple, clean and understandable code.


The main stack:
- Java/Kotlin
- RxJava
- Dagger2
- Sqlite/Realm DB/Room
- Picasso/Glide
- doing MVI/MVVM/MVP
I would like to:
 - I have got a desire to work with a strong team of professionals.
 - I strive to create beautiful applications with the best performance. 
 - I aim to create well-tested software. 
 - Open for experiments with features, approaches, etc
 - I believe in testing. Believe in quality, that's why use the TDD approach whenever it's suitable and effective.

I would like to not:
 - work in a rush environment and always be in a hurry. In most cases, I would like to avoid start-ups with their MVP versions and the chaos around that.
 - work with legacy code within a team that doesn't want to change that and improve the codebase quality on a regular day-by-day basis.
 - doing boilerplate things again and again - we can always automate or simplify things.