We are looking for a Senior Software Engineer to join our team. This is a fully remote role that will help design scalable, secure software solutions across web services and user-facing applications. This role will contribute to end-to-end engineering efforts, from building robust integrations and modern interfaces to strengthening authentication, performance, and release quality. The ideal candidate brings strong full-stack development experience, collaborates effectively with product and engineering partners, and takes ownership of delivering reliable, maintainable systems.
Responsibilities:
- Design and implement dependable service integrations by defining contracts, validating data, mapping payloads, and supporting versioned interfaces across connected systems.
- Develop secure identity and access capabilities, including single sign-on, session management, authorization controls, and tenant-aware security boundaries.
- Build and enhance full-stack applications using modern front-end and back-end technologies, including user interfaces, business logic, APIs, and database updates.
- Create responsive, accessible, and configurable digital experiences that support multilingual use cases and consistent behavior across web and mobile clients.
- Deliver embedded and partner-facing solutions that function effectively within external websites and mobile web views, including cross-origin communication and session restoration.
- Maintain high engineering standards through automated testing, code quality checks, continuous integration practices, and proactive monitoring of production behavior.
- Improve application performance, address technical debt, and contribute reviewed changes that strengthen long-term maintainability and reliability.
- Support engineering workflow improvements through automation and practical tooling, including AI-assisted development approaches where appropriate.
- Partner with product managers, internal engineers, and external vendors to refine requirements, resolve technical dependencies, and prepare changes for release.
- Contribute to application evolution by extending existing platforms and supporting architectural changes between monolithic and microservices-based implementations while preserving client compatibility.