The CCL Lab at Northwestern University is looking for a full-time Scala/Java Software Developer to work on the NetLogo desktop application, a computational modeling environment widely-used in both education and research.
This Software Developer position is based at Northwestern University’s Center for Connected Learning and Computer-Based Modeling (CCL), working in a small collaborative development team in a university research group that also includes professors, postdocs, graduate students, and undergraduates, supporting the needs of multiple research projects. A major focus of the role is on the development of NetLogo, an open-source modeling environment for both education and scientific research. CCL grants also involve development work on other associated projects for NetLogo, including multi-user simulation and other tools for research and educational NSF grants involving building NetLogo-based science curricula for schools.
NetLogo is a programming language and an agent-based modeling environment. The NetLogo language is a dialect of Logo/Lisp specialized for building agent-based simulations of natural and social phenomena. NetLogo has hundreds of thousands of users ranging from grade school students to advanced researchers. A collaborative extension of NetLogo, called HubNet, enables groups of participants to run multi-user simulation activities in classrooms and distributed participatory simulations in social science research. NetLogo also featur es an expansive API that members of the NetLogo community use to extend the language to integrate with software like GIS databases, Python, R, and Mathematica, and to interface with hardware devices like Arduino boards and the Microsoft Kinect.
The Northwestern campus is in Evanston, Illinois on the Lake Michigan shore, adjacent to Chicago and easily reachable by public transportation.
To apply, please contact Uri Wilensky, Director of the CCL, at the following email address: firstname.lastname@example.org
Please put ‘Developer Job’ in the subject line. Please include a PDF version of your resume and, optionally, links to any relevant development projects you feel illustrate your abilities.
• Independently implements NetLogo features and bug fixes in Scala/Java.
• Collaborates with the NetLogo development team and principal research investigators in planning and designing features for NetLogo and other related projects.
• Interacts with commercial and academic partners to help determine design and functional requirements for NetLogo and other related projects.
• Interacts with user community including responding to bug reports, questions, and suggestions, and interacting with open-source contributors.
• Mentors undergraduate student workers and guides Google Summer of Code participants on contributions to the NetLogo codebase; assists graduate students with issues encountered during their work.
• Contributes to the design of web-based applications, including CCL websites and NetLogo Web, and implements features for interoperability between desktop and web platforms.
• Performs data collection, organization, and summarization for projects; assists with organizing team meetings and maintaining team communication.
• Performs other duties as required or assigned.
• A bachelor’s degree in computer science or a closely related field or the equivalent combination of education, training and experience from which comparable skills and abilities may be acquired.
• Demonstrated experience and enthusiasm for writing clean, modular, well-tested code.
• Experience with working effectively as part of a small software development team, including close collaboration, distributed version control, and automated testing;
• Experience with at least one JVM language, Scala strongly preferred.
• Experience developing GUI applications, especially Java Swing-based applications.
• Experience with programming language design and implementation, functional programming (especially Haskell or Lisp), and compilers.
• Interest in and experience with computer-based modeling and simulation, especially agent-based simulation.
• Interest in and experience with distributed, multiplayer, networked systems like HubNet.
• Experience working on research projects in an academic environment.
• Experience with open-source software development and supporting the growth of an open-source community.
• Experience with Linux/Unix system administration.
• Interest in education and an understanding of secondary school math and science content.
Northwestern University is an Equal Opportunity, Affirmative Action Employer of all protected classes including veterans and individuals with disabilities.