Job Description :

Temp to Perm (90 day contract assignment) or Direct Hire. Direct Hire Salary: $100k to $120k (depending upon experience

Pay Rate: $55.00 to $70.00 Pay Rate

7975 N Hayden Road, Suite C300
Scottsdale, AZ 85258
11 miles due North of downtown Tempe.

Platform is a leading provider of gift, stored value and loyalty solutions for businesses of all sizes. Processing more than 20 million transactions annually in over 26 countries, Cayan''s Platform is consistently recognized for its flexibility, simplicity and support in its delivery of comprehensive, value-based solutions. Our stored value, gift and loyalty solutions are customizable for every type of business - whether you''re a small business or a growing chain - and help build lasting relationships between merchants and their customers.
The Principal Software Engineer is responsible for the design and development of Opticard’s software components that are deployed to our Stored Value Gateway, supporting merchants'' Gift and Loyalty programs, including our integrations with the leading mobile wallet providers.
Working within a team, the Principal Software Engineer will develop primarily using the C and C++ programming languages and is responsible for utilizing a variety of web protocols to integrate capabilities to our stored value gateway and portals, providing web services to PoS, and consuming web services from our Payment Gateway.
The Principal Software Engineer will also help mentor and develop more junior members of the team in all aspects of the Software Development Lifecycle, instilling best practices and a commitment to quality in all deliverables.
Job Description
· Design and develop applications to leverage traditional card and evolving mobile payment technologies and mobile wallets (eg. Android Pay, Apple Pay, Samsung Pay etc
· Use the C and C++ programming languages to deliver high quality, easily maintainable production code
· Develop secure software, using hardware acceleration and trusted computing modules to securely capture, store and transmit sensitive payment data
· Implement secure end-to-end transactions, featuring synchronous and asynchronous cryptographic algorithms and digital signatures
· Use SOAP and JSON based web technologies as both client and server within the payment ecosystem
· Participate in the entire software development lifecycle, from requirements analysis through software and test design, implementation and unit testing, to verification and release.
· Apply software design principles, including coupling/cohesion, decomposition/modularity, encapsulation/information hiding, and separation of interface and implementation, and teach these practices to more junior members of the team.
· As part of a customer-focused team, seek understanding of and value in our customers'' requirements, and actively shape the product from an engineering standpoint
· Participate in team workshops to generate ideas and high-quality technical solutions – picking the right solution whilst balancing idealism and pragmatism
· Assist with troubleshooting and repairing defects
· Simplify and improve existing technical methodologies
· Adhere to and apply overarching internal practices and policies with respect to coding standards, unit testing, lean development, and status reports
· Assist in project management activities: Estimation, Scheduling, Planning, Tracking progress
· Assist with training and mentoring of others on the team.
· Assists with hiring (Interviewing, Phone Screens)

· BSc or MSc or equivalent in Computer Science or related field
· Experience in Linux development environment
· Working experience of C and/or C++
· Experience with integrating 3rd party services – eg. SOAP or REST
· Experience with Design Patterns, Refactoring, OO Design and related areas
· Expected to be self-starters who can operate well under a variety of different situations and types of projects, ranging from a team of one to a team of many.
· Passion for and self-motivated interest in Software Development as a profession, not just a job
· Strong analytical, problem-solving, communication and organizational skills
· Must be proactive, self-motivated, attentive to detail, and able to work well under pressure
· Strong communication skills
· Team player with a desire to learn and a willingness to teach and mentor as part of a team
· Able to take ownership of, and responsibility for, assigned work

· Experience in a senior role on software development teams
· Database design and development
· Web client and server programming skills
Educational Requirements