Help us build open-source tools and technologies that do for legal and qualitative reasoning what the spreadsheet has done for quantitative reasoning.
At SMU's research programme in Computational Law, researchers develop open-source languages and libraries to be shared on Github and used by a future generation of web and mobile apps. We have three to five years to accomplish this goal.
As a member of the team, you will have the opportunity to participate in software projects. This involves:
- Learning foundational areas of computer science, including data structures, algorithms, programminglanguage theory, and logic
- Learning how to use third party tools, including editors, IDEs, databases, business process modelling software, programming languages, specification languages; and libraries;
- Evaluating competing software systems for suitability
- Building infrastructure to enable application development
- Managing yourself, and managing fellow team members
- Engaging in product, project, and program management as needed
- Reading books and consuming such other media forms about software development
- Writing documentation such as user/developer-facing manuals, tutorials
- Delivering community support to users and customers
- Preparing presentations to represent the project before external audiences
- Writing user-facing applications throughout the "full stack
Success metrics: You can measure your (external) success in this job by the number and quality of contributions accepted into the research programme's Github repositories. Numerous software development assignments will be available. You can measure (internal) success by how frequently you find yourself in a flow state; by how many new ways of thinking you have mastered; and by how well you can get computers to help you and other people achieve important goals.
During your time with us, you will be exposed to areas of computing that lie beyond web/mobile app development, data science, and machine learning. You will learn to see the world as a computer scientist does – in terms of logics, languages, and libraries – and acquire, on the job, many of the skills on Matt Might’s list of “what every computer science major should know”. Working with other junior and senior researchers, you will learn technologies and skills which will be valued across a range of future careers.
Open-Source Software & Open-Standard Infrastructure Engineering: Internet infrastructure · Unix · Raspberry Pi · TCP/IP · HTTP(S) · XML · JSON · Schemas · YAML · Git · Github · REST APIs · RFCs · IETF · StackOverflow · Hacker News · Technical Writing · Developer Relations and Evangelism
Software Development: Test-Driven Development · Continuous Integration · Software Project Management · Agile / XP / Scrum · Pair Programming · Literate Programming · Unit Testing · Amazon Web Services · Docker · Full-Stack Development
Documentation: ReStructuredText · LaTeX · Jekyll · Markdown · Org-Mode
Parsers, Compilers, and Programming Language Theory:
Lex/YACC · alex/happy · Bison · CFGs · EBNF · BNFC
- Agile Methodology
- Amazon Web Services
- Business Process Models
- Cloud Computing