Skip to content

Latest commit

 

History

History
executable file
·
102 lines (58 loc) · 7.88 KB

engineer.md

File metadata and controls

executable file
·
102 lines (58 loc) · 7.88 KB

Engineer

Our Engineers build software that makes our customers happy, they prefer problem solving over task completing, love learning from colleagues, and constantly strive to be nice humans.

What does the job entail?

We primarily write and deliver custom software to our customers. We build solutions in a variety of langugaes and platforms, historically PHP and Ruby on Rails, we tend to use React, JavaScript, Elixir and Clojure these days. We will usually be responsible for setting up a customer's infrastructure on Azure or Vultr, with tools like Ansible and T erraform though sometimes we opt for a Platform as a Service like Heroku. We make sure there is a Continuous Delivery pipeline running our automated test suites before deploying changes.

The software we build solves business problems. We’ve built software for marketing, e-commerce, retail buying departments, accountants, photography studios, warehouses, supply chain companies, and ourselves. Typical projects will last 3-6 months, some customers work with us over longer periods but we like to mix up teams at around 6 months to keep things fresh.

What experience are we looking for?

We'll expect you to be proficient in at least two programming languages. This is usually something like Ruby/Python/PHP/Java/C# and then JavaScript. Everyone in the organisation comes from various language backgrounds and we see this as a strength of our offering, our teams can solve problems with open minds and across many platforms. This also makes for a great learning environment.

Code is only the half of it. The other half is communication. We expectyou to be a great communicator with customers and colleagues in written and spoke English. We meet our customers face to face regularly, even working frmo their office, along with keeping in touch via Microsoft Teams and Skype for Business.

Everything else is optional but highly sought after. We would love for you to have experience in:

  • Previous experience working directly with customers
  • Writing code with Test Driven Development or perhps ATDD
  • Mentoring colleagues providing them with guidance rather than solutions
  • Pair programming as we pair around 50% of the time
  • Agile practices like Scrum, XP, and/or Kanban
  • Component based design techniques such as using pattern libraries, styled components, CSS-in-JS, BEM, and/or SUIT CSS
  • React ecosystem including a TDD approach
  • Working with a range of SQL and NoSQL databases
  • Infrastructure as code tools like Ansible, Chef, Pullet, and/or Saltstack
  • Strong delivery skills: a huge drive to get something shipped

What is it like to work at Scope Web?

We are a sanctuary for those wanting to hone their skills alongside like-minded learns. After joining our team it is common for new starters to comment on how much they're learning and how much they enjoy the fact that they are surrounded by people they can learn from. This includes our most senior hires.

The biggest thing you'll take away from our culture after spending the day with us would be that we practice continuous improvement at every level. Everyone has peer-based one-to-ones every 2 weeks, along with monthly one-to-ones with a directory (executive). Teams have fortnightly retrospectives. We also hold a company wide retrospective fortnightly. We discuss our problems out in the open, and rather than punish failure we band together to find solutions.

Other notable things:

  • Every Friday afternoon is dedicated to learning new skills
  • Everyone is encouraged to write blog posts regularly
  • Our handbook is open sourced
  • We are vegan and non-drinker friendly as well as meat-eater and drinker friendly
  • Retreats and trips every year

Salary

This role has a salary of $65-105k depending on experience.

Expectations

To autonomously deliver working software

We expect our Engineers to be able to work on entire features, from conception through to production deployment, without guidance and direction from others. This doesn't mean they have to be delivered without pairing, or asking advice from the wider team. What does it mean is the primary force for ensuring the feature is built and deployed in a timely fashion, is the responsibility of the Engineer working on the platform.

To be fully billable

We expect our Engineers to significantly contribute to customer deliveries, to justify billing their time. Without billing customers, Scope Web isn't a sustainable business.

To be working towards the Scope Web Core Skills

We expect our Engineers to be honing their craft, practising at every opportunity and consistently making progress towards attaining all the Scope Web Core Skills.

Core Engineer Expectations

To be actively practicing TDD

We expect our engineering team to write tests first by default. We expect every feature to be tested. Every Pull Request (or equivalent chunk of work put up for peer review) must contain a test. If for some reason there are extenuating circumstances for not writing tests, then more than one engineer should peer review and verify this.

To be productively pairing with their colleagues

We expect our engineering team to be friendly and lovely people to pair with. All pairing dynamics are different, sometimes you will be pairing with someone with less experience, sometimes you will have the same experience. Adjusting the speed of your work to accomodate for your pair is important and special care must be taken with mentoring/coaching those with less experience. No matter who you are pairing with, you must take turns to compromise when your opinions differ.

To request peer reviews for the code they write

We expect our engineering team to always have their code peer reviewed at least by one other person before merging. It's the responsibility of the code author to ask their colleagues to review and to merge the code in a timely fashion.

To provide meaningful and considerate peer reviews for others

We expect our engineering team to provide feedback that makes code safer, easier to maintain and advances the knowledge of the original author. We expect everyone to negotiate and compromise when making a call on whether feedback should be addressed or not.

To regularly communicate with customers without reminder

We expect our engineering team to keep their customers up-to-date with progress. Customers should be invited to standups or at appropriate points in time. A customer should never have to chase us for an update.

To keep their teams updated on current work in progress

We expect our engineering teams to keep their fellow team members up-to-date with their progress. A good litmus test for this is everyone on the team can describe what their team mates are up to.

To ensure ceremonies are held regularly

We expect our engineering team to ensure team ceremonies such as planning, retrospectives, and standups happen on a regular basis.

To facilitate showcases and retrospectives

We expect our engineering team to be able to demonstrate the successes of their iterations with weekly showcases to customers. We also expect Engineers to be able to facilitate retrospectives with engaging formats and customer involvement. Good teams will rotate this responsibility on a weekly basis.

To be responsible for the security of devices used for work

We expect our engineering team to understand how to secure the devices they use for work including issued laptops, personal computers, mobile phones, and other electronic devices. We expect individuals to ensure they adhere to our security guidelines upon setting up devices and to ensure that their machines are compliant at all times.

To be involved in practice improvement discussions

We expect our engineering team to reflect on our practices and be a proactive voice in suggesting change. We expect you to be reflecting on your own development practices, reflecting on your team and the wider business.