March 15, 2019

Software Engineer Ethics @ YOYO

This list is something we've built and learned over the past few years (some we learned just recently). Although YOYO Holdings have been around for 6 years already, the current engineering team on the time we started working on this blog is pretty young. These principles, workflow, and process has been effective so far on how we're dealing with our recent project with the current team size of 3 developers. Slack being the key driver of all things.

Code of ethics

  • Always communicate. Always be online on Slack.
  • Always check the list of tasks in our Notion workspace.
  • Always work with a Pull Request. Long running PRs are welcome but mark them with [WIP] so we don't merge it.
  • Follow the git flow principles.
  • We always work with a Milestone.
  • Always get your PR code reviewed by somebody else. Please do not self-merge unless seriously needed (hotfix).
  • Always keep your PR up to date. Rebase frequently.
  • We love reasons and we want every PR to have a reason tell us the story on how you tackle a problem or implemented your new solution.
  • Follow PEP8 best practices for Python.
  • Read and follow most of the Zen of Python.
  • Follow AIRBNB's javascript style guide for web javascript.
  • Always follow the TDD Principle  Write a Test > Implement > Run Test > Refactor > Repeat an 80% test coverage is good, 90% is super good and a 100% is 'chouverygood'.
  • If you can't immediately write a test for a method, make sure to still write a test case and just put pending explain the reason why so you or somebody else can return to it later.
  • Be consistent with other people's way of doing things but feel free to discuss improvements.
  • We put more weight in code clarity.
  • Make use of special ANNOTATIONS like # TODO:, FIXME:, OPTIMIZE: so IDE can pick up.
  • Prevent being a blocker to your teammates.
  • We chose to be Proactive over Reactive.
  • Always learn and share. If there is one thing that I like about the Engineering @ YOYO, is its support for learnings everyone is free to learn new things, we don't tolerate the `fear of mistakes`, we want everyone to learn from their mistakes and become better.

To sum it all up:

  • Communications
  • Learn
  • Play
  • Team Player

Together, let's make the engineering @ yoyo become a hobby where we are never going to be satisfied on what we currently know.

LET'S ENHANCE YO BRAND!

WORK WITH US!