Android Development: Difference between revisions

From Secure Group Wiki
Jump to navigation Jump to search
m (Reverted edits by Sgadmin (talk) to last revision by LigiaL)
Tag: Rollback
(Undo revision 1433 by Sgadmin (talk))
Tag: Undo
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.
We proudly ship Secure Group’s products for Android to millions of users around the world.  


In addition, it is important that 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.
Our responsibilities step mainly on managing the complete software lifecycle – from analyzing requirements to creating prototypes, transforming wireframes into high-quality code, and implementing new features.


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.
Ensure the top quality of our solutions by developing and executing unit tests, troubleshooting issues, removing impediments, and improving the overall performance of Secure OS. You will be working along-side other engineers and developers working on different layers of the infrastructure. Therefore, commitment to collaborative problem solving, sophisticated design, and creating quality products is essential.
 
We envision each of our employees as stakeholders, so you will be responsible for driving the collaboration with other teammates and agile teams, act as a subject-matter expert to less experienced Software Engineers, and add user value to the solution.


In order to progress in our development path and Level Up or Step Up, our Android Developers must:</br>
In order to progress in our development path and Level Up or Step Up, our Android Developers must:</br>
Line 9: Line 11:
* Score at least 4 in the [[KAI]] of the position
* Score at least 4 in the [[KAI]] of the position
</br>
</br>
<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"
!colspan="2"|Android Development
!colspan="4"|Step
|-
!rowspan="11"|Level
|-
!Individual Contributor Path
!1
!2
!3
!4
|-
!Android Soft. Engineer
|6.000
|6.150
|6.300
|6.450
|-
!Sr. Android Soft. Engineer Level 2
|7.000
|7.150
|7.300
|7.450
|-
!Sr. Android Soft. Engineer Level 3
|8.000
|8.150
|8.300
|8.450
|-
!Sr. Android Soft. Engineer Level 4
|9.000
|9.150
|9.300
|9.450
|-
!Sr. Android Soft. Architect Level 5
|10.000
|10.150
|10.300
|10.450
|-
! Sr. Android Soft. Architect Level 6
|11.000
|11.150
|11.300
|11.450
|}
  </div>
</div>


