Core R&D Engineer – 100% Remote in Canada ***Completed***
Our client develops advanced AI based software for scheduling complex operations. They offer a challenging and dynamic environment that puts a premium on delivering innovative and quality solutions, while having fun doing it.
This is a 100% REMOTE job opportunity. Candidates must reside and be eligible to work in Canada. The physical office is located in Vancouver, Canada but the development team is located across Western Canada.
Job Description
We are looking for a software R&D engineer who is motivated to work building a platform that other developers can use. You will be part of a “platform team” that is responsible for maintaining and developing new features for an innovative Java-based scheduling and optimization platform. Responsibilities will include research, development, and implementation of algorithms as well as writing high performance Java code to support highly interactive scheduling applications. You will coordinate with the rest of the team working on different layers of our development platform. A commitment to collaborative problem solving, sophisticated design, and quality product is expected. Experience working within existing software design constraints is a plus.
Responsibilities
To be successful, you will need to fit into a small team environment. You must also be a proactive and independent thinker, able to take ownership of tasks with little supervision, while collaborating with others. Your responsibilities include:
Maintaining and developing new features for existing Java based scheduling and optimization platform
Scheduling and optimization algorithm requirements definition, specification, and design
Implementation of algorithms and designs in Java in your areas of interest, such as:
Stochastic local search
Graph theory
Operations research
Language parsing and runtime compilation
Memory management heuristics
GIS and computational geometry
Visualization
· Software performance tuning, including knowledge of:
Big-O algorithmic complexity
Impacts of memory allocation
Methods for identifying and addressing bottlenecks
Skills and Qualifications
Advanced Java or similar programming language skills
Strong background in mathematics, algorithms, and computation
Experience with mathematical modeling
Experience with low-level concurrency primitives
Practical experience developing high performance code
Knowledge of optimization techniques and algorithms (including Stochastic Local Search)
Java/Swing or other desktop UI (visualization) experience a bonus
Machine learning experience a bonus
Advanced (graduate) degree in Mathematics or Computing Science preferred
The company offers a long-term stable job in a highly collaborative, people-focused team, and fair comp with excellent benefits and vacation allowance. Opportunity to visit Vancouver for team meetings (if working remotely from another city in Canada).
Contact: Amanda@corporate.bc.ca