An opinionated guide on how to become a professional Web/Mobile App Developer.
![Developer Handbook 2022 - Created for Apptension](https://uploads-ssl.webflow.com/5f6cbc6dd9be9a190bd040a6/6388aedea6fc2c89ae9c03db_Apptension_CREAT-1292_design_hero.png)

<p align="center"> 
<b>An opinionated guide on how to become a professional Web/Mobile App Developer.</b> 
<br /><br /><br /><br />

</p>

<p align="center"> <img src="https://img.shields.io/badge/License-MIT-blue.svg" alt="Developer Handbook 2020 License" /> <img src="https://img.shields.io/badge/Maintained%3F-yes-green.svg" alt="Maintenance" /> </p>

* * *

Overview
--------

🔹 **Developer Handbook 2023** 🔹 was created to cover the most common technical questions and requirements appearing prior to job interviews, during onboarding or personal goals / career planning at our company - [Apptension](https://apptension.com). We also like to call it a Technical Documentation of our company.

It contains a lot of subjective technical groups, opinionated technologies, vetted requirements and best practices we gathered for Web & Mobile Developers that we believe to be useful in 2023. 

<code>Also, check out our [SaaS Boilerplate](https://www.apptension.com/saas-boilerplate), which is an example of our experience and a real-life application of many of the technologies and designs described in the Handbook.</code>

Enjoy reading! 🙇

* * *

What will you find inside?
--------------------------

*   **[Technical Stack](#apptension-technical-stack)** – a summary of all topics, languages, frameworks, and libraries we use in production together with checklists of the most important concepts.
*   **[Technical Guide](#apptension-technical-guide)** – a complete list of topics (libraries, frameworks, programming concepts/patterns) we follow and recommend to learn to progress in your career to become a better Web / Mobile App Developer.
*   **[Technical Onboarding Checklist](#apptension-technical-onboarding-checklist)** – a living document with a checklist of what our Developers should know on different levels when they join our company.

![Developer Handbook 2023 - Image 2](https://uploads-ssl.webflow.com/5f6cbc6dd9be9a190bd040a6/6388b05e16cbde019930080b_Frame%201.png)

* * *

Apptension Technical Stack
--------------------------

Apptension Technical Stack covers all viable concepts we follow at our company in order to develop production-ready code.

<details><summary><a href="/Technical%20Stack/Frontend%20Developer.md"><b>Frontend Developer</b></a></summary><p></p><ul><li><a href="/Technical%20Stack/Frontend%20Developer/Company%20practices.md">Company practices</a></li><li><a href="/Technical%20Stack/Frontend%20Developer/React.md">React</a></li><li><a href="/Technical%20Stack/Frontend%20Developer/Application%20state%20management.md">Application state management</a></li><li><a href="/Technical%20Stack/Frontend%20Developer/Apptension%20React%20Boilerplate.md">Apptension React Boilerplate</a></li><li><a href="/Technical%20Stack/Frontend%20Developer/Styling.md">Styling</a></li><li><a href="/Technical%20Stack/Frontend%20Developer/Date%20&amp;%20Time.md">Date &amp; Time</a></li><li><a href="/Technical%20Stack/Frontend%20Developer/Routing.md">Routing</a></li><li><a href="/Technical%20Stack/Frontend%20Developer/Visualizations.md">Visualizations</a></li><li><a href="/Technical%20Stack/Frontend%20Developer/Animations.md">Animations</a></li><li><a href="/Technical%20Stack/Frontend%20Developer/Internationalization.md">Internationalization</a></li><li><a href="/Technical%20Stack/Frontend%20Developer/Audio%20and%20Video.md">Audio and Video</a></li><li><a href="/Technical%20Stack/Frontend%20Developer/Misc.md">Misc</a></li><li><a href="/Technical%20Stack/Frontend%20Developer/Development%20Tools.md">Development Tools</a></li><li><a href="/Technical%20Stack/Frontend%20Developer/SSR%20&amp;%20Prerendering.md">SSR &amp; Prerendering</a></li><li><a href="/Technical%20Stack/Frontend%20Developer/Functional%20programming.md">Functional programming</a></li><li><a href="/Technical%20Stack/Frontend%20Developer/HTTP.md">HTTP</a></li><li><a href="/Technical%20Stack/Frontend%20Developer/Templating%20engines.md">Templating engines</a></li><li><a href="/Technical%20Stack/Frontend%20Developer/Fonts.md">Fonts</a></li><li><a href="/Technical%20Stack/Frontend%20Developer/SEO.md">SEO</a></li><li><a href="/Technical%20Stack/Frontend%20Developer/Monitoring.md">Monitoring</a></li><li><a href="/Technical%20Stack/Frontend%20Developer/Forms.md">Forms</a></li><li><a href="/Technical%20Stack/Frontend%20Developer/Testing.md">Testing</a></li><li><a href="/Technical%20Stack/Frontend%20Developer/Performance.md">Performance</a></li><li><a href="/Technical%20Stack/Frontend%20Developer/Common%20Application%20Modules.md">Common Application Modules</a></li><li><a href="/Technical%20Stack/Frontend%20Developer/Backend%20&amp;%20DevOps.md">Backend &amp; DevOps</a></li><li><a href="/Technical%20Stack/Frontend%20Developer/Tools.md">Tools</a></li><li><a href="/Technical%20Stack/Frontend%20Developer/Browsers.md">Browsers</a></li></ul><p></p></details><details><summary><a href="/Technical%20Stack/Backend%20Developer.md"><b>Backend Developer</b></a></summary><p></p><ul><li><a href="/Technical%20Stack/Backend%20Developer/Company%20best%20practices.md">Company best practices</a></li><li><a href="/Technical%20Stack/Backend%20Developer/Python.md">Python</a></li><li><a href="/Technical%20Stack/Backend%20Developer/Testing.md">Testing</a></li><li><a href="/Technical%20Stack/Backend%20Developer/Date%20&amp;%20Time.md">Date &amp; Time</a></li><li><a href="/Technical%20Stack/Backend%20Developer/Databases.md">Databases</a></li><li><a href="/Technical%20Stack/Backend%20Developer/Javascript.md">Javascript</a></li><li><a href="/Technical%20Stack/Backend%20Developer/3rd%20Party.md">3rd Party</a></li><li><a href="/Technical%20Stack/Backend%20Developer/Documenting.md">Documenting</a></li><li><a href="/Technical%20Stack/Backend%20Developer/Development%20Tools.md">Development Tools</a></li><li><a href="/Technical%20Stack/Backend%20Developer/Code%20Analysis.md">Code Analysis</a></li></ul><p></p></details><details><summary><a href="/Technical%20Stack/DevOps%20Developer.md"><b>DevOps Developer</b></a></summary><p></p><ul><li><a href="/Technical%20Stack/DevOps%20Developer/Company%20best%20practices.md">Company best practices</a></li><li><a href="/Technical%20Stack/DevOps%20Developer/DNS.md">DNS</a></li><li><a href="/Technical%20Stack/DevOps%20Developer/Databases.md">Databases</a></li><li><a href="/Technical%20Stack/DevOps%20Developer/Containerization%20Services.md">Containerization Services</a></li><li><a href="/Technical%20Stack/DevOps%20Developer/Application%20Servers.md">Application Servers</a></li><li><a href="/Technical%20Stack/DevOps%20Developer/Task%20Queues.md">Task Queues</a></li><li><a href="/Technical%20Stack/DevOps%20Developer/Message%20Brokers.md">Message Brokers</a></li><li><a href="/Technical%20Stack/DevOps%20Developer/Generic%20AWS%20Services.md">Generic AWS Services</a></li><li><a href="/Technical%20Stack/DevOps%20Developer/Storage.md">Storage</a></li><li><a href="/Technical%20Stack/DevOps%20Developer/Continuous%20Integration.md">Continuous Integration</a></li><li><a href="/Technical%20Stack/DevOps%20Developer/CDN.md">CDN</a></li><li><a href="/Technical%20Stack/DevOps%20Developer/Docker%20Registry.md">Docker Registry</a></li><li><a href="/Technical%20Stack/DevOps%20Developer/VPS%20Services.md">VPS Services</a></li><li><a href="/Technical%20Stack/DevOps%20Developer/Monitoring.md">Monitoring</a></li></ul><p></p></details><details><summary><a href="/Technical%20Stack/Mobile%20Developer.md"><b>Mobile Developer</b></a></summary><p></p><ul><li><a href="/Technical%20Stack/Mobile%20Developer/Company%20best%20practices.md">Company best practices</a></li><li><a href="/Technical%20Stack/Mobile%20Developer/React.md">React</a></li><li><a href="/Technical%20Stack/Mobile%20Developer/React-native.md">React-native</a></li><li><a href="/Technical%20Stack/Mobile%20Developer/Application%20state%20management.md">Application state management</a></li><li><a href="/Technical%20Stack/Mobile%20Developer/HTTP.md">HTTP</a></li><li><a href="/Technical%20Stack/Mobile%20Developer/Animations.md">Animations</a></li><li><a href="/Technical%20Stack/Mobile%20Developer/Internationalization.md">Internationalization</a></li><li><a href="/Technical%20Stack/Mobile%20Developer/Navigation.md">Navigation</a></li><li><a href="/Technical%20Stack/Mobile%20Developer/Components.md">Components</a></li><li><a href="/Technical%20Stack/Mobile%20Developer/Common%20Application%20Modules.md">Common Application Modules</a></li><li><a href="/Technical%20Stack/Mobile%20Developer/Date%20&amp;%20Time.md">Date &amp; Time</a></li><li><a href="/Technical%20Stack/Mobile%20Developer/Versioning.md">Versioning</a></li><li><a href="/Technical%20Stack/Mobile%20Developer/Testing.md">Testing</a></li><li><a href="/Technical%20Stack/Mobile%20Developer/Performance.md">Performance</a></li><li><a href="/Technical%20Stack/Mobile%20Developer/Development%20tools.md">Development tools</a></li><li><a href="/Technical%20Stack/Mobile%20Developer/Crash%20reporting%20/%20Monitoring.md">Crash reporting / Monitoring</a></li><li><a href="/Technical%20Stack/Mobile%20Developer/CI/CD.md">CI/CD</a></li><li><a href="/Technical%20Stack/Mobile%20Developer/Tools.md">Tools</a></li><li><a href="/Technical%20Stack/Mobile%20Developer/Services.md">Services</a></li></ul><p></p></details>

* * *

Apptension Technical Guide
--------------------------

This section describes all technical topics (career development goals, good habits, technologies, libraries, frameworks) divided into career levels that you can use to validate your technical skills and technical decisions taken in the projects you do.

### Frontend Developer

*   [Junior to Regular Technical Guide](/Technical%20Guide/Junior%20to%20Regular/Frontend%20Developer.md)
*   [Regular to Senior Technical Guide](/Technical%20Guide/Regular%20to%20Senior/Frontend%20Developer.md)

### Backend Developer

*   [Junior to Regular Technical Guide](/Technical%20Guide/Junior%20to%20Regular/Backend%20Developer.md)
*   [Regular to Senior Technical Guide](/Technical%20Guide/Regular%20to%20Senior/Backend%20Developer.md)

### DevOps Developer

*   [Junior to Regular Technical Guide](/Technical%20Guide/Junior%20to%20Regular/DevOps%20Developer.md)
*   [Regular to Senior Technical Guide](/Technical%20Guide/Regular%20to%20Senior/DevOps%20Developer.md)

### Mobile Developer

*   [Junior to Regular Technical Guide](/Technical%20Guide/Junior%20to%20Regular/Mobile%20Developer.md)
*   [Regular to Senior Technical Guide](/Technical%20Guide/Regular%20to%20Senior/Mobile%20Developer.md)

* * *

Apptension Technical Onboarding Checklist
-----------------------------------------

This section describes technical prerequisites for Junior, Regular and Senior Developers who will join or recently joined our company. This is a checklist of concepts we will help you learn during your first two weeks with us.

### Frontend Developer

*   [Junior Frontend Developer - Technical Onboarding Checklist](/Onboarding/Junior/Frontend%20Developer.md)
*   [Regular Frontend Developer - Technical Onboarding Checklist](/Onboarding/Regular/Frontend%20Developer.md)
*   [Senior Frontend Developer - Technical Onboarding Checklist](/Onboarding/Senior/Frontend%20Developer.md)

### Backend Developer

*   [Junior Backend Developer - Technical Onboarding Checklist](/Onboarding/Junior/Backend%20Developer.md)
*   [Regular Backend Developer - Technical Onboarding Checklist](/Onboarding/Regular/Backend%20Developer.md)
*   [Senior Backend Developer - Technical Onboarding Checklist](/Onboarding/Senior/Backend%20Developer.md)

### DevOps Developer

*   [Junior DevOps Developer - Technical Onboarding Checklist](/Onboarding/Junior/DevOps%20Developer.md)
*   [Regular DevOps Developer - Technical Onboarding Checklist](/Onboarding/Regular/DevOps%20Developer.md)
*   [Senior DevOps Developer - Technical Onboarding Checklist](/Onboarding/Senior/DevOps%20Developer.md)

### Mobile Developer

*   [Junior Mobile Developer - Technical Onboarding Checklist](/Onboarding/Junior/Mobile%20Developer.md)
*   [Regular Mobile Developer - Technical Onboarding Checklist](/Onboarding/Regular/Mobile%20Developer.md)
*   [Senior Mobile Developer - Technical Onboarding Checklist](/Onboarding/Senior/Mobile%20Developer.md)

Q&A
---

![Developer Handbook 2023 - Image 3](https://uploads-ssl.webflow.com/5f6cbc6dd9be9a190bd040a6/6388b29a2f5265ee5e1f099b_Apptension_CREAT-1292_design_OG_2.png)

### Do I need to know everything that’s under Regular (for instance) list to take a Regular position?

No, hiring a person is very subjective and will take in count things other than the technical knowledge. This is the guide of what we consider a Regular developer will face during their career path in the company. This is valid for any seniority level.

### What’s the purpose of Onboarding?

We consider “Onboarding" the 2 weeks time where a developer will start working in our company. The list under this category is a guide of what skills you should learn/show during these first 2 weeks.

### I have many years of experience and I’m considered Senior in another frontend stack, but I don’t know much about the company’s stack. Does it mean I will take a Junior position?

We know developers are very skilled when it comes to learning, and we’re sure a Senior frontend dev will catch up with our stack if he knows what to do. This is exactly what this guide is for :)

### To get promoted from Junior to Regular, do I have to check all items in the Junior or Regular section?

A Regular developer should know almost everything (if not everything) from the Junior category and present the skills to learn what’s in the Regular category. In other words, we see that to move from Junior to Regular a developer needs to present a good amount of skills from both. And of course, with soft skills that are analysed case by case.

### If I want to work for Apptension, what do I do?

Apply on our webpage - [https://apptension.com/jobs](https://apptension.com/jobs) - and good luck!

### Can I contribute to the list?

Yes, contribution is accepted in adding new content for the guide and questioning/correcting mistakes. Since this is a list of tech we use, the introduction of new items should come from the Apptension team. But feel free to fork and use it as your own learning guide!

* * *

Contribution
------------

We are very open to contributions to extend or change the requirements based on your gut and experience. To contribute you can use a **pull request** which will be later validated by our technical team and added to the main docs.

If you will spot any issues please add them in the **Issues** section.

Credits
-------

This page is maintained by the 🇵🇱 [Apptension](https://apptension.com) team.

You can see more of our work here: 🟢 [Apptension portfolio](https://www.apptension.com/portfolio).

License
-------

![MIT License](https://img.shields.io/badge/License-MIT-blue.svg)

© 2023 Apptension Sp. z o.o.

Built and maintained by [Apptension](https://apptension.com).

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
