Presented by

  • Curtis Millar

    Curtis Millar

    Curtis is a research engineer in the Trustworthy Systems team at CSIRO's Data61 and an academic and student at UNSW Sydney. His experience is largely with Linux and system and kernel development with seL4. Outside of work, he is an avid tinkerer and has been engrossed in the world of Linux since 2008. Within the Trustworthy Systems team, he has worked on development of the seL4 microkernel, supporting the implementation and verification of real-time scheduling, mechanisms for removing micro-architectural timing channels. He also supports development of the kernel as general-purpose platform for operating systems development. At UNSW, he has been involved in the delivery of courses relating to operating systems development, safe software engineering, introductory programming, and cyber security. He has also been involved in the UNSW Security Society. Outside of work, Curtis has interests in hacking on Linux with Rust, cyber security, and has many projects relating to developing programming languages.


Shell scripts in all their incarnations have been the go-to for constructing portable glue that interacts with other scripts and programs. With the evolution of UNIX, the introduction of the POSIX Shell Command Language gave us a standardised shell language the is the most common mechanism for distributing code to operate in the most diverse of situations. Whilst many shell implementations extend upon this standard to make it more usable, this talk will see how we can produce more expressive programming primitives to allow for truly composable and portable shell scripts, showing what the true power of the POSIX shell standard is, where the pain points lie, and why this standard is ultimately restricted in what it can provide. Given the amount of effort required to make shell scripts that are both portable and reusable, we'll also discuss when you should reach for a shell script and when its best to reach for something more powerful, even if that power brings problems of its own.