Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 
avatar of Oleksandr

Oleksandr

Oleksandr has asked 0 questions and find answers to 1 problems.

Stats

13
EtPoint
2
Vote count
0
questions
1
answers

About

I have 8 years of experience in iOS development and the last 6 of them I've worked remotely. As A Team-Lead I've worked on big-data projects (e.g DAU for iOS ~280k; MAU 16.6 M; Total Users 202M), and even more; I have experience in the implementation of layered architectures, such as Clean Swift, VIPER, MVP with DI container, MVVM; have implemented my own IoC Container; covering the code with Unit tests and the integration of CI. Last 3 years I've worked in the position of Team Lead. And during the last year, I have a "Resource Manager" position additionally. Also, I've worked in the "Architect" position. I love programming and self-education. I always read books and articles that help me self-educate and growth. I like to build processes in that way so my team and I can do knowledge sharing and growth together.

In my work I rely on several principles​:

  • The architecture of the application should be properly designed: need to define layers of abstractions, components, their dependencies, and in which way will be covered with tests. The architecture must allow easy extension and change parts of an application but avoid overhead in the implementation.
  • The source code of the project must conform to SOLID principles, and be clean as described in the book 'Clean Code' of Robert C. Martin or similar ones (e.g "Refactoring" - Martin Fowler).
  • Following the defined process, so that will be achieved maximally precise execution of the task within the given timeframe.
  • It is important to have a deep knowledge of applied technologies, to use all its features.
  • It is necessary to keep up with the latest technologies and innovations that will help solve essential problems in the most appropriate way.

As a Team Lead I worked on the following tasks and has the following responsibility:

  • Defining the architecture of the new modules that will be integrated, writing the tech-document (that includes a high-level description of the architecture of the new module, integration points, risks and the ways to minimize them, QA notes), and providing it to teammates for the implementation.
  • Tasks decomposition and assign sub-tasks to the teammates.
  • Reviewing teammates' Pull-Requests, providing suggestions on implementation and unit-test coverage.
  • Working with UI Designer to assist and provide a suggestion based on HIG from Apple.
  • Doing the everyday sync-up meetings with a team that include: check the progress of the work, check the Jira tickets, check PRs, providing suggestions/propositions if the developer has some difficulties with the implementation.
  • Defining processes and writing documentation (e.g. Guidelines for the creating Pull-Requests).
  • Interviewing new iOS developer candidates.