
Staff Software Engineer
- Vancouver, BC
- Permanent
- Full-time
- Translate high-level requirements to actionable tasks and deliverables.
- Contribute to architecture and design in a multiplatform ecosystem.
- Design and build distributed software services for transaction processing.
- Produce high quality software that is unit tested, code reviewed, and continuously integrated.
- Collaborate with the Quality assurance team in test planning and test coverage.
- Collaborate with DevOps and CI/CD in operational visibility, triaging incidents, and deployment planning.
- A disciplined approach to development, code review, testing, documentation and code structure in a team environment.
- Actively participate in growing and coaching fellow team members.
- Understand future business goals from Product Owners and make sure architecture and system design can support those goals.
- Build proof-of-concepts to validate architectural and design choices and evangelize those technical choices to other teams.
- Able to understand, diagnose and then solve deep technical and performance issues across the product.
- Provide development support to resolve any issues with technical systems and applications.
- Bachelor's degree in Computer Science, Information Technology, Engineering, Math, Physics or experience in lieu of a degree may be considered.
- 7+ years of Software Engineering experience in Coding, Designing and Developing software.
- Proficient in C and exposure to Object Oriented languages like C++, Java, Python or Kotlin.
- Adept in gathering and interpreting requirements, translating requirements into system definitions and solutions and creating detailed documentation.
- Ability to write modular, maintainable code with unit tests ensuring complete code coverage and adhering to coding standards.
- Troubleshoot and resolve complex issues in embedded systems to debug and optimize system performance.
- Experience with Code repository management, code merge and quality checks, continuous integration and automated deployment and management using tools like Jenkins, Git.
- Experience working in an agile environment and familiarity with Jira, Confluence etc.
- Excellent communication skills and a quick problem solver.
- Previous experience in the cards and payments industry is positive but not mandatory.
- Expertise around Point of Sale, Payment SDKs, and POS hardware experience is a big plus.