Software Engineer- Embedded Tools
- Toronto, ON, Canada
- Current Square Employee?: Apply via go/jobs
We believe everyone should be able to participate and thrive in the economy. So we’re building tools that make commerce easier and more accessible to all. We started with a little white credit card reader but haven’t stopped there. Our new reader helps our sellers accept chip cards and NFC payments, and our Cash app lets people pay each other back instantly. We’re empowering the independent electrician to send invoices, setting up the favorite food truck with a delivery option, helping the ice cream shop pay its employees, and giving the burgeoning coffee chain capital for a second, third, and fourth location. Let’s shorten the distance between having an idea and making a living from it. And make it easier for customers to shop and pay at their favorite businesses. We’re here to help sellers of all sizes start, run, and grow their business—and helping them grow their business is good business for everyone.
Our inclusive 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 software tools used to develop and test Square’s hardware products.
Our team looks across the software development lifecycle to find opportunities to help speed up delivery and improve quality. We build and maintain everything from custom circuit boards running C, to host side Python command line tools, and even a couple of GUI end-user tools. While team members focus on a particular area and tool chain, there are opportunities to try something else if you are interested.
A resilient software development discipline, including modularization, documentation, and test methods
Innate curiosity and a desire to be responsible for all aspects of software development in a small, highly focused team
Experience using Python (or similar scripting languages) in automated testing, build systems, or device firmware communication
Expertise in C/C++ software development, tools, and debugging
BS in CS, CE, EE, or equivalent practical experience
Even better if you have experience in any of the following:
Familiarity with payment devices
Firmware / Embedded software development experience
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
Experience shipping consumer electronics products
Experience debugging issues cross functionally, using a combination of software and lab equipment such as oscilloscopes and protocol analyzers
Experience working with CMake or similar build systems
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.