BriteCore is a very complex enterprise-level software ecosystem. For that reason, it is expected that you have a background in programming and are very comfortable on the command line in Linux. In order to really thrive, you need to gain mastery of the tools that we use. However, we are a very community-oriented group, and everyone has to start somewhere. You don’t have to follow these steps exactly, but most devs find that it’s a nice way to slowly get used to the workflow and toolset.
Step 1: Contribute Documentation¶
If you would like to begin learning how to become a BriteCore contributor, we recommend the following online courses or equivalent knowledge:
- Markdown Tutorial for Documentation
- Numpy-style Documentation
- Code Academy - Command Line
- Code Academy - Git
It is especially important for individuals who are used to working alone to gain mastery over git. In our environment there is a high likelihood that the code you are actively working on is also being worked on by others. So you’ll need to get comfortable with tracking on remote repos and rebasing.
After completing these courses you should be equipped to help contribute to the documentation that exists in the docs directory of this repository. You’ll also have a solid foundation to move to the next step.
Step 2: Contribute Bug Fixes¶
If you would like to contribute further, the next place to focus is on bug fixes. To expand your knowledge of the core technology that BriteCore uses you should begin gaining mastery of the following technologies by mastering these items or taking these online courses:
- Code Academy - HTML & CSS
- Getting Started with Bootstrap CSS
- Knockout JS Tutorial
- Code Academy - Python
- Code Academy - SQL
- 10 minutes to Pandas
We’ve found that the interactive debugger pudb is an invaluable tool to both understand the code-base and to debug specific issues. So spend some time getting to learn that tool.
Step 3: Expand Your Expertise¶
Finally, BriteCore is well-known for our extremely forward-thinking infrastructure and DevOps practices. We are deep believers in “infrastructure as code”, which effectively means that no manual setup of servers or services is allowed in our infrastructure. While this list is constantly evolving, it is valuable to have at least a cursory understanding of: