Bitflip engineering is an engineering company designing solutions for connecting devices anywhere in the world, including hardware, software to run on that hardware, wireless / wired connectivity, back-end server connection solutions, cellular device solutions, custom / proprietary protocols, and everything in between. Our solutions run on everything from Android/IoS devices, guided parachute systems, gps tracking solutions, to connected cars. We do it all and are looking for embedded software engineers at various skill levels to join the team. The ideal candidate is a self-motivated multi-tasker and team-player with a passion for embedded system development and hardware/software co-design with multiple cutting edge wireless technologies, and connecting those devices to people via cloud technologies.
You will be part of a small but growing company and a tight knit team, using a wide variety of advanced technologies working with industry leaders in telecommunications developing advanced system for the IoT, automotive, and defense industries. If you like to work hard and play hard and are smart and get things done, we'd like to talk to you.
You will be a key developer responsible for the development of new software products and enhancements to existing products. You will be working on a broad range of technologies ranging from embedded platform to server technologies such backend services in C#, COAP, LWM2M, and front-end technologies. For guys that like to touch everything, this is THE job. You should excel in developing solutions for difficult embedded problems quickly, have curiosity and desire to dive in a figure out how things work,and have outstanding communication and debugging skills. You must be comfortable working in fast-paced, dynamic environment and be able to adapt to changing requirements and demands. You will develop proof-of-concepts that will eventually go to productions, as well as maintain and support production devices. You will be responsible for bring-up, test, and development of small embedded devices and developing drivers to interface with devices over various interfaces such as USB, SDIO, I2C, etc. for both real-time operating systems such as ThreadX and FreeRTOS as well as embedded Linux. Asa senior engineer, you should have a thorough understanding of what it takes to write drivers, tasks/threads, interrupt service routines, etc. in an embedded environment and be comfortable debugging with both JTAG debuggers as well as various pieces of hardware test equipment. The ideal candidate will demonstrate a thorough understanding of these skills and also show a passion for software and hardware development, code quality, and getting things done. If you're a junior engineer, we can teach you if you have the desire.
Responsibilities
- Writing clean, high-quality, high-performance, maintainable code in C and Go for embedded systems as well as servers
- Develop and support software including applications, database integration, interfaces, and new functionality enhancements for end-to-end connectivity of embedded devices to back-end servers over wireless connections including 3G/4G/5G, 802.11, 802.15, and proprietary radios and protocols
- Support test and deployment of new products and features
- Participate in code reviews and schematic reviews
- Perform hardware and software device bring-up
- Create device drivers for peripherals such as Bluetooth sensors, flash devices, accelerometers and other peripherals
- Create applications for mobile devices (Android, IOS) as well as windows and Linux
- Debug and test network data connections and transfers
Qualifications
The ideal candidate will have 2-4 or more of the following qualifications
- Bachelor's degree in Computer Science, Computer Engineer, Electrical Engineering (or related field)
- 2+ years of relevant work experience in embedded systems
- Ability to multi-task, organize, and prioritize work
- Able to debug hardware and drivers with Oscilloscope's, logic analyzers, and other test equipment
- Experience with bare-metal software development, Real Time Operating Systems or Embedded Linux
- Use of JTAG/SWD debuggers
- Understanding of networking and network protocols, and be able to debug open ended problems with various tools such as wireshark
- 'Able to work with multiple operating systems comfortably
- Back end development language support using golang, protobufs, and understanding of microservice architectures
- C Programming experience
- Familiarity with basic tools such as Perl, bash, make, etc
Preferred Qualifications
2-5 years in the following areas:
- Design and development of Linux user/Kernel space components,
- Middleware/Software Development Kit development/creation (SDK)
- Experience with ARM processors and assembly programming
- Strong communication skills (written and verbal), working with teams across multiple time zones
- Wireless experience with cellular, wifi, Bluetooth, GPS, or other
- Experience or exposure to automotive technologies such as CAN bus, etc
- Working experience on the ARM based processors, JTAG based debugging etc.
- Exposure to backend services, including TCP / UDP communications, database technologies
Salary:
$100K - $200K depending on experience
Requirements added by the job poster
- Bachelor's Degree
- 1+ years of work experience with C (Programming Language)
- 1+ years of work experience with Embedded Systems
Pay: $100,000.00 - $200,000.00 per year
Benefits:
- 401(k)
- 401(k) matching
- Dental insurance
- Family leave
- Free parking
- Health insurance
- Paid holidays
- Paid time off
- Relocation assistance
- Snacks provided
- Vision insurance
Education:
Experience:
- C programming: 1 year (Preferred)
- Embedded software: 1 year (Preferred)
Ability to Commute:
- Longmont, CO 80501 (Required)
Work Location: In person