Backend Engineer (Senior) - Forecasting & Replenishment

> CP Axtra

  • Suan Luang, Thailand (Hybrid)
  • Full-time

Workplace: hybrid

Department: Technology

Description

We are looking for a Senior Backend Engineer to build and operate services that power Forecasting and Replenishment (FNR) systems at CP Axtra (Makro). This role is for someone who can design clean APIs and business logic, and who is also comfortable owning parts of the operational stack when needed. You will work across backend services, data flows, integrations, and reliability practices to deliver systems that are stable, observable, and easy to evolve.

Key Responsibilities

  • Design, build, and maintain backend services using Java and Spring Boot for FNR applications and workflows.
  • Own end-to-end delivery of features: requirements clarification, technical design, implementation, testing, release, and operational support.
  • Build robust APIs for data-heavy use cases including search, filtering, pagination, and bulk-like workflows where appropriate.
  • Implement and maintain asynchronous processing using Kafka (event-driven flows, consumers, retries, idempotency, and reprocessing patterns).
  • Design and optimize Postgres schemas, queries, and indexes for performance and correctness at scale.
  • Use Redis for caching, distributed locks, and performance improvements where appropriate.
  • Implement security and access control patterns suitable for internal enterprise systems (authentication integration, role-based access).
  • Improve observability and reliability: structured logging, metrics, tracing, dashboards, alerts, and incident debugging.
  • Collaborate with Frontend Engineers, Data Engineers, Data Scientists, and business stakeholders to deliver end-to-end workflows.
  • Contribute to platform and infrastructure work when needed (CI/CD improvements, environment setup, service configuration, production readiness checks).


Requirements

  • 5+ years strong experience building production backend systems with Java and Spring Boot.
  • Strong SQL skills and experience designing and optimizing Postgres\-backed applications.
  • Hands-on experience with Kafka or similar messaging systems, including consumer design, error handling, and operational patterns.
  • Experience using Redis in backend systems (caching strategies, TTLs, invalidation, and concurrency control).
  • Good understanding of distributed system fundamentals: consistency trade-offs, retries, idempotency, backpressure, and failure modes.
  • Strong engineering practices: code reviews, automated testing, documentation, and disciplined release management.
  • Operational mindset: ability to debug issues in production using logs/metrics/traces and drive fixes through to resolution.
  • Clear communication and ownership mindset, able to work with cross-functional stakeholders.


Nice to Have

  • Experience with infrastructure and operations work: containers, Kubernetes, service deployment, or cloud environments (Azure/AWS/GCP).
  • Experience with CI/CD pipelines and release automation (GitLab CI, Jenkins, GitHub Actions, or similar).
  • Experience with observability tooling (OpenTelemetry, Prometheus/Grafana, ELK, Datadog, or similar).
  • Familiarity with schema migration tooling and practices (Liquibase/Flyway).
  • Experience building internal platforms or shared libraries for consistent integration patterns.
  • Experience in retail, supply chain, forecasting, replenishment, or operations-heavy domains.


What Success Looks Like

  • Core FNR services are reliable, observable, and easy to evolve as business rules change.
  • APIs and data flows are consistent and predictable, with clear error handling and stable contracts for consumers.
  • Kafka-based processes are safe to operate with retry, reprocessing, and idempotency patterns in place.
  • Performance remains strong as data volumes grow through efficient Postgres design and caching strategies.
  • The team ships frequently with low regressions, and production issues are detected and resolved quickly.


Tech Environment (Indicative)

  • Java, Spring Boot
  • PostgreSQL
  • Kafka
  • Redis
  • Standard tooling for CI/CD, monitoring, logging, and tracing in an enterprise environment


Apply

