Design, develop, and maintain embedded point-of-sale software for secure payment processing.
Implement industry-standard protocols and develop system-side, communication protocol, and kernel code.
Create, maintain, and execute application unit tests and collaborate with QA on test coverage.
Analyze bug reports, manage defect resolution, and report issue status.
Collaborate with hardware teams on product design, schematics, I/O mapping, and manufacturing test software.
Perform code reviews and support the quality and timely delivery of products and features.
Add, monitor, and parse telemetry data to proactively resolve issues.
Requirements
2+ years of software development experience.
2+ years working with embedded, mobile, or other connected devices.
Proficiency in embedded C programming.
Experience with automated testing, build systems, or device firmware communication.
Experience with embedded systems, operating systems, software development tools, and hardware-software interfaces.
Experience architecting and developing multithreaded applications, preferably in embedded systems.
Experience with SPI, UART, I2C, USB, JTAG, GDB integrations, debugging practices, and basic electrical design principles.
A degree in computer science or electrical engineering, or equivalent practical experience.
Fluent spoken and written English.
Preferred: proficiency in C++ or Golang and experience developing on ARM platforms.
Preferred: experience with point-of-sale hardware and peripherals, EMV standards, PCI standards, transaction processing, and retail payment technologies.
Preferred: knowledge of TrustZone, anti-tamper mechanisms, Secure Boot, Hardware Root of Trust, foundational cryptography, and secure key exchange protocols.
Stripe
Stripe is a financial infrastructure platform for businesses. Millions of companies—from the world’s largest enterprises to the most ambitious startups—use Stripe to accept payments, grow their revenue, and accelerate new business opportunities.