Status is building the tools and infrastructure for the advancement of a secure, private, and open web3.
With the high level goals of preserving the right to privacy, mitigating the risk of censorship, and promoting economic trade in a transparent, open manner, Status is building a community where anyone is welcome to join and contribute.
As an organization, Status seeks to push the web3 ecosystem forward through research, creation of developer tools, and support of the open source community.
As a product, Status is an open source, Ethereum-based app that gives users the power to chat, transact, and access a revolutionary world of DApps on the decentralized web. But Status is also building foundational infrastructure for the whole Ethereum ecosystem, including the Nimbus ETH 1.0 and 2.0 clients, the Keycard hardware wallet, and the Waku messaging protocol; the p2p communication layer for Web3.
As a team, Status has been completely distributed since inception. Our team is currently 200+ core contributors strong, and welcomes a growing number of community members from all walks of life, scattered all around the globe.
We care deeply about open source, and our organizational structure has minimal hierarchy and no fixed work hours. We believe in working with a high degree of autonomy while supporting the organization's priorities.
Status Desktop is currently in beta for Mac, Windows and Linux platforms. Current product focus is on the privacy-centric messenger and group chat functionality, and we’ve just kicked off development of our new ‘multi-chain from the ground up’ crypto Wallet. ÐApp browser and blockchain node functionality will follow next. Status desktop is currently built using Nim & QT for the frontend, and it shares a common backend with Status mobile that is written in Go. We are currently in the middle of a large refactor of our architecture. This refactor includes transitioning the QT front end from Nim to C++, moving all business logic to our status-go backend, and upgrading from QT5.14.2 to QT6.2. As we work in the open and are fully open source you can get a better idea of who we are and the work we are doing by browsing our team wiki here and taking a look at our Status Desktop, Status Desktop QML component library and Status Desktop and Mobile Go backend GitHub repos. You can find more information about our desktop effort in this blog post.
Status is looking for multiple senior experienced C++/QML UI devs to join our growing desktop dev team and to work with us to create a permissionless, decentralized, censorship proof group chat platform. Role responsibilities include developing new features, creating and enhancing components in our QML UI toolkit component library, advising and assisting other members of the desktop dev team with solving challenging QML UI development problems, and perhaps working on the Go backend if this is something you would enjoy. As a team we try to match task assignment with the individual interests and passions of our team members, so there is a high degree of flexibility with regards to what you would be working on. If you are a passionate C++/QML expert who knows all the ins and outs of C++ and QT/QML UI development this could be an ideal role for you.
The desktop team is spread between Europe and North America with crossover work hours being the European timezone afternoon on Monday, Wednesday and Friday. Ideally you will be located in a timezone between UTC -8 and UTC +3 e.g. anywhere in-between Panama and Moscow. Work is async using Status, Google Meet and Github, typically in Scrum Sprints.
- Build new features, enhance existing functionality and fix issues in the Status Desktop application.
- Help develop and maintain Status’s QML UI component library (primarily used by the Status Desktop product)
- Advise and assist the other developers in the Desktop team as needed to help solve the hardest QML UI development challenges
- Contribute to C++ and Go codebases (and help with transitioning the codebase from Nim to C++ if you join us prior to this transition being completed), but don’t worry if you don’t have any prior Go or Nim experience.
- Be one of our resident experts for everything related to C++ and Qt/QML UI development.
You ideally will have:
- Don’t worry if you don’t meet all of these criteria, we’d still love to hear from you anyway if you think you’d be a great fit for this role!
- Expert level experience implementing UIs using Qt/QML/C++
- A strong ability to think about components and modules as they relate to other components as part of a larger system
- A very strong attention to detail and the willingness to deliver pixel perfect UI according to the designs.
- Provide feedback and product ideas to the designers as needed
- Experience with multithreading / concurrency
- Good communication skills in English
- A strong alignment to our principles: https://status.im/about/#our-principles We are a passion driven project on a mission to build tools that protect and enable free speech.
Bonus points if you have:
- Experience working in an open source organization
- A strong interest in blockchain technology and have a good understanding of Ethereum.
- Worked in a remote distributed environment that values asynchronous communication
- Knowledge of Go and/or Nim and/or Solidity is a plus
- Experience with using QT/QML to develop cross platform (Windows, OSX, Linux) desktop applications and mobile applications (iOS, Android) is a plus
- Prior experience with using Squish for functional testing QT apps
- Experience implementing openGL rendering in a QML context
- Any background or experience with cryptography and/or security
- We are happy to pay in either 100% fiat or any mix of fiat and/or crypto.
- The hiring process for this role is usually as follows (sometimes adapted):
- Introductory conversation - Talent team
- 3 Technical Interviews with Desktop Qt/QML Developers
- Team lead interview - Iuri, Desktop Team Lead
- 'Meet the Desktop team' interviews with 3-4 Desktop Contributors (30-40m each)
Questions about this role?
Feel free to get in touch, we are more than happy to discuss the role in more detail.