[Apply at CP Axtra](https://apply.workable.com/joinmakropro/j/25A1A803F6/apply)

āļ—āļąāļāļĐāļ°āļ—āļĩāđˆāļˆāļģāđ€āļ›āđ‡āļ™
  • Postgre SQL
  • Spring Boot
  • Automation
  • Kubernetes
  • Jenkins
āļ›āļĢāļ°āļŠāļšāļāļēāļĢāļ“āđŒāļ—āļĩāđˆāļˆāļģāđ€āļ›āđ‡āļ™
  • āđ„āļĄāđˆāļĢāļ°āļšāļļāļ›āļĢāļ°āļŠāļšāļāļēāļĢāļ“āđŒāļ‚āļąāđ‰āļ™āļ•āđˆāļģ
āļĢāļ°āļ”āļąāļšāļ•āļģāđāļŦāļ™āđˆāļ‡āļ‡āļēāļ™
  • āļĢāļ°āļ”āļąāļšāļœāļđāđ‰āļˆāļąāļ”āļāļēāļĢ / āļ­āļēāļ§āļļāđ‚āļŠ
āļ—āļąāļāļĐāļ°āđ€āļžāļīāđˆāļĄāđ€āļ•āļīāļĄ
  • Kafka
  • Redis
  • Cloud Computing
  • Java
  • Amazon AWS
āđ€āļ‡āļīāļ™āđ€āļ”āļ·āļ­āļ™
  • āļŠāļēāļĄāļēāļĢāļ–āļ•āđˆāļ­āļĢāļ­āļ‡āđ„āļ”āđ‰
āļŠāļēāļĒāļ‡āļēāļ™
  • āđ„āļ­āļ—āļĩ / āđ€āļ‚āļĩāļĒāļ™āđ‚āļ›āļĢāđāļāļĢāļĄ
  • āļ§āļīāļĻāļ§āļāļĢāļĢāļĄ
āļ›āļĢāļ°āđ€āļ āļ—āļ‡āļēāļ™
  • āļ‡āļēāļ™āļ›āļĢāļ°āļˆāļģ

āđ€āļāļĩāđˆāļĒāļ§āļāļąāļšāļšāļĢāļīāļĐāļąāļ—

āļˆāļģāļ™āļ§āļ™āļžāļ™āļąāļāļ‡āļēāļ™:2000-5000 āļ„āļ™
āļ›āļĢāļ°āđ€āļ āļ—āļšāļĢāļīāļĐāļąāļ—:āļāļēāļĢāļ„āđ‰āļēāļ›āļĨāļĩāļ
āļ—āļĩāđˆāļ•āļąāđ‰āļ‡āļšāļĢāļīāļĐāļąāļ—:āļāļĢāļļāļ‡āđ€āļ—āļž
āđ€āļ§āđ‡āļšāđ„āļ‹āļ•āđŒ:www.lotuss.com
āļāđˆāļ­āļ•āļąāđ‰āļ‡āđ€āļĄāļ·āđˆāļ­āļ›āļĩ:1994
āļ„āļ°āđāļ™āļ™:4/5

āđ‚āļĨāļ•āļąāļŠ āļ”āļģāđ€āļ™āļīāļ™āļ˜āļļāļĢāļāļīāļˆāļ„āđ‰āļēāļ›āļĨāļĩāļāđāļšāļš Omni-Channel āđƒāļ™āļ›āļĢāļ°āđ€āļ—āļĻāđ„āļ—āļĒ āđ‚āļ”āļĒāļ•āļąāđ‰āļ‡āđƒāļˆāļĄāļ­āļšāļŠāļīāļ™āļ„āđ‰āļēāļ—āļĩāđˆāļĄāļĩāļ„āļļāļ“āļ āļēāļžāđƒāļ™āļĢāļēāļ„āļēāļŠāļĄāđ€āļŦāļ•āļļāļŠāļĄāļœāļĨ āļ„āļ§āļšāļ„āļđāđˆāļāļąāļšāļāļēāļĢāļŠāļĢāđ‰āļēāļ‡āļŠāļīāđˆāļ‡āļ”āļĩāđƒāļŦāđ‰āļāļąāļšāļĨāļđāļāļ„āđ‰āļē āļžāļ™āļąāļāļ‡āļēāļ™ āđāļĨāļ°āļŠāļļāļĄāļŠāļ™

āļšāļĢāļīāļĐāļąāļ—āđ€āļ‚āđ‰āļēāļ–āļķāļ‡āļĨāļđāļāļ„āđ‰āļēāļœāđˆāļēāļ™āļĢāđ‰āļēāļ™āļ„āđ‰āļēāļāļ§āđˆāļē 2,000 āļŠāļēāļ‚āļēāļ—āļąāđˆāļ§āļ›āļĢāļ°āđ€āļ—āļĻ āļĢāļ§āļĄāļ—āļąāđ‰āļ‡āļŠāđˆāļ­āļ‡āļ—āļēāļ‡āļ­āļ­āļ™āđ„āļĨāļ™āđŒ āđāļĨāļ°āļ›āļĢāļąāļšāļ•āļąāļ§āļ•āļēāļĄāļ§āļīāļ–āļĩāļŠāļĩāļ§āļīāļ•āļ‚āļ­āļ‡āļĨāļđāļāļ„āđ‰āļēāļ—āļĩāđˆāđ€āļ›āļĨāļĩāđˆāļĒāļ™āđ„āļ› ...

āļ­āđˆāļēāļ™āļ•āđˆāļ­

āļĢāđˆāļ§āļĄāļ‡āļēāļ™āļāļąāļšāđ€āļĢāļē:

“At Lotus's, we are looking for people who are the change-agent with a passion to grow in both work and life. People who have the ability to think in an agile way and make everyday as a history to leave their own legacy in every part of business.” Lotus's People are: People wh ...

āļ­āđˆāļēāļ™āļ•āđˆāļ­

āđ€āļ‚āļ•āļ—āļĩāđˆāļ•āļąāđ‰āļ‡āļ—āļĩāđˆāļ—āļģāļ‡āļēāļ™: āļŠāļ§āļ™āļŦāļĨāļ§āļ‡
āļŠāļģāļ™āļąāļāļ‡āļēāļ™āđƒāļŦāļāđˆ: 629/1 Nawamintr Road, Nuanchan, Buengkoom, Bangkok 10230 , Thailand
Display map

āļŠāļ§āļąāļŠāļ”āļīāļāļēāļĢ

  • āļˆāđˆāļēāļĒāļ„āđˆāļēāļ—āļģāļ‡āļēāļ™āļĨāđˆāļ§āļ‡āđ€āļ§āļĨāļē
  • āļ›āļĢāļ°āļāļąāļ™āļŠāļĩāļ§āļīāļ•
  • āļ›āļĢāļ°āļāļąāļ™āļ­āļļāļšāļąāļ•āļīāđ€āļŦāļ•āļļ
  • āđ€āļ„āļĢāļ·āđˆāļ­āļ‡āđāļšāļšāļžāļ™āļąāļāļ‡āļēāļ™
  • āđ‚āļ­āļāļēāļŠāđƒāļ™āļāļēāļĢāđ€āļĢāļĩāļĒāļ™āļĢāļđāđ‰āđāļĨāļ°āļžāļąāļ’āļ™āļē
  • āļ›āļĢāļ°āļāļąāļ™āļŠāļļāļ‚āļ āļēāļž
  • āļāļ­āļ‡āļ—āļļāļ™āļŠāļģāļĢāļ­āļ‡āđ€āļĨāļĩāđ‰āļĒāļ‡āļŠāļĩāļž
āļ—āļĩāđˆ WorkVenture āđ€āļĢāļēāđƒāļŦāđ‰āļĄāļđāļĨāđ€āļŠāļīāļ‡āđ€āļāļĩāđˆāļĒāļ§āļāļąāļšāļšāļĢāļīāļĐāļąāļ— āļšāļĄāļˆ.āļ‹āļĩāļžāļĩāđāļ­āđ‡āļāļ‹āđŒāļ•āļĢāđ‰āļē (āđ‚āļĨāļ•āļąāļŠ) āđ‚āļ”āļĒāļĄāļĩāļ‚āđ‰āļ­āļĄāļđāļĨāļ—āļĩāđˆāđ€āļāļĩāđˆāļĒāļ§āļ‚āđ‰āļ­āļ‡ āļ•āļąāđ‰āļ‡āđāļ•āđˆāļ āļēāļžāļšāļĢāļĢāļĒāļēāļāļēāļĻāļāļēāļĢāļ—āļģāļ‡āļēāļ™ āļĢāļđāļ›āļ–āđˆāļēāļĒāļ‚āļ­āļ‡āļ—āļĩāļĄāļ‡āļēāļ™ āđ„āļ›āļˆāļ™āļ–āļķāļ‡āļĢāļĩāļ§āļīāļ§āđ€āļŠāļīāļ‡āļĨāļķāļāļ‚āļ­āļ‡āļāļēāļĢāļ—āļģāļ‡āļēāļ™āļ—āļĩāđˆāļ™āļąāđˆāļ™ āļ‹āļķāđˆāļ‡āļ‚āđ‰āļ­āļĄāļđāļĨāļ—āļļāļāļ­āļĒāđˆāļēāļ‡āļšāļ™āļŦāļ™āđ‰āļēāļ‚āļ­āļ‡āļšāļĢāļīāļĐāļąāļ— āļšāļĄāļˆ.āļ‹āļĩāļžāļĩāđāļ­āđ‡āļāļ‹āđŒāļ•āļĢāđ‰āļē (āđ‚āļĨāļ•āļąāļŠ) āļĄāļĩāļžāļ™āļąāļāļ‡āļēāļ™āļ—āļĩāđˆāļāļģāļĨāļąāļ‡āļ—āļģāļ‡āļēāļ™āļ—āļĩāđˆāļšāļĢāļīāļĐāļąāļ— āļšāļĄāļˆ.āļ‹āļĩāļžāļĩāđāļ­āđ‡āļāļ‹āđŒāļ•āļĢāđ‰āļē (āđ‚āļĨāļ•āļąāļŠ) āļŦāļĢāļ·āļ­āđ€āļ„āļĒāļ—āļģāļ‡āļēāļ™āļ—āļĩāđˆāļ™āļąāđˆāļ™āļˆāļĢāļīāļ‡āđ† āđ€āļ›āđ‡āļ™āļ„āļ™āđƒāļŦāđ‰āļ‚āđ‰āļ­āļĄāļđāļĨāļˆāļĢāļīāļ‡āļŠāļĄāļąāļ„āļĢāļ‡āļēāļ™ āļ”āļīāļˆāļīāļ•āļ­āļĨ āļ­āļąāļĨāđ€āļ„āļĄāļĩāđˆāļŠāļĄāļąāļ„āļĢāļ‡āļēāļ™ āļ˜āļ™āļēāļ„āļēāļĢāđāļŦāđˆāļ‡āļ›āļĢāļ°āđ€āļ—āļĻāđ„āļ—āļĒāļŠāļĄāļąāļ„āļĢāļ‡āļēāļ™ āđ„āļ§āļ•āđ‰āļē āļšāļđāļ˜āļŠāļĄāļąāļ„āļĢāļ‡āļēāļ™ āđāļĄāđ‡āļāļ‹āļīāļĄ āļ­āļīāļ™āļ—āļĢāļīāđ€āļāļĢāļ”