Skip to main content

Developer Best Practices

Software Developer Best Practices

Getting Started

To expedite the learning curve of our developers, at Blueprint, we have a set of standarized frameworks projects teams use to develop solutions for the non-profits. You can find our list of frameworks here

In every project you will find a README.md file that contains a basic description of the project and most importantly setup instructions to run the service. If you have any issues when following the steps or are missing environment variables, please contact your Tech Lead for further guidance.

Codebase

The structure of the codebase is very framework dependent, as different frameworks might need different directories. However, the structure most projects follow is the following:

/src # All the service code will be here
	/moduleA
    /moduleB
/config # Any env + infra configs
/docs # specs + diagrams
/tests # unit tests + integration tests

Development Workflow

Working in team can get messy and convoluted. Therefore we have the following development workflow.

  1. Our teams use the SCRUM methodology to assigns tasks to every member of the team. Each week, your Tech Lead will assign an issue to you with a description of what has to get done (See example).
  2. Create a branch for the issue you are working on. We have the following branch naming conventions
    1. `feat`: Branch has new feature work
    2. `fix`: Branch is fixing a bug
  3. Write your code. Commit and Push your changes. We have the following commit naming conventions.
  4. Create a Pull Request
  5. Request review from your Tech Lead and Coding Buddy
  6. Address any feedback and comments
  7. Merge once your PR is approved

CI/CD

Whenever you push code to a repository, there might be some workflow setup to help us automate some tasks that include:

  • Deployments: Update the code in prod or staging environments
  • Testing: Running integ and unit testing on new changes to make sure tests are updated or not broken
  • Linting: Make sure everyone follows the same language conventions