First task

We'll have a discussion about what your first task should be, based on our product priorities and your interests. Once we've agreed on a task:

Read our guide on good Source Control habits. Overall:

As you go along, track your time, make granular commits (where each represents a single chunk of functionality), and write decently descriptive commit messages (ideally, using the imperative present tense). When a commit relates to a specific task, you can include Ref T500 (where 500 is the task number) in the commit message to associate it to that task.

When the functionality is ready for review, open a pull request on the related GitHub repo. Matt and others will look over the code, run it, and give you feedback — requesting any changes, if needed. While a pull request is open, anyone should feel free to test it out and give their input. Then when everything looks good, we'll merge your change.

Code style

We aim for consistency first and foremost. Try to match the code styles (line breaks, indentation, etc.) currently used in the codebase. Where styles are inconsistent, use the one that seems to be most prevalent.

When writing Go, please run go fmt on all files before committing them. The best way to ensure this happens consistently is to use an editor tool that runs this command every time you save the file (for example, vim-go takes care of this, if you're using Vim).