Write first version
This commit is contained in:
parent
3f56eeb326
commit
4051592cc5
234
README.md
234
README.md
@ -1,2 +1,234 @@
|
||||
# pulse-doc
|
||||
# Набор команды и первые шаги
|
||||
|
||||
## Минимальная команда, размер и состав
|
||||
|
||||
По моему опыту, самая минимальная команда (Skeleton Crew) следующая:
|
||||
1. Lead/Senior Backend Developer, вилка 300-500 тысяч рублей в месяц
|
||||
2. Lead/Senior Frontend Developer, вилка 300-500 тысяч рублей в месяц
|
||||
3. Lead/Senior Android Developer, вилка 300-500 тысяч рублей в месяц
|
||||
4. Lead/Senior iOS Developer, вилка 300-500 тысяч рублей в месяц
|
||||
5. Senior DevOps Engineer, вилка 150-500 тысяч рублей в месяц
|
||||
6. Senior Project Manager, вилка 100-200 тысяч рублей в месяц
|
||||
7. UI/UX Designer, Art Director, вилка от 100 до плюс бесконечности
|
||||
8. Рекуртер, естественно. Стандартная ставка - от 1 до 3 месячных окладов найденного специалиста
|
||||
|
||||
В будущем разработчики по каждой категории (Frontend, Backend, iOS, Android) формируют команды разработки соответственно Frontend, Backend и т.д. Сколько брать в команду? Нужно смотреть по загруженности. Но обычно с одним Lead идут 1-2 Senior и 3-5 Middle/Junior разработчиков, это оптимальный размер команды. Если больше - то нужно дробить по более мелким командам.
|
||||
|
||||
DevOps может быть один, или может быть команда. Но команда DevOps растет не так быстро как команда разработки. Достаточно длительное время может быть один девопс на большую команду.
|
||||
|
||||
Project Manager обычно один, потому что он объединяет коммуникации со всей командой.
|
||||
|
||||
UI/UX Designer - это просто дизайнер, а Art Director это условно лид по дизайну, который задает общий тон и общий стиль всем остальным дизайнерам. На начальном этапе дизайнер может быть один.
|
||||
|
||||
Рекрутер - обычно это фрилансер который находит разработчиков по заданным критериям, чтобы мы могли его прособеседовать. На начальном этапе
|
||||
|
||||
## Найм и сложность найма
|
||||
|
||||
Разработчиков сложнее всего найти. Поэтому обычно поиск разработчиков нужно начинать раньше всего, и начинать заранее.
|
||||
|
||||
Ключевая позиция у Backend Lead, потому что от него будет зависеть все остальные разработчики. К примеру, пока не готова авторизация, профиль пользователя, лента новостей и прочие API, фронтенду и мобильным разработчикам нечего делать. Они будут рисовать интерфейсы и забивать их рыбными текстами, но это не то. Можно условно сравнить Frontend, Android и iOS разработчиков с строителями-отделочниками, сантехниками и электриками. Типа, пока дом не построен, отделывать нечего.
|
||||
|
||||
Поэтому на позицию Backend нужно выбирать тщательно. Если Backend будет медленно работать, то работа всей команды будет замедлена.
|
||||
|
||||
Frontend, Android и iOS - это уже позиции попроще. Там разработчики намного более взаимозаменяемы. Если один плохо справляется, можно достаточно быстро заменить его на другого.
|
||||
|
||||
В позиции Frontend, Android и iOS разработчики уровня Senior отличаются от уровня Middle/Junior тем, что в случае возникновения какого-то сложного бага, Senior решают этот баг быстрее. Однако если просто писать стандартный интерфейс используя стандартные компоненты, то Senior и Middle будут работать с одинаковой скоростью. Пример: опытный водитель и неопытный почти неотличимы на дороге. Различия проявляются только когда на дороге нестандартная ситуация - занос, дрифт, неожиданное препятствие и т.п.
|
||||
|
||||
При найме DevOps проблема в основном в том, что рынок завален резюме от псевдо-DevOps которые изучили Docker/Kubernetes по курсам и кроме этого ничего не знают. Опасность последних заключается в том что при более-менее нештатной ситуации они превращаются в беспомощных котят. Настоящих же DevOps находить может быть сложно.
|
||||
|
||||
Project Manager найти легко, по рынку ходят огромное количество безработных PM-ов и с низкими зарплатными ожиданиями. Можно взять любого PM-а наугад и он будет более-менее достоино справляться со своими обязанностями. Найти среди них лучшего будет довольно сложно. Я обычно выбираю PM-а главным образом чтобы у него в портфолио не было провальных проектов.
|
||||
|
||||
Про поиск UI/UX дизайнера. Если я просто делаю сайт для заказчика, то я могу взять любого безработного дизайнера за не слишком больщой прайс и он сделает более-менее достойный дизайн как у всех. Но если нужен уникальный дизайн, то здесь сложно что-то посоветовать. Рекомендую идти на https://www.behance.net/ , https://www.deviantart.com/ , https://dribbble.com/ или https://www.artstation.com/ и смотреть то что вам понравится. Если нашли то что вам нужно - пишите дизайнеру и приглашайте на работу. Но учтите, что в таком случае дизайнер может быть из другой страны, и еще дизайнер может заломить высокий ценник.
|
||||
|
||||
Рекрутеров искать легко, их достаточно много на рынке. Также на рынке полно рекрутинговых агентств, они везде предлагают свои услуги.
|
||||
|
||||
|
||||
# Этапы
|
||||
|
||||
1. Находим рекрутера
|
||||
2. Ищем Backend разработчика и дизайнера
|
||||
3. Ищем остальных разработчиков и остальную команду (Android, iOS, Frontend, DevOps и т.д.)
|
||||
4. Проходят раунды собеседований - из найденных резюме кто-то отсеивается, кто-то сам выбирает другой оффер, и в итоге формируется команда
|
||||
5. Параллельно оформляется юрлицо
|
||||
6. Когда юрлицо готово, можно регистрировать аккаунт в облачных сервисах (Yandex Cloud или Облако Mail.Ru или аналоги), регистрировать аккаунт разработчика в Apple ($300 в год) и в Google Play ($25 единоразово)
|
||||
7. Собираем требования, проектируем архитектуру
|
||||
8. Дизайнер делает дизайн, бекенд-разработчик делает прототип бекенда
|
||||
9. Остальные разработчики подключаются к работе и делают веб часть, Android и iOS приложение
|
||||
|
||||
И дальше уже работаем по итерациям.
|
||||
|
||||
Параллелить можно так:
|
||||
```
|
||||
1----2----3----4
|
||||
\ \
|
||||
\ \
|
||||
7----8----9--- ...разработка...
|
||||
/
|
||||
/
|
||||
5-----6-----
|
||||
```
|
||||
|
||||
|
||||
|
||||
## Подходящие объявления для вакансий
|
||||
|
||||
### Lead/Senior Backend Developer
|
||||
|
||||
**Обязанности:**
|
||||
|
||||
Разработка и поддержка серверных приложений на Node.js.
|
||||
Работа с базами данных SQL и NoSQL.
|
||||
Участие в проектировании архитектуры проектов.
|
||||
Оптимизация производительности и масштабируемости приложений.
|
||||
Автоматизация процессов развертывания и тестирования.
|
||||
|
||||
**Ожидания:**
|
||||
|
||||
Опыт работы с Node.js не менее 3-5 лет.
|
||||
Глубокое понимание принципов работы серверных технологий.
|
||||
Опыт работы с системой контроля версий Git.
|
||||
Знание принципов разработки безопасного кода.
|
||||
Опыт работы с Docker или Kubernetes.
|
||||
Умение самостоятельно решать сложные задачи и принимать технические решения.
|
||||
|
||||
**Требования:**
|
||||
|
||||
Знание JavaScript (Node.js), Express.js, NestJS.
|
||||
Опыт работы с базами данных PostgreSQL.
|
||||
Опыт работы с RabbitMQ или его аналогами.
|
||||
Навыки написания unit-тестов (Mocha, Jest).
|
||||
DevOps: Docker, Kubernetes, CI/CD инструменты.
|
||||
Работа с API, опыт построения API (REST или GraphQL).
|
||||
|
||||
### Lead/Senior Frontend Developer
|
||||
|
||||
**Обязанности:**
|
||||
|
||||
Разработка и поддержка фронтенд-приложений, основанных на React JS.
|
||||
Создание адаптивных веб-интерфейсов.
|
||||
Сотрудничество с UX/UI дизайнерами для реализации дизайна в жизнь.
|
||||
Оптимизация приложений для максимальной скорости и масштабируемости.
|
||||
Интеграция фронтенд-компонентов с серверными API.
|
||||
|
||||
**Ожидания:**
|
||||
|
||||
Опыт в разработке веб-приложений от 3-5 лет (React+Redux, NextJS)
|
||||
Уверенные знания HTML, CSS, Javascript, TypeScript, React, Redux
|
||||
Умение верстать адаптивные и кроссбраузерные интерфейсы
|
||||
Опыт работы с Figma
|
||||
Понимание принципов ООП, REST архитектуры, работы HTTP-протокола
|
||||
|
||||
**Требования:**
|
||||
Основные: знание JavaScript (ES6+), React JS, Redux/MobX, NextJS.
|
||||
Знание стилей: CSS, Sass/LESS.
|
||||
Навыки написания unit-тестов: Jest, Enzyme, Cypress.
|
||||
Знание дополнительных инструментов: GraphQL, Axios, Lodash.
|
||||
Навыки работы с Chrome DevTools, ESLint, Prettier.
|
||||
|
||||
### Lead/Senior Android Developer
|
||||
|
||||
**Обязанности:**
|
||||
|
||||
Разработка и поддержка приложений для Android.
|
||||
Проектирование и реализация сложных пользовательских интерфейсов.
|
||||
Оптимизация производительности и стабильности приложений.
|
||||
Работа с API (REST, GraphQL и другие).
|
||||
Обеспечение совместимости приложений с различными версиями Android и устройствами.
|
||||
Применение лучших практик кодирования и поддержание высоких стандартов качества кода.
|
||||
Сотрудничество с UX/UI дизайнерами для реализации дизайна в жизнь.
|
||||
Взаимодействие с другими командами разработчиков (Backend) и менеджером проектов.
|
||||
|
||||
|
||||
**Ожидания:**
|
||||
|
||||
Опыт разработки на Android не менее 5 лет.
|
||||
Знание Kotlin и Java.
|
||||
Опыт работы с Android SDK и различными версиями Android.
|
||||
Понимание принципов работы Material Design.
|
||||
Опыт работы с архитектурными паттернами (MVC, MVP, MVVM).
|
||||
Знание принципов работы с базами данных (SQLite).
|
||||
Опыт автоматизации тестирования (JUnit, Espresso).
|
||||
Желательно - опыт работы с Android NDK.
|
||||
|
||||
**Требования:**
|
||||
|
||||
Знания языков программирования Kotlin, Java.
|
||||
Навыки разработки для разных версий Android, обработка жестов, анимации.
|
||||
Опыт работы с базами данных: SQLite или Room.
|
||||
Знание архитектурных паттернов: MVC, MVP, MVVM.
|
||||
Навыки написания unit-тестов с использованием JUnit или Espresso.
|
||||
Знание инструментов и библиотек: Android Jetpack, Retrofit, Dagger/Hilt.
|
||||
Знание Git.
|
||||
Желательно иметь опыт работы с Android NDK и опыт написания кода на C/C++.
|
||||
|
||||
### Lead/Senior iOS Developer
|
||||
|
||||
**Обязанности:**
|
||||
|
||||
Разработка и поддержка приложений для iOS.
|
||||
Реализация сложных пользовательских интерфейсов с использованием Swift, Storyboard и UIKit.
|
||||
Работа с CoreData и Realm для локального хранения данных.
|
||||
Интеграция приложений с серверными API (RESTful и GraphQL).
|
||||
Обеспечение совместимости приложений с разными версиями iOS и устройствами Apple.
|
||||
Использование Auto Layout и Size Classes для создания адаптивных интерфейсов.
|
||||
Применение best practices для обеспечения высокого качества и безопасности кода.
|
||||
Сотрудничество с UX/UI дизайнерами для реализации дизайна в жизнь.
|
||||
Взаимодействие с другими командами разработчиков (Backend) и менеджером проектов.
|
||||
|
||||
**Ожидания:**
|
||||
|
||||
Опыт разработки на iOS не менее 5 лет.
|
||||
Глубокие знания Swift и понимание Objective-C.
|
||||
Опыт работы с iOS Frameworks, включая UIKit, CoreData, CoreAnimation.
|
||||
Понимание принципов работы MVC, MVP, MVVM и других архитектурных паттернов.
|
||||
Опыт работы с системой версионирования Git.
|
||||
Опыт написания unit-тестов.
|
||||
|
||||
**Требования:**
|
||||
|
||||
Знание языков программирования: Swift, Objective-C.
|
||||
Знание фреймворков: UIKit, CoreData, CoreAnimation, SwiftUI.
|
||||
Опыт работы с Storyboard.
|
||||
Знание архитектурных паттернов: MVC, MVP, MVVM.
|
||||
Навыки написания unit-тестов с использованием XCTest, SwiftLint.
|
||||
Опыт работы с инструментами и библиотеками: Alamofire, Realm, Firebase.
|
||||
Опыт работы с CocoaPods.
|
||||
Опыт работы с системой версионирования Git.
|
||||
|
||||
|
||||
### Senior DevOps Engineer
|
||||
|
||||
**Обязанности:**
|
||||
|
||||
Автоматизация процессов разработки, тестирования, развертывания и мониторинга.
|
||||
Управление инфраструктурой на платформах облачных сервисов (AWS, Azure или Google Cloud).
|
||||
Разработка и поддержка CI/CD пайплайнов.
|
||||
Управление контейнеризацией и оркестрацией (Docker, Kubernetes).
|
||||
Обеспечение безопасности инфраструктуры и данных.
|
||||
Работа с системами мониторинга и логирования (Prometheus, Grafana, ELK stack).
|
||||
Оптимизация ресурсов для повышения производительности и снижения затрат.
|
||||
Взаимодействие с командами разработчиков для обеспечения CI/CD и эффективности процессов разработки.
|
||||
|
||||
|
||||
**Ожидания:**
|
||||
|
||||
Опыт работы в DevOps не менее 4 лет.
|
||||
Глубокое знание Linux.
|
||||
Знание скриптовых языков Bash, Python.
|
||||
Опыт использования одной из систем CI/CD: Jenkins, GitLab CI, CircleCI.
|
||||
Опыт работы с IaC, например Terraform, Ansible.
|
||||
Знание и опыт работы с Docker и Kubernetes.
|
||||
Опыт работы с облачными платформами.
|
||||
Понимание принципов и методологий безопасности.
|
||||
Опыт работы с системами мониторинга и логирования.
|
||||
|
||||
|
||||
Требования:
|
||||
|
||||
Облачные платформы: AWS, Azure, GCP.
|
||||
Контейнеризация и оркестрация: Docker, Kubernetes.
|
||||
CI/CD: Jenkins, GitLab CI, CircleCI.
|
||||
Инфраструктура как код: Terraform, Ansible.
|
||||
Скриптовые языки: Bash, Python.
|
||||
Мониторинг и логирование: Prometheus, Grafana, ELK Stack.
|
||||
Безопасность: Стандарты и практики безопасности в облачных средах.
|
||||
|
Loading…
Reference in New Issue
Block a user