Weeks 1–3
Learn about our culture and values
Before you dive in to engineering tasks like reading and writing code, it is important to give yourself the time and space to set the context for the work you will be doing here at Sourcegraph.
- Read our company values.
- Read our engineering principles and practices.
- Start reading Turn the Ship Around and Orbiting the Giant Hairball in any order (you can expense these books). As you are reading, share and discuss your thoughts with your team.
- Turn the Ship Around - An inspiring story of how Navy captain David Marquet turned the lowest performing submarine in the Navy into the top performing one with his bottom's up leadership style.
- Orbiting the Giant Hairball - An entertaining self-account of Gordon MacKenzie's experience fostering creativity on his team at Hallmark Cards. Buy the hard copy. There are lots of fun illustrations and short stories. It is a quick read and probably unlike any other book you have read.
Starter tasks
Your manager will assign to you three starter tasks that you should aim to complete in your first three weeks. These tasks are small, atomic, and intended to expose you to different parts of our codebase and product: it's important that you build the flexibility to fix any problem you'll be faced with at Sourcegraph, and don't narrow down your comfort zone to a certain part of our codebase or product.
As you're working on these tasks:
- Optimize for learning: your priority is to soak up as much context as possible, not to ship something as fast as possible.
- Aim to be as incremental as possible:
- Open a pull request as soon as you feel like you're ready for feedback or input on your code—you can make it a draft pull request if your code is still a work in progress.
- Favour splitting up your work in multiple pull requests every time it makes sense—shipping frequently is important.
- Ask yourself what tests are appropriate for the change you're tackling, and add them!
- If you need help, remember everyone is here to answer any question — ask for help in your team's channel (or any appropriate channel), and add the answer to our docs or the handbook if you feel like it can help future teammates.
As you complete these tasks, share your accomplishments in #progress 🙂
Pairing sessions
Reach out to every member of your direct team, and set up a two-hour pairing session with them. These sessions will be an opportunity to get to know your teammates, understand what they're working on and why, and learn more about our codebase and development flows!
Take the first 20–30 minutes of the session to have an unstructured, introductory chat. Then, start hacking! Your teammate will set up a live share and walk you through what they're currently working on. Ask as many questions as possible, to try to understand:
- What problem is your teammate trying to solve?
- Why is that problem important? What team goal does it fit under?
- What are relevant RFCs,GitHub issues or documentation pages?
- What parts of our codebase need to be changed to solve this problem?