Embedded Software Engineer

  • San Francisco, CA
  • Full-time
  • Alternate Location: Toronto, Canada

Company Description

Square builds common business tools in unconventional ways so more people can start, run, and grow their businesses. When Square started, it was difficult and expensive (or just plain impossible) for some businesses to take credit cards. Square made credit card payments possible for all by turning a mobile phone into a credit card reader. Since then Square has been building an entire business toolkit of both hardware and software products including Square Capital, Square Terminal, Square Payroll, and more. We’re working to find new and better ways to help businesses succeed on their own terms—and we’re looking for people like you to help shape tomorrow at Square.

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: 

  • Build a common firmware platform for all of Square's hardware products
  • Write code within the constraints of tiny embedded systems
  • Move up the stack to write and collaborate on system-side code; including protocol design, kernel, and other development on Linux/Android platforms
  • Develop tests to validate product features, drivers, and system functionality
  • Build reliable tools to support firmware development and product debugging
  • Work with manufacturing, electrical engineering, and release teams

Qualifications

You Have:

  • 3+ years of Firmware or Embedded software development experience
  • A software development discipline, including modularization, documentation, and test methods
  • Expertise in C software development, tools, and debugging
  • 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

Nice To Have:

  • Experience with wireless protocols (e.g. BLE, NFC)
  • Experience with real-time operating systems
  • Experience shipping consumer electronics products
  • Experience debugging issues across different teams, using a combination of software and lab equipment such as oscilloscopes and protocol analyzers
  • Experience using Python (or similar scripting languages) in automated testing, build systems, or device firmware communication

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. Applicants in need of special assistance or accommodation during the interview process or in accessing our website may contact us by sending an email to assistance(at)squareup.com. We will treat your request as confidentially as possible. In your email, please include your name and preferred method of contact, and we will respond as soon as possible.

Perks

At Square, we want you to be well and thrive. Our global benefits package includes:
  • Healthcare coverage
  • Retirement Plans
  • Employee Stock Purchase Program
  • Wellness perks
  • Paid parental leave
  • Flexible time off
  • Learning and Development resources