Software Development Engineer - Full stack - SDE2 (Find)
We are looking for a passionate Software Development Engineer to help design, develop and deploy software for our solutions. The successful candidate will be able to build high-quality, innovative and fully performant software in compliance with best practise coding standards and technical design. Help to drive better working practices and become a valued member of the engineering department.
Key accountabilities and measures
- Collaboratively solves problems; communicates technical decisions through tech-talks and white-boarding sessions
- Learns quickly and makes steady progress without the need for significant feedback from more senior engineers
- Shows engagement when architecting and developing new software
- Shows engagement with the wider engineering community. Hosts Dojo’s lunch and learn sessions and is seen as someone who interacts with the wider engineering community.
- Helps other engineers to produce clean, quality code through strong engagement in code reviews and pair programming
- Takes full ownership of the tasks in his/her backlog and is also begging to show signs of taking accountability for the entire team’s backlog.
- Actively engages with the product teams to make the product better, and to understand ambiguous requirements
- To be seen as helpful, by both engineers and product
- Strong software design. Expected to know a wide array of software design patterns in depth, display a strong understanding of algorithms and data structures, and able to show multiple real-life examples of applications of this knowledge.
- Consults business stakeholders on the best approach for delivering complicated feature, both in how it can be split and sequenced, and in terms of potential improvement to the functional requirements
- Beginning to show signs of continuously mentoring less experience members of the team. Not just giving a hand here and there, but genuinely trying to upskill their peers.
- Knows when to challenge the team to be pragmatic.
- Experience building distributed web applications
- Strong experience with CSS/SASS
- Experience with build automation tools (Webpack, nodemon)
- Strong experience with testing frameworks and libraries such as Mocha, Chai or Webdriver.io
- Experience working within a Continuous Delivery environment
- Experience working within an Agile environment such as scrum or Kanban
- Experience with NodeJS
- Experienced working within a cloud environment, and is comfortable provisioning IaaS and PaaS services within such an environment
- Understanding of containerisation (preferably Kubernetes)
- Familiarity with ES6 / CSS3 syntax's
- Ability to mentor and provide constructive feedback to members of the team
- Proficiency with TDD & BDD
- Good understanding of the good software design principles (e.g. OO, DRY, SOLID)
- Experience with full-stack development and devops
- Experience with distributed version controls systems like Git
- Experience with pair programming
- Experience working with CI tools (Concourse, Jenkins)
- Understanding of Accessibility best practices
- Experience with using templating engines (Handlebars)
- Experience with Express