We are seeking an experienced desktop software engineer to join our enterprise banking software team. You will design, develop and maintain a multi-language, client-server desktop application, with emphasis on hardware integration, banking protocols, and robust, mission-critical operations.
Responsibilities
- Develop and maintain a complex C++/C#/.NET desktop client-server application for banking operations
- Build Python API layers including REST and XML-RPC interfaces for banking integrations
- Create Python device handlers for hardware abstraction (cash dispensers, printers, card readers, check readers, signature pads)
- Work with Windows systems programming (COM/DCOM, Registry) and Win32 APIs for the core C++/C# client
- Develop integrations with banking core systems using XML-RPC, SOAP and custom socket protocols
- Implement high-level (PHLAPI) and low-level (PLLAPI) banking APIs for transaction processing in Python
- Create real-time monitoring dashboards using Node.js, Express and React
- Work with SQL Server and PostgreSQL databases for transaction management and reporting
- Ensure compliance with banking protocols and security standards
- Develop multi-threaded, event-driven systems for asynchronous device operations
- Support multiple hardware vendors
Requirements
- Strong experience in API development and device integration (REST APIs, XML-RPC, hardware drivers)
- Experience with C++ and/or C#/.NET development for Windows desktop applications
- Experience with multi-threaded programming and asynchronous patterns
- Knowledge of SQL Server or PostgreSQL database design and optimisation
- Strong systems-programming skills and debugging expertise
- Proactive mindset, eager to work on complex, mission-critical systems
- Strong English fluency
- Experience with Python (plus)
- Understanding of Windows desktop application development (Win32 API) (valuable)
- Familiarity with device-driver development or hardware communication protocols (highly valuable)
- Understanding of plugin architectures and design patterns (Factory, Observer, Command)
- Experience with Node.js/Express for web services (plus)
- Knowledge of banking systems, XFS or payment-terminal integration (plus)
Benefits
- Competitive salary
- 30 vacation days per year
- Flexible working hours
- Hybrid work options available
- Opportunity to work on mature, enterprise-level banking software
- Exposure to sophisticated systems programming and hardware integration challenges
- International team collaboration across multiple time zones
Experience & Employment
- Required Experience: Minimum 3 years of professional experience
- Employment Type: Full-time