Dr Sean Seefried
This is a PDF version of an online CV. For the full experience, replete with hyperlinks, please visit seanseefried.org
Education
PhD in Computer Science
University of New South Wales, Sydney, AustraliaGraduated Dec, 2006
Thesis: Language Extension via Dynamically Extensible Compilers
Bachelor of Science majoring in Computer Science
Hons. 1st class with a University Medal
University of Queensland, Brisbane, Australia.Graduated Dec, 2000.
Thesis: Towards Totally Functional Programming
Skills
Programming Languages, Development Platforms, Applications and Tools
- Languages: Haskell, OCaml, Isabelle/HOL, Ruby, Javascript, HTML, CSS, Agda, Scala, C, sh/bash, Java, C++.
- GitHub: github.com/sseefried
- Blog: Lambdalog
- Web Frameworks: Ruby on Rails, Node.js, ASP.NET, Yesod
- Operating systems: Mac OS X/Darwin, Linux
- Source control: git, Mercurial, Subversion
- Databases: PostgreSQL, MySQL
- Tools: Apache, nginx, mongrel, Phusion Passenger, Vagrant, Ansible, Docker
- ...and many more that escape my mind
Employment History
Digital Asset (Jan 2017 - May 2022)
- Digital Asset's core offering is DAML, a functional programming language designed to run on distributed ledgers with in-built primitives for handling authority, privacy and divulgance of information to other parties.
- From Jan 2017 to Sep 2018 I worked as a language engineer on the DAML language.
- From Oct 2018 to May 2022, I worked on the first large application of DAML, the Chess Replacement project for the Australian Stock Exchange.
BitTrade Labs (May 2016 - Dec 2016)
- I took this role to gain commercial experience using blockchain technology. My role involves working on internal products and consulting to companies on the advantages and disadvantages of using blockchain technology. Blockchains I have already developed software for are Bitcoin, Ethereum and Factom.
IAG (September 2015 - May 2016)
- Worked on an Entity Resolution platform written in Haskell. This particular role enhanced my ability to write concurrent, high performance Haskell that ran with reasonable memory requirements. Made heavy use of streaming libraries such as Pipes and Quiver.
Web development contractor/game developer (March 2014 - Sep 2015)
- Mar 2014 - present. Contracting for various web development studios (30Acres, Dawson Media). Most of the web development work is in Ruby on Rails. Database technologies are standard: MySQL and PostgreSQL. I'm responsible for a lot of system administration too. I use platforms such as Amazon Web Services, Digital Ocean, and tools such as Vagrant, Ansible and Docker to simplify provisioning and deployment and make it repeatable. Client work sometimes requires me to perform the dirty job of maintaining and extending PHP applications.
- Mar 2014 - present. Game development in Haskell. Developed a simple independent video game. Tired of hearing that Haskell couldn't be used for "real world" applications I decided to develop a game for both iOS and Android. I released a Docker container encapsulating this work and the game here. I also wrote a blog post explaining an interesting use-case for Docker as a means of simplifying the development of long-running build scripts.
Senior Research Engineer, NICTA (November 2010 to March 2014)
- Dec 2011-Mar 2014. Working with the Verification Group in the Software Systems Research Group (SSRG). I did proof maintenance on the seL4 operating system kernel. NICTA is the first research institute in the world to have verified an operating system kernel. Program verification is the highest level of assurance of program correctness you can get and a lot of functional programming techniques are used in program verification. (The theorem prover itself is written in Standard ML, a close cousin of OCaml.)
- 2010-Nov 2011. Researcher on the Scalable Vision Machines project — developing a Haskell EDSL to make the programming of GPUs much easier.
Software Engineer, Bang the Table (July 2010 – October 2010)
- Bang the Table provides moderated forums for community engagement. My duties so far have been implementing automated testing and improving the reporting functionality.
Software Engineer, Kinesis (December 2009 – June 2010)
- Maintained and extended existing online carbon accounting tool - CCap. This tool allows organisations to account for their carbon emissions at a very fine grained level taking into account all aspects of their carbon foot print -- fleet fuel, electricity, gas, refrigerants. It is fully compliant with the Australian government's NGERS legislation.
- Developed and deployed a carbon emissions modelling tool called CCap City. CCap City allows councils to account for the carbon footprint of an entire Local Government Area (LGA) and models the effects of policy changes. Policies include improvements in public transport, lighting and appliance efficiency, vehicle efficiency standards, the installation of co-generation (aka. combined heat and power (CHP), tri-generation), purchase of green power, solar hot water systems, solar photovoltaics to name just a few. The tool incorporates a sophisticated modelling engine, GIS capabilities, and an intuitive interface.
Software Engineer, System Administrator: Munch Crunch Organics (Nov 2008 to Dec 2009)
- Developed an online store, munchcrunchorganics.com.au, for an Organic Home Delivery business. It was built from scratch after deciding Drupal didn't fit the specific and evolving requirements of a new business venture. Integrated with Paypal, it also includes extensive administrative capabilities to add/remove/change price of products, track and provide statistical data about customers. Also integrated with an SMS gateway and Twitter.
- Technologies: Ruby on Rails, PostgreSQL, nginx, Phusion Passenger, Linux
- Also planted, irrigated, weeded and picked organic produce and assisted in the management of an organic farm.
- I now maintain the website from Sydney.
Research Engineer: RedLizard Software/NICTA (Nov 2006 – Jul 2008. Jul 2009 – Dec 2009)
- Lead developer from Nov 2006 to July 2008.
- Developing a static analysis tool, Goanna, that finds memory leaks, null pointer dereferences, bad coding practises, etc, in C/C++ programs.
- Took over the administration and development of redlizards.com website from contractor.
- Goanna is written in OCaml (a strict, strongly-typed functional programming language). The website is a combination of Joomla, phpBB and WordPress containing a significant amount of custom code. Goanna, being a developer tool, needs to run on a variety of systems: Linux, Mac OS X, Cygwin/Windows, MinGW/Windows. Also worked on a plug-in, written in Java, for the Eclipse IDE.
- Set up the issue tracker, FogBugz, and the Subversion revision control system.
Software Engineer and Systems Administrator: Dawson Media (Aug 2006 – Mar 2007. July 2008 – present)
- I developed and maintain an in-house, internal customer relationship manager (CRM) for tracking Dawson Media (aka Sydney Pink Pages) customers, their products and contact history.
- I took over development of and maintain, DirectClicks, a web application that provides customers with data about their managed Google Adwords spending, calls to their allocated 1300 numbers and email they have received.
- Ruby on Rails, PostgreSQL, Apache, mongrel_rails, Linux
Software Engineer: MacromatiX (Mar 2006 – Nov 2006)
- Developed a web-based application, the MacromatiX Retail Operating System for managing franchise sales and inventory. Used by KFC, Nandos, Jamaica Blue, Red Rooster, Oporto among others.
- ASP.NET, VB.NET, Windows XP, SQL Server
Tutor: University of New Wouth Wales (early 2003 – late 2005)
Assisted in the teaching of the Haskell programming language to first year students. This involved, at various stages, marking, design of assignments, monitoring and answering of email, and teaching. This was my job while I was a PhD candidate.
Tutor: University of Queensland (early 1999 - late 2001)
Tutored various subjects in Mathematics and Computer Science while I was an undergraduate.
Research Assistant: University of Queensland (Summer of 2000/2001)
- Assisted Dr George Havas in investigating the pathological algorithmic behaviour of transforming matrices over fields to Hermite Normal Form.
- Mercury, Linux
Research Assistant: University of Queensland (Summer of 1999/2000)
- Assisted Dr Keith Matthews with the development of the CALC Number Theory program
- C, Linux
How I got into functional programming
Open Source Projects/Recreational coding
Aleph You — my submission to the 2012 "Love" themed JS1K competition. Rule is: create something cool in the HTML canvas in less than 1024 bytes.
A much faster (and better looking) version of this can be found here but this one requires WebGL to be enabled in your browser. Relies on the power of higher order functions and also has a mini-code generator in it. Written in JavaScript, prototyped in Haskell.
- Animated factor diagrams. All numbers have a unique prime factorisation and this little program animates that. The dots group themselves together in little groups of primes. e.g. 30 is represented as 5 groups of 3 groups of 2. Further explanation can be found at Brent Yorgey's site. This is another example of a program that relies on the power of higher-order functions. Again, prototyped in Haskell, written in JavaScript.
- PlaySpace Online — A web application that allows you to write interactive 3D effects in Conal Elliott's Shady language. Web server, compiler and GLSL compiler writte completely in Haskell, with a small amount of JavaScript on the client side.
- A re-implementation of the Pan Embedded Domain Specific Language -- a language for the composition of interactive images and animations.
- Contributed to a branch of the GHC compiler that allowed one to extend the optimisations of the compiler using plug-ins.
- CALC, a number theory calculator.
Talks/Presentations/Essays
- Slides I did for a talk entitled "Generic Matrix Multiplication".
Selected Papers
- Ansgar Fehnker, Joerg Brauer, Ralf Huuck, Sean Seefried
Goanna: Syntactic Software Model Checking
6th International Symposium on Automated Technology for Verification and Analysis (ATVA), October 20-23, 2008 Seoul, Korea. - Ansgar Fehnker, Ralf Huuck and Sean Seefried
Counterexample Guided Path Reduction for Static Program Analysis
In the Festschrift of Correctness, Concurrency, and Compositionality for Willem-Paul de Roever, Kiel, Germany 2008. -
Sean Seefried and Manuel M. T. Chakravarty
Solving the expression problem in Haskell with true separate compilation
UNSW Tech Report, UNSW-CSE-TR-0715, June 2007 - Sean Seefried
Language extension via dynamically extensible compilers
PhD thesis, University of New South Wales, Sydney, Australia, 2006. - André Pang, Don Stewart, Sean Seefried, Manuel M. T. Chakravarty,
Plugging Haskell In.
Haskell Workshop 2004. - Sean Seefried, Manuel M. T. Chakravarty and Gabriele Keller
Optimising Embedded DSLs using Template Haskell
Generative Programming and Component Engineering, 2004
Hobbies, Interests
- Cycling, running, surfing
- I read voraciously on many topics of sustainability: energy security, sustainable agriculture, system dynamics, ecological economics to name a few.
- Music, Literature, Theatre, Film