Ritwik Dutta
Hi, I'm Ritwik Dutta, a student and developer. My passions are computer science, web and software development, Counter-Strike, and writing.

I've been programming for eight years, and I have solid experience in every aspect of full-stack development. My languages of choice are Python, C/C++, and Java, although I'm very comfortable working with a whole variety of technologies, including JavaScript, CSS, HTML, Django, Flask, MongoDB, jQuery, Bootstrap, and the Linux CLI.

Besides programming, I'm well versed with video and audio production workflows using Audacity, Adobe Premiere, and Adobe After Effects, graphic design and digital art using Adobe Photoshop, Adobe Illustrator, and Inkscape, 3D modeling and CAD using Autodesk 3DS Max and Blender, and game design using Unreal Engine 4 and Unity.

Big Data Analysis of Academic Networks
Worked with Professor Radu Marculescu at Carnegie Mellon University last summer (2015) on big-data analysis of academic social networks. I investigated how different participants in an academic conference collaborate, and outlined a methodology to characterize the “fairness” of such collaborations. An “unfair” collaboration would be one where relationships (between authors and program committee members) that were conflicts of interest either gave some authors advantages, or others disadvantages, in paper acceptance likelihood and co-authorship desirability. I captured the relationship between the program committee members and the regular authors of a conference, including co-authorship and institutional linkages, and derived a quotient to quantify the “fairness” of the collaboration, hence that of the conference. My findings offer insights into the evolution of special communities or interest groups that tend to form in an academic network with the sole purpose of promoting interests with regard to professional growth of individuals in these communities at the cost of denying privileges to individuals outside the communities. Whereas much of previous work has addressed academic conduct, integrity, and authorship order, my work is the first to analyze the impact of the program committee on authorship. My results can be used to guide and optimize policies regarding the rules of engagement in academic conferences and workshops; the methodology is applicable to a study of other complex social networks as well.
Georgia Tech Health Dashboard
Worked with Professor Marilyn Wolf at Georgia Tech last year (2014) and implemented a health dashboard software system for collecting patient data in smart homes using household sensors like cameras and fitness bracelets. Built with HTML, CSS, and JavaScript, the frontend of the software allows adding users, logging into the system, selecting health data of interest, and specifying health goals. The backend consists of a NoSQL Mongo database, a Python script, and a SimpleHTTPServer written in Python. The database stores user profiles and health data in JSON format. The Python script makes use of the PyMongo driver library to query the database and displays formatted data as a daily snapshot of user health metrics against target goals. A real-time METAR request API permits correlating weather data with patient health, and an advanced query system is implemented to allow trend analysis of selected health metrics over custom time intervals. I chose Mongo over an SQL database because it is easier to deploy, Flask over a Django web framework because it is lighter and simpler to use, and SimpleHTTPServer over more typical nginx or Apache web servers because it has no external dependencies. Available on the GitHub repository system, the project is free to use for academic purposes of learning and experimenting.
Intro to Computer Science using JavaScript
Prepared a comprehensive set of educational slides for my peers and juniors at my high school computer science club and robotics camp to introduce computer science concepts using JavaScript. Drawing on my learning and experience over the years, I have used my own JavaScript programs, and organized my ideas and opinions in a way that I feel makes many of the concepts easy to understand. I have touched upon the fundamentals of computers, basics of JavaScript, and common data structures and algorithms first, before including some of the interesting Functional Programming concepts from one of my favorite books, Structure and Interpretation of Computer Programs. Commonly referred to as The Wizard Book, it influenced my ideas on computers and programming, and I wished to share my thoughts and perspectives on this topic with others. I started on importing some of the interesting concepts from The Wizard Book, but have so far only got to Higher Order Functions and Function Abstractions; I hope to soon cover more of the concepts from the book, and convert its illustrative examples from Scheme (the language used in the book) to JavaScript.
K.A.R.E Recommendation Engine
Created a recommendation engine for GitHub - the free-to-use software storage website. If a user specifies a software project of interest, KARE finds and recommends other similar projects on GitHub. The text box next to the logo on the KARE website is where a user specifies a project of interest. For example, if a user selects a project called "d3", which contains software for drawing charts and graphs on websites, a column will appear on the left, titled "Results for d3”, and will contain a list of similar software projects generated by KARE. Last time I ran a query, three example results returned by KARE were "sigma.js" - another graph drawing library, "dc.js" - a 3D graphing library, and "cube" - a chart visualization tool. KARE obtains these matching results by counting how many of the same users “liked” each repository – the higher the count, the better
Keyboard Design Customization
I developed a custom web application for Max Keyboard. Impressed by a website that I built to test keyboard rollover on Reddit, one of the engineers from Max Keyboard, a local, Fremont-based keyboard company in California, contacted me about creating a custom keyboard designer for their website. They wanted customers to be able to design their keyboards online instead of having to describe what they wanted over the phone. I designed the website to be easy-to-use and visually represent a keyboard as realistically as possible. The entire flow from layout to rendering is all done using pure JavaScript and CSS, keeping load times and resource usage low - the entire site is contained in less than 300KB of total code. The site lets users pick colors for their keys and the LED back-lights for the keys; then they simply generate a code to submit for purchase or come back and complete the customization later.


October 2015 - Present

Hired as independent contractor by FreshPay Inc., a San Francisco-based Silicon Valley startup looking to revolutionize the payments space and do something new with the utilization of digitial currencies. I am a system engineer for the company's backend and I maintain and create extensions for an in-place task-management system.

January 2015 - August 2015

Hired as an external software consultant by Lytmus, a San Francisco-based company looking to revolutionize the sourcing and assessment of technical talent using a sophisticated virtual-machine based platform that allows engineers to demonstrate their knowledge in realistic and practical settings and simultaneously provides useful, high-quality data to potential employers. I provided detailed feedback and analysis of the tests they created in order to further refine the target and quality of assessments so that the tests provided more meaningful data to potential employers.

June 2014 - July 2014

Hired as an external project leader and frontend engineer by MAXKeyboard, a Fremont, California based custom keyboard designer. The existing platform for consumer-side customization of keyboards used to be a phone call from the buyer to the company describing the ideal customization. I created an online keyboard-configuration application with an ecommerce-focused design where the user could intuitively customize a realistic-looking yet lightweight imageless keyboard rendered using raw CSS and HTML.