%-------------------------
% Resume in Latex
% Author : Sanchayan Maity
% License : MIT
%------------------------

\documentclass[letterpaper,11pt]{article}

\usepackage{latexsym}
\usepackage[empty]{fullpage}
\usepackage{titlesec}
\usepackage{marvosym}
\usepackage[usenames,dvipsnames]{color}
\usepackage{verbatim}
\usepackage{enumitem}
\usepackage[pdftex]{hyperref}
\usepackage{fancyhdr}
\usepackage{hyperref}


\pagestyle{fancy}
\fancyhf{} % clear all header and footer fields
\fancyfoot{}
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0pt}

% Adjust margins
\addtolength{\oddsidemargin}{-0.375in}
\addtolength{\evensidemargin}{-0.375in}
\addtolength{\textwidth}{1in}
\addtolength{\topmargin}{-.5in}
\addtolength{\textheight}{1.0in}

\urlstyle{same}

\raggedbottom
\raggedright
\setlength{\tabcolsep}{0in}

% Sections formatting
\titleformat{\section}{
  \vspace{-4pt}\scshape\raggedright\large
}{}{0em}{}[\color{black}\titlerule \vspace{-5pt}]

%-------------------------
% Custom commands
\newcommand{\resumeItem}[2]{
  \item\small{
    \textbf{#1}{: #2 \vspace{-2pt}}
  }
}

\newcommand{\resumeSubheading}[4]{
  \vspace{-1pt}\item
    \begin{tabular*}{0.97\textwidth}{l@{\extracolsep{\fill}}r}
      \textbf{#1} & #2 \\
      \textit{\small#3} & \textit{\small #4} \\
    \end{tabular*}\vspace{-5pt}
}

\newcommand{\resumeSubItem}[2]{\resumeItem{#1}{#2}\vspace{-4pt}}

\renewcommand{\labelitemii}{$\circ$}

\newcommand{\resumeSubHeadingListStart}{\begin{itemize}[leftmargin=*]}
\newcommand{\resumeSubHeadingListEnd}{\end{itemize}}
\newcommand{\resumeItemListStart}{\begin{itemize}}
\newcommand{\resumeItemListEnd}{\end{itemize}\vspace{-5pt}}

%-------------------------------------------
%%%%%%  CV STARTS HERE  %%%%%%%%%%%%%%%%%%%%%%%%%%%%


\begin{document}

%----------HEADING-----------------
\begin{tabular*}{\textwidth}{l@{\extracolsep{\fill}}r}
  \textbf{\Large Sanchayan Maity} & Email : \href{mailto:maitysanchayan@gmail.com}{maitysanchayan@gmail.com}\\
  \href{https://sanchayanmaity.gitlab.io}{https://sanchayanmaity.gitlab.io} & Mobile : +91-725-935-0149 \\
\end{tabular*}

\section{Summary}
Passionate about Linux and Open-source. Have made contributions to upstream Linux mainline kernel and u-boot. Primarily interested in Embedded Linux device driver \& application development with other interests in the domain of functional programming languages and distributed systems. Envision myself playing a challenging role by making a contribution to the growth and success of the organization through my technical and personal skills. Goal oriented and strong believer in team work and collaboration.

%
%--------PROGRAMMING SKILLS------------
\section{Skills}
\resumeSubHeadingListStart
\resumeSubItem{Advanced Knowledge}
{C, Linux Device Drivers, Linux System Programming}
\resumeSubItem{Intermediate Knowledge}
{OpenEmbedded/Yocto, buildroot, u-boot, FreeRTOS, gdb, git, Qt, gstreamer}
\resumeSubItem{Basic Knowledge}
{Haskell, Rust, Clojure, C++, Python, SQLite, mySQL, PostgreSQL, JIRA}
\resumeSubHeadingListEnd

%-----------EXPERIENCE-----------------
\section{Experience}
  \resumeSubHeadingListStart

    \resumeSubheading
      {Harman International}{Bangalore, IN}
      {Senior Software Engineer II. Responsible for complete Linux BSP development.}{Dec 2017 - Present}
      \resumeItemListStart
        \resumeItem{Generic Engineering Display (GED) 4K}
          {Currently working on next generation of GED capable of handling Ultra HD resolution based on Xilinx's UltraScale MPSoC Platform.
          Responsible for complete BSP development and Linux kernel/driver customisation and implementation.}
        \resumeItem{Generic Engineering Display (GED) 1K}
          {Responsible for custom Linux FPGA driver for GED project. GED provides a generic solution for testing, analysing and controlling
          several video streams from/to different video sources used in automotive like APIX2, GVIF, GMSL and FPD. The functionality is split
          in multiple boards with a baseboard and multiple different expansion modules. FPGA on the baseboard implements DMA logic in hardware
          acting as frame-grabber while the Artix FPGA itself is controlled by iMX6 with Linux as OS.}
        \resumeItem{DataLogger based on Beaglebone Black}
          {Responsible for application development and kernel customisation for datalogger based on Beaglebone black with CAN, Diagnostic
          Log trace (DLT) and serial interfaces.}
      \resumeItemListEnd

    \resumeSubheading
      {Toradex}{Bangalore, IN}
      {Linux Development Engineer. Responsible for BSP development, maintenance \& customer support.}{Aug 2014 - Dec 2017}
      \resumeItemListStart
        \resumeItem{\href{http://git.denx.de/?p=u-boot.git&a=search&h=HEAD&st=author&s=sanchayan}{u-boot}}
          {Responsible for up-streaming u-boot boot-loader support for Toradex Colibri Vybrid module based on NXP Vybrid processor.}
        \resumeItem{\href{http://git.denx.de/?p=u-boot.git;a=blob;f=drivers/usb/host/ehci-vf.c;h=5bb3763814197217a945d64f456cf61a94a5e69d;hb=HEAD}{u-boot USB}}
          {Implemented USB host support in u-boot boot-loader for NXP Vybrid processor.}
        \resumeItem{\href{http://git.toradex.com/cgit/linux-toradex.git/commit/drivers/rpmsg/vf610_rpmsg.c?h=toradex_vf_4.4&id=5feabad053bd3d31fa9aab3ac6b6c06b9260aeec}{remoteproc/rpmsg}}
          {Implemented remote processor communication support using remoteproc/rpmsg subsystem in Linux on NXP Vybrid processor. Vybrid is an asymmetric heterogeneous multi-core processor with both Cortex A5 and Cortex M4 core on same SoC die. This project involved the implementation of a driver
           to allow the A5 and M4 cores to communicate using shared memory in SRAM.}
        \resumeItem{\href{http://git.toradex.com/cgit/freertos-toradex.git/log/?h=colibri-vf61-m4-freertos-v8&qt=grep&q=sanchayan}{OpenAMP}}
          {Implemented OpenAMP support in FreeRTOS for NXP Vybrid processor. Open Asymmetric Multi Processing (OpenAMP) framework is required
           to allow a FreeRTOS application on Cortex M4 to communicate with Cortex A5 running Linux. Vybrid is an asymmetric heterogeneous
           multi-core processor with both Cortex A5 and Cortex M4 core present on same SoC die.}
        \resumeItem{\href{https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/log/drivers/spi/spi-fsl-dspi.c?qt=grep&q=sanchayan}{SPI DMA}}
          {Feature enhancement project to implement DMA support in SPI driver for NXP Vybrid processor.}
        \resumeItem{\href{http://git.toradex.com/cgit/linux-toradex.git/commit/drivers/usb?h=toradex_vf_4.4&id=932ea349770065dbdb333c7af0e6f841d220e559}{USB OTG}}
          {Implemented USB On the Go support using Linux extcon subsystem for NXP Vybrid \& iMX6 processors.}
        \resumeItem{\href{https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/iio/dac/vf610_dac.c}{DAC}}
          {Implemented driver for on-chip Digital to Analog Converter (DAC) peripheral of NXP Vybrid processor.}
        \resumeItem{\href{https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/log/drivers/iio/adc/vf610_adc.c?qt=grep&q=sanchayan}{ADC}}
          {Feature enhancement project to implement Industrial IO buffer support for on-chip peripheral Analog to Digital Converter (ADC)
          	driver on NXP Vybrid processor.}
        \resumeItem{\href{https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/nvmem/vf610-ocotp.c}{NVMEM}}
          {Implemented driver support for On-chip One Time Programmable peripheral on NXP Vybrid processor in the Linux NVMEM subsystem.}
        \resumeItem{\href{https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/input/touchscreen/colibri-vf50-ts.c}{Resistive Touch Screen Driver}}
          {Implemented resistive touch screen driver using Vybrid's on-chip ADC peripheral on Colibri Vybrid System on Module.}
      \resumeItemListEnd
\pagebreak
    \resumeSubheading
      {Toradex}{Bangalore, IN}
      {Windows Embedded Compact (WinCE OS) Development Engineer}{Jan 2013 - July 2014}
      \resumeItemListStart
        \resumeItem{\href{http://developer.toradex.com/knowledge-base/cloud-rds-lib-api}{AWS RDS Library}}
          {Developed a mySQL client library in C from scratch for Windows Embedded Compact(WinCE)
           OS which allowed the use of mySQL with Amazon Cloud Web Services (AWS) RDS on Toradex modules.}
        \resumeItem{\href{http://developer.toradex.com/knowledge-base/cloud-sns-lib-api}{AWS SNS Library}}
          {Responsible for maintaining Amazon Cloud Web Services (AWS) Simple Notification Service (SNS) library which is used for fully managed publisher subscriber messaging and mobile notifications service for coordinating the delivery of messages to subscribing endpoints and client on WinCE OS.}
        \resumeItem{\href{http://developer.toradex.com/knowledge-base/cloud-sqs-lib-api}{AWS SQS Library}}
          {Responsible for maintaining Amazon Cloud Web Services (AWS) Simple Queueing Service library (SQS) which is used to send, store and receive messages between endpoints without losing messages or requiring other services to be always available.}
        \resumeItem{\href{http://developer.toradex.com/knowledge-base/cloud-library-applications}{AWS Demos}}
          {Responsible for developing demos showcasing Amazon Cloud Web Services (AWS) library functionalities on Toradex System on Modules.}
        \resumeItem{Point of Sale}
          {Developed a demo Point of Sale application using C\# and SQLite for showcasing the use of Toradex System on Modules in Point of Sale domain.}
        \resumeItem{Access Control System}
          {Developed a demo Access Control System application using C\# and SQLite for showcasing the use of Toradex System on Modules in security domain.}
      \resumeItemListEnd

    \resumeSubheading
      {Godrej \& Boyce - Security Solutions Division}{Mumbai, IN}
      {Assistant Manager}{July 2010 - Jan 2013}
      \resumeItemListStart
        \resumeItem{Biometric Access Control System}
          {Responsible for hardware schematic design, board bring-up and firmware development of complete Biometric Access
          	Control System product on TI's Cortex M4 platform.}
        \resumeItem{Timespan Legacy Access Control System}
          {Responsible for maintenance and feature enhancement of Godrej Timespan Legacy Access Control System
          	based on 8051 based micro-controller.}
      \resumeItemListEnd

  \resumeSubHeadingListEnd

%
%-----------EDUCATION-----------------
\section{Education}
	\resumeSubHeadingListStart
		\resumeSubheading
			{Illinois Institute of Technology}{Chicago, IL}
			{Master of Science in Computer Science;  GPA: 3.3; Distance Learning Mode}{Jan. 2015 -- Dec. 2018}
			\resumeItemListStart
				\resumeItem{CS550}{: ADVANCED OPERATING SYSTEMS: A}
				\resumeItem{CS551}{: OS DESIGN \& IMPLEMENTATION: A}
				\resumeItem{CS570}{: ADVANCED COMPUTER ARCHITECTURE: A}
				\resumeItem{CS525}{: ADVANCED DATABASE ORGANIZATION: A}
				\resumeItem{CS425}{: DATABASE ORGANIZATION: A}
				\resumeItem{CS450}{: OPERATING SYSTEMS: A}
				\resumeItem{CS542}{: COMPUTER NETWORKS I: B}
				\resumeItem{CS579}{: ONLINE SOCIAL NETWORK ANALYSIS: B}
				\resumeItem{CS536}{: SCIENCE OF PROGRAMMING : C}
				\resumeItem{CS430}{: INTRODUCTION TO ALGORITHMS: C}
				\resumeItemListEnd
		\resumeSubheading
			{K. J. Somaiya College of Engineering}{Mumbai, India}
			{Bachelor of Engineering in Electronics; Percentage: 67\% }{Aug. 2006 -- June. 2010}
		\resumeSubHeadingListEnd

%
%-----------PROJECTS-----------------
\section{MS Projects}
  \resumeSubHeadingListStart
	\resumeSubItem{gem5 Simulator Project}
		{Implement and simulate various cache replacement policies in \href{https://gitlab.com/SanchayanMaity/gem5/commits/CS570}{gem5} simulator.}
	\resumeSubItem{RDBMS Performance Testing}
		{Evaluate performance and automate the testing of PostgreSQL using
			TPC-H specification. Wrote an application in \href{https://gitlab.com/SanchayanMaity/clojure-tpch-postgres}{Clojure} for the same.}
	\resumeSubItem{Terminal shell for Minix}
		{Implement ASH terminal \href{https://gitlab.com/SanchayanMaity/shell}{shell} in Minix OS.}
	\resumeSubItem{\href{https://gitlab.com/SanchayanMaity/keyvalue_store_eval}{DHT Evaluation}}
		{Empirical evaluation of our implementation of Simple Distributed 
			Hash Table against Redis, Cassandra and Mongo.}
	\resumeSubItem{Distributed Hash Table}
		{Implement a \href{https://gitlab.com/SanchayanMaity/simple_dht}{simple distributed hash table}.}
	\resumeSubItem{File Sharing System}
		{Implement a \href{https://gitlab.com/SanchayanMaity/simple_peer2peer_fs}{simple peer to peer file sharing system}.}
	\resumeSubItem{MINIX IPC Message Queues}
		{Implement Inter Process Communication (IPC) using \href{https://gitlab.com/SanchayanMaity/minix/commits/msgqueues-3.3}{message queues} in Minix OS.}
	\resumeSubItem{xv6 File System}
		{Modify \href{https://gitlab.com/SanchayanMaity/xv6-cs450/commit/b28eba04a807b8366a1d58701b1b1de713e18930}{xv6's filesystem} to increase the maximum file size.}
	\resumeSubItem{Tiny Database System}
		{Implemented a tiny \href{https://gitlab.com/SanchayanMaity/iit-cs525-adbo}{database} like system from scratch.}
  \resumeSubHeadingListEnd

%
%-----------LANGUAGES-----------------
\section{Interests}
Technology, Open-Source, Functional Programming, FPGA, Distributed Systems, Computer Architecture, Operating Systems. Organising and speaking on various topics in Haskell and Rust at \href{https://www.meetup.com/Bangalore-Functional-Programmers-Meetup/}{Bangalore Functional Programmer's meetup} and \href{https://www.meetup.com/rustox/}{Rust Bangalore} meetup groups.

%-------------------------------------------
\end{document}
