Skip to content
View spotandjake's full-sized avatar
🦊
hacking away
🦊
hacking away

Highlights

  • Pro

Organizations

@grain-lang @repldex @Trent-Computer-Science-Club-Association

Block or report spotandjake

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
Spotandjake/README.md

About Me

Research Garden: https://spotandjake.github.io/quartz/

Hello, my name is Jake. I am currently a computer science undergraduate at Trent University. I have been interested in programming since I was around seven and grew up in the open-source community, working on a wide range of projects across different fields. I started my development journey with JavaScript and full-stack development. In 2019, I became fascinated by compilers and programming language design after discovering Grain. I am now a core team member of the Grain programming language, contributing to various parts of the language and its ecosystem. Outside of Grain, I spend much of my time researching compilers, with particular interests in functional programming, type systems, typechecking, and designing safe and expressive languages.

Compilers & Brisk

Outside of Grain, I have written several compilers, including a basic optimizing compiler for my third-year AMOD-4901 reading course. However, my favourite compiler project is my unfinished and ever-evolving programming language, Brisk.

I started working on Brisk before I discovered Grain, originally as a way to introduce myself to compiler design. The current version is my second major iteration and was the first time I built a complete multipass compiler from scratch. Heavily inspired by TypeScript, it compiles directly to WebAssembly. Aside from Chevrotain, which I use for parsing, the compiler and its supporting infrastructure are built from scratch.

As part of Brisk, I also wrote BriskLinker, a WebAssembly linker written entirely in Grain. It links WebAssembly modules through a defined ABI designed to make interoperability with other languages straightforward, giving me the opportunity to explore the lower-level details of WebAssembly modules and linking.

While active development on Brisk has slowed down, I have spent the last few years designing a third major iteration focused on simplicity, design unification, typechecking, and higher-level abstractions. Much of this work currently lives in the Brisk section of my knowledge garden.

Problem Solving

While I love working on compilers, I really enjoy solving problems wherever they appear. Working on Grain has given me experience across a surprisingly broad ecosystem, including OCaml, Reason, Rust, Swift, C, C++, JavaScript, TypeScript, Grain, and a variety of build systems and tooling. I've also spent a lot of time tracking down CI, build, and infrastructure problems, which has taught me to debug systems across multiple layers.

Outside of my main projects, I also enjoy building things simply because they're interesting, from dynamic webpages using only HTML and CSS to graphics experiments and other deliberately impractical projects.

Engineering

Another interesting part of my background is that I started out in engineering. I was introduced to the world of metrology at a young age and grew up working across a variety of industries in quality control. Over the years, I have gained hands-on experience with a wide range of manufacturing technologies, from 3D printing and laser cutting to operating CNC machines and coordinate measuring machines (CMMs).

Interests

  • 🔭 I currently spend most of my time working on Grain and designing the next iteration of Brisk.
  • 📫 How to reach me:
    • Discord: spotandjake
    • GitHub: Open an issue on my profile repository and I'll respond when I can.
  • ⚡ Fun fact: Despite my love of compilers, I actually really enjoy high-level programming.

Languages

Languages I Like To Use

Grain reasonMl ocaml TypeScript JavaScript wasm cSharp html css scss

Languages I Know

Grain TypeScript JavaScript reasonMl wasm Python cSharp html css scss C

Languages I Have Written

C++ goLang rust Swift

Stats

Stats

  Grain    Brisk
  Top Langs    If the Wakatime stats are not working check out my profile

Pinned Loading

  1. grain-lang/grain grain-lang/grain Public

    The Grain compiler toolchain and CLI. Home of the modern web staple. 🌾

    Reason 3.5k 125

  2. Brisk Brisk Public

    The Brisk Programming Language

    TypeScript 25

  3. amod-4901 amod-4901 Public

    An optimizing compiler targeting WebAsssembly, for the Trent's Amod-4901 reading course.

    C# 1

  4. Grain-Wasm Grain-Wasm Public

    A Wasm Parser And Builder For Grain

  5. Celestron Celestron Public

    Celestron, a tower defence game made for the replit 2022 game jam.

    TypeScript 1

  6. NeoFox NeoFox Public

    A Serverless React Based Chat Application Similar To Discord, Using Firebase.

    TypeScript 5 1