Senior Software Engineer, Tools and Services

  • Toronto, Canada
  • Full-time

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 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. You will develop 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: custom circuit boards running C, C++-based virtual test environments for firmware, Python command line tools that support firmware testing and CI/CD pipelines, and even web-based applications used by developers to manage test-related data. While team members focus on a specific area and tool chain, there are opportunities to try something else if you are interested. You will report to our Senior Software Engineering Manager for the Device Software Tools & Services team.

Qualifications

You have:

  • BS in CS, CE, EE, or equivalent practical experience
  • 5+ years of software development experience
  • Expertise in C and C++ software development, tools and debugging
  • Experience in Python 
  • System software/platform development experience
  • Experience leading development of core features within large systems
  • A History of mentoring engineering team members to raise technical standards
  • Experience collaborating across multiple teams, disciplines and locations keeping the best interests of customers in mind
  • Have a broad range of knowledge and be willing to work across our technology stack

Even better if you have experience in any of the following:

  • 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)
  • Experience working with CMake or similar build systems
  • Experience with Android Framework & application level development
  • Understanding of the Android framework internals and AOSP code

Additional Information

At Square, our purpose is to empower – within and outside of our walls. In order to build the best tools for the businesses and customers we support all over the world, we have to start at home with a workforce as diverse and empowered as our sellers. To this end, we take great care to evaluate all employees and job applicants equally, based on merit, competence, and qualifications. We do not discriminate on the basis of race, religion, color, national origin, gender, sexual orientation, age, marital status, veteran status, disability status, or any other characteristic protected by law. We encourage candidates from all backgrounds to apply. 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