Senior Software Developer, Northwestern University
- Details
- Published on Monday, 01 July 2024 23:41
Senior Software Developer
Center for Connected Learning & Computer-Based Modeling
Northwestern University
- Start date as soon as possible.
- $95K/yr - $130K/yr Hybrid Full-time Mid-Senior level
- Skills: System Builder, Java Virtual Machine (JVM), Agent-based Simulation
Job Summary
Headed by Professor Uri Wilensky, Northwestern’s Center for Connected Learning & Computer-Based Modeling (CCL) is looking for a full-time Software Developer to work on NetLogo. If you are a system builder and can design and implement a whole application independently, this position is ideal for you! The Software Developer works in a small collaborative development team in a research group that also includes professors, postdocs, graduate students, and undergraduates, supporting the needs of multiple research projects. A major focus would be on development of NetLogo (in both Desktop and Web form), an open-source modeling environment for both education and scientific research. CCL grants also involve development work on HubNet, NetTango and other associated tools for NetLogo, including research and educational NSF grants involving building, delivering, and assessing NetLogo-based science curricula for secondary schools. NetLogo is the most widely used agent-based modeling software, and has hundreds of thousands of users worldwide using it for both research and education.
How to Apply
Please send cover letter, resume and any other relevant materials to netlogo-devel-applicants@ccl.northwestern.edu. The review will begin immediately and continue until the position is filled. Formal application process and approval through the Northwestern job board is also required.
Specific Responsibilities
Development
- Develops and maintains software infrastructure, via patches, bundles, releases and maintenance packs.
- Codes software applications adhering to designs supporting internal business requirements or external users.
- Designs databases and data structures.
- Meets with stakeholders to determine requirements.
- Collaborates with and leads the NetLogo development team in designing features for NetLogo, NetLogo Web, NetTango, HubNet and web-based versions of these applications; writes code independently, and in the context of a team of experienced software engineers and principal investigator.
- Interacts with commercial and academic partners to help determine design and functional requirements for NetLogo, interacts with user community including responding to bug reports, questions, and suggestions, interacting with open-source contributors assessing and merging their contributions. Triages, prioritizes, fixes documents, and communicates on end-user issue reports.
- Researches and develops new algorithms and statistical techniques designed for analyzing data based on customer needs.
Administration/Operations
- Responds to customer inquiries via phone, online, in-person, etc.
- Creates and maintains code documentation.
- Evaluates feature/upgrade/change requests and recommends action.
- Identifies database and software performance issues, and makes adjustments.
- Performs data collection, organization, and summarization for projects; assists with coordination of team activities.
- Creates, updates and documents existing models using NetLogo, and web-based applications; creates new such models.
Strategic Planning
- Collaborates with end users to develop workflow and best practices.
- Partners with end users in designing features for technology.
- Performs other duties as assigned.
Minimum Qualifications
- Successful completion of a full 4-year course of study in an accredited college or university leading to a bachelor's or higher degree; OR appropriate combination of education and experience.
- 2 years of relevant work experience required.
- 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 open-source software development and supporting the growth of an open-source community.
- Experience with Linux as well as experience with GitHub and GitHub Actions or other testing and deployment automation tools.
- Experience with GUI design; language design and compilers.
- Experience with building web-based applications, both server-side and client-side components, particularly with html5 and JavaScript.
Preferred Qualifications
- 4+ years of experience or the equivalent in projects built.
- Experience with at least one JVM language such as Java.
- Experience with Scala programming, or enthusiasm for learning it.
- Experience with Haskell, Lisp, or other functional languages.
- Interest in and experience with programming language implementation, functional programming, and metaprogramming.
- Experience with GUI design; language design 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 and/or participatory simulations.
- Experience with physical computing.
- Experience with cross-platform mobile development.
- Experience working on research projects in an academic environment.
- Interest in education and an understanding of secondary school math and science content.
Salary
Target hiring range for this position will be between $95,000-$130,000 per year. Offered salary will be determined by the applicant’s education, experience, knowledge, skills and abilities, as well as internal equity and alignment with market data.