Sr. Software Engineer - Full-Stack 資深 Full-Stack 工程師(AI Products)
Ideku Technology Solution Pte Ltd (新加坡商雲科有限公司) Sr. Software Engineer - Full-Stack 資深 Full-Stack 工程師(AI Products)
Description
About IDEKU
At IDEKU, our mission is to empower F&B businesses across Southeast Asia with technology that is
seamless, innovative, and dependable. Our all-in-one platform — smart POS, handheld Mini-POS, selfservice kiosks, Kitchen Display Systems (KDS), QR code ordering, inventory management, and workflow automation — simplifies daily operations, improves efficiency, and helps merchants grow in a fastmoving market.
We serve the Southeast Asian market and run active product and R&D centers in both Taiwan and Indonesia. We design and build highly available software for fast-paced, high-traffic, transaction-heavy restaurant environments. We care deeply about engineering excellence, pragmatic system architecture, and cross-border collaboration. If you enjoy building products that make a real difference and want to power thousands of daily operations across Southeast Asia, come help us reshape the future of restaurant technology.
Position Summary
This role sits in the AI team. You will bring AI features to our two web products, and you will own those
products’ frontend and backend as well. The two are different shapes of system.
- A consumer-facing online ordering web app. Anonymous traffic, where SEO and first-paint speed translate directly into conversion, so the whole site runs on Angular Universal SSR. What matters here is latency, caching, the correctness of the checkout flow, and how third-party payments (Stripe, QR payments, Apple Pay) behave on real devices.
- A merchant back office. Dozens of functional domains — menu, inventory, reporting, promotions,
staff, device management, and the integration settings for every service we offer. What matters here is domain complexity and the maintainability of a large codebase.
AI features are the center of gravity for this role, and the area we are actively building out on the
web side.
The backend you work with is non-deterministic. Responses may arrive as streams, latency is unpredictable, schemas evolve, and calls occasionally fail. Your architecture has to make all of that invisible to the user, and make sure AI features never block core flows like ordering and checkout.
Each app ships with its own Node/Express SSR service — the real BFF layer of our web stack. It proxies requests to more than a dozen backend microservices, injects runtime configuration, handles uploads and server-side caching, and carries the SEO and security responsibilities that come with it. That layer belongs to this role.
When the web side needs an API that does not exist yet, you go into the Java / Spring Boot services and add it, rather than filing a ticket and waiting for the backend team to schedule it.
Responsibilities
- Design and implement the client architecture for AI features: streaming response handling, state persistence and recovery for long-running tasks, and graceful degradation paths for timeouts and failures.
- Keep AI features isolated from core transaction flows. No AI-related failure should ever affect ordering, checkout, or a merchant’s daily operations, and everything must be switchable off remotely in real time.
- Deliver web features end to end: from Angular component and state design, through the SSR layer’s data fetching and caching strategy, to changes in the backend API and the database schema.
- Maintain and evolve the SSR / BFF layer: proxy routing (including streaming and large uploads for the AI services), runtime configuration injection, server-side caching and invalidation, and the security concerns specific to that layer — credentials never reaching the client, rate limits on outbound calls, and data isolation during SSR.
- Own the frontend state and data-flow architecture. The two apps currently run two different approaches side by side — NgRx, and services with RxJS — and you need to work comfortably in both, and drive convergence where there is evidence for it.
- Build the measurement layer for frontend performance and AI feature impact: first-paint and interaction latency, bundle size, SSR response time, plus real-world latency and adoption for AI features, propagated against the backend’s traces.
- Review specs with a cross-border scrum team (PMs, AI engineers, mobile engineers, SQA, and backend colleagues across Indonesia and Taiwan), surface the edge cases and the legacy logic nobody wrote down, and turn F&B business requirements into maintainable implementations.
- Hold the engineering quality line through code review and RFC-driven design discussion.
Tech Stack & Engineering Practices
Strong Knowledge
- Language and framework: TypeScript, Angular 14+ (component architecture, DI, routing and lazy loading, Reactive Forms)
- Asynchronous data flow: RxJS
- State management: NgRx, or an equivalent store solution
- Server-side rendering: Angular Universal, Node.js / Express
- API: RESTful API design and integration
- Streaming and long-lived connections: SSE / WebSocket, using RxJS to handle streamed data, cancellation, and reconnection
- Defensive data handling: fault-tolerant parsing for evolving or unstable API schemas, with clear degradation paths
- Data and persistence: MySQL (or a similar relational database), relational schema design, ORM, migration
- Version control: Git
Good Knowledge
- Backend language and framework: Java (17+) and Spring Boot; we care about engineering fundamentals rather than which language you happened to use before
- LLM integration: hands-on experience calling LLM / agent APIs, and an understanding of how latency, streaming, and failure modes land on the client
- Testing: unit and component testing (Jest, Testing Library, or equivalent), and writing code that is easy to test
- UI and styling: SCSS, working on top of an existing UI component library (e.g. Ant Design / ngzorro), design systems and components shared across apps
- Performance optimization: bundle analysis and splitting, lazy loading, change detection, Core Web Vitals
- Progressive rollout: feature flags and remote configuration
- Cloud and DevOps: Docker, Kubernetes (GKE), GCP, and CI/CD pipelines; the frontend team owns CI and works with SRE on CD and production deployment
- Internationalization: multiple languages, currencies, time zones, and per-country tax differences
- Security: XSS, CSRF, CSP; API credentials never stored on the client, always proxied through our own backend
- Observability: frontend error collection, product instrumentation, and trace propagation to the backend
Coding Principles
- SOLID — a solid grasp of SOLID principles, and the ability to build cohesive, loosely coupled,
extensible architecture. - DRY — a focus on modularity and reuse, avoiding duplicated code.
- KISS & YAGNI — a preference for simple, clean solutions without over-engineering, solving the problems that actually matter right now.
- Clean code and readability — careful naming and self-documenting code, held to a high
engineering standard.
Requirements
Professional Experience
- 5+ years of hands-on software development experience, including at least 3 years building production products with a modern frontend framework (Angular, React, or Vue).
- Genuine full-stack delivery experience: you have owned complete features on your own, from the database through the API to the user interface.
- Experience working in a mid-to-large, long-lived codebase, and the ability to make progress inside an existing architecture with its accumulated history.
Engineering Quality & Problem Solving
- Problem solving and debugging — strong debugging skills, able to trace an issue across the browser, the SSR server, and the backend API, with attention to performance, memory, and edge cases.
- Attention to detail and code review — a rigorous approach to the work, and the willingness to invest time in thorough code review to make sure the implementation matches the spec exactly.
- Comfort with ambiguity — able to pick up loosely defined requirements, proactively clarify the boundaries, dig out the legacy logic behind them, and propose a well-scoped, executable technical plan.
Soft Skills & Working Style
- Critical thinking and self-direction — proactive, able to think critically, and comfortable juggling multiple priorities.
- Passion for engineering — cares about getting things right rather than just getting them done; willing to pay down technical debt and keep improving the team’s engineering practices.
Communication & Language
- Excellent cross-functional and cross-border collaboration skills (our scrum teams span Indonesia and Taiwan).
- Solid English ability, able to handle written and verbal communication at work as well as documentation.
Nice to Have
- Client-side AI feature experience — having shipped LLM / AI features in a production product, with concrete examples of how you handled latency, streaming, and failure cases.
- Depth in Angular — having run a major framework version upgrade, or driven a migration from
- NgModules to standalone components.
- Production experience with Angular Universal / SSR — hydration troubleshooting, SSR caching strategy, and the security concerns specific to SSR.
- Consolidating a state management architecture — having unified or migrated state management in a codebase where several approaches coexisted.
- Building a design system or shared component library — sharing components across multiple applications, and handling versioning and compatibility.
- Hands-on Java / Spring Boot experience — this is our current backend stack.
- Industry background — F&B or retail, especially anything POS, ordering, or payments related.
- Architecture evolution — large-scale legacy refactoring, or practical experience with frontend modularization / micro-frontends.
- Cloud native — practical experience operating production services on GCP / GK