Danila Fedorin
5636 SW Avena Pl, Corvallis, OR, 97333
(503) 702 0929
danila.fedorin@gmail.com

Education

Oregon State University, Corvallis, OR
Bachelor of Science, Computer Science,
Expected June 2020
4.0 GPA

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.

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.
  • Presented progress to supervisor and other participating 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