Description:
We are looking for software developers with strong programming skills and a passion for creating great user experiences. Successful applicants will have a strong ability to learn, combined with the tenacity to solve problems independently and a strong focus on the details required to create first rate software.
In this position, you will:
- Participate in the full range of software development tasks including:
- Investigating feature requests, finding what needs to be done and creating clear, detailed designs
- Revising and polishing designs based on stakeholder feedback
- Implementing features with a focus on code craftsmanship, software quality, performance, and scalability
- Creating automated unit and component tests
- Investigating bugs and performance issues
- Contributing innovative ideas to shape the product
- Collaborating with product managers, UX designers, and user assistance developers
- Participate in DevOps/SRE tasks including:
- Cloud system monitoring and trouble shooting
- Automation of reproducible tasks
- Deploying software to cloud environments
- Cloud system administration
- Be mentored by more senior team members who want to see you grow and succeed
- Use your skills and knowledge to help teammates achieve their goals
- Continue to learn new skills and technologies
- Work both independently and collaboratively.
- Work in our Waterloo office 3 days per week.
Education and Qualifications
The following qualifications are required:
- Bachelor’s degree in computer science, software engineering, computer engineering, or a related discipline that includes at least 10 undergraduate term courses focused on software
- Strong academic performance
- Strong programming skills in JavaScript
- At least 6 months industry experience in a full stack role that included
- significant front-end and back-end implementation and
- non-trivial feature development
- Strong problem-solving skills
- Strong written and verbal communication skills
- Good understanding of relational database concepts
- Able to gather requirements, create software designs and document them clearly
- Able to write clear, readable, robust, maintainable code
- Able to thoroughly test code
- Able to read, understand and modify existing code
- Able to troubleshoot and debug software systems
- Strong attention to detail