About Ubiquiti
At Ubiquiti Inc., we create technology platforms for Businesses, Smart Homes, and Internet Service Providers, driven by our goal to connect everyone, everywhere. To date, Ubiquiti has shipped over 100 million devices worldwide, from ISP networking products to next generation of IT solutions. Our growth is made possible by the dedicated team of hundreds behind the scenes. From software developers and product managers to designers and strategists, Team UI is driven to achieve our common goal: Rethinking IT.
Responsibilities
- Firmware Development: Implement kernel mode and user mode applications for UniFi Protect product line device firmware, from bootloader to user-space applications.Develop and maintain Linux Kernel, rootfs, and other system-level components.
- Hardware Testing and Diagnosis: Develop features to support hardware testing and diagnosis of various embedded devices.Create tools and scripts for debugging and troubleshooting hardware issues.
- Cross-Functional Collaboration: Work closely with multiple teams including Electrical Engineering, Backend, Frontend, Mobile, QA, Factory, and Manufacturing.Participate in design reviews and provide input on firmware and hardware integration.
- Version Control and Documentation: Maintain version control using Git and ensure thorough documentation of code and development processes.Contribute to the development of technical documentation and guides.
- Problem Solving and Optimization: Identify and resolve complex technical issues related to firmware development.
Requirement
- Passion for Embedded Software: A genuine enthusiasm for embedded software development.
- Programming Skills: Proficiency in C/C++ programming languages.
- ARM Platform Experience**: Understanding and experience working with ARM-based platforms.
- Debugger Experience: Familiarity with debuggers such as gdb, strace, etc.
- Linux Development: Experience in embedded software development, particularly in Linux driver development, and both kernel and user modes.
- Scripting Skills**: Familiarity with scripting languages like bash, python, or nodejs.
- Version Control: Proficiency with Git version control.
- Teamwork and Motivation: A self-motivated team player who enjoys challenging tasks and is goal-driven.
- Time Management: Ability to deliver results under tight schedules.
- Education: BS/MS degree in Computer Engineering, Computer Science, or an equivalent field.
- *Language Skills: Fluent in both written and spoken English to effectively collaborate in a global team environment.
Nice to have
- Development Board Experience: Experience with development boards such as Raspberry Pi, Arduino, or BeagleBoard.
- Build System Experience: Familiarity with build systems like OpenWRT, BuildRoot, or Yocto.
- Hardware Protocols: Knowledge of standard hardware protocols including gpio, usb, uart, pwm, flash, spi, and i2c.
Benefits
- International work environment and work with global development teams.
- Excellent work conditions.
- Competitive package we can and do offer great pay, perks, and benefits.
- Group insurance; Health insurance.
- Flexible working patterns.
- Free drinks and snacks in the office.