*++**+=+*%#%# Elliot Bobrow +*@+**+*%%%###%@#. --------------------- ++-*#%%%#%@@@@@@@@@@% City: Los Angeles, CA *=*%*#@%%%#%%%%##%@@@%% School: Harvey Mudd +#*@*+*==-:---:---=+#%%#% Email: [email protected] *@% : ....::---+%@%@# GitHub: ebobrow #+-: ...::----+#%% LinkedIn: link @@#. ..::--=-=+%#% Projects: [CLICK HERE] *=. . ..:#%%#*=--#%- Experience: [CLICK HERE] =+ =+*-::.::=+=--=++=-#*- Resume: link . -. .::.. .=++==%##=---*== -= = %#- =+=---=.:=---= = ::. .-==--:.::---== : . .:=++=::::---: .-: :-==+=------- .-: . :++===+-.:=- .=. .-++=#=- -== :. :-===-==--:.=- .::-----=== .:----==== ..:-+===== *%@ .:-===-====@@%# +#%@ .:===--====@@@%# +*%@%: =---:-====@@@#%%#% =***++*%@@+ .::::--===@@@##%%% *##***#%@@@%* .:.:----@@%@@##%% ####**#@%@@%%##+ .. :::-@@@@%@@##%% ####*%@#@@%%%%%##%%%=--.:%%%%@@@%%@####% ##%*%#@%@%%%#%%%%%%%%%%%%%%%@@@%%%@%%#%%
My name is Elliot Bobrow.
Racket to x86_64 Compiler
My current project, a compiler from Racket to NASM-flavor x86_64 Assembly. Supports signed integer arithmetic, floating point arithmetic, linked lists, and local variables.
Parsec for Rust
This is a silly little project to see how Haskell's Parsec could be implemented for Rust. Parsec is a parsing library built on parser combinators, higher-order functions which can be combined to parse complicated expressions. I experimented both with explicitly passing functions to other functions, and with a macro that simulates Haskell's do-notation.
SQL Clone
My program stores tables of strings, numbers, and booleans. Clients connect to the server over TCP and submit queries in SQL to store data, retrieve data, and create tables. Queries are parsed into an Abstract Syntax Tree (AST) and then interpreted. Includes test suite and Continuous Integration on GitHub.
Beanstalk-rs
Beanstalk is a work queue written in C that runs over TCP. Clients can connect to the server to submit and reserve jobs. I wrote a clone of Beanstalk in Rust to teach myself async Rust. The server handles connections asynchronously and spins up asynchronous processes, for example to monitor reserved jobs and notify the main thread to warn a client if they are approaching their deadline to complete the job. Includes test suite and Continuous Integration on GitHub.
What's Appening (frontend, backend)
Chat app with instant messaging and friend requests. TypeScript React frontend and TypeScript Node.js backend with PostgreSQL database. Uses Socket.IO for chat.
...and much more!
Research
I participated in REPL, an REU at UPenn focused on Programming Languages. I spent 10 weeks with 8 other students learning about Coq and PLs, participating in seminars and sitting in on research talks to learn about potential career paths and research topics. We also took turns leading a weekly reading group focused on important papers in the field. My research was with Professor Stephanie Weirich and PhD student Yiyun Liu, focused on formalizing the semantics of the σ-calculus in Coq to learn about the behavior of the library Autosubst 2.
I did research with a graduate student through USC SHINE. We focused on algorithms to cluster data about cells. My poster is linked here.
Internships
I've done internships at SmartSoft and Bluestone Health, mostly focused on competitive analysis and graphic design.
Coding
I worked with a student at my high school on Schoop, an app to help students manage their class schedules. I added an integration with Google Calendar to display additional events such as meetings.
I contribute to open source projects such as Rust Clippy, the official linting tool for Rust.