FreshBooks has an ambitious vision. We launched in 2003 but we’re just getting started and there’s a lot left to do. We're a high-performing team working towards a common goal: building an elite online accounting application to help small businesses better handle their finances. Known for extraordinary product and customer service experiences and based in Toronto, Canada, FreshBooks serves paying customers in over 120 countries.
The Opportunity: Senior Software Engineer
FreshBooks is seeking a Senior Software Engineer to join our Product Development team, specifically the Core accounting team. You will help build solutions to help our customers own their accounting and pay and get paid quickly within our cloud application. We are proud to build a product that helps our customers earn their living. You are a talented engineer who is committed to great work and is constantly looking for ways to improve the systems you’re responsible for.
What you'll do:
- Collaborate with full-stack and mobile engineers on cross-functional Agile teams working on Accounting features.
- Work closely with UX designers and Product owners to ensure the best web experience.
- Contribute to a large codebase that contains a multitude of customer features.
- Participate and share your ideas in technical design and architecture discussions.
- Ensure quality through automated and exploratory testing.
- Ship your code with our continuous integration process.
What you bring:
- 6+ years of experience in web application development, in an Agile or Lean environment. If you have more years, even better!
- Experience in Python (our core back-end technologies) or Java or Ruby on Rails - as long as you’re interested in becoming a Python Master
- Experience with databases and SQL – our database is MySQL
- Experience writing and working with REST APIs -- and by “REST,” we really do mean actual resource-oriented REST, and not RPC using HTTP mechanisms
- Familiarity with continuous integration (or better, continuous delivery) and automated build pipelines
- The ability to balance desire to ship code quickly to our customers with the responsibility of making good technical decisions
- A long-standing habit of continuous learning, and of applying new technologies, architectures, and methodologies to improve the code and Engineering organization
- Openness to exploring new technology stack including mobile technologies
What you might have:
- Strong pair programming or mob programming skills, both as a mechanism for producing better code, and for teaching skills
- Experience with Docker, Google Cloud Platform, or another major cloud provider such as AWS
- An understanding of test-driven (and behavioural test driven) development, and of building substantially complete test code, and not just for the happy path
- Experience with Redis, ElasticSearch & RabbitMQ (or other equivalent technologies)
- Experience with data pipelines, ETL, streaming data engines, and related technologies
Why Join Us
We're a motivated bunch, with our eyes laser-focused on shipping extraordinary experiences to businesses. You will be surrounded by hardworking team members who share a common vision for what an amazing software company could be, and have the opportunity to help build an elite one, right here in downtown Toronto.
Have we got your attention? Submit your application today and a member of our recruitment team will be in touch with you shortly!
FreshBooks is an equal opportunity employer. We do not discriminate based on gender, religion, race, mental disability, sexual orientation, age, or any other status. All applicants are considered based on their qualifications and merits. At FreshBooks, we inspire an environment of mutual respect and we believe diversity and inclusion are crucial to our success.
FreshBooks provides employment accommodation during the recruitment process. Should you require any accommodation, please indicate this on your application and we will work with you to meet your accessibility needs. For any questions, suggestions or required documents regarding accessibility in a different format, please contact us at phone 416-780-2700 and/or email@example.com.