Backend Desktop Engineer

Backend Desktop Engineer

Closed - This job posting has been filled and work has been completed.

Job Description

As a backend engineer on our desktop team, you’ll create, grow and manage a distributed network of marketplaces and native Windows applications, enabling developers like you to become a successful global entrepreneur. Our software is solving new and challenging problems around identity management, distributed deployments, delegated billing and others.

You are a strong software engineer who is passionate about delighting users across multiple geographies, industries and languages. You care deeply about producing elegant, maintainable and robust code.

The project definition:
1. Add a button on the Windows deskband right next to the Start menu (or instead of the start menu in Windows 8, where it is absent).

2. When adding the button, all other deskband objects need to work as usual - the other toolbars like quicklaunch need to be pushed to the right.

3. The button needs to appear as a separate toolbar, so it can be removed when right-clicking on the deskband and selecting "Toolbars".

4. The button should have two states - not clicked and clicked (need to use 2 separate face images and show the "selected" image when hovering over it).

5. When clicked, it should open a "Hello World" message box (that will be replaced with a full blown window).

6. The implementation needs to work in all Windows versions starting XP (XP, Vista, 7, 8) and in all languages and visual Windows template settings.

7. The implementation also needs to have a way to "uninstall" the button (read: deregister the COM object and revert to the pre-installation state while cleaning up all objects).

8. Deliverables should include full source code, well documented, in C++ as well as 32-bit and 64-bit compiled binaries.

Requirements:
- Extensive experience with Windows API systems programming
- Experience with COM programming, GUI programming
- Comfortable writing cross platform system software (especially: Windows, Mac OS X and Android)
- Comfortable writing custom protocols
- Knowledgeable about writing secure software
- Expertise in at least one language: C#, C++, C, Python
Responsibilities:
- Designing and implementing native Windows applications
- Designing and implementing communication protocols with other web services
- Implementation of tools for collecting analytics data

Education & Experience:
- Bachelors degree in Computer Science or related technical field
- 5+ years of proven Windows development
- Strong Windows internals and extensive communication protocols knowledge

---
Skills: windows-api, operating-systems, mac-os-x, web-services, science, management, billing, vista