I like to work on interesting projects that offer tangible value to individuals, companies and society. Throughout the past few years, I’ve explored different areas and environments, having worked at both big companies, and smaller startups, in research settings for my Masters’ as well as industry settings.
Implemented several new features and fixed bugs related to the Plan Experience domain of the product. Also contributed to the frontend and the backend optimization engine, and helped elsewhere as needed.
•
Led optimization of a mission-critical API process making it ~ 77% faster at scale. Won the quarterly Impact Award for said improvements, as well as other contributions.
•
Authored technical design proposals and conducted technical design reviews for various API projects.
•
Mentored junior engineers and interns on API intricacies and engineering best practices, assisted with onboarding and resolving issues, and conducted technical and behavioral interviews for prospective candidates.
•
Served as the key backend resource and lead for the Plan Experience API within my team, and for external stakeholders (other engineers, product, customer success, etc). Was a default code reviewer for API changes.
In summary, I applied machine learning techniques towards the classification of computer programs in the Scratch online community. In particular, I applied NLP techniques to a new context, and demonstrated that they can be used in accomplishing this task to a reasonable level of accuracy.
My work included:
•
Applying unsupervised learning methods (k-means clustering) to better understand the structure of Scratch projects, and to motivate use of supervised learning methods for type classification.
•
Leading the efforts to construct a labeled dataset of Scratch projects and their types (i.e. “animation”, “game”, “slideshow”, “other”), via a collective process of consensus-based annotation by experts.
•
Applying unsupervised NLP techniques to find optimal representation methods for Scratch blocks and projects, by training word embeddings on a 500,000-large Scratch projects dataset (using fastText library).
•
Applying supervised NLP techniques to train a classifier model for categorizing Scratch projects by type, by training a (high quality) 873-large labeled projects dataset and using the unsupervised word embeddings as the foundation (using fastText library).
•
Tuning hyperparameters to find a set of hyperparameters yielding reasonable classifier model performance.
•
Developing and conducting an in-depth analysis of the (trained) unsupervised and supervised models, and an exploration of the elements learned during training.
(This work culminated in a thesis for my Master's degree)
Automating some (manual) tests that verify correct functionality of ILOM (firmware) in SPARC servers, to expedite, streamline and enhance the testing process (code written in Python).
•
Executing existing automated tests from a test suite (written in Perl) and debugging results to determine the existence of bugs, verify the correctness of ILOM functionality, and assess the long-term performance of servers.
•
Filing and tracking bug reports on bugs found.
•
Setting up out-of-the-box servers, configured hardware, and installing operating systems and firmware.
•
Defining test requirements for a new server platform.
Overall, I briefly explored the problem of the “hardness of approximation of constraint satisfaction problems”.
This included:
•
Briefly studying parts of a published paper (Håstad’s Some Optimal Inapproximability Results) on hardness of approximating exact answers to k-CSPs, focusing on the problem of finding the maximum fraction of linear constraints satisfiable.
•
Learning Fourier analysis techniques and proof constructions for hardness of approximation results.