As the successful candidate, you will work on the kernel of Maplesoft's flagship product.
The kernel handles low level operations such as arbitrary precision arithmetic, file I/O, parsing, executing the Maple language, and performing simple mathematical operations such as differentiation of polynomials, and modular arithmetic.
The kernel manages the internal representation of Maple commands. It keeps track of all assigned variables; it manages memory, and communicates with external shared libraries and programs (like NAG and Matlab). Development of the kernel touches on many fundamental concepts in computer science -- hash tables, tree-walkers, directed acyclic graphs (dags), garbage collectors, parsers, compiler technology, parallel computation, etc.
The core kernel is written in C with extensions in many languages (C++, Java, Fortran).
Required Skills:
- Bachelor's degree in Computer science or related discipline (Masters degree is preferred);
- An intuitive understanding of computer architecture and fluency with the C programming language are essential;
- A good grasp of data structure concepts, their applicability, and the ability to put them to use;
- Researching, writing technical specifications, designing, and developing new Maple kernel features is involved;
- Experience preferred in one or more of compiler or interpreter construction, operating system implementation, real-time programming, embedded systems development, computer algebra systems or IEEE numerics;
- Excellent oral and written communication skills;
- Ability to work independently and as part of a team.
|