Title:                            Senior Software Developer

Function:                    Technology

Reports To:                Technical Lead, Software Development

Location:                    Toronto


Role Description
The Senior Software Developer is a key contributor in developing solutions that integrate with enterprise clients and consumer-facing applications. As a proponent of server-side development, you understand the value of the TypeScript language and are comfortable with modern JavaScript concepts, have an appreciation of code organization and architecture, and you know that understanding and optimizing data access (whether via REST APIs or database queries) is critical to provide good user experience.


Ideal Profile
The ideal candidate is proficient in JavaScript (ES6+) and will have a passion for developing applications using the latest frameworks and technologies, developing solutions in TypeScript and React. Solid knowledge of developing for the Cloud with experience in AWS Serverless (Lambda and DynamoDB) and Message-based (asynchronous) architectures is preferable. The ideal candidate is a person who is obsessed with attention to detail and is driven to keep pace with emerging and existing technologies. Your code organization should be driven by a belief in SOLID design principles, clean and easy to understand and test. You believe that unit tests are a critical deliverable, just as important as the feature code itself. You are self-motivated, taking on experimental projects to investigate new technologies that pique your interests, and excited to learn and apply new techniques.


Primary Responsibilities

  • Work collaboratively with Software Developers, Team Leads, Technical Solution Architects and Product Managers through an agile development process to develop and implement advanced JavaScript and TypeScript solutions, integrating with large scale client systems and mobile applications.
  • Work on feature development, unit testing, structural refactoring and bug fixes while being a catalyst and champion for implementing technical enhancements and optimizing existing applications.
  • Develop reusable, configurable, and maintainable functions, classes, components, and modules that will be part of our core platform codebase (useable for a variety of different client implementations) ensuring applications are rock-solid stable and implemented securely.
  • Create thoughtful service and data access / query layers, providing access to system data in a secure and efficient manner.
  • Participate in regular code reviews to help formulate and ensure adherence to internal and industry best practices and guidelines, conducting unit and security testing, fixing bugs where they arise.
  • Research, recommend and provide innovative and compelling technical advancements for projects.
  • Create and contribute to functional specifications and sustainable technical documentation.
  • Participate in concept and design discussions while contributing to the technical roadmap and strategy.


Capability Requirements – education, skills & experience

  • Bachelor’s degree or higher in Computer Science, Engineering, Human-Computer Interaction, a related field or equivalent and relevant work experience.
  • 3 – 5 years of experience in software development building scalable commercial-grade consumer-focused web applications, REST services with efficient database access.
  • Master of JavaScript (ES6+) and demonstrable proficiency in web technologies: React, TypeScript, Node.js, JavaScript, npm – integrating with RESTful APIs, message-based architectures and web services.
  • Experienced in creating and maintaining unit tests using Jest and mock objects. An understanding of TDD is nice-to-have, but not mandatory.
  • Talented with Git, tags/versioning, feature branches and Continuous Integration. A deep understanding of Trunk-based development methodology
  • Prior experience with Java development is nice-to-have and AWS Serverless (Lambda and DynamoDB) knowledge is a definite asset.
  • Knowledge of WCAG 2.0 for AODA is an asset
  • Proven experience working in an agile development environment, i.e., Scrum, Kanban or XP.
  • Jenkins experience, and an interest in DevOps processes and deployment mechanisms, is an asset
  • Self-motivated, results-oriented with strong capacity to continuously learn and grow, proven record of task completion with high quality results.
  • A team player with excellent communication, problem solving, troubleshooting and analytical skills.


About Us

Exchange Solutions is a cloud-based marketing technology company that delivers personalized loyalty solutions to retailers enabling them to build deeper and more profitable engagement with their consumers. With more than 20 years of experience in the industry, Exchange Solutions transforms loyalty programs and promotions from being costly applications to productive and profitable capabilities for clients across various verticals in the US and Canada. Current clients include Harry Rosen, Esso™ and Mobil™, Well.ca, Sobeys Inc., Rexall Pharmacy Group, Lowe’s, Indochino, and Today’s Shopping Choice.

Why join us?

At Exchange Solutions, we share a company-wide commitment to hiring remarkable people.  We are a high-energy company where individuals are driven to succeed and empowered to perform at their best. Our environment combines teamwork, vitality and enthusiasm with a casual, flexible approach. Our talented team members share a dedication to creativity in developing innovative ideas and together we are powering the future of advanced customer engagement and loyalty.

If you share a love for everything about software design and if using technologies like Docker, Kubernetes, Chef, Mesos, Gradle, ReactJS, Kafka and AWS tickles your fancy, then you might just speak our language.  Do you bring a big thinking approach and a curious mind that is not afraid to ask hard questions? Do you have a passion to translate focused research into actionable implementation decisions?  How about working on high transactional systems that handle billions of transactions per month with sub-second response times?

We’re a Java shop environment using agile methodologies and on a learning path towards mastering continuous delivery.  We have a high performing collaborative team of software development professionals driven by their mutual passion for innovation and a desire to keep pace with leading edge technologies.  We walk the talk through our commitment to challenging work and internal programs, such as Innovacations (a week dedicated to experimental exploratory work), and Developers Learning Things at Lunch (DLTAL) all while having a fun work hard/play hard balance … and of course, free Java ;)