Senior Software Engineer
Role details
Job location
Tech stack
Job description
We are looking for a Senior Software Engineer who can own complex problems from discovery through production. This role is not narrowly frontend, backend, or data engineering. The right person can work across services, APIs, event flows, product experience, production debugging, and cross-team delivery.
They should be comfortable taking an unclear business or customer problem, breaking it down, making trade-offs clear, and shipping a reliable solution.
We need someone who raises the engineering bar without needing a lot of direction.
- Design and build reliable services, APIs, and product-facing workflows.
- Work across backend systems, UI surfaces, event processing, and third-party integrations.
- Turn unclear problems into concrete technical plans.
- Own production behavior, including monitoring, alerting, logging, debugging, and runbooks.
- Work with product, design, infrastructure, support, and other engineering teams.
- Improve quality through tests, code review, observability, and simpler designs.
- Use data and production evidence to validate decisions.
- Take ownership of incidents and production issues when systems do not behave as expected.
Requirements
- You have 5+ years of software engineering experience, with strong backend skills in Java, Scala, Kotlin, Go, or a similar language
- Education: Preferred minimum Bachelor's degree in CS, EE, SW, CE, MIS; or equivalent experience
- You have experience owning ambiguous technical work and can solve problems across multiple layers of a system, from backend services to product-facing frontend workflows when needed
- You're comfortable with distributed systems, event-driven flows, caching, retries, rate limits, and the many ways production systems fail
- You have experience building APIs, services, and integrations, backed by solid SQL and data-driven product decisions
- You've worked with a cloud platform (GCP, AWS, or similar) and event systems like Kafka, RabbitMQ, or Pub/Sub
- You write automated tests, review code thoughtfully, and use logs, metrics, dashboards, and tracing to understand how your systems actually behave in production
- You're a strong production debugger who stays calm and clear during incidents, and you can explain trade-offs to both engineers and non-engineers
- You have a bias toward simple, reliable solutions that other engineers can operate without you in the room
- You take ownership of outcomes, not just tickets - you ask what problem you're solving before jumping to implementation, validate risky assumptions early, and escalate when risk or scope is unclear
- You don't take shortcuts around process, security, or production safety
- Nice to have: React/TypeScript or similar frontend experience, merchant- or customer-facing product work, third-party integrations (OAuth, account linking, external APIs), Redis/caching/queues at scale, or experience with analytics and event data products
Benefits & conditions
Commerce, along with many other employers, has become the subject of fraudulent job offers to hopeful prospective job seekers.
Be advised: Commerce does not offer jobs to individuals who do not go through our formal hiring process.
Commerce will never:
- require payment of recruitment fees from candidates;
- request personally identifiable information through unsanctioned websites or applications;
- attempt to solicit money from you as part of the hiring process or as part of an employment offer;
- solicit money to complete visa requirements as part of a job offer.
If you receive unsolicited offers of employment from Commerce, we urge you to be extremely cautious and avoid engaging or responding.