Sean Maher

About me

I care deeply about learning, computer science and mathematics, and music (and just about anything else that is interesting in this world). I enjoy solving hard problems, doing meaningful stuff, learning new thought frameworks, and building things from the ground up.

Currently, I'm working at Google as a software engineer, working on the Chrome "Catan" team, where we do performance, battery, and memory optimization work throughout the entire Chrome codebase. We operate in a metric-guided, evidence-based, realistic, and holistic way. To get an idea of the work we do, here is a talk done by one of my close coworkers.

In 2022, I graduated from the University of Ottawa, where I completed a Joint Honours BSc in Computer Science and Mathematics, Magna Cum Laude.

In summer 2021, I worked as a SWE intern at Google on the Travel team, but more specifically, working on SBCL, a leading Common Lisp compiler. During my time there, I wrote sb-graph, a plugin to graph SBCL ir1. I also worked to improve SBCL's support for block compilation, fixing a few bugs and integrating it into Google's build system, Blaze.

In summer 2020, I worked as a SWE intern at Google, on the WebAssembly standards team. I spent most of my time contributing to SIMDe, which I integrated into emscripten to allow for ARM NEON emulation in WebAssembly. I also wrote a disassembler for radare2 which allows disassembly of Wasm SIMD instructions.

In summer 2019, I worked with the Bank of Canada in cyber security monitoring, where I helped engineer detections for various cyber attacks. I also wrote a program in Python to parse spam email in real time.

Recently (January 2021), I and my team of four others from my university (the fourth being Cédric Brisebois, whom I couldn't find online) were global finalists of the Collegiate Penetrating Testing Competition, after winning the Canadian regional final. We didn't place, but it was very fun and taught me a fair bit.

From 2019-2022, I also ran the uOttawa CS Club, and so organized and ran nigh singlehandedly many events, including a metaprogramming workshop about the internals of Python, a book club in which we studied Joe Armstrong's book "Programming Erlang" and writing distributed systems (in spring 2021), a book club in which we're reading the Rust Book (in spring 2022), and a weekly in-person Code && Coffee, where like-minded programmers of all stripes came to chat.

I've been serious about programming since about 2012 or so. My current interests are compilers, operating systems, large distributed systems, and graphics. My favourite languages are C and Common Lisp.

In abstract CS, I care about semantics, proofs, logic, and compilers.

Aside from programming, I enjoy singing classically. I'm currently singing with the Choeur Du Plateau. Previously, I sang with the Capital Chamber Choir. You can listen to a song here. In 2019, I went to Italy, where my previous choir and I competed in the 3rd Laurenzo de Medici Choral Festival. Previously, I've sang in China, Italy, Germany, Vatican City, and a few other European countries. I've performed at a few notable locations, including St. Marc's Cathedral in Venice, Italy, St Peter's Basilica in Vatican City, and the National Arts Center, in Ottawa, Canada.

Email: seanptmaher (at) gmail.com

rapid-fire projects!

sml

It'd probably more accurate to call this programming language theory experimentation. I've written and rewritten a handful of toy parsers/compilers/interpreters of various languages of varying sophistication.

Recently, I've been working on a compiler for a lisp-like language with content-addressable code, a strong and dependent typesystem, and no GC.

Bloatcheck

Another collection of experimentation in web tech:

I wrote a distributed web-crawling system, written in Common Lisp.

I then wrote a structured data serialization format, and parser/serializer, an encrypted application-level communication protocol, built on top of TCP.

discfs

Content-addressable filesystem which uses Discord (the messaging platform) as its backend. Written in Common Lisp.

cl-leb128

Just a simple, fast leb128 implementation for common lisp.

sug

A text editor written from the ground up in C99. Bitmap font parsing, rendering, as well as handling of text written from scratch. The only library used was XCB, which was required to communicate with the X11 display server.

sback

Wrote a daemon in C99 and script in bash to allow for writing to my laptop's display backlight driver from userspace.

cl-nock

An interpreter for Urbit's "machine code," Nock, in Common Lisp. Implemented using reader macros to allow for embedding of the code in CL code.

discord bot

I wrote a discord bot for my university discord chat. It is mostly used for fun and games. None of the functionality is that advanced, but it does provide some useful moderation commands (muting messages matching regexes, fiddling with nicknames, google searches, and message archival).

spkr

A small web-app written in Python with flask which allows users to login with their Spotify account, and will curate a playlist to cater to each user which is logged in. Made for ConUHacks 2020.

sre

A regular expression engine written in C99, which works by compiling regular expressions to bytecode, and then interpreting said bytecode.

Google FooBar

FooBar is an invite-only online algorithm programming challenge. It consists of advanced algorithmic challenges, which I solved before having any formal education in computer science, forcing me to self-teach myself many concepts from graph theory, celluar automata, combinatorics, and a handful of others.

flow

Built for the uOttawa GitHub Local Hack day in December of 2018 with a team of two other programmers, this app and website allows a user to verify the number of people (busyness) in a location before making the trek there. The project won the hackathon.

mtfio

A library I wrote in c99 to bookkeep writing to files with multiple threads with mutexes. Uses handles to provide an easy to use hidden bookkeeping solution.

Malware Reverse Engineering

Awhile ago, I spent a lot of time playing with reverse engineering as a hobby, and learning to reverse engineer both Windows and Linux programs. I've also written basic reverse engineering challenges in C for a local student CTF.

Author: Sean Maher

Created: 2023-03-07 Tue 09:10