Job Description
About the job
Senior C++ Developer
12 months + contract
5 days onsite with some flexibility
About the Role
We’re seeking a seasoned C++ Developer with hands-on retail Point of Sale (POS) experience—ideally with CMA (Cornell-Mayo & Associates) solutions, now NCR OmniPOS. You’ll build and optimize high-performance transaction flows, device integrations, and store-side services. A strong grasp of end-to-end business flows (from item scan to settlement) and proven experience with loyalty integrations(enrollment, identification, accrual, redemption, and promotions) are critical to success.
What You’ll Do
Design & develop robust, maintainable C++ components (transaction engine, promotions, tenders, receipts, returns, store ops).
Model end-to-end business flows: cart lifecycle, price/discount calculation, tax, tenders, reversals, partial auths, voids, EOD/batching, and offline/online sync.
Implement loyalty integrations: membership lookup, accrual & redemption, points balances, personalized offers, targeted promotions; ensure deterministic application and auditable outcomes.
Extend CMA/NCR OmniPOS: customize workflows, UI, and business rules; build integrations via APIs/middleware/plugins.
Integrate peripherals: payment terminals, scanners, printers, scales, cash drawers, customer displays; OLE for Retail POS (OPOS) / Java for Retail POS (JPOS) and device SDKs.
Optimize performance & reliability: profiling, memory management, concurrency; robust error handling, recovery, logging, telemetry.
Ensure compliance & security: partner with Payments for PCI-DSS considerations; secure coding, secrets handling, and data minimization.
Support delivery: CI/CD, packaging, deployments, rollout planning, hotfixes; documentation and runbooks; collaborate with Product, QA, Ops.
Must-Have Qualifications
5+ years professional C++ (C++11/14/17), Standard Template Library (STL), Resource Acquisition Is Initialization (RAII), templates, exceptions; strong debugging and performance tuning.
POS domain expertise with CMA/NCR OmniPOS (or similar): configuration, extension, APIs, scripting/plug-ins, troubleshooting.
Business flow understanding: transaction lifecycle, promotions/discount engines, tax, returns/exchanges, tender orchestration, reconciliation.
Loyalty experience: identification (barcode, phone, card, token), points accrual/redemption, earn/burn rules, stackability with offers, breakage handling, edge cases (split tenders, offline accrual).
Concurrency & performance: threads, async I/O, synchronization primitives; profiling tools (e.g., valgrind, perf).
OS & tooling: Windows and/or Linux, build systems (CMake/Make/MSBuild), Bitbucket; debuggers (Visual Studio, gdb/lldb).
Device integration: OPOS/JPOS, serial/USB/network peripherals; driver SDKs and state recovery strategies.
Testing: unit/integration tests (GoogleTest/Catch2), mocks/stubs, automated builds.
Nice-to-Have Skills
Payments: EMV/contactless, PSP integrations, tokenization, partial auth and fallback logic, settlement/reconciliation workflows.
Retail back office: price/PLU updates, item master sync, promotions distribution, store-to-HQ messaging, inventory adjustments.
Distributed/edge systems: store servers, offline-first patterns, eventual consistency, conflict resolution.
Adjacent languages: Python, C#/.NET, Java for tooling/bridges.
Observability: structured logging, metrics, tracing (OpenTelemetry), log aggregation (Splunk/ELK).
Security: static analysis (clang-tidy/sonar), supply chain hygiene, secrets management.
DevOps: Docker, CI/CD (Azure DevOps/GitHub Actions), artifact management.
UI experience: Win32/MFC/Qt or web-based POS front ends integrated with C++ services.
Education
Bachelor’s degree in Computer Science, Engineering, or equivalent experience.
Requirements added by the job poster
• 5+ years of work experience with C++
• 1+ years of work experience with Point of Sale (POS) Systems
