Skip to content

The official Career Framework of the Fitprime Labs Team

Notifications You must be signed in to change notification settings

FitprimeLabs/career-framework

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 

Repository files navigation

Fitprime Labs Career Framework 🧪

🚧  *This document will be in continuous development as the company evolves.*

What is this? 🔦

This document aims to be a simple framework to define the career path of each member of the Fitprime Labs team. Our objective is to be fully transparent about:

  • what we expect from each team member
  • what are the possible growth path inside the team

It is our guide on evaluating both the career evolution of our team members and the job posting for new candidates. It is also an important support for our team members to self-assess and have a clear vision of the current or future position in Fitprime.

How it works?

At the moment it is very simple. It is based on 3 keys:

  1. Roles: we have defined different role categories.
  2. Skills: there are several skill categories, each with specific knowledge for each role category.
  3. Levels: each role has a scale of levels based on skills and expectations.

Available Role Categories

Roles are based on the current technology stack and on the internal product development strategy. At the moment, there are:

  • Front-end Web Developer
  • Back-end Developer
  • Native Mobile Developer
  • Product Designer

Skill categories

There are many categories of skill that will have specific knowledge/experience in each role (where applicable):

  • Programming Basics: language syntax, data structures, data manipulation. Plus, specific know-how for the specific developer field.
  • Specific Knowledge : specific know-how and best practices of a given field.
  • Tools: general development tools, GIT, command line…
  • Frameworks: know-how and experience of one or more specific frameworks that will be used for our projects.
  • Best Practices: patterns, principles, tools and general best practices.
  • Problem Solving: autonomously search & find solutions, effective debug skills, help the team
  • Team Communication: ability to communicate effectively and work efficiently with other team members
  • Non technical communication: ability to communicate and work with stakeholders and other teams, understand needs and explain technical topics in an understandable but effective way
  • Project ownership & accountability: own a project responsibility and be entirely accountable and autonomous about its realization and maintenance
  • Mentorship: mentor junior teammates on hard and soft skills

Technical Skill Details

The following table represents an example of the specific requirements of each skill category, by role.

Skill name Front-end specific Back-end specific iOS Specific Android Specific
Programming Basics JavaScript ES6+, TypeScript, HTML, CSS PHP (and/or other), JavaScript, SQL Swift Java (and/or Kotlin), XML (for layout files)
Specific Knowledge Web vitals (performance, accessibility, best practices), SEO, Progressive Web Apps (PWA), state-management, API requests lifecycle, asynchronous development (Promises, async/await), front-end security (CORS, Content Security Policy, XSS prevention), front-end automated tests API design, web servers, security, caching, queues, language-specific automated tests, databases (MySQL, PostgreSQL and/or NoSQL) iOS app architecture patterns (MVC, MVVM, VIPER), Memory management, Multithreading and concurrency, Networking and API consumption, App security and data protection, Deployment, provisioning, and App Store submission process Android app architecture patterns (MVC, MVP, MVVM, MVI), Memory management (Garbage Collection), Multithreading and concurrency (Threads, AsyncTask, Coroutines), Networking and API consumption (REST, JSON, GraphQL), App security and data protection, Deployment, provisioning, and Google Play Store submission process
Tools Yarn, NPM, webpack (and/or Vite), linting tools (ESLint, stylelint), Git, Continuous Integration tools, Vercel Composer (and/or other language-specific package manager), static analysis tools, Git, Continuous Integration tools, Monitoring tools (Datadog…), AWS Xcode, Interface Builder, Swift Package Manager, CocoaPods, Carthage, Instruments, XCTest, Git, Continuous Integration tools (e.g., Jenkins, GitLab CI/CD, CircleCI, Fastlane), Debugging tools (e.g., LLDB, Reveal) Android Studio, Gradle and Maven, Android SDK tools (ADB, Logcat, etc.), Android Profiler, JUnit (unit testing), Git, Continuous Integration tools (e.g., Jenkins, GitLab CI/CD, CircleCI, Firebase Test Lab), Debugging tools (e.g., Stetho, LeakCanary)
Frameworks React, Next.js, Tailwind Laravel RxSwift, UIKit (or SwiftUI for modern app development), HealthKit, Combine Android Jetpack (ViewModel, LiveData, Room, Data Binding, Navigation, WorkManager, etc.), Dependency Injection (Dagger 2, Hilt, Koin), Reactive Programming (RxJava, RxKotlin, LiveData, Kotlin Flow), Networking libraries (Retrofit, OkHttp, Volley)
Best Practices TDD, DDD, UI testing, Localization and internationalization, Performance optimization (code splitting, lazy loading, image optimization), Accessibility and inclusive standards (ARIA, WCAG), responsive design, mobile-first approach, CSS methodologies (BEM, SMACSS, OOCSS) TDD (via Pest, PHPUnit or other specific…), DDD, SOLID, CI/CD, API versioning and documentation TDD, DDD, UI testing, Localization and internationalization, Performance optimization, Design patterns (Singleton, Observer, Factory, Decorator, etc.) TDD, DDD, UI testing (Espresso, Robolectric), Localization and internationalization, Performance optimization, Design patterns (Singleton, Observer, Factory, Decorator, etc.)

Upgrades and Years of Experience

For each level of the following table there will be a minimum number of years of experience in order to unlock the upgrade from a level to another.

Anyway, both when on-boarding new team members and when evaluating upgrades, it will have a relative weight: we will always focus on a good mix of the soft and hard skills defined in the previous sections.


Level Matrix

The following matrix describes skills and expectations for each engineering role level, based on the previous definitions.

LEVEL Programming Basics Specific knowledge Tools Frameworks Best Practices Problem Solving Team Communication Non technical communication Project ownership & accountability Mentorship Min Experience (years)
Junior 1 BASIC BASIC BASIC BASIC ND BASIC BASIC BASIC ND ND 0
Junior 2 GOOD GOOD GOOD GOOD BASIC BASIC BASIC BASIC ND ND 2
Mid 1 GREAT GOOD GOOD GREAT GOOD GOOD GOOD GOOD GOOD BASIC 3
Mid 2 GREAT GREAT GREAT GREAT GOOD GREAT GOOD GOOD GOOD GOOD 6
Senior GREAT GREAT GREAT GREAT GREAT GREAT GREAT GOOD GREAT GREAT 7
Lead GREAT GREAT GREAT GREAT GREAT GREAT GREAT GREAT GREAT GREAT 7

Full-stack Roles

Our philosophy is based on the vision of a small, highly-committed and quality oriented team, where generalists and full-stack developers can give a lot of value.

For this reason, team members with horizontal skills will be able to have custom roles and responsibilities and the chance to have a salary up to 1 bonus level.

About

The official Career Framework of the Fitprime Labs Team

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published