My adventure with the iOS platform started over eight years ago. I belong to a generation of developers who started out learning how to create mobile iOS applications in Swift, but I'm also familiar with Objective-C.
During over eight years of work, I’ve created 7 applications in Swift from scratch. The experience allowed me to test many solutions, as well as design patterns (MVC, MVVM, Redux) and frameworks in practice.
For the last three years, I have been fighting within Proton to make the Internet a private and secure place. I was a member of Proton Mail team and currently, I'm working on a new Proton Calendar iOS app.
Mentor at open workshops and hackathons.
I believe in words:
“quality over quantity”
That's why I love writing clean, tested code and improving code quality metrics. TDD is not only a cool methodology that we see in presentations or during conferences, but also the way of code creation I follow. I know what a refactor is and I pay attention to it by doing a very detailed code review.
Beside being familiar with OOP, I can apply it in practice without the need to create classes with hundreds of lines. My abilities include testing UI by creating snapshot tests (so that after changing UI related code while looking for unexpected UI bugs, there’s no need to go through the whole app manually).
While writing a code, I follow the correct style and conventions of Swift, which is why I’m using Swiftlint linter for every project.
As a code-writing lover I don’t like wasting time waiting for the project to be built, so I know how to reduce this time to a minimum by modularizing projects.
I’m a big fan of reactive programming, so I implement it where necessary.
I believe that there are better solutions than manual release process or manual check of code correctness before merging. Therefore, I can configure CI / CD pipeline using fastlane and Danger tools to automate manual processes.
I know that high quality does matter and I’m sure that it benefits in the long term. That’s why while programming I’m doing my best to avoid creating buggy and not fully working features.