Android Development: Difference between revisions

From Secure Group Wiki
Jump to navigation Jump to search
No edit summary
 
(84 intermediate revisions by 2 users not shown)
Line 1: Line 1:
The Java and Kotlin programming languages are the basis for developing applications for Android. Therefore, it is very important that the Android developers have the dominance of these languages, mainly focused on Object Orientation, data types, and asynchronous executions, because all this knowledge will be transferred to the Android platform.
The heart of the organization is our team of Android Developers. They consistently push the boundaries of encrypted communications in order to maximize Secure Group's apps and deliver the most secure mobile solutions.


In addition, it is important that the Android developers know the libraries and the ecosystem of the Android platform. After all, if the features are not performing accordingly, the application could have several problems.
The developers are in charge of handling the entire software lifecycle, from requirements analysis through prototype creation, wireframe conversion to high-quality code, and feature implementation.


When we speak about Android development, the need for testing is huge because of the application environment's variations, such as the various versions of Android and different screen sizes. Because of that, there are several techniques such as unit tests, integration tests, and interface tests that our Android developers will be required to execute.
Growing within this framework entails cooperating with other developers and producing high-quality apps.


So if you are interested in coding in an Agile environment while developing hard skills and soft skills, your progress in our Career Journey would be:
= Progression =


Level 1: Android Developer </br>
In order to progress in our development path and Level Up or Step Up, our Android Developers must:</br>
Level 2: Senior Android Developer </br>
* Meet the criteria of the Level & Step Chart for the [[Individual_Contributors|Individual Contributors Path]]
Level 3: Android Software Engineer </br>
* Meet the [[Android_Development#KAI_of_the_framework|KAI]] grade of the framework related to each level
Level 4: Senior Android Software Engineer </br>
* Demonstrate proficiency in [[Secure Group Knowledge]]
Level 5: Android System Architect </br>
Level 6: Senior Android System Architect</br>
</br>


=== Introduction ===
== Level A ==
In order to achieve the best of their performance, we will introduce the list of requirements and concepts our Android Developers should focus on to succeed in our business, as well as their remuneration.</br>
The Level A path is destined for employees who still do not possess the skills or proficiency in the whole set of criteria required of Individual Contributors. If during the hiring process we detected that you had the potential to quickly become Level 1, we made you an offer for Level A so you can expect to be provided with coaching, structured tasks with technical challenges, and the opportunity to learn and grow so you can be part of the Management Model as an Individual Contributor.
In order to progress in our Career Journey, they need to:


* Meet the criterias of the [https://careers.securegroup.com/wiki/Career_Journey#General_ICs_Job_Level_Chart General ICs Job Level Chart] & [https://careers.securegroup.com/wiki/Career_Journey#General_ICs_Job_Step_Chart General ICs Job Step Chart]
=== Golden Rules ===
* Meet the specific criterias of the Android Development framework regarding:
- [[#General_Knowledge|General Knowledge]] a list of indispensable softwares, tools, platforms and more, for '''Secure Group''', that they need to know (it can be a little bit out of the scope of their position).</br>
- [[#Specific_Knowledge|Specific Knowledge]]: a list of concepts, tools, software and etc, that are indispensable for them to develop under the scope of their position.</br>
- [[#Secure_Group_Knowledge|Secure Group Knowledge]]: a list of products, company profile and features that they need to know in order to succeed in '''Secure Group'''.</br>
- [[#Basic_IT_Concepts|Basic IT Concepts]]: a list of essential concepts that we consider to be basic for our Frameworks and that we expect employees to master.</br>


''Observation: if there's any requirement that is repeated in the following tables but with different grades, the higher requested proficiency will prevail in the Performance Evaluation.''
To Level Up to become part of the Individual Contributor's Path, the Level A employees must:


=== General Knowledge ===
* Meet the criteria of the [[Individual Contributors]] Level & Step Grid in one year.
To be able to reach Level 3 in our Career Journey there is some General knowledge regarding a variety of subjects that we request from our Android Developers. This means that considering the [[KAI]] grades of proficiency, they will need to score from 4 to 6 in the following items:
* Demonstrate proficiency in the [[Knowledge_Management#Knowledge_Grade_Description|KAI]] of the Android Development framework according to the levels.


{| class="wikitable"
{| class="wikitable"
!colspan="6"|General Knowledge
|-
!rowspan="2"|'''Concepts'''
|[https://en.wikipedia.org/wiki/Balanced_scorecard Balanced Scorecard]
|-
|[https://en.wikipedia.org/wiki/Scrum_(software_development) Scrum]
|-
!rowspan="1"|'''Frameworks'''
|[https://en.wikipedia.org/wiki/Scrum_(software_development) Scrum]
|-
!rowspan="3"|'''Languages'''
|[https://en.wikipedia.org/wiki/Cascading_Style_Sheets CSS]
|-
|[https://en.wikipedia.org/wiki/HTML HTML]
|-
|[https://en.wikipedia.org/wiki/JavaScript JavaScript]
|-
!rowspan="20"|'''Softwares/Tools/Platforms - Usage'''
|[https://en.wikipedia.org/wiki/Bamboo_(software) Atlassian Bamboo]
|-
|[https://en.wikipedia.org/wiki/Bitbucket Atlassian Bitbucket]
|-
|[https://en.wikipedia.org/wiki/Confluence_(software) Atlassian Confluence]
|-
|[https://en.wikipedia.org/wiki/Jira_(software) Atlassian Jira]
|-
|[https://en.wikipedia.org/wiki/BambooHR BambooHR]
|-
|[https://combain.com/ Combain]
|-
|[https://count.ly/ Countly]
|-
|[https://crowdin.com/ Crowdin]
|-
|[https://en.wikipedia.org/wiki/Kibana Elastic Kibana]
|-
||[https://www.elastic.co/products/logstash Elastic Logstash]
|-
|[https://www.gerritcodereview.com/ Gerrit]
|-
|[https://en.wikipedia.org/wiki/Openfire Ingnite Realtime Openfire]
|-
|[https://en.wikipedia.org/wiki/Instabug Instabug]
|-
|[https://en.wikipedia.org/wiki/Kamailio Kamailio]
|-
|[https://en.wikipedia.org/wiki/Kubernetes Kubernetes]
|-
|[https://www.libib.com/ Libib]
|-
|[https://openstf.io/ OpenSTF]
|-
|-
|[https://www.small-improvements.com/ Small Improvements]
! Level A Framework !! Description
|-
|-
|[https://unwiredlabs.com/ Unwired Labs]
|<center>Android Development ||  
|-
'''Must have:</br>'''
|[https://thycotic.com/ Thycotic Passwordbox]
* Experience with Java or Kotlin, Android Studio, and Git
|-
'''Good to have:'''
!rowspan="6"|'''Softwares/Tools/Platforms - Configuration'''
* Experience with XML
|[https://en.wikipedia.org/wiki/Bitbucket Atlassian Bitbucket]
* Experience with RESTful APIs and Android components
|-
* Knowledge of Scrum
|[https://en.wikipedia.org/wiki/Kibana Elastic Kibana]
* Experience with Android Developer Tools and Android SDK
|-
* Experience with libraries: rxJava/rxAndroid, Retrofit, Glide, Dagger 2, EventBus, Butterknife, Espresso, Mokito
|[https://en.wikipedia.org/wiki/Elasticsearch Elasticsearch]
* Knowledge of Design patterns: MVP, MVVM
|-
* Knowledge of software development practices: TDD, Continuous integration, Code review
|[https://www.gerritcodereview.com/ Gerrit]
* Experience with Jira and Confluence
|-
|[https://en.wikipedia.org/wiki/Openfire Ignite Realtime Openfire]
|-
|[https://en.wikipedia.org/wiki/Kamailio Kamailio]
|-
!rowspan="1"|'''Languages (Idioms)'''
|Advanced English
|}
|}


=== Specific Knowledge ===
</br>
To be able to reach Level 3 in our Career Journey there is some technical knowledge we request from our Android Developers. This means that, considering the [[KAI]] grades of proficiency,they will need to score from 4 to 6 in the following items:


<div class="center">
= Salary Grid =
All mentioned salary ranges represent the monthly income in Bulgarian Lev after taxes and deductions.
<div class="center">
{| class="wikitable"
{| class="wikitable"
!colspan="6"|Specific Knowledge
!colspan="6"|Android Development
|-
|-
!rowspan="12"|'''Concepts'''
!A Path
|Activities, Services, Content Providers and Broadcast Receivers, EventBus
|colspan="4"|2.500 - 3.500
|}
</br>
{| class="wikitable"
!colspan="6"|Android Development
|-
|-
|[https://en.wikipedia.org/wiki/Algorithm#Design Algorithm design]
!rowspan="11"|Level
|-
|-
|[https://en.wikipedia.org/wiki/Application_programming_interface API concepts]
!rowspan="2"|Individual Contributor Path
!colspan="4"|Step
|-
|-
|[https://en.wikipedia.org/wiki/Database Database]
!1
!2
!3
!4
|-
|-
|Design Patterns: [https://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93presenter MVP], [https://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93viewmodel MVVM], [https://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller MVC]
!1
|6.000
|6.150
|6.300
|6.450
|-
|-
|[https://en.wikipedia.org/wiki/Responsive_web_design Responsive Designs]
!2
|7.000
|7.150
|7.300
|7.450
|-
|-
|RxJava/RxAndroid
!3
|8.000
|8.150
|8.300
|8.450
|-
|-
|[https://en.wikipedia.org/wiki/Data_store Data store]
!4
|-
|9.000
|[https://en.wikipedia.org/wiki/Test-driven_development TDD]
|9.150
|-
|9.300
|[https://en.wikipedia.org/wiki/Unit_testing Unit testing]
|9.450
|-
|User input
|-
|[https://en.wikipedia.org/wiki/Version_control Version Control] via Git
|-
!rowspan="3"|'''Frameworks'''
|[https://developer.android.com/topic/libraries/architecture Android Components]
|-
|[https://en.wikipedia.org/wiki/JUnit JUnit]
|-
|[https://en.wikipedia.org/wiki/Android_software_development#SDK The Android SDK]
|-
!rowspan="5"|'''Languages'''
|[https://en.wikipedia.org/wiki/Command-line_interface Command Line]
|-
|[https://en.wikipedia.org/wiki/Gradle Gradle]
|-
|[https://en.wikipedia.org/wiki/Kotlin_(programming_language) Kotlin]
|-
|[https://en.wikipedia.org/wiki/SQL SQL]
|-
|[https://en.wikipedia.org/wiki/XML XML]
|-
!rowspan="10"|'''Libraries'''
|[https://dagger.dev/ Dagger]
|-
|[https://en.wikipedia.org/wiki/Butter_knife Jake Wharton Butter Knife]
|-
|[https://en.wikipedia.org/wiki/Linphone Linphone]
|-
|[https://docs.microsoft.com/en-us/exchange/client-developer/exchange-web-services/ews-applications-and-the-exchange-architecture Microsoft Exchange web services (EWS)]
|-
|[https://en.wikipedia.org/wiki/Mockito Mockito], [https://developer.android.com/training/testing/espresso Espresso]
|-
|[https://square.github.io/picasso/ Picasso], [https://en.wikipedia.org/wiki/Glide_(software) Glide], [https://frescolib.org/ Fresco], [https://github.com/nostra13/Android-Universal-Image-Loader Imageloader]
|-
|[https://en.wikipedia.org/wiki/Retrofitting Retrofitting]
|-
|[https://en.wikipedia.org/wiki/Smack_(software) SMACK]
|-
|[https://www.woodsolutions.com.au/articles/timber-solutions-software WoodSolutions Timber]
|-
|[https://www.zetetic.net/sqlcipher/ Zetetic SQL Cipher]
|-
!rowspan="2"|'''Protocols'''
|[https://en.wikipedia.org/wiki/Session_Initiation_Protocol SIP protocol]
|-
|[https://en.wikipedia.org/wiki/XMPP XMPP]
|-
!rowspan="3"|'''Softwares/Tools/Platforms - Configuration'''
|[https://en.wikipedia.org/wiki/Bamboo_(software) Atlassian Bamboo]
|-
|[https://en.wikipedia.org/wiki/Android_Studio Android Studio]
|-
|[https://en.wikipedia.org/wiki/Apache_Tomcat Apache Tomcat]
|-
!rowspan="3"|'''Softwares/Tools/Platforms - Usage'''
|[https://en.wikipedia.org/wiki/Bamboo_(software) Atlassian Bamboo]
|-
|[https://en.wikipedia.org/wiki/Android_Studio Android Studio]
|-
|-
||[https://en.wikipedia.org/wiki/Appium Appium]
!5
|10.000
|10.150
|10.300
|10.450
|-
|-
!rowspan="1"|'''Softwares/Tools/Platforms - Server Administration'''
!6
|[https://en.wikipedia.org/wiki/Android_Studio Android Studio]
|11.000
|11.150
|11.300
|11.450
|}
|}
  </div>
</div>


=== Secure Group Knowledge ===
= [[Knowledge_Management#Knowledge_Accountability_Index|KAI]] of the framework =
To be able to reach Level 3 in our Career Journey there is some specific knowledge from our company that we request from our Android Developers. This means that considering the [[KAI]] grades, they will need to score a minimum proficiency considering Secure Group Knowledge in a Documentation level in the following perspectives:
== Extensive Knowledge ==
 
  </div>
{| class="wikitable"
  <div class="box-content framework">
!colspan="1"|Secure Group Knowledge
    <div class="center">
!rowspan="1"|What's Expected
{| class="wikitable" style="text-align:center; font-size:11px; font-family:Arial, Helvetica, sans-serif !important;; background-color:#deebff; color:#222;"
!rowspan="1"|Impact
|- style="font-weight:bold; vertical-align:middle; background-color:#EAECF0; color:#172B4D;"
!rowspan="1"|Product
! rowspan="2" | Type
!colspan="1"|Minimum Grade
! rowspan="2" | Knowledge Description
! colspan="6" | Minimum Grade to acquire Level X
|- style="font-weight:bold; vertical-align:middle; background-color:#F4F5F7; color:#172B4D;"
| Level 1
| Level 2
| Level 3
| Level 4
| Level 5
| Level 6
|-
|-
!rowspan="6"|User Documentation
| rowspan="4" style="vertical-align:middle; font-weight:bold; background-color:#F4F5F7;" | Frameworks
|rowspan="6"|Good, user-level knowledge regarding the product and its functionalities. From the user documentation, all employees across the company are required to be well aware of our solutions’ core features and functions such as the Password Advisor or how to send an automatic crash report.
| style="background-color:#F4F5F7; color:#36B; text-align:left;" | [https://source.android.com/ AOSP]
|rowspan="6"|This knowledge helps us facilitate a user-centric approach internally, which we believe is essential to develop our business and solutions. The user documentation helps team members understand user behavior and needs more thoroughly and feel the impact of their everyday efforts.
| style="vertical-align:middle; background-color:#e3fcef;" | Practical application
|Secure OS
| style="vertical-align:middle; background-color:#e3fcef;" | Practical application
|4
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
|-
|-
|SAS
| style="background-color:#F4F5F7; color:#36B; text-align:left;" | [https://en.wikipedia.org/wiki/JUnit JUnit]
|4
| style="vertical-align:middle; background-color:#e3fcef;" | Practical application
| style="vertical-align:middle; background-color:#e3fcef;" | Practical application
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
|-
|-
|Secure Chat
| style="background-color:#F4F5F7; color:#36B; text-align:left;" | [https://en.wikipedia.org/wiki/Scrum_(software_development) Scrum]
|4
| style="vertical-align:middle; background-color:#fffae5;" | Limited experience
| style="vertical-align:middle; background-color:#e3fcef;" | Practical application
| style="vertical-align:middle; background-color:#e3fcef;" | Practical application
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
|- style="background-color:#e3fcef;"
| style="background-color:#F4F5F7; color:#36B; text-align:left;" | [https://en.wikipedia.org/wiki/Agile_software_development Agile]
| style="vertical-align:middle;" | Practical application
| style="vertical-align:middle;" | Practical application
| style="vertical-align:middle;" | Practical application
| style="vertical-align:middle; background-color:#deebff;" | Applied theory
| style="vertical-align:middle; background-color:#deebff;" | Applied theory
| style="vertical-align:middle; background-color:#deebff;" | Applied theory
|-
|-
|Secure Email
| rowspan="7" style="vertical-align:middle; font-weight:bold; background-color:#F4F5F7;" | Protocols
|4
| style="background-color:#F4F5F7; color:#36B; text-align:left;" | [https://en.wikipedia.org/wiki/SIP_(software) SIP or any VoIP protocols]
| style="vertical-align:middle; background-color:#e3fcef;" | Practical application
| style="vertical-align:middle; background-color:#e3fcef;" | Practical application
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
|-
|-
|Secure Vault
| style="background-color:#F4F5F7; color:#36B; text-align:left;" | [https://en.wikipedia.org/wiki/XMPP XMPP or any messaging protocols]
|4
| style="vertical-align:middle; background-color:#e3fcef;" | Practical application
| style="vertical-align:middle; background-color:#e3fcef;" | Practical application
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
|-
|-
|Secure Manager
| style="background-color:#F4F5F7; color:#36B; text-align:left;" | [https://en.wikipedia.org/wiki/ZRTP ZRTP/RTP]
|4
| style="vertical-align:middle; background-color:#e3fcef;" | Practical application
| style="vertical-align:middle; background-color:#e3fcef;" | Practical application
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
|-
|-
!rowspan="6"|Sales Documentation
| style="background-color:#F4F5F7; color:#36B; text-align:left;" | [https://en.wikipedia.org/wiki/Pretty_Good_Privacy PGP]
|rowspan="6"|Employees should gain significant knowledge regarding the business side of '''Secure Group'''. They need to be aware of commonly used concepts in our day-to-day activities such as our business and distribution model, value proposition, selling prices, key selling points, and target audience.
| style="vertical-align:middle; background-color:#e3fcef;" | Practical application
|rowspan="6"|The information in the Sales Documentation supports employees in their daily routine. It conveys the overall business vision within the company. This documentation contributes to making employees aware of how our solutions are distributed, who are our key partners and target market to know exactly the people towards whom team members’ efforts should be aimed. Alignment on company-wide priorities is also achieved through clear communication of our value proposition and key selling points, helping everyone understand the things that matter most.
| style="vertical-align:middle; background-color:#e3fcef;" | Practical application
|Secure OS
| style="vertical-align:middle;" | Applied theory
|3
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
|-
|-
|SAS
| style="background-color:#F4F5F7; color:#36B; text-align:left;" | [https://en.wikipedia.org/wiki/Off-the-Record_Messaging OTR]
|3
| style="vertical-align:middle; background-color:#e3fcef;" | Practical application
| style="vertical-align:middle; background-color:#e3fcef;" | Practical application
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
|-
|-
|Secure Chat
| style="background-color:#F4F5F7; color:#36B; text-align:left;" | [https://en.wikipedia.org/wiki/OMEMO OMEMO]
|3
| style="vertical-align:middle; background-color:#e3fcef;" | Practical application
| style="vertical-align:middle; background-color:#e3fcef;" | Practical application
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
|-
|-
|Secure Email
| style="background-color:#F4F5F7; color:#36B; text-align:left;" | [https://en.wikipedia.org/wiki/Transport_Layer_Security SSL]
|3
| style="vertical-align:middle; background-color:#e3fcef;" | Practical application
| style="vertical-align:middle; background-color:#e3fcef;" | Practical application
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
|-
|-
|Secure Vault
| rowspan="11" style="vertical-align:middle; font-weight:bold; background-color:#F4F5F7;" | Programming languages
|3
| style="background-color:#F4F5F7; color:#36B; text-align:left;" | [https://www.gnu.org/software/bash/ Bash/Shell]
| style="vertical-align:middle; background-color:#e3fcef;" | Practical application
| style="vertical-align:middle; background-color:#e3fcef;" | Practical application
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
|-
|-
|Secure Manager
| style="background-color:#F4F5F7; color:#36B; text-align:left;" | [https://en.wikipedia.org/wiki/C%2B%2B C/C++]
|3
| style="vertical-align:middle; background-color:#fffae5;" | Limited experience
| style="vertical-align:middle; background-color:#fffae5;" | Limited experience
| style="vertical-align:middle; background-color:#e3fcef;" | Practical application
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
|-
|-
!rowspan="6"|Support Documentation
| style="background-color:#F4F5F7; color:#36B; text-align:left;" | [https://en.wikipedia.org/wiki/Cascading_Style_Sheets CSS]
|rowspan="6"|People within the company need to be aware of commonly occurring problems with our solutions. From the Support Documentation, employees should also extract general level knowledge regarding support processes, the issues that we’re currently having product-wise, and the approach to troubleshooting them.
| style="vertical-align:middle; background-color:#fffae5;" | Limited experience
|rowspan="6"|o The Support Documentation helps employees understand short-term priorities more clearly and communicate more openly why they’re needed. It also gives them general knowledge of how to spot and report a problem, which helps us facilitate a company-wide contribution to product development. Last but by no means least, it helps team members understand customers pains and behavioral patterns to strengthen our user-centric approach.
| style="vertical-align:middle; background-color:#fffae5;" | Limited experience
|Secure OS
| style="vertical-align:middle; background-color:#e3fcef;" | Practical application
|3
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
|-
|-
|SAS
| style="background-color:#F4F5F7; color:#36B; text-align:left;" | [http://groovy-lang.org/index.html Groovy]
|3
| style="vertical-align:middle; background-color:#e3fcef;" | Practical application
| style="vertical-align:middle; background-color:#e3fcef;" | Practical application
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
|-
|-
|Secure Chat
| style="background-color:#F4F5F7; color:#36B; text-align:left;" | [https://en.wikipedia.org/wiki/HTML HTML]
|3
| style="vertical-align:middle; background-color:#fffae5;" | Limited experience
| style="vertical-align:middle; background-color:#fffae5;" | Limited experience
| style="vertical-align:middle; background-color:#e3fcef;" | Practical application
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
|-
|-
|Secure Email
| style="background-color:#F4F5F7; color:#36B; text-align:left;" | [https://en.wikipedia.org/wiki/Java Java]
|3
| style="vertical-align:middle; background-color:#fffae5;" | Limited experience
| style="vertical-align:middle; background-color:#fffae5;" | Limited experience
| style="vertical-align:middle; background-color:#e3fcef;" | Practical application
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
|-
|-
|Secure Vault
| style="background-color:#F4F5F7; color:#36B; text-align:left;" | [https://en.wikipedia.org/wiki/JavaScript JavaScript]
|3
| style="vertical-align:middle; background-color:#fffae5;" | Limited experience
| style="vertical-align:middle; background-color:#fffae5;" | Limited experience
| style="vertical-align:middle; background-color:#e3fcef;" | Practical application
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
|-
|-
|Secure Manager
| style="background-color:#F4F5F7; color:#36B; text-align:left;" | [https://en.wikipedia.org/wiki/Kotlin_(programming_language) Kotlin]
|3
| style="vertical-align:middle; background-color:#e3fcef;" | Practical application
| style="vertical-align:middle; background-color:#e3fcef;" | Practical application
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
|-
|-
!rowspan="6"|Functional Documentation
| style="background-color:#F4F5F7; color:#36B; text-align:left;" | [https://en.wikipedia.org/wiki/Python_(programming_language) Python]
|rowspan="6"|Through the Functional Documentation, employees should get a thorough understanding of the solutions and their multiple features. People that work closely with the products must understand exactly how they function, how users interact with them, how to configure different settings, and what’s the expected behavior of different software solutions.
| style="vertical-align:middle; background-color:#fffae5;" | Limited experience
|rowspan="6"|o The information in the Functional Documentation helps employees whose work is closely connected with our solutions, to gain significant in-depth knowledge into their functionalities that far exceeds users‘ understanding. Such thorough product expertise helps us remain objective, evaluate market data more adequately, and constantly increase our internal expertise.
| style="vertical-align:middle; background-color:#e3fcef;" | Practical application
|Secure OS
| style="vertical-align:middle;" | Applied theory
|4
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
|-
|-
|SAS
| style="background-color:#F4F5F7; color:#36B; text-align:left;" | [https://en.wikipedia.org/wiki/SQL SQL]
|4
| style="vertical-align:middle; background-color:#e3fcef;" | Practical application
| style="vertical-align:middle; background-color:#e3fcef;" | Practical application
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
|-
|-
|Secure Chat
| style="background-color:#F4F5F7; color:#36B; text-align:left;" | [https://en.wikipedia.org/wiki/XML XML]
|4
| style="vertical-align:middle; background-color:#e3fcef;" | Practical application
| style="vertical-align:middle; background-color:#e3fcef;" | Practical application
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
|-
|-
|Secure Email
| rowspan="16" style="vertical-align:middle; font-weight:bold; background-color:#F4F5F7;" | Libraries
|4
| style="background-color:#f4f5f7; color:#36B; text-align:left;" | [https://developer.android.com/jetpack/androidx Android X]
| style="vertical-align:middle; background-color:#e3fcef;" | Practical application
| style="vertical-align:middle; background-color:#e3fcef;" | Practical application
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
|-
|-
|Secure Vault
| style="background-color:#F4F5F7; color:#36B; text-align:left;" | [https://dagger.dev/dev-guide/android.html Dagger 2]
|4
| style="vertical-align:middle; background-color:#e3fcef;" | Practical application
| style="vertical-align:middle; background-color:#e3fcef;" | Practical application
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
|-
|-
|Secure Manager
| style="background-color:#F4F5F7; color:#36B; text-align:left;" | [https://developer.android.com/training/testing/espresso Espresso]
|4
| style="vertical-align:middle; background-color:#e3fcef;" | Practical application
| style="vertical-align:middle; background-color:#e3fcef;" | Practical application
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
|-
|-
!rowspan="6"|Technical Documentation
| style="background-color:#F4F5F7; color:#36B; text-align:left;" | [https://greenrobot.org/eventbus/ EventBus]
|rowspan="6"|Employees concerned with the Technical Documentation and more concretely - software development, must gain complete mastery over all solutions. Such people are regarded as technical experts and need to be well aware of data structures, relational databases, algorithms, programming languages, models, etc.
| style="vertical-align:middle; background-color:#e3fcef;" | Practical application
|rowspan="6"|The Technical Documentation is used to make sure people that are technically involved in product development have the required knowledge to perform their day-to-day tasks, optimize our solutions more easily, and support other teams with their in-depth expertise.
| style="vertical-align:middle; background-color:#e3fcef;" | Practical application
|Secure OS
| style="vertical-align:middle;" | Applied theory
|4
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
|-
|-
|SAS
| style="background-color:#F4F5F7; color:#36B; text-align:left;" | [https://developer.android.com/kotlin/coroutines?gclid=CjwKCAiA6aSABhApEiwA6Cbm__HCyPN3oUxAYvPEmqwt2AczHZ0b4I2ibfqqUwbf4noARmNwGkebmBoC4XIQAvD_BwE&gclsrc=aw.ds Kotlin Coroutines]
|4
| style="vertical-align:middle; background-color:#e3fcef;" | Practical application
| style="vertical-align:middle; background-color:#e3fcef;" | Practical application
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
|-
|-
|Secure Chat
| style="background-color:#F4F5F7; color:#36B; text-align:left;" | [https://en.wikipedia.org/wiki/Butter_knife Jake Wharton Butter Knife]
|4
| style="vertical-align:middle; background-color:#e3fcef;" | Practical application
| style="vertical-align:middle; background-color:#e3fcef;" | Practical application
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
|-
|-
|Secure Email
| style="background-color:#F4F5F7; color:#36B; text-align:left;" | [https://en.wikipedia.org/wiki/Linphone Linphone or any SPI SDK]
|4
| style="vertical-align:middle; background-color:#fffae5;" | Limited experience
| style="vertical-align:middle; background-color:#e3fcef;" | Practical application
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
|-
|-
|Secure Vault
| style="background-color:#F4F5F7; color:#36B; text-align:left;" | [https://docs.microsoft.com/en-us/exchange/client-developer/exchange-web-services/ews-applications-and-the-exchange-architecture Microsoft Exchange web services (EWS)]
|4
| style="vertical-align:middle; background-color:#fffae5;" | Limited experience
| style="vertical-align:middle; background-color:#e3fcef;" | Practical application
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
|-
|-
|Secure Manager
| style="background-color:#F4F5F7; color:#36B; text-align:left;" | [https://en.wikipedia.org/wiki/Mockito Mockito]
|4
| style="vertical-align:middle; background-color:#e3fcef;" | Practical application
| style="vertical-align:middle; background-color:#e3fcef;" | Practical application
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
|-
|-
|}
| style="background-color:#F4F5F7; color:#36B; text-align:left;" | [https://square.github.io/okhttp/ OkHttp]
 
| style="vertical-align:middle; background-color:#e3fcef;" | Practical application
=== Basic IT Concepts ===
| style="vertical-align:middle; background-color:#e3fcef;" | Practical application
To be able to reach Level 3 in our Career Journey there are some basic IT concepts we expect the Android Developers to master. This means that considering the [[KAI]] grades of proficiency, they will need to score from 4 to 6 in the following items:
| style="vertical-align:middle;" | Applied theory
 
| style="vertical-align:middle;" | Applied theory
{| class="wikitable"
| style="vertical-align:middle;" | Applied theory
!colspan="3"|Basic IT Concepts
| style="vertical-align:middle;" | Applied theory
|-
|-
!rowspan="1"|'''Category'''
| style="background-color:#F4F5F7; color:#36B; text-align:left;" | [https://square.github.io/picasso/ Picasso/Glide/Fresco/Imageloader]
!rowspan="1"|'''Concept'''
| style="vertical-align:middle; background-color:#e3fcef;" | Practical application
!rowspan="1"|'''Description'''
| style="vertical-align:middle; background-color:#e3fcef;" | Practical application
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
|-
|-
!rowspan="17"|'''System Administration'''
| style="background-color:#F4F5F7; color:#36B; text-align:left;" | [https://square.github.io/retrofit/ Retrofit]
|Linux server set up
| style="vertical-align:middle; background-color:#e3fcef;" | Practical application
|
| style="vertical-align:middle; background-color:#e3fcef;" | Practical application
* How to install a Linux server/workstation distribution
| style="vertical-align:middle;" | Applied theory
* How to prepare a coding environment on a workstation
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
|- style="vertical-align:middle;"
| style="background-color:#F4F5F7; text-align:left;" | RxJava/RxAndroid/RxKotlin
| style="background-color:#e3fcef;" | Practical application
| style="background-color:#e3fcef;" | Practical application
| Applied theory
| Applied theory
| Applied theory
| Applied theory
|-
|-
|Remote servers with SSH connection
| style="background-color:#F4F5F7; color:#36B; text-align:left;" | [https://github.com/igniterealtime/Smack SMACK or any XMPP client library]
|
| style="vertical-align:middle; background-color:#fffae5;" | Limited experience
* How to set up SSH
| style="vertical-align:middle; background-color:#e3fcef;" | Practical application
* How to connect to a server
| style="vertical-align:middle;" | Applied theory
* How to use a key to connect to SSH
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
|-
|-
|Users management
| style="background-color:#F4F5F7; color:#36B; text-align:left;" | [https://github.com/JakeWharton/timber Timber]
|
| style="vertical-align:middle; background-color:#e3fcef;" | Practical application
* How to create, remove and modify users on a Unix system
| style="vertical-align:middle; background-color:#e3fcef;" | Practical application
* How groups work
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
|-
|-
|File permissions
| style="background-color:#F4F5F7; color:#36B; text-align:left;" | [https://www.zetetic.net/sqlcipher/ Zetetic SQL Cipher]
|
| style="vertical-align:middle; background-color:#e3fcef;" | Practical application
* How to grant/remove different levels of access to different parts of the file system with chmod and chown.
| style="vertical-align:middle; background-color:#e3fcef;" | Practical application
* How to read files permission
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
|-
|-
|Init systems
| rowspan="19" style="vertical-align:middle; font-weight:bold; background-color:#F4F5F7;" | Softwares/Tools/Platforms
|
| style="background-color:#F4F5F7; color:#36B; text-align:left;" | [https://en.wikipedia.org/wiki/Bitbucket Atlassian Bitbucket or any code management tool]
* How to configure Init system to start/stop processes at specified run levels
| style="vertical-align:middle; background-color:#fffae5;" | Limited experience
* How to start and stop services
| style="vertical-align:middle; background-color:#fffae5;" | Limited experience
| style="vertical-align:middle; background-color:#e3fcef;" | Practical application
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
|-
|-
|Firewall configuration
| style="background-color:#F4F5F7; color:#36B; text-align:left;" | [https://en.wikipedia.org/wiki/Bamboo_(software) Atlassian Bamboo or Jenkins]
|
| style="vertical-align:middle; background-color:#e3fcef;" | Limited experience
* Understand the need for a firewall
| style="vertical-align:middle; background-color:#e3fcef;" | Practical application
* How to limit inbound network traffic to specific ports
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
|-
|-
|Basic monitoring
| style="background-color:#F4F5F7; color:#36B; text-align:left;" | [https://en.wikipedia.org/wiki/Android_Studio Android Studio]
|
| style="vertical-align:middle; background-color:#e3fcef;" | Practical application
* Understand the free memory, disk usage, load average and other metrics for server performance
| style="vertical-align:middle; background-color:#e3fcef;" | Practical application
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
|-
|-
|Package manager
| style="background-color:#F4F5F7; color:#36B; text-align:left;" | [https://en.wikipedia.org/wiki/Appium Appium/Selenium]
|
| style="vertical-align:middle; background-color:#e3fcef;" | Practical application
* How to install software packages and how to update them
| style="vertical-align:middle; background-color:#e3fcef;" | Practical application
|-
| style="vertical-align:middle;" | Applied theory
|Web Server
| style="vertical-align:middle;" | Applied theory
|
| style="vertical-align:middle;" | Applied theory
* How to set up a static web server
| style="vertical-align:middle;" | Applied theory
* How to Set up a LAMP server
|- style="vertical-align:middle;"
|-
| style="background-color:#F4F5F7; text-align:left;" | Billing Systems
|Static file deployment
| style="background-color:#e3fcef;" | Practical application
|
| style="background-color:#e3fcef;" | Practical application
* Understand some automated method of updating: using rsync to keep the files up to date or similar
| Applied theory
|-
| Applied theory
|Basic Docker management
| Applied theory
|
| Applied theory
* What is Docker engine and what is a docker controller
* How to set up a basic docker environment on a workstation
* How to create, RUN, Pause, Unpause, Start, Stop Restart, Kill container
|-
|Active Directory
|
* What are the major features in Active Directory Domain Services (trees, trust, forest)
* How to create a user, add a mailbox, etc
* How to create a Group policy and how to enforce it
* How to troubleshoot and configure Windows 2008 R2 - 2012 R2
* How to use the administration tools (Active Directory, DNS etc)
|-
|Storage
|
* What is NFS, ISCSI, Samba
* How to share folders in windows
* What is a Security Descriptor
* What is Access Control List (ACL)
* What is a parent directory and a child directory
|-
|Email Server
|
* What's the difference between a transaction e-mail and an email API
* What's the relation between Simple Mail Transfer Protocol (SMTP), Mail Transfer Agent (MTA), Domain Name System (DNS), Mail Exchanger (MX), Post Office Protocol (POP),  Internet Message Access Protocol (IMAP)
* What are the SPAM rules and how to use SPAM engines
|-
|PKI
|
* What's a PGP universal server
* What is a Certificate and a Certificate Authority
* What's the difference between a Public Key and a Private Key and what are they used for
* How to configure a web server certificate with SSL (port443)
* How digital signatures work and how it's related to the authentication
* What's SSL, TLS, PGP, OTR, OMEMO
|-
|Reading logs
|
* What are the basic network events: Intrusion detection, packet blocked or allowed, access log
* How to read the MSexchange tracking log and understand an event
* How to read the PGP server log and understand an event
* How to read Apache PHP log and understand an event
* How to read, request and identify the problem in the Web Server or API server log
|-
|Virtualization
|
* What is VMware Server/Desktop application and how it works
* How to replicate VMs
* How to restart VMs
|-
!rowspan="4"|System Administration - Day to Day Ops
|-
|Day to Day Ops
|
* How to set up a network printer and put it in the correct driver into a print server
* How to set up a working station and advanced drivers configuration
* How to set up a network printer and put it and the correct driver into a print server
|-
|Commands
|
* What are the universal keyboard commands for operating systems
* What is a command line
* What are the most common CMD commands and what are they used for (Ipconfig, Ping, Dir, Nslookup, Tracert)
* What are the most common PowerShell commands and what are they used for
|-
|Hardware
|
* Understand advanced hardware: terminology, troubleshoot and the relation between them
|-
!rowspan="4"|'''Networking concepts'''
|Network concepts
|
* What's the OSI model and how to use it
* What is DHCP
* What is DNS and the type of records as well as how to edit and check them
* What are the differences and relations between Internal DNS and External DNS
* What is a VLAN (from a VERY high level)
* What is TCP and IP
* What are the differences between UDP and TCP and when to use each one of them
|-
|Basic firewall concept
|
* What are the NAT rules
* What is Port forwarding used for
* How to set up port forwarding
|-
|Basic Traffic Sniffing
|
* How to set up Wireshark on a workstation and connect to a device
* How to use a proxy to intercept traffic
|-
|Basic Networking Command
|
* What are the most common CMD commands and what are they used for (Ipconfig, Ping, Dir, Nslookup, Tracert)
* How to use web tools: mxtools, visual trace route, dnstools, etc…
|}
 
=== Salary Grid ===
{| class="wikitable"
!colspan="3"|Android Development
!colspan="4"|Step
|-
!rowspan="11"|Level
|-
!Individual Contributor Path
!Management Path
!1
!2
!3
!4
|-
|-
!1: Android Developer
| style="background-color:#F4F5F7; color:#36B; text-align:left;" | [https://crowdin.com/ Crowdin or any translation management system]
!-
| style="vertical-align:middle; background-color:#fffae5;" | Limited experience
|4.500 lv
| style="vertical-align:middle; background-color:#e3fcef;" | Practical application
|4.650 lv
| style="vertical-align:middle; background-color:#e3fcef;" | Practical application
|4.800 lv
| style="vertical-align:middle;" | Applied theory
|4.950 lv
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
|-
|-
!2: Sr. Android Developer
| style="background-color:#F4F5F7; color:#36B; text-align:left;" | [https://www.docker.com/ Docker]
!-
| style="vertical-align:middle; background-color:#fffae5;" | Limited experience
|5.500 lv
| style="vertical-align:middle; background-color:#e3fcef;" | Practical application
|5.650 lv
| style="vertical-align:middle; background-color:#e3fcef;" | Practical application
|5.800 lv
| style="vertical-align:middle;" | Applied theory
|5.950 lv
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
|-
|-
!3: Android Software Engineer
| style="background-color:#F4F5F7; color:#36B; text-align:left;" | [https://www.elastic.co/kibana Elastic Kibana]
!Manager
| style="vertical-align:middle; background-color:#fffae5;" | Limited experience
|6.500 lv
| style="vertical-align:middle; background-color:#e3fcef;" | Practical application
|6.550 lv
| style="vertical-align:middle; background-color:#e3fcef;" | Practical application
|6.800 lv
| style="vertical-align:middle;" | Applied theory
|6.950 lv
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
|-
|-
!4: Sr. Android Software Engineer
| style="background-color:#F4F5F7; color:#36B; text-align:left;" | [https://firebase.google.com/ Firebase]
!Sr. Manager
| style="vertical-align:middle; background-color:#fffae5;" | Limited experience
|7.500 lv
| style="vertical-align:middle; background-color:#e3fcef;" | Practical application
|7.650 lv
| style="vertical-align:middle; background-color:#e3fcef;" | Practical application
|7.800 lv
| style="vertical-align:middle;" | Applied theory
|7.950 lv
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
|- style="background-color:#e3fcef;"
| style="background-color:#F4F5F7; color:#36B; text-align:left;" | [https://www.gerritcodereview.com/ Gerrit]
| style="vertical-align:middle;" | Limited experience
| style="vertical-align:middle;" | Practical application
| style="vertical-align:middle;" | Practical application
| style="vertical-align:middle; background-color:#deebff;" | Applied theory
| style="vertical-align:middle; background-color:#deebff;" | Applied theory
| style="vertical-align:middle; background-color:#deebff;" | Applied theory
|-
|-
!5: Android System Architect
| style="background-color:#F4F5F7; color:#36B; text-align:left;" | [https://gradle.org/ Gradle]
!Head of
| style="vertical-align:middle; background-color:#fffae5;" | Limited experience
|8.500 lv
| style="vertical-align:middle; background-color:#e3fcef;" | Practical application
|8.650 lv
| style="vertical-align:middle; background-color:#e3fcef;" | Practical application
|8.800 lv
| style="vertical-align:middle;" | Applied theory
|8.950 lv
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
|-
|-
!6: Sr. Android System Architect
| style="background-color:#F4F5F7; color:#36B; text-align:left;" | [https://en.wikipedia.org/wiki/Git?wprov=srpw1_0 Git or SVN]
!Director
| style="vertical-align:middle; background-color:#e3fcef;" | Practical application
|9.500 lv
| style="vertical-align:middle; background-color:#e3fcef;" | Practical application
|9.650 lv
| style="vertical-align:middle; background-color:#e3fcef;" | Practical application
|9.800 lv
| style="vertical-align:middle;" | Applied theory
|9.950 lv
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
|-
|-
!-
| style="background-color:#F4F5F7; color:#36B; text-align:left;" | [https://en.wikipedia.org/wiki/Openfire Ignite Realtime Openfire or any XMPP server]
!Sr. Director
| style="vertical-align:middle; background-color:#fffae5;" | Limited experience
|10.500 lv
| style="vertical-align:middle; background-color:#e3fcef;" | Practical application
|10.900 lv
| style="vertical-align:middle; background-color:#e3fcef;" | Practical application
|11.300 lv
| style="vertical-align:middle;" | Applied theory
|11.700 lv
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
|- style="background-color:#e3fcef;"
| style="background-color:#F4F5F7; color:#36B; text-align:left;" | [https://www.jetbrains.com/idea/ IntelliJ Idea]
| style="vertical-align:middle;" | Limited experience
| style="vertical-align:middle;" | Practical application
| style="vertical-align:middle;" | Practical application
| style="vertical-align:middle; background-color:#deebff;" | Applied theory
| style="vertical-align:middle; background-color:#deebff;" | Applied theory
| style="vertical-align:middle; background-color:#deebff;" | Applied theory
|-
|-
!-
| style="background-color:#F4F5F7; color:#36B; text-align:left;" | [https://en.wikipedia.org/wiki/Kamailio Kamailio or an SIP server]
!Chief of
| style="vertical-align:middle; background-color:#fffae5;" | Limited experience
|12.700 lv
| style="vertical-align:middle; background-color:#e3fcef;" | Practical application
|13.100 lv
| style="vertical-align:middle; background-color:#e3fcef;" | Practical application
|13.500 lv
| style="vertical-align:middle;" | Applied theory
|13.900 lv
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
|- style="vertical-align:middle;"
| style="background-color:#F4F5F7; text-align:left;" | MDM (mobile device management system)
| style="background-color:#e3fcef;" | Practical application
| style="background-color:#e3fcef;" | Practical application
| Applied theory
| Applied theory
| Applied theory
| Applied theory
|-
|-
!-
| style="background-color:#F4F5F7; color:#36B; text-align:left;" | [https://www.portainer.io/ Portainer.io]
!VP
| style="vertical-align:middle; background-color:#fffae5;" | Limited experience
|14.900 lv
| style="vertical-align:middle; background-color:#e3fcef;" | Practical application
|15.300 lv
| style="vertical-align:middle; background-color:#e3fcef;" | Practical application
|15.700 lv
| style="vertical-align:middle;" | Applied theory
|16.100 lv
| style="vertical-align:middle;" | Applied theory
| style="vertical-align:middle;" | Applied theory
|- style="vertical-align:middle;"
| style="background-color:#F4F5F7; text-align:left;" | Terminal/Prompt
| style="background-color:#e3fcef;" | Practical application
| style="background-color:#e3fcef;" | Practical application
| Applied theory
| Applied theory
| Applied theory
| Applied theory
|- style="background-color:#e3fcef;"
| style="background-color:#F4F5F7; color:#36B; text-align:left;" | [https://en.wikipedia.org/wiki/Ubuntu Ubuntu or any Linux]
| style="vertical-align:middle;" | Practical application
| style="vertical-align:middle;" | Practical application
| style="vertical-align:middle;" | Practical application
| style="vertical-align:middle; background-color:#deebff;" | Applied theory
| style="vertical-align:middle; background-color:#deebff;" | Applied theory
| style="vertical-align:middle; background-color:#deebff;" | Applied theory
|- style="vertical-align:middle;"
| style="font-weight:bold; background-color:#F4F5F7;" | Languages (idioms)
| style="background-color:#F4F5F7; text-align:left;" | Advanced Business English
| style="background-color:#fffae5;" | Limited experience
| style="background-color:#e3fcef;" | Practical application
| style="background-color:#e3fcef;" | Practical application
| Applied theory
| Applied theory
| Applied theory
|}
|}

Latest revision as of 07:52, 10 August 2022

The heart of the organization is our team of Android Developers. They consistently push the boundaries of encrypted communications in order to maximize Secure Group's apps and deliver the most secure mobile solutions.

The developers are in charge of handling the entire software lifecycle, from requirements analysis through prototype creation, wireframe conversion to high-quality code, and feature implementation.

Growing within this framework entails cooperating with other developers and producing high-quality apps.

Progression

In order to progress in our development path and Level Up or Step Up, our Android Developers must:

Level A

The Level A path is destined for employees who still do not possess the skills or proficiency in the whole set of criteria required of Individual Contributors. If during the hiring process we detected that you had the potential to quickly become Level 1, we made you an offer for Level A so you can expect to be provided with coaching, structured tasks with technical challenges, and the opportunity to learn and grow so you can be part of the Management Model as an Individual Contributor.

Golden Rules

To Level Up to become part of the Individual Contributor's Path, the Level A employees must:

  • Meet the criteria of the Individual Contributors Level & Step Grid in one year.
  • Demonstrate proficiency in the KAI of the Android Development framework according to the levels.
Level A Framework Description
Android Development

Must have:

  • Experience with Java or Kotlin, Android Studio, and Git

Good to have:

  • Experience with XML
  • Experience with RESTful APIs and Android components
  • Knowledge of Scrum
  • Experience with Android Developer Tools and Android SDK
  • Experience with libraries: rxJava/rxAndroid, Retrofit, Glide, Dagger 2, EventBus, Butterknife, Espresso, Mokito
  • Knowledge of Design patterns: MVP, MVVM
  • Knowledge of software development practices: TDD, Continuous integration, Code review
  • Experience with Jira and Confluence


Salary Grid

All mentioned salary ranges represent the monthly income in Bulgarian Lev after taxes and deductions.

Android Development
A Path 2.500 - 3.500


Android Development
Level
Individual Contributor Path Step
1 2 3 4
1 6.000 6.150 6.300 6.450
2 7.000 7.150 7.300 7.450
3 8.000 8.150 8.300 8.450
4 9.000 9.150 9.300 9.450
5 10.000 10.150 10.300 10.450
6 11.000 11.150 11.300 11.450

KAI of the framework

Extensive Knowledge

Type Knowledge Description Minimum Grade to acquire Level X
Level 1 Level 2 Level 3 Level 4 Level 5 Level 6
Frameworks AOSP Practical application Practical application Applied theory Applied theory Applied theory Applied theory
JUnit Practical application Practical application Applied theory Applied theory Applied theory Applied theory
Scrum Limited experience Practical application Practical application Applied theory Applied theory Applied theory
Agile Practical application Practical application Practical application Applied theory Applied theory Applied theory
Protocols SIP or any VoIP protocols Practical application Practical application Applied theory Applied theory Applied theory Applied theory
XMPP or any messaging protocols Practical application Practical application Applied theory Applied theory Applied theory Applied theory
ZRTP/RTP Practical application Practical application Applied theory Applied theory Applied theory Applied theory
PGP Practical application Practical application Applied theory Applied theory Applied theory Applied theory
OTR Practical application Practical application Applied theory Applied theory Applied theory Applied theory
OMEMO Practical application Practical application Applied theory Applied theory Applied theory Applied theory
SSL Practical application Practical application Applied theory Applied theory Applied theory Applied theory
Programming languages Bash/Shell Practical application Practical application Applied theory Applied theory Applied theory Applied theory
C/C++ Limited experience Limited experience Practical application Applied theory Applied theory Applied theory
CSS Limited experience Limited experience Practical application Applied theory Applied theory Applied theory
Groovy Practical application Practical application Applied theory Applied theory Applied theory Applied theory
HTML Limited experience Limited experience Practical application Applied theory Applied theory Applied theory
Java Limited experience Limited experience Practical application Applied theory Applied theory Applied theory
JavaScript Limited experience Limited experience Practical application Applied theory Applied theory Applied theory
Kotlin Practical application Practical application Applied theory Applied theory Applied theory Applied theory
Python Limited experience Practical application Applied theory Applied theory Applied theory Applied theory
SQL Practical application Practical application Applied theory Applied theory Applied theory Applied theory
XML Practical application Practical application Applied theory Applied theory Applied theory Applied theory
Libraries Android X Practical application Practical application Applied theory Applied theory Applied theory Applied theory
Dagger 2 Practical application Practical application Applied theory Applied theory Applied theory Applied theory
Espresso Practical application Practical application Applied theory Applied theory Applied theory Applied theory
EventBus Practical application Practical application Applied theory Applied theory Applied theory Applied theory
Kotlin Coroutines Practical application Practical application Applied theory Applied theory Applied theory Applied theory
Jake Wharton Butter Knife Practical application Practical application Applied theory Applied theory Applied theory Applied theory
Linphone or any SPI SDK Limited experience Practical application Applied theory Applied theory Applied theory Applied theory
Microsoft Exchange web services (EWS) Limited experience Practical application Applied theory Applied theory Applied theory Applied theory
Mockito Practical application Practical application Applied theory Applied theory Applied theory Applied theory
OkHttp Practical application Practical application Applied theory Applied theory Applied theory Applied theory
Picasso/Glide/Fresco/Imageloader Practical application Practical application Applied theory Applied theory Applied theory Applied theory
Retrofit Practical application Practical application Applied theory Applied theory Applied theory Applied theory
RxJava/RxAndroid/RxKotlin Practical application Practical application Applied theory Applied theory Applied theory Applied theory
SMACK or any XMPP client library Limited experience Practical application Applied theory Applied theory Applied theory Applied theory
Timber Practical application Practical application Applied theory Applied theory Applied theory Applied theory
Zetetic SQL Cipher Practical application Practical application Applied theory Applied theory Applied theory Applied theory
Softwares/Tools/Platforms Atlassian Bitbucket or any code management tool Limited experience Limited experience Practical application Applied theory Applied theory Applied theory
Atlassian Bamboo or Jenkins Limited experience Practical application Applied theory Applied theory Applied theory Applied theory
Android Studio Practical application Practical application Applied theory Applied theory Applied theory Applied theory
Appium/Selenium Practical application Practical application Applied theory Applied theory Applied theory Applied theory
Billing Systems Practical application Practical application Applied theory Applied theory Applied theory Applied theory
Crowdin or any translation management system Limited experience Practical application Practical application Applied theory Applied theory Applied theory
Docker Limited experience Practical application Practical application Applied theory Applied theory Applied theory
Elastic Kibana Limited experience Practical application Practical application Applied theory Applied theory Applied theory
Firebase Limited experience Practical application Practical application Applied theory Applied theory Applied theory
Gerrit Limited experience Practical application Practical application Applied theory Applied theory Applied theory
Gradle Limited experience Practical application Practical application Applied theory Applied theory Applied theory
Git or SVN Practical application Practical application Practical application Applied theory Applied theory Applied theory
Ignite Realtime Openfire or any XMPP server Limited experience Practical application Practical application Applied theory Applied theory Applied theory
IntelliJ Idea Limited experience Practical application Practical application Applied theory Applied theory Applied theory
Kamailio or an SIP server Limited experience Practical application Practical application Applied theory Applied theory Applied theory
MDM (mobile device management system) Practical application Practical application Applied theory Applied theory Applied theory Applied theory
Portainer.io Limited experience Practical application Practical application Applied theory Applied theory Applied theory
Terminal/Prompt Practical application Practical application Applied theory Applied theory Applied theory Applied theory
Ubuntu or any Linux Practical application Practical application Practical application Applied theory Applied theory Applied theory
Languages (idioms) Advanced Business English Limited experience Practical application Practical application Applied theory Applied theory Applied theory