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.
What You Will Do
- 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., 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.
Requirements
- Strong senior-level engineering judgment.
- Experience owning ambiguous technical work.
- Ability to solve problems across multiple layers of a system.
- Strong backend engineering experience with production services.
- Enough frontend experience to work on product-facing workflows when needed.
- Comfort with distributed systems, event-driven flows, caching, retries, rate limits, and failure modes.
- Strong production debugging skills.
- Ability to explain trade-offs clearly.
- Bias toward simple, reliable solutions.Good communication during incidents, reviews, and cross-team work.
Technical Experience
- 5+ years of software engineering experience.
- Strong experience with Java, Scala, Kotlin, Go, or a similar backend language.
- Experience building APIs, services, and integrations.
- Experience with SQL and data-backed product behavior.
- Experience with GCP, AWS, or another cloud platform.
- Experience with Kafka, RabbitMQ, Pub/Sub, or similar event systems.
- Experience with logs, metrics, dashboards, alerts, and tracing.Experience writing automated tests and reviewing code.
Useful Experience
- React / TypeScript or similar frontend experience.
- Experience with merchant-facing or customer-facing product workflows.
- Experience with third-party integrations, account linking, OAuth, or external APIs.
- Experience with Redis, caching, rate limiting, queues, or high-volume event processing.Experience with analytics, reporting, attribution, or event data products.
Mindset
- Own the outcome, not only the ticket.
- Ask what problem we are solving before choosing the implementation.
- Prefer simple designs that other engineers can operate.
- Validate risky assumptions early.
- Use production data and customer impact to guide decisions.
- Escalate early when risk, ownership, or scope is unclear.Do not take shortcuts around process, security, or production safety.
What Good Looks Like
A strong candidate can describe systems they owned, incidents they handled, trade-offs they made, and mistakes they learned from.
They should be able to explain how they approach unclear problems, reduce risk before production, and make systems easier for the team to operate.
They should not need a tech lead to turn every ambiguous problem into a detailed task list.