Job Description
Position: Senior Network Software Engineer (WinSock / PTP)
Level: Senior
Location: Remote
Employment Type: Full-Time/ Part-Time
Working Hours: Palestine Time Zone with partial overlap with U.S. business hours
Contract Duration: ~4 Months contract (Extendable based on performance and client needs)
No. of vacancies: 2
Overview:
Overview
GGateway is seeking two Senior Network Software Engineers with strong expertise in low-level Windows networking. We are building a command-line test tool for Windows Server with two parts: a high-throughput, multi-threaded Winsock UDP traffic tool, and a passive Precision Time Protocol (PTP) slave that measures a network card's hardware clock using hardware packet timestamps. One engineer will own the traffic tool and the other the PTP slave. The work focuses on packet-level control, hardware timestamping, throughput on 10 to 100 Gbps links, and measurement accuracy down to tens of nanoseconds. Strong experience in one of the two areas is required; experience in both is a plus.
Key Responsibilities
- Design, develop, and optimize user-mode Windows networking software in C++ using the Winsock API.
- Handle low-level socket programming for packet transmission, reception, and control messages, including message-based sends and receives with control data.
- Debug and measure network traffic at the socket and packet level: throughput, packet loss, reordering, and timestamp accuracy.
- Build a test tool that reports honestly: every API error logged with its code, results reported as measured, and a clear line between tool bugs and driver or hardware findings.
- Run and document long lab runs on real network cards, including 12-hour soak runs, and keep the evidence.
- Work with the customer's engineering team in weekly syncs, and deliver regular code drops with release notes.
- Write clean, efficient, well-tested C++ code with unit tests and documentation.
Traffic focus:
- Build multi-threaded UDP senders and receivers, one socket per thread, that reach 10 Gbps and beyond on 100 Gbps links.
- Apply and log socket options for IPv4 and IPv6: send and receive buffers, reuse and exclusive address use, timeouts, TTL, don't-fragment, packet info, and UDP connection reset.
- Detect loss, reordering, and duplicates from sequence numbers, and report live statistics per thread and in total.
- Run socket-exhaustion stress tests with 50 or more concurrent sockets, catching socket errors and driver resets.
- Tune performance on Windows Server: RSS, interrupt moderation, buffer sizing, and thread placement.
PTP focus:
- Implement a passive PTP slave per IEEE 1588v2 and the G.8275.2 telecom profile: unicast negotiation over UDPv4, grants and renewal, and the Sync, Follow_Up, Delay_Req, and Delay_Resp exchange.
- Read hardware receive and transmit timestamps and the network card's hardware clock through the Windows timestamping APIs.
- Compute and report offset, path delay, and frequency offset without adjusting any clock, and handle counter wrap, clock steps, and missing timestamps.
- Validate the measurement against an independent reference, the linuxptp NetSync Monitor, with a target agreement of 100 ns.
- Work against a Linux grandmaster running ptp4l, including its configuration and logs.
Required Qualifications
- Strong hands-on experience in Windows low-level networking (Winsock required).
- Strong proficiency in C++17 on Windows: Visual Studio, MSVC, CMake, and the Windows SDK.
- Deep knowledge of IP and UDP networking fundamentals: fragmentation, MTU, ICMP, IPv4, and IPv6.
- Experience building high-performance, multi-threaded networking applications.
- Strong experience in packet-level debugging with Wireshark or tcpdump, and in network performance measurement.
- Comfort with lab work: real network cards, switches, a Linux peer, and small scripts in PowerShell, Python, or Bash.
- Strong analytical, debugging, and problem-solving skills in complex system environments.
- Clear written English for customer syncs and release notes.
Traffic focus:
- Proven experience with high-throughput UDP on Windows at 10 Gbps or more.
- In-depth knowledge of Winsock socket options and their IPv6 equivalents.
- Experience tuning Windows Server networking: RSS, interrupt moderation, and socket buffers.
PTP focus:
- Hands-on experience with IEEE 1588v2 PTP: the end-to-end delay exchange, one-step and two-step operation, and the correction field.
- Knowledge of the G.8275.2 telecom profile and unicast negotiation.
- Experience with hardware timestamping on Windows.
- Experience with linuxptp: ptp4l, pmc, and nsm.
Nice to Have
- Understanding of NDIS and the Windows networking architecture: offloads, RSS, and how the miniport driver delivers timestamps.
- Registered I/O or overlapped I/O at high packet rates, and pktmon.
- Experience building test or validation tools for network drivers or network cards.
- Experience in both the traffic and the PTP areas.