Hiring.Camp

資深軟體工程師/副理 Senior Software Engineer/Assist. Manager - WEDA (WISE/內湖瑞光)

Advantech Careers

·

Today

Apply
Location
Taipei_Neihu, Taiwan
Department
Engineering
Seniority
Senior
Experience
5+ years
Education
Master
Source
Workday

Description

Role Overview 

We are seeking a senior software engineer to own three connected layers of WEDA, Advantech's edge-to-cloud platform for managing industrial devices at scale: the cloud microservices, the device library that talks to Advantech hardware, and the edge SDK that connects field devices to our edge gateways. You will design, build, test and release across all three and keep them consistent, from a GPIO pin on an industrial PC to a public REST API in the cloud. You will work with product managers, solution architects, QA and application engineers, plan in Azure DevOps, and ship a release about once a quarter.


Key Responsibilities

A. Cloud Microservices:

  • Service Development: Design, build and run C#/.NET microservices on the ABP Framework for device management, telemetry, digital twins, device messaging, container deployment and AI-model management.
  • Architecture: Apply DDD, CQRS and event-driven patterns; keep message handlers idempotent and safe under retry.
  • Messaging Framework: Extend our in-house messaging framework on NATS, including header-based metadata, a middleware pipeline and JWT claims-based authorization.
  • Data Paths: Own data flows across NATS JetStream, PostgreSQL (EF Core), Apache IoTDB time-series storage and object storage, including resumable HTTP uploads for large files.
  • Public APIs: Publish REST APIs with consistent OpenAPI/Swagger documentation.

B. Device Library (Hardware Abstraction):

  • Library Development: Develop the device library in C# and Python, shipped as NuGet and Python packages, exposing Advantech hardware to software: board info, onboard sensors (temperature, voltage, fan), GPIO/DIO, watchdog, thermal protection and DAQ modules.
  • Native Integration: Wrap native SDKs such as Advantech SUSI, EAPI and libgpiod through P/Invoke in C# and native bindings in Python, isolating native calls on a dedicated thread with timeouts so a driver fault cannot crash the host process.
  • Safe Degradation: Report hardware capabilities accurately and degrade safely on boards or VMs without a driver.
  • Release Management: Keep the C# and Python APIs consistent and own semantic versioning, migration guides and release notes, so a library upgrade never silently changes what a device reports to the cloud.

C. Edge SDK:

  • SDK & Reference Apps: Build the .NET SDK and reference apps that system integrators use to connect Modbus devices, I/O modules, DAQ modules and sensors to our edge gateway.
  • Digital Twin Schemas: Turn SDK-declared device, sensor, transform, filter and command types into DTDL v3 schemas, and validate configuration and commands before they reach a device.
  • Data Reliability: Keep data reliable through outages with local buffering, historical data resync and chunked retransmission over NATS.
  • Container Packaging: Package edge apps as containers (Docker Compose) for Ubuntu, NVIDIA Jetson (arm64) and Windows targets.
  • New Integrations: Extend the SDK into new integration areas, such as robotics (ROS 2).

D. Engineering Quality (Across All Three Areas):

  • Test-First Development: Write tests first and hold coverage at 90% for domain logic, 80% for services and 70% for infrastructure.
  • Hardware Regression: Run end-to-end regression on real hardware with QA before each release.
  • Functional Safety: Build safety in with fail-safe defaults, pre-condition checks and timeouts.
  • Code Review: Link every pull request to a work item, attach test results and get human review before merge.
  • Design Documentation: Write design documents and review product requirements with product managers and architects.
  • AI-Assisted Development: Use AI coding agents (such as Claude Code or Codex) within a reviewed team workflow.

Qualifications & Technical Requirements

  • Education: Bachelor's or Master's degree in Computer Science, Electrical Engineering or a related field, or equivalent experience.
  • C#/.NET: 5+ years of professional C#/.NET development on .NET 8 or later, including async/await with cancellation, dependency injection and disciplined resource cleanup.
  • Python: Production Python 3 experience: packaging and distribution, type hints, pytest, and calling native C libraries from Python.
  • Microservices: Built and operated microservices in production: message-driven design (NATS, Kafka or RabbitMQ), REST APIs, PostgreSQL with EF Core, and containers on Kubernetes.
  • Hardware Interop: Hands-on hardware-facing work: native interop (P/Invoke, Python ctypes or CFFI, C or C++), Linux device access or industrial I/O, with attention to crash safety and timeouts.
  • Industrial Protocols: Practical use of at least one of Modbus RTU/TCP, OPC UA or MQTT.
  • SDK Design: Designed a library or SDK that other teams consume: API design, semantic versioning, backward compatibility, docs and samples.
  • Linux: Comfortable with Docker, systemd and debugging on remote devices over SSH.
  • Engineering Practice: Working knowledge of DDD or clean architecture, and a habit of unit and integration testing.
  • Communication: Clear written English for specs, pull-request descriptions and design reviews.

Preferred Qualifications (Bonus)

  • Experience with the ABP Framework, NATS JetStream, or time-series databases such as Apache IoTDB or InfluxDB.
  • Hands-on experience with Advantech SUSI/EAPI or a similar board-support SDK, NVIDIA Jetson and arm64 cross-builds.
  • Digital-twin modelling with DTDL or Azure Digital Twins.
  • Go for edge tooling, or ROS 2 for robotics integration.
  • Familiarity with Helm, OpenTelemetry and Azure DevOps pipelines.
  • Experience shipping production code with AI coding agents inside a reviewed workflow.


What You Will Gain

  • End-to-end ownership of an industrial IoT platform, from board-level drivers to cloud APIs.
  • Hands-on work with Advantech industrial PCs, I/O and DAQ hardware.
  • A clear growth path: within six months, lead a major SDK or platform feature end to end and become the go-to engineer for device library and SDK issues.
  • A modern engineering practice: test-first development, reviewed pull requests and AI-assisted coding.

Skills

PythonAzureDockerKubernetesLinuxPostgreSQLRESTDevOpsMicroservices