Mark Cohen

I'm a generalist software engineer with particular expertise in web development and language standards.


I firmly believe that it is impossible for technology to be neutral or apolitical; the conditions of society and of the workplace are written into the systems we build and the ways we interact. As an engineer, it is my responsibility to ensure that the systems I build cannot be weaponized to do harm. Similarly, it is incumbent on me to actively uplift those whom the status quo marginalizes and oppresses, be they coworkers or users. These principles are inviolable and take absolute precedence in all cases.


I approach every endeavor with compassion and trust. Understanding and focusing on these emotional states allows me to be a better teammate and deliver better work.

I am a natural collaborator. I excel in pair and group environments, and I work to improve the spaces I occupy for other participants. This pays dividends not just in engineering contexts, but also in contexts of advocacy and allyship.

I have cultivated a healthy formal rigor that allows me to efficiently analyze and correctly model complex systems. While very powerful, this perspective must be tempered with pragmatism, and I constantly strive to strike that balance.


Ecma TC39

October 2019 - Present

I currently serve as a co-champion for the pattern matching proposal, designing the proposal's syntax, semantics, and formal specification. I helped found and currently facilitate the inclusion group, which works to create a more inclusive committee environment.


April 2021 - Present

I currently serve as a community leader for Self-Defined, where I help with community moderation and organization. I'm also driving the project's architecture forward, so that it can evolve beyond a static website into a more interactive source.


I've landed small patches in WebKit and jsparagus. Both of these were part of an ongoing effort to learn about the current state of the various JavaScript engines in the world.



January 2021 - September 2021

I worked on the Desktop Foundations team, in the layer between Electron and the web. I overhauled our handling of user preferences in the name of robustness and security, and built out new features to handle external configuration. I addressed cross-cutting security concerns from the desktop app, and resolved long-standing inconsistencies and technical debt.

Braintree / PayPal

June - August 2018 (Intern), August 2019 - December 2020 (Full-time)

At Braintree, I designed and built a React component library and accompanying Redux flow for internationalizing the new merchant control panel. In parallel, I spearheaded the creation of a cross-organization pipeline for converting English design copy into a set of localized string bundles.

I implemented a continuous delivery process for the new merchant control panel, as well as the other invisible applications owned by the team.

I built a type-safe data model for the new frontend disputes view, and in the process uncovered deeper inconsistencies in adjacent models.

I led an effort to scrub our documentation of racist whitelist / blacklist terminology.

At PayPal, I worked on a React component library to improve the ease of integrating with PayPal's smart payment buttons in React apps. I also worked on adding Apple Pay to the PayPal JavaScript SDK.

University of Chicago - Bachelor's Thesis

January - June 2019

I built a type-sound, purely functional programming language capable of imperative-style iteration, through the use of type classes and associated types. The work culminated in a formal analysis of the language and a proof-of-concept interpreter, and was presented to an audience of Department of Computer Science students and professors. I also discovered and rectified an incompleteness in the type inference algorithm in Wadler & Blott's seminal presentation of type classes.

Advisor: Adam Shaw

University of Chicago - Teaching Assistant

January 2018 - June 2019

I served as a teaching assistant under Borja Sotomayor for the inaugural offerings of Introduction to Software Engineering, where I acted as a tech lead to teams of students as they developed a major piece of software. In 2018, teams developed a library for prefix trees in Redis, and an accompanying suite of applications. In 2019, teams developed interlocking components of a text adventure game engine.

I also staffed two quarters of Networks and one quarter of Computer Science with Applications, where I held office hours for students, supervised undergraduate graders, and helped overhaul course projects.


June - September 2017 (Intern)

I wrote a standard implementation of the SaltPack 1.0 message encryption format and associated libraries for stream encoding and stream chunking.


I graduated from the University of Chicago in June 2019 with a BSc in Computer Science. Below is a selection of particularly important courses that I took during my time there.