Software Engineer
תיאור המשרה
Required Software Engineer Job Description SummaryAs a Software Engineer - PET Data Acquisition, you will join a highly specialized team developing the real-time software stack at the core of our PET/CT imaging systems.Our software directly impacts image quality and system reliability, enabling clinicians worldwide to provide accurate diagnoses and life-saving care.You will work on a distributed, high-performance C++ system running on Linux, responsible for configuring detector hardware, processing high-throughput data streams, and enabling seamless integration across the scanner ecosystem.Job DescriptionAbout the TeamOur team develops the data acquisition platform powering our PET/CT scanners.This system:Configures and interfaces with detector hardwareReceives high-rate event streams via UDPPerforms real-time sorting and time-stamping of coincidence eventsManages acquisition state and persistenceExposes control and monitoring APIs to clinical applicationsThe platform is a distributed, multi-process, multi-threaded C++ system running on Linux, designed for deterministic, high-performance operation under demanding workloads.Key Responsibilities:Design and develop end-to-end data acquisition features, from low-level UDP capture and event processing through service layers and client APIsOptimize and maintain performance-critical code paths, including:Lock-free / low-contention data structuresThread affinity and NUMA optimizationZero-copy buffer managementDeterministic real-time executionEnhance and maintain inter-process communication mechanisms, including shared memory, message queues, and service interfacesWork with embedded persistence layers (SQL-based) for configuration, metadata, and runtime stateCollaborate closely with hardware, physics, and system teams to integrate new detector and system componentsDevelop unit and integration tests, and actively participate in code and design reviewsTroubleshoot complex cross-process issues using advanced debugging and profiling tools (e.g., gdb, perf, tcpdump, strace).Requirements: B.Sc. in Computer Science, Computer Engineering, Software Engineering, or equivalent practical experience4+ years of experience in C++ development on Linux, including modern C++ (C++14/17)Strong experience with:Multi-threaded and multi-process systemsSynchronization primitives, memory models, and concurrency challengesInter-process communication (IPC) mechanisms such as shared memory, sockets, and message queuesSolid understanding of system-level programming and performance optimizationWorking knowledge of SQL / relational databases - advantage.This position is open to all candidates.
מתעניינים במשרה הזו?