Title: Senior Software Developer
Reports To: Technical Lead, Software Development
- 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.
- 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.
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 ;)