Jobs
The Macaulay2 free software project ( http://macaulay2.com/ ) seeks one or more part-time programmers. Macaulay2 is a free software computer algebra system designed for research in mathematics and related fields. It contains its own high-level interpreted user language, and the program is written in a combination of C and C++, another language that we created to help write the interpreter that gets translated into C, and the user language. Macaulay2 depends on a number of other free software libraries.This is a temporary position funded by an NSF contract that terminates in August, 2015, but other funding may be available after that. Applications received by Friday, November 18, 2011 will receive full consideration.
The candidate will be expected to set and manage his/her own development and delivery schedules with minimal supervision.
To apply, send email to Mike Stillman (mike@math.cornell.edu), with "M2 Programmer" in the subject line. Pay will be competitive, and will depend on experience.
There are several projects available, and there will be others in the future. An applicant may be suitable for all, or for only one.
1. Release Manager: prepare releases for Macaulay2, and maintain the web site and wiki
The preparation of releases includes the following duties:- a. prepare binary releases, for Mac OS X, various versions of Unix, GNU-Linux, freeBSD, and Windows under Cygwin
- b. make sure that these ports pass the test suite
- c. place them on our web site
- d. submit releases to Ubuntu, Gentoo, and other distributions
- e. contact Macaulay2 authors to solicit packages they have written to be distributed with M2
Note: our build system currently builds to many major systems.
2. Project: Port Macaulay2 to (native) Windows
Currently, Macaulay2 runs on Windows under Cygwin, and many variants of Unix, GNU-Linux, and Mac OS X. The applicant will port Macaulay2, and the software that it depends on, to Windows by compiling it either with Visual C/C++, or with GNU's MINGW, whichever seems most appropriate.The successful applicant will be familiar with programming in C and C++ on Windows, and with porting Unix software to Windows.
Something will have to be done about Macaulay2's top-level function "fork" and its use by at least one package.
3. Project: Multicore and multithreaded Macaulay2
We have recently added multithreaded support to Macaulay2. Currently, this support is very basic. The applicant will extend its capabilities and make the multithreaded base reliable and efficient.The successful applicant will be familiar with programming for multiple cores, in C and C++ under GNU-Linux and Mac OS X, including debugging such programs. It will be necessary to know or be able to learn quickly the Macaulay2 user language.
4. Project: improve the TeXmacs interface
TeXmacs is a free visual mathematics and scientific text editor that supports interaction with computer algebra systems, including Macaulay2, and is available at http://www.texmacs.org/. A screen shot including an interaction with Macaulay2 is at http://www.math.uiuc.edu/Macaulay2/Screenshots/. The applicant will improve the interface between TeXmacs and Macaulay2. Much of that will involve designing good visual displays of various types of Macaulay2 objects in the TeXmacs environment.The successful applicant will be expert at programming in C++ and to know or to be able to learn quickly the internals of both TeXmacs and Macaulay2.