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 - Staff Software Engineer (Director Level)
FreshBooks is looking to bring on a skilled Staff Software Engineer to join our product engineering team. We’re looking for someone who is passionate about technically leading, owning and scaling one of the core area of our FreshBooks platform (APIs, Personalization, Payments, Accounting, Teams and Time Tracking) this person will be the technical leader who will help grow our senior engineers into the next step of their career technically. You’ll also be an engineering ambassador internally, working with all the cross functional teams to ensure that all of our products are built with our 4E philosophy in mind.
What we mean by staff is we know the problem statement, but does not know what a working solution could be, but we trust that you will figure out how to solve the challenge and you’re on a path to technically influence an entire engineering org, become a Principal -> Distinguished Engineer.
What you'll do:
- Collaborate on cross-functional Agile teams working on features for our customers, particularly our search, email and all the communication on the FreshBooks platform.
- Contribute to setting technical and architectural direction for our entire Engineering department with a focus on building services that delivers the 4E to our users.
- Be the technical lead in working on refactoring when needed on some of our core services as new pain points arises to our customers.
- Be the architecture, scalability subject matter expert for the team.
- Orchestrate a plan to grow the technical expertise of the team as they continue to work and touch services outside their realm.
- Research, design and share your ideas in technical design and architecture discussions.
- Learn in-depth details of the current codebase, and map long term improvements.
- Be a coach for Engineers and an advocate for clean code, good testing practices, and quality software.
- Ship your code and enhance our delivery process.
- Modernize existing services and help us define, standardize and automate the test of domain boundaries.
- Develop your craft, improve your expertise in software development, and raise the level of the teams around you.
What you bring:
- Strong experience in an Agile or Lean environment.
- Must have experience in technically leading and mentoring a group of 10+ senior engineers for atleast 5+ years.
- Strong experience in one of our core technologies - Python (ideally Flask) and Ruby on Rails - or a strong track record in C, C++ or Java
- Strong experience designing, writing and building with REST APIs.
- Experience with databases and SQL – our database is MySQL.
- Demonstrated experience coaching and mentoring technical teams, and growing the overall technical maturity of our Engineering organization
- Experience doing the hard bits of Software Engineering -- keeping applications nimble and current all while under heavy usage
- A deep understanding of test-driven (and behavioural test driven) development, and of building substantially complete test code, and not just for the happy path.
- Strong familiarity with continuous integration (or better, continuous delivery) and automated build pipelines.
- Strong 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.
What you might bring:
We're looking for a variety of talented technical leadership and know that a mix of skills and experience is useful. Even having a couple of the skills from the list below would be a strong asset.
- Expertise in the core areas of business of FreshBooks (APIs, accounting, payments, small business solutions)
- A background in DevOps and service ownership, and a clear understanding of bounded contexts and how they map onto microservices.
- Strong pair programming or mob programming skills, both as a mechanism for producing better code, and for teaching skills .
- Experience with Docker, Kubernetes, Ansible, Terraform, or other similar tools.
- Experience with Datadog, Google Cloud Platform, or another major cloud provider such as AWS.
- Experience with Redis / Elasticsearch & RabbitMQ.
- Nice to have GraphQL and JSON API.
Why Join Us
We're a motivated bunch, with our eye’s 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.
Here at FreshBooks, we welcome and encourage applications from people with disabilities. Should you require any accommodations during the recruitment process, please advise your recruiter on how we can meet your needs to ensure a fair and equitable selection process in a confidential manner.