Overview
As a Software Engineer on Windows App, you will develop features in the native Linux client, working in the technical areas and at the component level. You will be responsible for: Implement features in the native Linux client. Write production C/C++ for scoped areas. Build and debug device redirection channels. Implement and troubleshoot individual redirection features such as clipboard, audio and microphone, printer, camera, drive and folder redirection, and keyboard and mouse input, validating them against real peripherals and real remote sessions. Work directly against Linux system interfaces. Learn and use the operating system APIs your features depend on, including audio, video capture, USB and HID, printing, input and display protocols, and D-Bus, and understand how they differ across distributions and hardware. Debug native code across layers. Reproduce, isolate, and root-cause d
Full job description
Full Job Description
As a Software Engineer on Windows App, you will develop features in the native Linux client, working in the technical areas and at the component level. You will be responsible for: Implement features in the native Linux client. Write production C/C++ for scoped areas. Build and debug device redirection channels. Implement and troubleshoot individual redirection features such as clipboard, audio and microphone, printer, camera, drive and folder redirection, and keyboard and mouse input, validating them against real peripherals and real remote sessions. Work directly against Linux system interfaces. Learn and use the operating system APIs your features depend on, including audio, video capture, USB and HID, printing, input and display protocols, and D-Bus, and understand how they differ across distributions and hardware. Debug native code across layers. Reproduce, isolate, and root-cause defects using gdb, logs, traces, packet captures, and profiling tools, building the ability to reason across application, protocol, operating system, and service boundaries. Build working knowledge of the remoting protocol. Understand Remote Desktop Protocol concepts such as virtual channels, transports, and connection establishment, and apply them when implementing and diagnosing features. Own quality for what you build. Write unit and integration tests, add telemetry and diagnostic logging, validate on supported distributions and client hardware, and triage incoming issues from internal self-host users and preview customers through to a fix. Participate fully in the engineering cycle, taking part in design discussions and code reviews and following through from requirement to production. Bachelor's Degree in Computer Science, or related technical discipline with proven experience coding in languages including, but not limited to, C, C++, C#, Java, JavaScript, or Python. OR equivalent experience. Bachelor's degree in computer science or related technical field. Solid programming ability in C/C++. Solid computer science fundamentals. Working knowledge of Linux as a development environment and basic debugging. Fluent English communication skill. Internship, research, or project experience in native application development, systems programming, or device driver development on Linux. Familiarity with the Linux desktop stack and desktop application development. Exposure to network programming, protocol-level debugging, graphics, or real-time media. Experience with modern C/C++, CMake, Git, automated testing, or open-source contributions. Ambitious, self-motivated, agile and can-do attitude.
Tips for this job
Practical JobOpportunity guidance. These tips do not replace official rules or create new eligibility requirements.
- Tailor the CV and application to the responsibilities and required skills stated on the official employer page.
- Use concrete evidence of relevant work, projects and measurable results rather than generic claims.
- Confirm location, work authorization, remote restrictions and sponsorship terms before applying.
- Apply through the original employer or official recruitment destination shown on this page.
Verification notes
Verified from public schema.org JobPosting structured data on the official source page. The complete published description, responsibilities, requirements and benefits were normalized when present; unstated facts were not inferred.
JobOpportunity is the discovery and verification layer. Confirm eligibility, dates, salary/funding and application instructions on the original source before submitting anything.
Apply through JobOpportunity →Browse current JobOpportunity listings from Microsoft Careers →