Embedded Software Developer

About UbiquitiLink:

UbiquitiLink is a space communications start-up venture with a novel idea for a constellation of nanosatellites dedicated to narrowband IoT communications. Founded by experienced commercial space entrepreneurs, the company is looking for a software engineer who can support the company’s efforts to build out and test the key technologies related to the firm’s space and ground payloads.

Job Summary:

UbiquitiLink is looking for experienced Embedded Software developers to support a critical RF/communications project. The team will be developing a variety of embedded applications for commanding and controlling ground and space payloads. The immediate role of this software developer will be to supporting programing of our spacecraft payload command, and data handling system, in addition to both it’s primary (payload) and secondary (TT&C) radio functions using a proprietary protocol. The software will initially be tested on the payload prototype in a lab environment that simulates orbit operations and the software developer will also be responsible for implementing methods of data acquisition to ensure successful testing, verification, and validation. We are looking for engineers that enjoy a challenge and have a track record of creative thinking to solve unconventional problems.

Core Responsibilities:

  • Developing embedded software systems in assembly, C, C++, or other languages

  • Write software to interact with devices/electronics using I2C, SPI, RS-422, RS-485, Ethernet, etc. communications

  • Write Linux device drivers and system applications for our payload flight code

  • Integrating hardware and software systems, particularly SDRs and Linux servers/computers

  • Reverse engineering and analysis of software

  • Low-level programming of device drivers in a Unix, Linux, or Windows environment

  • Bit-level data analysis

  • Knowledge of various Operating Systems (OS) including Linux

  • Must be able to work independently and in a team environment


  • A Bachelor’s in EE, CE, or CS preferred

  • Experience developing embedded software systems in assembly, C, C++ required

  • Experience performing reverse engineering, analysis of software or low level programming strongly preferred

  • Hands-on experience with integrating hardware and software systems required

  • Hands-on experience with programming microcontrollers and single-board computers required

  • Hands-experience with programming SDRs and signal processing techniques is a big plus.

  • Strong knowledge of telecommunications protocols, RF communications, and multiple access methods.

  • Developing embedded software systems in one or more of the following operating system environments is required: Unix, Linux

  • Working knowledge of one or more of the following common protocols/standards: TCP/IP, SNMP, SDH/SONET, ATM, MPLS/GMPLS, Ethernet, Carrier Grade Ethernet, DSL, SS7, ISDN, Q2931, B-ISDN, X.25, 802.11, 802.16, SIP, MEGACO, or MGCP

  • Experience with Agile Methodologies desired.

To apply, forward a cover letter and resume to stating the position of interest in subject line.