Maryia Maskaliova


Graduate Student | Stony Brook University
File systems and Storage Lab (FSL)

Email: Click Here

About Me

I am a graduate student at the Computer Science Department of Stony Brook University, pursuing a Master’s degree in Computer Science. I was accepted into the joint BS/MS program in Fall 2016 and I will be continuing the Master's portion starting Summer 2017. I joined FSL in May 2017. I am involved in a research project in the domain of Storage Systems under the guidance of Prof. Erez Zadok. My interests lie primarily in Operating Systems, and a little bit in security.


  • Master of Science in Computer Science @Stony Brook University
    MAY 2017- MAY 2018

    Coursework: Theory of Database Systems (geo-spatial databases, Hadoop MapReduce), Logic, Theory of Computation, Network Programming (C), Compiler Design (C++), Algorithms, Operating Systems (C), System Security.

  • Bachelor of Science in Computer Science @Stony Brook University
    AUG 2014- MAY 2017

    Coursework: Operating Systems (Java), Systems-Level Programming (MIPS, C), Algorithms, Web Programming, Computer Networks, Security Fundamentals, Software Engineering (Java).

Key Skills

  • Over 4 years’ experience programming in C and UNIX systems. Experience with concepts such as process control, inter-process communication, synchronization, signaling, multithreading, socket programming. Basic knowledge of C++, shell scripting, and GNU autotools.
  • Basic knowledge of systems security concepts, such as memory corruptions. Some knowledge of web security.
  • Over 4 years’ experience programming in Java.
  • Experience with web technologies like HTML, CSS, Java Server Pages, servlets, Spring MVC framework.

Projects (that I feel are worth mentioning)

This is just a small subset of programming projects that I have worked on as an undergrad and grad student. There are actually many more, and I am looking forward to adding a few more to the list in the near future.

  • Design and development of the Electronic Portfolio Generator, a JavaFX application that allows the user to edit his/her personal webpage(s), then generates the necessary HTML/CSS files to be uploaded to a server.

  • A simple dynamic memory allocation library that uses an explicit free list of free blocks, and performs immediate block coalescing upon freeing. Functions implemented: malloc(), realloc() and free().

  • A simple shell that supports execution of binaries, built-in functions, file re-direction and multi-process piping.

  • A UDP file transfer server + client, but with added reliability such as connection ports, packet sequence numbers, acknowledgements, retransmissions in case of packet loss and exponential backoff.

  • An OpenMP "allocate" directive for the LLVM/Clang compiler. The syntax of the directive is as follows:

    #pragma omp allocate(a);

    where "a" is a pointer defined in the program. The statement generates the same intermediate representation as "a = (int *)malloc(100 * sizeof(int))".

  • A custom LLVM IR pass that optimizes memory allocation. In each function, it identifies dynamically-allocated pointers and calculates their load/store frequency. It then leverages that information to optimize memory allocations for a system with the following types of memory: fast memory (malloc_fast() is used), normal memory (malloc() is used) or non-volatile memory (malloc_nvm() is used to allocate the pointer).

  • Helped to identify bottlenecks in and improve performance of the strace2ds library, an experimental extension to strace that converts traces to DataSeries format.

  • Several different exploits for an instructor-supplied vulnerable program. These include: stack-smashing, return-to-libc, heap overflow, format-string and a data-only overwrite. These will work on a 32-bit machine, even if ASLR is enabled.

Teaching Assistant

Page last updated: 2/15/18