Thenaesh Elango
Email: thenaeshelango@gmail.com
Education
[In Progress] Bachelor of Computing (Computer Science), National University of Singapore
- Turing Programme
- Focus Areas: Algorithms & Theory, Artificial Intelligence, Information Security
[In Progress] Bachelor of Science, National University of Singapore
GCE ‘A’ Level, 4 Distinctions, Raffles Institution
- H2: Physics, Chemistry, Mathematics, Economics
- H3: Essentials of Modern Physics
GCE ‘O’ Level, L1R5: 2, Victoria School
Areas of Expertise
- Functional Programming
- Wrote a book chapter on Haskell (for CS3281)
- Gave talks regarding functional programming more than once (including in CS3281)
- Made contributions to an open-source project (Pandoc) in Haskell
- Served as TA several times for a programming module (CS1101S) with heavy emphasis on functional programming
- JavaScript
- Built an app from ground-up in ES6 for handling email blasts, learned how to use Electron to make desktop apps
- Built the MIDI and audio subsystem in JavaScript for a piano-simulation web app, became familiar with Node.js and npm
- Served as TA several times for a programming module (CS1101S) that taught students a useful and clean subset of JavaScript
- Made major contributions to the TEAMMATES project’s JavaScript code (including a huge ES3 -> ES6 migration), gaining significant experience with industry-standard tools such as ESLint in the process
- Gave a talk regarding ES6 (for CS3281)
Open-Source Contributions
Made many contributions to TEAMMATES, currently serving as a committer.
Implemented a feature that allows users to specify a User-Agent string when requesting a document from a URL using Pandoc. This solved the problem of web servers insisting on specific browsers and refusing to serve up pages in response to requests from Pandoc. Implementation Language: Haskell
Make minor documentation fix to ensure that users that the functions
option of the comma-dangle
rule should not be used on JavaScript code prior to ECMAScript 2017. This solved a bug report from a user who was confused why ESLint, when run with trailing commas enforced for function parameter lists, was producing JS code that resulted in errors when run.
Contributed a Haskell learning guide to a repository of software engineering educational resources created by the National University of Singapore.
Wrote tests for an important part of the codebase.
Created an intuitive GUI for a previously command-line app to facilitate sending mass emails formatted in a given way to ease the workload of publicity personnel who would otherwise have to do it manually each time and have to worry about writing HTML and sending the email using the correct email server. Implementation Language: JavaScript (ES6)
Built the MIDI and audio subsystem for an in-browser piano web app developed for Orbital in NUS SoC. Upon keystrokes, musical notes are played through a MIDI subsystem. Chords and multiple keys are also playable and supported by the MIDI system.
Work Experience
Teaching Assistant for CS1101S Programming Methodology, National University of Singapore
- August 2015 - December 2015
- August 2016 - December 2016
- Led a discussion group of 8 students, teaching them programming initially from a functional perspective and later from an imperative perspective.
- Taught in JavaScript (initially severely restricted, more features allowed each week).
- Graded programming assignments and midterm examinations.
- Created and maintained teaching materials for the course.
- Handled administrative work for various aspects of the course.
Teaching Assistant for CS1231 Discrete Structures, National University of Singapore
- August 2015 - December 2015
- Taught a tutorial of 20+ students, teaching them mathematics fundamentals, including set theory, functions, relations, mathematical induction, basic number theory, combinatorics and graph theory.
- Graded written assignments.
Software Engineer & System Administrator, National University of Singapore Students’ Computing Club
- August 2016 - September 2017 (19th IT Subcommittee)
- Simplified the creation of the Club’s weekly email blasts:
- Created an Electron app that allows entry of email blast parameters (title, image, text) in a simple, intuitive format.
- Great advancement over the old command-line interface that was difficult to use for anyone untrained in command-line usage.
Vice-President (Human Resource and Development), National University of Singapore Students’ Computing Club
- August 2015 - September 2016 (18th Management Committee)
- Oversaw a portfolio of 3 cells (academic liaison, student welfare, sports), helping to maximise the impact of their activities while also staying within NUS regulations
- Facilitated the expansion of student welfare with significantly more welfare packs and additional events such as during Halloween
- Facilitated and supervised the NUS Data Science Student Challenge organised by the Academic Liaison Cell together with Microsoft, the first ever hackathon organised by the Club
Director of Academic Liaison, National University of Singapore Students’ Computing Club
- August 2014 - September 2015 (17th Management Committee)
- Spearheaded several workshops to help students acquire practical computing skills
- Java Confidence Course
- Unix Workshop
- Introduction to Hybrid Mobile Apps (sponsored by JetBrains)
- Organised a day-long sharing session for incoming freshmen with the objective of giving them a clear picture of academic life and career prospects after graduation
- Organised mock practical examinations for freshmen to become acquainted with the actual environment of the practical examinations in the School of Computing
Talks
February 2017-April 2017 Gave talks on Haskell, machine learning and ES6 as part of a talk series conducted in the NUS module CS3281
July 2015 Gave a short introduction to Haskell in a seminar series conducted in the NUS School of Computing
January 2015, January 2016 Lectured at a workshop on the Java language
- Aimed at giving students a headstart in modules/courses requiring knowledge of the language
- Covered object-oriented programming concepts
- Introduced static typing to students who were mostly familiar with dynamically-typed languages
January 2015, August 2015 Lectured at a workshop on Unix
- Aimed at introducing students to software development and deployment on Unix-like operating systems like Linux
- Covered Unix filesystem concepts and bash scripting, going into significant detail regarding pipes and I/O redirection
- Introduced students to the Unix philosophy of writing small, specialised programs