We often get asked about opportunities to join our team, and what kind of skills are needed. Here is some introductory information. Read About LSDevLinux first, however.
The mission of our group is to make language software available on Linux. Initially this consists of "porting" existing software from other platforms (typically Windows) but we hope eventually to do "Linux-first" development as well. We also develop for Mac at the same time as developing for Linux, since the two systems share a lot of technologies and it is fairly easy to program in ways that work on both system.
Our current porting projects include:
- Flex, the FieldWorks Lexical Explorer used for vernacular text analysis and lexicography
- Translator’s Workplace, an electronic library of reference materials
- SpeechAnalyzer, a tool for acoustic phonetics and phonology
- Balsa, a customized, pre-configured Linux system that provides a translation drafting environment for mother-tongue translators
We have a number of smaller projects as well.
Most of the work is straight programming in "heavyweight" languages like C# and C++, with additional use of Python, XSLT, and SQL. We try to use XML as much as possible both for data representation and for document structuring. Some knowledge of Linux or Mac OS X is essential.
However, we do need other skills too. For example, the porting of Translator’s Workplace to Linux is mainly a document conversion task, involving XML, XSLT, HTML and CSS. We also do some of our programming in Python, which is much easier to pick up than C# or C++. In addition, there are various tasks that support the programming effort such as writing documentation, keeping people updated via our team blog and wiki, and helping users via email.
There are opportunities to assist with our software development on a more casual basis. Open Source Development Opportunities
Typically, there is a learning curve for people joining our team. Just how steep this is depends on how well previous experience matches up with what we do here, and the type of role the person is planning to have. Most people need to learn more programming skills, learn more about Linux, and get a grasp of the bigger picture of what software development is all about, and SIL language software development in particular. We use some cutting-edge technologies, and developing language software has a unique set of issues. So if you relish a challenge and learning lots of new things, this would be a stimulating career move for you.
Currently there are seven of us in Calgary: three Canadians, two Brits and two Americans; ages early-30s to mid-50s. So it's a fairly varied team!
Most of the work takes place in Calgary, where we have a dynamic team environment with a lot of face-to-face interaction, including some "pair programming". We do have a few people working remotely, or part-time, but we try to avoid this wherever possible as it brings a lot of additional challenges on both sides. We usually require that new team members work in Calgary for at least the first 3-6 months, depending on existing skills. Suitability for long-term remote working very much depends on the individual's skill level and personality, and to a lesser extent on the nature of the project they are working on.
We also have people working as volunteers from time to time. While this can be very helpful, we have had widely varying degrees of success in making such arrangements work well, and we prefer to have full-time, resident developers whenever possible. We do sometimes have summer student interns, however, and with suitable individuals these situations have tended to work well.
Feel free to send us questions, and get any more information you need. We want to make sure that you find the role that's best for you.