Full Stack Software Engineer
· Design and implement back-end services in modern C++ (C++17/20) and C#/.NET, including relational schema design, query optimization, transaction handling, and middleware integration; expose and consume interfaces over TCP/IP, REST, WebSocket, gRPC, and serial communication
· Develop front-end applications with Angular and Vue, covering component architecture, state management, and reactive data flow, for both server-side clients and machine-mounted HMI and kiosk clients
· Develop and maintain cross-compiled embedded C++ software for ARM64 Linux targets
· Work hands-on with single-board computer platforms (e.g., Raspberry Pi, NVIDIA Jetson): device setup and connectivity, Linux environment configuration, and deploying and troubleshooting software on target hardware
· Perform root-cause analysis of failures on real machines and in the field using structured logs, traces, timing measurements, crash dumps, and hardware documentation, then design and implement the software fix, the recovery behavior, and the regression test
· Contribute to technical specifications: identify gaps, ambiguities, and conflicts in incomplete requirements, raise them with stakeholders early, and author traceable requirements documentation (SWRD-style, with ticket-linked requirement IDs) covering functional, interface, performance, and error-handling requirements
· Design and develop product features together with mechanical, electrical, and software teams across several countries; run design and code reviews, verification and validation activities, and technical evaluation of third-party components including bench testing
· Contribute to computer vision, image processing, and 3D vision work for automated inspection (camera and illumination interfacing, calibration, feature extraction and measurement, and AI/ML-assisted defect classification); prior experience is welcome but not required, and training will be provided
Requirement
Education
-Bachelor's or master's degree in Computer Science, Computer Engineering, or related field
Work experience
· ≥3 years' experience in full-stack software development, including products released to customers and maintained across multiple release cycles (fresh graduates also welcome to apply if relevant experience shown)
Expertise and methodology
· Product development and use of development tools: Visual Studio Professional/Code, static analysis, AI coding assistants (Copilot, Claude Code)
· Programming languages: modern C++ (C++17/20, STL, templates, smart pointers); C#/.NET is good to have but not required
· Front-end development — Angular or Vue preferred; candidates with React or strong TypeScript experience are also considered, provided they are willing to learn Angular and Vue: component architecture, state management, reactive and observable data flow, and build tooling
· Multi-threaded and concurrent programming
· Databases: relational schema design, SQL, indexing, and transaction handling from C++ and C#
· Communication technology: familiarity with TCP/IP, REST, WebSocket, gRPC, and serial communication; awareness of interface versioning and backward compatibility
· Unit, integration, and regression testing, and design for testability
· Debugging and root-cause analysis on real hardware: log and trace analysis, reproducing intermittent and timing-dependent faults
· Version control (Git): branching and merging strategies, and code review
· Software Development Life Cycle, with basic understanding of Agile methodologies and lifecycle models
· Proficient and disciplined use of AI coding assistants to accelerate development, while maintaining full understanding, code quality, and accountability for all code produced
· Good to have:
o Basic working knowledge of Jira and Confluence for issue tracking, sprint work, and technical documentation
o Embedded, cross-compiled C++ development for ARM64 Linux: toolchains, sysroots, cross-debugging, and hardware abstraction
o Single-board computer platforms (e.g., Raspberry Pi, NVIDIA Jetson): setup, connectivity, and working in a Linux environment on target hardware
o Basic microcontroller and firmware knowledge (e.g., STM32 or similar): peripherals (GPIO, UART, SPI, I²C) and interrupt handling
o Computer vision, image processing, and 3D vision (e.g., OpenCV, point cloud processing)
o Python
Other requirement criteria
· Communication skills (verbal and written), including presenting and defending technical designs to non-software engineers
· Social competences to work in cross-cultural and international environment
· Sense of ownership and responsibility for assigned work, including its quality after release
· Diligence and attention to detail in released software
· Goal-driven and independent working style
· Willingness to learn and openness to feedback
· Willingness to travel internationally to customer sites and other Komax locations