alt text 

Sonam Mandal, Ph.D (somandal [at] cs [dot] stonybrook [dot] edu)

Department of Computer Science

Stony Brook University

Advisor: Professor Erez Zadok

About Me

I am currently a Graduate student in the Department of Computer Science at Stony Brook University. I am a Research Assistant in the File Systems and Storage Lab (FSL) led by Prof. Erez Zadok. My research interests are broadly related to File Systems, Storage, and Systems.

I completed my Masters in Computer Science in May 2014 here at Stony Brook University under the guidance of Prof. Erez Zadok.

I have a number of hobbies apart from Programming and Computer Science. Photography takes up a lot of my free time (and cash for that matter of fact). You can find my work at 500px and Flickr. I also enjoy reading, writing poetry, traveling, and listening to a large variety of music (someday I intend to learn how to play the guitar or piano).


  • Ph.D., Computer Science, Stony Brook University, August 2014 to current

  • M.S., Computer Science, Stony Brook University, August 2012 to May 2014

  • B.Tech, Computer Science and Engineering, Motilal Nehru National Institute of Technology (MNNIT, India), July 2005 to May 2009

Professional Experience

  • Engineering Intern (DS - CASL), Nimble Storage, May 2014 - August 2014

  • Software Engineer, Motorola Mobility, Hyderabad, India, March 2010 - July 2012

  • Software Engineer, Azingo Soft, Hyderabad, India, July 2009 - March 2010


Projects at FSL

Graduate Coursework

  • Fall 2014

    • CSE 540 Theory of Computation by Prof. Jing Chen

    • Independent Study with Prof. Erez Zadok

  • Spring 2014

    • CSE 502 Computer Architecture by Prof. Mike Ferdman

    • CSE 504 Compiler Design by Prof. R. Sekar

    • CSE 524 Advanced Project II with Prof. Erez Zadok

  • Fall 2013

    • CSE 609 Advanced Computer Security by Prof. Long Lu

    • CSE 624 Advanced Operating Systems by Prof. Donald Porter

    • CSE 523 Advanced Project I with Prof. Erez Zadok

  • Spring 2013

    • CSE 506 Operating Systems by Prof. Erez Zadok

    • CSE 508 Network Security by Prof. Rob Johnson

    • CSE 555 Computational Geometry by Prof. Joseph Mitchell

    • Independent Study with Prof. Hussain Badr

  • Fall 2012

    • CSE 533 Network Programming by Prof. Hussain Badr

    • CSE 548 Analysis of Algorithms by Prof. Rob Johnson

    • CSE 549 Computational Biology by Prof. Steven Skiena

    • CSE 628 Natural Language Processing by Prof. Yejin Choi

Academic Projects

  • Spring 2014

    • Babelfish: Restricted x86-64 Processor Simulator - Implemented an x86-64 simulator in SystemVerilog and C++ which simulates an in-order 7-stage pipeline processor with a 2-way set-associative cache. Language: SystemVerilog, C++

    • E– Compiler - Built a lexical analyzer for the E– Language using Flex. Built a parser for E– using Bison. Using Bison we created abstract syntax trees, and performed type checking, memory allocation, code generation, and various optimizations. Language: C++

  • Fall 2013

    • Study on Semantically Aware File Routing for Distributed Deduplication Systems - Did intensive data set analysis using traces collected in FSL to find the potential for deduplication based on semantic information like file extensions. Built a prototype file distribution layer which exploits semantic information to route files to multiple deduplication storage nodes. Language: C, Perl

  • Spring 2013

    • Operating Systems Course Projects (Linux Kernel 3.2.2) - Language: C (Kernel Programming)

      • Encryption File System: Implemented address space operations to allow storage of encrypted data, while allowing authorized users to see decrypted data when accessing the encryption file system.

      • Integrity Checking File System: Computed the md5 checksum of each file stored with integrity support turned on. Implemented extended attribute (xattr) support for wrapfs to check the integrity status of files.

      • Integrity Checking System Call: Implemented an integrity checking system call to set, get, and check the integrity of files. Users can open the file with integrity checking enabled to detect security breaches and unauthorized changes to the file. Integrity is checked by calculating the MD5 checksum of the entire file.

    • Content Security Policy Script Nonce Apache Module Implementation - Implemented the Content Security Policy Script Nonce feature in the form of an Apache Module to help reduce cross site scripting attacks over the web. This Apache module inserts a random nonce within all the script tags having a sever administrator specified default nonce value, thus helping prevent persistent and non-persistent cross site scripting attacks. Tested with Chrome Browser version 28. Language: C (Apache module)

    • Art Gallery Problem: Finding Guards and Witnesses for a Discrete Set of Points in a Polygon - Developed a Java Applet to find a small number of guard points and large number of witness points for a discrete set of points within a given polygon. Takes the polygon as user input, and generates random points within the polygon. Uses greedy heuristics to come up with a small number of guard points or large number of witness points. Language: Java

  • Fall 2012

    • Networking Programming Course Projects - Language: C (Socket Programming)

      • On-Demand Shortest Hop Routing Protocol - Implemented an on-demand shortest hop routing protocol for wired networks based on a simplified version of AODV routing protocol. This system was implemented using PF_PACKET sockets to facilitate direct communication with the linked layer.

      • Reliable UDP File Transfer Application - Implemented a reliable UDP file transfer application in C language. Applied flow control (sliding window), reliability (timeout mechanism, fast retransmit), and simple congestion control (slow start, congestion avoidance, and fast recovery) based on TCP mechanisms. On the client side implemented producer-consumer multithreading and an ordered message receiving mechanism.

      • Address Resolution Protocol (ARP) and Source Routing - Implemented ARP functionality and verified it using ping application in a cluster of virtual machines.

    • Bioinformatic Analysis of Coevolution between tmRNA, SmpB, and Additional Factors - A system for finding the coevolution between two sets of sequences was developed using mutual information calculation method. Regions of high coevolution were determined between tmRNA and a protein it interacts with, SmpB, in bacteria. Such regions give clues to which parts of the residues interact with each other thus giving us possible regions of high evolutionary importance. Language: Java


  • sonam.dp42 [at] gmail [dot] com

  • sonam.mandal [at] stonybrook [dot] edu

  • somandal [at] cs [dot] stonybrook [dot] edu