avatar

Monorepoly

Go to update all your repositories. Do not pass GO, do not collect $200.

Writing your own Git Scripts

Git is designed as a system of numerous independent commands that all start with git. Some well-known examples are git commit, git rebase, git merge etc. Have you ever wondered how you can extend the git suite with your own?

Software Stability Levels

A categorization of the stability of software in open source projects.

Hello World

This site has been moved to Hugo.

Speakeasy

In B.C. (before Corona) we presented a domain-specific language and a compiler for secure multi-party computation (MPC). The compiler targets a state-of-the-art backend that specializes in low-level numerical computations. While the DSL helped to focus on the critical MPC domain, for a practical system we needed a way to easily connect with the outside world. This would enable us to compose multiple MPC programs as well as intertwine them with business logic.

Zero to Three

At Inpher, we have built a domain specific language (DSL) for modelling privacy preserving computations. This DSL is targeted at cryptographers who are not necessarily familiar with Scala at all, yet it is written entirely in Scala 3! In this talk, I will present some of Scala 3’s new features that were used to make the DSL powerful while keeping it very user friendly. I will share some experiences we’ve had as early adopters of Dotty, as well as some lessons learned while introducing the DSL to complete newcomers of the language.

Compiling to Preserve Our Privacy

Move over data analytics, secure machine learning is here. As privacy becomes an increasingly important concern, so does the need to analyze data securely. Secure multi-party computation (MPC) is a promising solution that helps different entities collaborate in training ML models, while also keeping their data private. For applications to truly scale, we need to implement models in a high-level language, abstracting away the low-level MPC details: we need a compiler!

Channeling the Inner Complexity

An essential requirement for writing programs that scale is to have constructs to model concurrency in an understandable, safe, and efficient manner. This talk presents an overview of various such models available in Scala, and their impact on program structure and complexity. It then explores a way to model concurrency with less complexity with an implementation of Communicating Sequential Processes (CSP), heavily inspired by goroutines, scala-async and Clojure’s core.async.

Project Condor

Building a DIY quadrotor. This talk gives an overview of all steps necessary in building a drone from the ground up, with off-the-shelf parts from the hardware store and hobby electronics. It describes the evolution of Project Condor, presents its software architecture from base station to on-board flight stack, and summarizes engineering tradeoffs.

Project Condor

Suite of projects related to engineering and navigating a quadrotor. project website