= [[Knowledge_Management#Knowledge_Accountability_Index|KAI]] of the position =
= [[Knowledge_Management#Knowledge_Accountability_Index|KAI]] of the position =
Line 73: Line 130:
|[https://unwiredlabs.com/ Unwired Labs]
|[https://unwiredlabs.com/ Unwired Labs]
|-
|-
|[https://thycotic.com/ Thycotic Passwordbox]
|[https://www.idaptive.com/ Idaptive]
|-
|-
!rowspan="6"|'''Softwares/Tools/Platforms - Configuration'''
!rowspan="6"|'''Softwares/Tools/Platforms - Configuration'''
Line 162: Line 219:
|[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://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://square.github.io/retrofit/ Retrofit]
|-
|-
|[https://en.wikipedia.org/wiki/Smack_(software) SMACK]
|[https://en.wikipedia.org/wiki/Smack_(software) SMACK]
Line 203: Line 260:
   <div class="box-header center">
   <div class="box-header center">


= IT Knowledge =
= IT Knowledge of the position =
   </div>
   </div>
   <div class="box-content framework center">
   <div class="box-content framework center">
Line 221: Line 278:
  <div class="">
  <div class="">
   <div class="box-header center">
   <div class="box-header center">
= Secure Group Knowledge =
= Secure Group Knowledge =
The first item we require proficiency regarding our company is the '''Secure Group Management Model''' (yes, the content in this wiki!). Besides that, we also need our employees to understand our products in all aspects as described in the following table:
The first item we require proficiency regarding our company is the '''Secure Group Management Model''' (yes, the content in this wiki!). Besides that, we also need our employees to understand our products in all aspects as described in the following table:
Line 233: Line 291:
!colspan="1"|Minimum Grade
!colspan="1"|Minimum Grade
|-
|-
!rowspan="6"|User Documentation
!rowspan="6"|Tier "User" Knowledge
|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.
|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.
|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.
|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.
Line 254: Line 312:
|4
|4
|-
|-
!rowspan="6"|Sales Documentation
!rowspan="6"|Tier "Sales" Knowledge
|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.
|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.
|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.
|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.
|Secure OS
|Secure OS
Line 275: Line 333:
|3
|3
|-
|-
!rowspan="6"|Support Documentation
!rowspan="6"|Tier "Documentation" Knowledge
|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.
|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.
|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.
|rowspan="6"|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.
|Secure OS
|Secure OS
|3
|3
Line 296: Line 354:
|3
|3
|-
|-
!rowspan="6"|Functional Documentation
!rowspan="6"|Tier "Functional Documentation" Knowledge
|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.
|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.
|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.
|rowspan="6"|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.
|Secure OS
|Secure OS
|4
|4
Line 317: Line 375:
|4
|4
|-
|-
!rowspan="6"|Technical Documentation
!rowspan="6"|Tier "Technical Documentation" Knowledge
|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.
|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.
|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.  
|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.  
Line 338: Line 396:
|4
|4
|-
|-
|}
= Salary Grid =
{| class="wikitable"
!colspan="2"|Android Development
!colspan="4"|Step
|-
!rowspan="11"|Level
|-
!Individual Contributor Path
!1
!2
!3
!4
|-
!Android Soft. Engineer Level 1
|6.000 lv
|6.150 lv
|6.300 lv
|6.450 lv
|-
!Sr. Android Soft. Engineer Level 2
|7.000 lv
|7.150 lv
|7.300 lv
|7.450 lv
|-
!Sr. Android Soft. Engineer Level 3
|8.000 lv
|8.150 lv
|8.300 lv
|8.450 lv
|-
!Sr. Android Soft. Engineer Level 4
|9.000 lv
|9.150 lv
|9.300 lv
|9.450 lv
|-
!Sr. Android Soft. Architect Level 5
|10.000 lv
|10.150 lv
|10.300 lv
|10.450 lv
|-
! Sr. Android Soft. Architect Level 6
|11.000 lv
|11.150 lv
|11.300 lv
|11.450 lv
|}
|}

Revision as of 15:15, 12 November 2020

We proudly ship Secure Group’s products for Android to millions of users around the world.

Our responsibilities step mainly on managing the complete software lifecycle – from analyzing requirements to creating prototypes, transforming wireframes into high-quality code, and implementing new features.

Ensure the top quality of our solutions by developing and executing unit tests, troubleshooting issues, removing impediments, and improving the overall performance of Secure OS. You will be working along-side other engineers and developers working on different layers of the infrastructure. Therefore, commitment to collaborative problem solving, sophisticated design, and creating quality products is essential.

We envision each of our employees as stakeholders, so you will be responsible for driving the collaboration with other teammates and agile teams, act as a subject-matter expert to less experienced Software Engineers, and add user value to the solution.

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


Salary Grid

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

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

KAI of the position

Specific Knowledge

Concepts Activities, Services, Content Providers and Broadcast Receivers, EventBus
Algorithm design
API concepts
Database
Design Patterns: MVP, MVVM, MVC
Responsive Designs
RxJava/RxAndroid
Data store
TDD
Unit testing
User input
Version Control via Git
Frameworks Android Components
JUnit
The Android SDK
Languages Command Line
Gradle
Kotlin
Python
SQL
XML
Libraries Dagger
Jake Wharton Butter Knife
Linphone
Microsoft Exchange web services (EWS)
Mockito, Espresso
Picasso, Glide, Fresco, Imageloader
Retrofit
SMACK
WoodSolutions Timber
Zetetic SQL Cipher
Protocols SIP protocol
XMPP
Softwares/Tools/Platforms - Configuration Atlassian Bamboo
Android Studio
Apache Tomcat
Softwares/Tools/Platforms - Usage Atlassian Bamboo
Android Studio
Appium
SCRCPY
Softwares/Tools/Platforms - Server Administration Android Studio

IT Knowledge of the position

System Administration
System Administration - Day to Day Ops
Networking concepts

Secure Group Knowledge

The first item we require proficiency regarding our company is the Secure Group Management Model (yes, the content in this wiki!). Besides that, we also need our employees to understand our products in all aspects as described in the following table:

Secure Group Knowledge What's Expected Impact Product Minimum Grade
Tier "User" Knowledge 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. 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. Secure OS 4
SAS 4
Secure Chat 4
Secure Email 4
Secure Vault 4
Secure Manager 4
Tier "Sales" Knowledge 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. 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. Secure OS 3
SAS 3
Secure Chat 3
Secure Email 3
Secure Vault 3
Secure Manager 3
Tier "Documentation" Knowledge 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. 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. Secure OS 3
SAS 3
Secure Chat 3
Secure Email 3
Secure Vault 3
Secure Manager 3
Tier "Functional Documentation" Knowledge 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. 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. Secure OS 4
SAS 4
Secure Chat 4
Secure Email 4
Secure Vault 4
Secure Manager 4
Tier "Technical Documentation" Knowledge 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. 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. Secure OS 4
SAS 4
Secure Chat 4
Secure Email 4
Secure Vault 4
Secure Manager 4