Standards and Practices

Reason for Repo

  • Set and maintain standards for Bitwise projects.
  • Have a central repository where other Bitwise members can share knowledge of best practices.
  • Have a reference point to start a new project or answer questions on different topics.

Click Here to contribute!

Code of Conduct

  1. No cussing; we're beyond that.
  2. Keep the requests and issues professional and relevant to the work we're doing at Bitwise.
  3. Treat others with the same respect you would if you were talking to them in person. Don't be a jerk.
  4. Have fun and share your knowledge!

New to Bitwise?

Here's what we expect you to know before you write any code:

  • Please read all the links included:
  • Take a look at our Guidebook for all your (mostly) non-code related needs!

Get set up with GitHub

Git

  • Gitflow workflow
    • Maintain branches for main and development
    • Branch off development for new features
    • Request reviews on your Pull Requests to development
    • Merge reviewed code into development
    • When milestone is complete branch off development into a new release branch
    • QA the release branch, once stable merge release branch into main (and tag it) and also merge back into development
    • For any hot fixes, branch off main into a new hotfix branch, fix issue, then merge fixes back into main (and tag it) and also merge into development
    • Gitflow diagram Credit: https://nvie.com/posts/a-successful-git-branching-model/
  • Branching at Bitwise
  • Commit Messages at Bitwise

Code Versioning

Project Setup

Code Review

Machine Setup

Mac: Install:
Windows:
  • (Optional) Install a third-party antivirus product of your choice.
  • Activate Windows using a valid license key. If you don't already have one, ask HR about getting one.
  • Install all available Microsoft updates, restarting your computer as necessary.
  • Open PowerShell with Administrator privileges. Run Set-ExecutionPolicy RemoteSigned. Type Y and press Enter to confirm that you want to make this change. (If you don't perform this step, you will not be able to run any PowerShell scripts on your system.)
  • Install the Chocolatey package manager for Windows.
  • Reopen PowerShell with Administrator privileges, if necessary. Run the install-apps-via-chocolatey.ps1 script to install a number of programs you will probably need. (Feel free to peek at this file's contents to see what it contains.)
  • (Optional) From the same PowerShell window, run the command oosu10. Here, you can easily configure several settings to have Windows respect your privacy a little more. Just make sure you understand what each setting does before you change it.
  • After running oosu10, restart Windows (if applicable).
  • Install Android Studio
  • Install the regular version of Visual Studio (as opposed to Visual Studio Code). Visual Studio Community Edition may be sufficient, or you may need a paid license for Visual Studio Professional, Enterprise, or similar. Either way, ask your PM (Project Manager).
  • You may wish to use the Windows Subsystem for Linux.
  • Ask your Project Manager if you need to install anything else.

Using Chocolatey has several advantages:

  1. You can install most of the software you need just by running a single script.
  2. You can update all of this software later by running choco upgrade all as Administrator.
  3. Chocolatey will automatically skip installing browser toolbars and junk like that.

Account Setup

You will need to schedule time with Greg Goforth, Corey Schuman, Chris Hawkins, or Jody Hicks to gain access to the following:

AWS Account:
  • AWS is our primary platform for deployment (staging and production) so you should familiarize yourself with their JavaScript SDK and whitepapers.
Bitwise Standards & Practices Meetings:
Meetings are now split into two types:
  • Presentations: Twice a month the software development teams in the Bitwise ecosystem meet on every other Wednesday from 4:00 pm - 5:00 pm PST to share their accomplishments, horror stories, workflow, and lessons learned with the rest of the BW community. While these meetings will generally be developer-focused, we invite anyone in the BW family to drop in and participate. You are highly encouraged to participate actively by leading a meeting on a topic of your choice. Ask Sonia Rohani, or Joel (Gyuhun Lee) to add you to the GCal event so that you get reminders and emails.
  • Workshops: Once a month we will do a deep dive into a topic of interest for our workflow and/or processes. These will typically take longer than 1 hour and will be a classroom/workshop setting. One developer will lead the workshop and the goal will be to produce developers who are proficient at a skill or process that will help us in our work.
Frontend Masters:
  • Bitwise main online teaching tool is Frontend Masters. They have courses on all of the platforms we employ at Bitwise, and you should take advantage of as many as possible.
WebStorm:
Photoshop:
  • If your job entails design work, you will need to get access to the Bitwise Adobe Photoshop license.

Need Help?

Getting stuck is a natural part of development and happens to the best of us. It's better to reach out than to stay silent, and we encourage you to do so. If you find yourself stuck on a task for more than 45 minutes, here are a couple of places to get help:

Problem Solving:

Try to use these suggested ways to better your problem solving skills when stuck on tasks. How to think like a programmer — lessons in problem solving

Communication Channels:
  1. Your team channel - When you start a project, you will be added to a private team channel. Feel free to ask your questions there! Your team lead may be able to help you through your blocker.
  2. bwtc-stackoverflow - Did you know we have our own Stack Overflow? Take a look, it has some great questions and answers.
  3. bwtc-technical-discussions - Great place for technical questions that involve some code.

Problem Solving

While reaching out for help is very important when getting stuck, developers are expected to try and problem solve before seeking help else where. A good read on how to problem solve is listed below

Problem Solving

Contributing to Bitwise

You are expected to contribute something to our processes. You can do this in many different ways, such as leading a BW Developer Connect meeting, writing up a markdown sheet for this repository on a topic you are passionate about, leading a workshop, or posting discussion topics in Bitwise's #bwtc-technical-discussions channel.

Click Here to start contributing.