From d0080f26c2a2fb9e539b4ef66b63d8fb0b48865d Mon Sep 17 00:00:00 2001 From: Benjamin Bray Date: Wed, 14 Aug 2024 17:32:12 +0900 Subject: [PATCH] resume update --- src/components/link/PostLink.astro | 3 +++ src/components/structure/Header.astro | 2 +- src/content/pages/resume.mdx | 27 +++++++++++++++++++++++++++ src/styles/global.css | 4 ---- src/styles/theme.css | 8 ++++---- src/util/query.ts | 4 ++-- 6 files changed, 37 insertions(+), 11 deletions(-) create mode 100644 src/components/link/PostLink.astro diff --git a/src/components/link/PostLink.astro b/src/components/link/PostLink.astro new file mode 100644 index 0000000..890703d --- /dev/null +++ b/src/components/link/PostLink.astro @@ -0,0 +1,3 @@ +--- + +--- \ No newline at end of file diff --git a/src/components/structure/Header.astro b/src/components/structure/Header.astro index 78d8639..17d897b 100644 --- a/src/components/structure/Header.astro +++ b/src/components/structure/Header.astro @@ -13,7 +13,7 @@ import HeaderLink from './HeaderLink.astro';
  • GitHub
  • -
  • Resume
  • +
  • Resume
  • diff --git a/src/content/pages/resume.mdx b/src/content/pages/resume.mdx index 6c5eeef..540819b 100644 --- a/src/content/pages/resume.mdx +++ b/src/content/pages/resume.mdx @@ -1,5 +1,6 @@ import PostPreview from "@components/content/PostPreview.astro"; import ResumeHeader from "@components/resume/ResumeHeader.astro"; +import { getPostUrlBySlug } from "@root/util/query"; @@ -48,6 +49,7 @@ I believe *"good enough"* is the enemy of *good*. I believe that languages like **TypeScript**, **Rust** and **Haskell** help me get it right the _first time_, saving many headaches and much debugging in the future. +* Recently, there's a lot of talk about "fine-tuning" in the context of large language models, but I believe the term also applies naturally to open-source software. ## Education @@ -66,6 +68,7 @@ I believe that languages like **TypeScript**, **Rust** and **Haskell** help me g The skills below are listed in no particular order. Use the links to jump between sections! +* [Product Development](#product-development) * [Frontend Engineering](#frontend-engineering) * [Backend Engineering](#backend-engineering) * [Functional Programming, Compilers, and Formal Methods](#functional-programming-compilers-and-formal-methods) @@ -74,6 +77,29 @@ The skills below are listed in no particular order. Use the links to jump betwe * [Teaching](#teaching) * [Open Source](#open-source) +## Product Development + +As a **Research & Development Engineer** for [Hasuo Lab](https://group-mmm.org/~ichiro/) at the National Institute of Informatics, + +* I worked closely with researchers to help translate their academic work into proof-of-concept software tools aimed at improving **formal verification** workflows in the automotive industry. +* For each project, I considered carefully how best to leverage my team’s core competencies to solve problems brought to us by collaborators from Japanese automotive companies. +* I contributed to the successful delivery of four prototypes: + * (*ongoing*) A **model checker** for a simple imperative probabilistic programming language. + * A domain-specific language called `tempo-lang` which compiles to **signal temporal logic** expressions, along with a **language server** and web app for creating, documenting, and exemplifying specifications. (see [[Reimann 2024]](https://doi.org/10.48550/arXiv.2403.18764)) + * A web app for demonstrating the behavior of RSS safety conditions (see [[Hasuo 2022]](https://arxiv.org/abs/2207.02387)) + * (*joined midway*) A proof checker for Differential Floyd-Hoare Logic (see [[Hasuo 2022]](https://arxiv.org/abs/2207.02387)) +* I presented our work at the [IAA Mobility 2023](https://www.iaa-mobility.com/en/visitors/the-iaa-mobility-2023) trade show in Munich, DE. + +Many of my [open-source](#open-source) project are aimed at designing better software for students and researchers, whose needs are often underserved by commercial software: + +* I created [Noteworthy](https://github.com/benrbray/noteworthy) to experiment with new ways to support WYSIWYG editing of documents making extensive use of math, diagrams, links, and academic citations. +* I created [`prosemirror-math`](https://github.com/benrbray/prosemirror-math) in order to encourage more widespread adoption of user-friendly LaTeX math input on the web. With ~1.8k weekly downloads and [adoption](https://forums.zotero.org/discussion/99411/available-for-beta-testing-math-support-in-notes) by the [Zotero](https://www.zotero.org/) reference manager, I like to think that I've already had an impact! +* For the **DHGP Project**, I worked closely with humanities researchers to design software allowing them to integrate natural language processing tools into their academic workflow. + +I find it immensely satisfying to work on bespoke solutions tailored to meet the needs of a niche audience who will benefit directly from my improvements. A good user experience is at the forefront of all the work that I do. + + {/* and I've honed all the skills listed on this page in service of that goal. */} + ## Frontend Engineering I have 7 years of experience writing **TypeScript**, both professionally and for open source projects. @@ -165,6 +191,7 @@ As a teenager I worked as an independent **game developer**, publishing Flash ga In my role as a **Computer Vision Engineer** at [EmbodyMe](https://embodyme.com/), +* I improved the quality and performance of our **mouth inpainting** model by * I trained deep learning models to transfer facial expressions from one video to another. I also contributed to graphics the post-processing pipeline; for example, by applying spherical harmonics lighting to the meshes output by our model. * I maintained our Python/PyTorch codebase (which includes training and visualization code for face-reenactment and inpainting models). * I led a biweekly deep learning & graphics reading group to follow recent developments (GANs / attention / transformers / distillation / NeRF) and distribute knowledge among the team. diff --git a/src/styles/global.css b/src/styles/global.css index 9f4ab33..4204b77 100644 --- a/src/styles/global.css +++ b/src/styles/global.css @@ -69,8 +69,6 @@ h1,h2,h3,h4,h5 { article code { background-color: #eee; border-radius: 0.2em; - /* border: 1px solid #c0c0c0; */ - /* padding: 0 0.1em; */ padding: 0.1em 0.2em; font-size: 0.9em; } @@ -164,8 +162,6 @@ article { } article blockquote { - /* padding: var(--gap-1); */ - /* margin: 0 auto; */ border-left: 0.2em solid rgb(169, 215, 89); margin-left: 0em; margin-right: 2em; diff --git a/src/styles/theme.css b/src/styles/theme.css index 05ba59e..f912102 100644 --- a/src/styles/theme.css +++ b/src/styles/theme.css @@ -54,10 +54,10 @@ --line-height: 1.4em; /* gaps */ - --gap-0: 0.5rem; - --gap-1: 1.0rem; - --gap-2: 1.5rem; - --gap-3: 2.0rem; + --gap-0: 0.4rem; + --gap-1: 0.8rem; + --gap-2: 1.4rem; + --gap-3: 1.8rem; /* colors */ --color-text: #000; diff --git a/src/util/query.ts b/src/util/query.ts index 98c83f7..4a4458e 100644 --- a/src/util/query.ts +++ b/src/util/query.ts @@ -23,7 +23,7 @@ export const shortenProjectSlug = (slug: string) => { * Computes the URL for a given post, so that the `content/` * folder can be freely reorganized without breaking URLs. */ -export const getPostUrl = (post: CollectionEntry<"blog">) => { +export const getPostUrl = (post: CollectionEntry<"blog">): string => { // some posts explicitly provide a URL, for // example when linking to a static PDF file if(post.data.url) { @@ -37,7 +37,7 @@ export const getPostUrl = (post: CollectionEntry<"blog">) => { } } -export const getPostUrlBySlug = async (postSlug: CollectionEntry<"blog">["slug"]) => { +export const getPostUrlBySlug = async (postSlug: CollectionEntry<"blog">["slug"]): Promise => { const post = await getEntry({ collection: "blog", slug: postSlug }); return getPostUrl(post); }