Embedded Software Engineer

  • San Francisco, CA, USA
  • Full-time

Company Description

We started with a simple idea—that everyone should be able to accept credit cards—and we’ve been rethinking buying and selling ever since.

For sellers, we’re creating one cohesive service to run your entire business, from a register in your pocket to analytics on your laptop. For buyers, we’re making it faster to order from the businesses you love and more fun to pay your friends back.

Buying and selling sound like simple things—and they should be. Somewhere along the way, they got complicated. We’re working hard to make commerce easy for everyone.

Job Description

Our hardware team builds the tangible connection to all that is Square. As we introduce more and more of our products to the world, our hardware footprint expands. In this role, you will be responsible for developing the embedded software in Square’s hardware products.

You will:

  • Develop the embedded software in Square’s hardware products

  • Write great code within the constraints of both tiny embedded systems and much more powerful platforms

  • Move up the stack to write and collaborate on system-side code; including protocol design and signal processing in iOS and Android applications, as well as kernel and other development on Linux/Android platforms


You have:

  • Firmware / Embedded software development experience

  • Expertise in C software development, tools, and debugging

  • A strong software development discipline, including modularization and test methods

  • Understanding of common communications protocols (e.g. SPI, UART, I2C, USB), debugging practices (e.g. JTAG and associated gdb integrations), and basic electrical design principles

  • BS in CS, CE, EE, or equivalent practical experience

Even better:

  • Experience with ultra-low-power systems, including power + thermal management

  • Experience with 8-bit to 32-bit RISC and ARM processor

  • Experience with real-time operating systems

  • Experience shipping consumer electronics products

  • Experience in iOS or Android application development

  • Experience debugging  issues cross functionally, using a combination of software and lab equipment such as oscilloscopes and protocol analyzers

  • Experience with basic cryptography concepts and/or hardware security concepts

  • Experience in developing device drivers and userspace software on Linux/Android platforms

Additional Information

At Square, we value diversity and always treat all employees and job applicants based on merit, qualifications, competence, and talent. We do not discriminate on the basis of race, religion, color, national origin, gender, sexual orientation, age, marital status, veteran status, or disability status. We will consider for employment qualified applicants with criminal histories in a manner consistent with the requirements of the San Francisco Fair Chance Ordinance.