Skip to content

Instantly share code, notes, and snippets.

@ribtoks
Last active February 18, 2022 15:35
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ribtoks/056f7874c487ca9b35a7b7a9b119372d to your computer and use it in GitHub Desktop.
Save ribtoks/056f7874c487ca9b35a7b7a9b119372d to your computer and use it in GitHub Desktop.

Freelancer guide

NOTE: some links do not work as they point to a private repository on GitHub

About

This document describes basics of how our cooperation will look like: how you can find work, do it and get paid for it. Also this document covers communication, availability, intellectual property rights and other important topics.

Finding work

All work in Xpiks project is stored in GitHub Issues.

You can work on issues that:

  • are open
  • are in the next milestone
  • have label "status: triaged"
  • have label "size: xyz" (where xyz is one of XXS, XS, S, M)
  • do NOT have label "type: epic"
  • do NOT have label "status: blocked"
  • are NOT assigned to anybody

All issues for freelancers must have a clear "Definition of done" section in addition to the conditions above. If the issue description is not clear or does not have a clear "Definition of done" section, please ask a question or do not work on such issue.

Getting work done

After you selected the issue to work on, you must assign it to yourself and move it to the "In Progress" column of the respectful Project (kanban board).

The issue is considered done when the pull request with the respective functionality is approved and merged to master branch of the main repository. Pull request should fulfill the "Definition of done" requirement found in the issue description.

To get your pull request approved:

  • your pull request must provide the information requested by the pull request template
  • your changes must adhere to the contributing guide
  • code must build without errors on all supported platforms (Linux, Windows, macOS)
  • your changes must pass all CI tests (style, "core" (unit) tests, integration tests and UI tests)
  • all PR comments made by other contributors must be resolved
  • code style must be consistent with code style used in the repository

If there is a flaw in your work that gets revealed after pull request is approved and merged, a separate issue will be created to fix it.

Getting paid

Accounting of your work is done in a separate spreadsheet that will be shared with you. After issue you worked on is closed, a record with pay amount will be added to the spreadsheet. Pay amount is based on the issue "size". It is $15, $30, $60 and $120 (USD) for issues of size XXS, XS, S, M respectfully. You get paid in the end of each month for all the work you did in the current month. Spreadsheet will show which work you already got paid for and which not.

Payment can only be processed with destinations supported by Wise (Transferwise) or by PayPal at your choise.

Documentation

Current project documentation can be found in the docs/ directory in the root of the repository.

The most useful documents are Basic architecture overview, Build instructions and Developer's environment. It will be beneficial for you to get familiarized with them before working on Xpiks.

Documentation is valued a lot. If you find a topic that will be useful to have documentation for, please feel free to create an issue for that.

Communication

All communication related to the actual work must be done in the comments of the respective issue. Any communication related to contributing, pay and other topics must be done through the emails (my email is taras@xpiksapp.com). Xpiks project does not have any other kind of communication (e.g. Slack, Teams, Mattermost etc.). Official communication language is English.

You are expected to do due dilligence when asking questions like "how to install Qt on my computer", "how to send a pull request in GitHub" and other similar questions that can be answered with web search and are not specific to Xpiks.

Availability

All communication and work in Xpiks are designed to be executed in asynchronous way in order not to block anybody.

The only blocking part is when you submit a pull request and it must get reviewed by me to get merged. Usually I'm working in a way to not block your work. If you submit a pull request I will do my best to review it at my earliest convenience. However, I'm not available on the weekends which means if you submit your pull request on Friday evening, the earliest time it can get reviewed is next Monday.

Intellectual property

In most cases you will be working on Xpiks project where I'd like to retain intellectual property rights. Submitting your code as a pull request and getting paid for it will mean that I'm purchasing the copyright for the code you write for me.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment