Senior Software Engineer
At Augmenta, we create software for the construction industry that fully automates the design of buildings - completely transforming the industry and empowering architects, engineers, contractors and developers. We’re a global team, headquartered in Toronto, Canada with a team of brilliant, kind and collaborative scientists, engineers and designers. We are spread across Canada, the US, and Italy, making our workplace a remote-first and distributed environment.
We’ve already built and delivered incredible software, and now we need your help to develop our first product and deliver it to market.
We’re looking for a Senior Software Engineer to join our team at Augmenta. You will be responsible for finding computational solutions to complex technical challenges, spearheading investigation in scalable distributed algorithms and development of our cloud-based systems, whilst providing technical leadership to junior team members.
This role reports to the VP of Engineering.
What you will do
- Research, design and implement robust, scalable, high-performance computer algorithms
- Investigate state-of-the-art computational methods by reading relevant academic papers and attending appropriate workshops/conferences
- Collaborate with a multidisciplinary team including designers and software engineers in multiple locations
- Mentor junior staff and interns to reach their best potential
- M.Sc./Ph.D. in Computer Science, Computer Engineering, Mathematics, Physics or related disciplines - or equivalent experience
- Fluent in C++ and Python
- Computational geometry algorithms and methods
- Familiarity with mathematical optimization methods: Linear Programming, Mixed Integer Programming, Combinatorial Optimization, Constraint Programming, Dynamic Programming
- Expertise in API design, component architectures, principles of service-oriented software
- Excellent knowledge of linear algebra and calculus
- Experience using automated testing and continuous integration frameworks
- Exposure to software product development and delivery practices and related tools
- Research, design and performance optimization of complex algorithms
- Parallel computing methods and frameworks
- Familiarity with fundamental Modeling & Simulation principles and methods
Nice to have
These are the things you’re likely to work on, so if you have any experience in the following, great! If you don’t have experience in the following, we still encourage you to apply.
- Additional mathematical optimization methods: gradient estimation, Bayesian Optimization, metaheuristic optimization
- Mathematical modeling methods for complex regression tasks, Deep Learning
- Interactive 3D graphics and data visualization
- Numerical methods for solving partial differential equations problems
- Distributed computing
- GPU acceleration of numerical algorithms using CUDA/OpenCL
- Amazon Web Services APIs
- Lightweight virtualization technologies (Docker, etc.)
Our Team and Perks
- We are an open, collaborative, and supportive culture including skill shares, design critiques, and a bi-weekly reading group
- We believe that employees should be owners, which is why we provide stock option grants for full time employees
- We believe in support the health and wellbeing of our team, which is why we offer a competitive health benefits package
- We believe in balance and taking time to rest and recharge, which is why we offer 4 weeks vacation to all full-time employees plus an extra week off at the end of December.
- As a remote-first team, we believe in the importance of having the right set up, which is why we offer a home office budget
- Learning and development is critical to us, which is why we have a self-directed learning budget
Our team is remote-first and fully distributed! We have team members across Canada, the US, Italy, and other locations around the world. This means that we often collaborate asynchronously via Slack and Video Conferencing.
Here's how to apply
Please submit your resume and a cover letter at https://jobs.lever.co/T6TalentPartners/6521d8aa-485b-40ad-b5fa-c68adf5c156f
Our Hiring Process
Discover: You discover the opportunity and apply to the role.
Talk: You take part in a 30-45 minute screening call with the Hiring Manager to chat about the role and the team.
Showcase: You complete a short “take-home” assignment to showcase your skills.
Meet your team: You have a video call with a few other Augmenta team members.
Offer: You receive an offer to join Augmenta!
Accommodations and Accessibility
Inclusion and equity are the cornerstones of how we recruit, hire, and develop talent. We encourage applications from all candidates, especially those who identify as members of the BIPOC community, LGBTQ++ community, women, caregivers, immigrants, and people living with disabilities. We encourage candidates to include any accommodations you require in your application. We look forward to hearing from you.