Job Description
Do you enjoy solving very complex problems with simplest solutions? Are you excited building large-scale distributed systems? Do you enjoy leveraging technology to solve real world problems? Would you like to help us move forward scaling with the cloud and leveraging latest Big Data technologies? We are looking to hire in our Toronto office to work on design, implementation and successful deployment of the next generation Big Data and Machine Learning platform. Our system is mainly focused toward enabling our Forecasting organization to be successful with science experimentation and execution of the mission critical tasks on a daily basis.
You will be building large distributed systems that are reliable, maintainable and scalable. You will get your hands dirty designing full stack of software. You will be optimizing performance through novel approaches to be able to process billion of records in a few seconds! Your software will be used by engineers, scientists and analysts.
We are building a new suite of products aimed at making it easier than ever to experiment and run production data processing systems at petabyte-scale for batch and streaming applications. The suite of products is a complete ecosystem that contains solutions for data handling, Machine Learning model development, automation of the computing resource management, advanced scheduling and orchestration of data processing pipelines, and highly reliable and optimized execution.
Now research scientists, business analysts and application developers have all these technologies and more, integrated together into one coherent infrastructure and available to them with a click of a mouse. They can now concentrate their efforts on solving their business problems, rather than searching for data, maintaining their processing pipelines and debugging compatibility issues or worrying about encryption. Multi-layered architecture provides future proof replaceable components for data storage, highly scalable compute and for model experimentation and evaluation.
BASIC QUALIFICATIONS
- Bachelor's Degree in Computer Science or related field with 4+ years relevant industry experience
- Demonstrated proficiency with Java, C++, or equivalent object-oriented programming language; or demonstrated ability to learn new programming languages and tools quickly
- Object-oriented analysis and design skills
- Problem solving and analytical abilities
- Understanding of algorithmic design and complexity analysis
- Understanding of relational databases and basic SQL
PREFERRED QUALIFICATIONS
- A Master's or PhD Degree in Computer Science highly desirable.
- Experience with forecasting and risk models
- A strong bias toward building simple, sustainable, extensible code.
- The ability to clearly and concisely communicate with technical and non-technical customers in order to understand ambiguous problems and articulate technical obstacles and solutions to complex challenges.
- Practical experience with software engineering best practices, refactoring existing code, and a strong desire to create quality solutions and designs.
- A deep understanding of distributed systems, multi-threaded programming and messaging technologies. Understand what SOA is and write service from the grounds up without using any framework.
- Experience with forecasting, user interface design and development, optimization systems, mathematical programming models, Operations Research techniques, e SQL in a Linux environment are all distinct advantages.