What you will do
A few years back, after experiencing friction in preparing devices for the IoT world, we launched Etcher, an open-source software designed to flash data to drives or devices efficiently and flawlessly. Etcher is now a market leader and EtcherPro is its hardware extension, aiming to automate and accelerate the flashing process of IoT devices in production at scale.
As an engineer joining the balenaEtcher team, you will collaborate with others to build, maintain and expand Etcher. Your first few weeks will be spent asking lots of questions, reading code and documentation, and absorbing context. As you develop a deep understanding of our interdependent systems and how we work, you will be empowered to identify product improvements, communicate proposals, see new features throughout the entire lifecycle, and build cross-platform capabilities. You will act as a product visionary and a full-stack engineer and your mission will be to remove friction for Etcher users.
Responsibilities
- Partner with designers and product leads to continuously improve Etcher
- Analyze user feedback, find patterns in product issues, and participate in support to get to the root of user friction and ideate long-term solutions
- Own the implementation of new features and products —design, development, testing, deployment, and maintenance
- Use automation to reduce the amount of code written and maintained
- Contribute to documentation and user-facing guides for your implementations
- Share your expertise with peers on support, mentor, and educate others
- Actively invest back in our technology, libraries, and frameworks
Requirements
- Breadth of experience, having worked on front-end, back-end, and whatever it takes to make users successful and delighted
- Experience writing high-quality code and debugging production systems (we use Node.js)
- Conversant with Linux operating system internals
- Ability to manage ambiguity, make critical trade-off decisions, and push projects to completion
- Ability to both hold the big picture in mind and dive into the weeds
- Continuous improvement mindset, and desire to make yourself and others more effective
- Excellent verbal and written communication skills, and fluency in English
Bonus points
- Experience in low-level file systems development
- Experience building desktop applications
- Familiarity with tools like diskutil, dd and diskpart
- Contributions to OSS projects and/or background as a maintainer
- Working knowledge of technologies like Typescript, CSS-in-JS, ElectronJS, and Docker
- Background in leading projects and working cross-functionally to build robust products
Make sure to let us know if any of these items apply to you! If possible, please also share a sample of your work or examples of projects (URL or attachment).