Oregon State University, Corvallis, OR
Bachelor of Science, Computer Science,
Expected June 2020
4.0 GPA
Education
Technical Skills
Languages: C, C++, Java, Kotlin, JavaScript, Haskell, Python, Haxe
Operating Systems: MacOS, Linux
Additional Skills: Experience with compiler design, algorithm efficiency, low-level development.
Operating Systems: MacOS, Linux
Additional Skills: Experience with compiler design, algorithm efficiency, low-level development.
Projects
danilafe.com
Blog containing a series on compiler development
- Teaches compiler development from the bottom up using common technologies such as Flex, Bison and LLVM.
- Provides complete implementation of the compiler at each stage of the process, encouraging experimentation and understanding.
- Contains 25,000+ words in 9+ posts, each with an associated compiler version.
pegasus
LALR parser generator for the C and Crystal languages.
- Provides a set of programs for creating LALR(1) parsers.
- Supports the C and Crystal languages, exposing an API for the implementation of parsers for other languages.
- Generates parsers with diverse functionalities, from building parse trees to using semantic actions.
- Defines a generic syntax for semantic actions to maximize code reuse.
chalk
Compiler from a small language into CHIP-8 bytecode.
- Employs a Crystal implementation of parser combinators to parse language.
- Compiles code to intermediate assembly language, then to CHIP-8 bytecode.
- Supports in-text representation of sprites for easy editing.
abcs
Calculator program with a complete embedded programming language.
- Interfaces with GNU MPFR to perform arbitrary precision aritmetic.
- Provides complete language supporting parametric polymorphism, partial function application and higher order functions.
- Uses hand-written parser to allow for the definition of arbitrary operators at runtime.
scylla
Elm-based purely functional front end for the Matrix chat protocol.
- Defines a purely functioal reactive web interface using the Model-Update-View architecture.
- Employs lazy evaluation to optimize common operations.
- Implements part of the Matrix standard for open source, decentralized communication.
Technical Experience
Research Assistant
Oregon State University | Spring 2018 - Present
- Devised and implemented language to explain behavior of spreadsheets to new users.
- Developed tooling in Haskell to verify, generate, and debug the explanation language.
- Contributed to research paper published to the International Conference on Generative Programming.
Lead Programmer
Northwest Advanced Programming Workshop | Summer 2017
- Designed and implemented a desktop calculator application with a focus on usability and feature-completeness.
- Worked on a variety of components, including parsing input through a custom regular expression engine, evaluating expressions through Taylor Series, and UI design
- Profiled and debugged application in order to find inefficiencies, reducing computation time by 60%.
- Led a small team using the git version control system.
- Exercised public speaking and communication skills by reporting progress to supervisor and presenting to other teams.
Participant
Oregon Game Project Challenge | Spring 2016 and 2017
- Worked in a team to complete video game to be presented at main event.
- Created a game engine from scratch using Entity Component Systems architecture.
- Used OpenGL shaders and normal mapping to create 2D-shadow system.
- Developed interaction between physical components (microcontrollers) and the video game for multi-user cooperation.
Finalist
Google Code In, Online Competition | Winter 2016
- Worked with large open-source project written in C.
- Interacted with other developers to set goals, merge changes, and run tests.
- Improved quality of source code, reduced code repetition, and fixed bugs.
Publications
Co-Author: Jácome Cunha, Mihai Dan, Martin Erwig, Danila Fedorin, Alex Grejuc: Explaining spreadsheets with spreadsheets (short paper). GPCE 2018: 161-167