The C/C++ Principal Software Engineer is responsible for the design and development of Cayan software components that are deployed to our countertop and handheld Payment Capture terminals (Genius).
The C/C++ Principal Software Engineer is responsible for the design and development of Cayan software components that are deployed to our countertop and handheld Payment Capture terminals (Genius). The Genius products are highly secure devices capable of handling contact and contactless smart cards, Android Pay, Apple Pay, Samsung Pay etc., as well as providing value added services for both the Merchant and paying customer. Leading the team, the Principle Software Engineer will develop primarily on C++ and C, and is responsible for utilizing a variety of web protocols to integrate capabilities to our payment partner’s Point of Sale systems (PoS), providing web services to PoS, and consuming web services from our Payment Gateway.
The Principal Software Engineer is rightly recognized as a strong technical expert and leader. They are responsible for ensuring the team deliver the highest quality software at the fastest possible velocity. They are committed to a quality product and are prepared to develop and mentor the other members of the team.
- Design and develop applications to leverage traditional card and evolving mobile payment technologies, including Smart Card (“Chip and PIN”), Contactless Cards, Android Pay, Apple Pay, Samsung Pay etc.
- Use 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
- Understand customer needs, problems and expectations, and execute a plan of action to implement high quality, innovative solutions that deliver value to our customers
- Take a leadership role in driving 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 instill these practices in all work performed by the team.
- Be an inspirational technical leader – train, mentor and motivate team members by setting an example as to how software development projects can be successfully executed
- Improve the software development process, methodologies and tools through applied experience, automation and simplification – deliver better software, faster and cheaper!
- Collaborate with team members to ensure that deliverables are technically accurate and useful in a timely manner – we build quality into all stages of the software lifecycle, with a focus on end-user observable (and testable) system behaviours
- Identify critical activities & tasks on projects, help with estimation and planning, ensure timely and accurate communication of status, resolution of issues, and contribute beyond assigned tasks – adjusting priorities when appropriate
- Be proactive, self-motivated, attentive to detail, with the ability to work well under pressure
- Be a team player and role model, exhibiting a professional attitude, building work relationships, demonstrating flexibility and supporting workplace ethics
- Assists with hiring (Interviewing, Phone Screens).
- BSc or MSc or equivalent in Computer Science or related field
- Experience of developing in C++ or C (and ability to learn C++ if only C background)
- Experience of at least one of XML, JSON, HTML
- Experience with Design Patterns, Refactoring, OO Design and related areas
- Experience of Linux development
- Experience working in an Agile SCRUM, or Lean Kanban environment
- 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 leader of a team
- Experience in a senior role on software development teams
- Able to take ownership of, and responsibility for, assigned work
- Experience of leading a team
- Eligibility to work in the UK on a full time and permanent basis
- Experience in a leadership role on software development teams
- Working experience in C++ or C with Embedded Linux
- Database design and development
- Web client and server programming skills
In addition to a very competitive salary we also provide an excellent benefits package including: private medical care, health cash plan, contributory pension, life insurance and income protection.
You also get to work in an award winning office and enjoy 25 days annual leave + 10 public holidays in addition to many other little perks such as lunch every other Friday, fresh fruit and more.
For more information, please visit cayan.com/engineering