Ari (Hamid) Zare - a social gearhead
Ari [--languages] [--technologies] [--developer] [--diy-hacker] [--researcher]
[--other]
Senior software engineer with a masters in computer science working
on machine learning infrastructure with 7+ years of experience.
Feel free to contact me if you'd like to connect. Email:
[email protected]
Disclaimer: Due to budget cuts this man page might be out of date. Please refer to the PDF version here.
--languages
Go, Python, Bash, C++, JavaScript, SQL, TypeScript, Unix shell, C, Elm, Ruby, CSS, HTML, Java, PHP
--technologies
Amazon Web Services (AWS), Google Cloud Platform (GCP), Google Kubernetes Engine (GKE), PWA
--libraries --frameworks
PyTorch, React, Tensorflow, ZeroMQ, TF.js, Vue.js, Ruby on Rails (RoR), Spark & Hadoop, Keras,
--dev-tools
Docker Git, Kubernetes (K8s), PostgreSQL, Apache Kafka, GraphQl, Linux, MySQL, Node.js, Redis, Ansible, Jenkins, MongoDB, Vagrant, Apache Cordova
--developer, --contributor
Agile Methodologies, Scrum, Mentoring, Project Management, Team Leadership
--diy-hacker
TODO..
Senior Software Engineer at HPE (Cray AI) June 2021 - Present
AI & HPC (Cray AI Development)
Part of the original Determined AI team.
* Co-designed and led the implementation of, and transition to, our first public API for our core product based on industry standards such as gRPC, protobuf, and OpenAPI.
* Architected and validated a set of features to add visibility and management to our job schedulers. Then led a cross-functional team of engineers to build it. This provided exposure to our scheduler logic and expanded it to allow for arbitrary persistent positioning manipulation.
It transformed user intuition into how jobs get scheduled, brought pre-existing obscure scheduling bugs into light, increased GPU utilization, and decreased job churn by half.
* Introduced a flexible PyTorch Lightning Adapter to enable accelerating PTL workloads using Determiend's resource managers as well as reducing porting time, the chance of error, and lines of code needed by up to 70%.
* Demonstrated, advocated for, and established the use of code generators and enforcing type checks between backend and our different clients leading to higher stability, better dev experience, maintainability, and more. This effort resulted in writing an in-house OpenAPI based Python code generator for Determined harness and CLI.
* Diagnosed bottlenecks with loading Determined python package and through dependency graph analysis. Illustrated and championed changes that lead to 80\% lower startup time via dependency tree pruning and lazy imports.
* Presented and spearheaded various efforts to improve build and test infrastructure and practices for various teams and functions across the company spanning different technologies and tech stacks.
* Delivered 10x improvements in pr to merge times, build costs, and test flakes.
Consistently performed as one the most prolific contributors with over 700 successful pull requests.
* Currently leading the user-facing side of a new upcoming product from Determined that I'm helping launch.
Software Engineer at Determined AI Aug 2019 - Present
Developing an end-to-end deep learning pipeline to enable automation of model selection and hyperparameter tuning.
Distributed Deep Learning; Horovad; PyTorch; PyTorch Lightning; experiment tracking; hyperparameter search; Domain-aware scheduling; REST, GRPC, and Python API design
* Built an open-source end-to-end deep learning pipeline to enable automation of model selection, tracking, and hyperparameter tuning that was acquired by HPE high-performance computing unit in 2021.
Read more above.
* Joined as engineer #15 and helped build the team by interviewing more than 60 candidates and playing many roles based on changing needs of an early-stage startup.
Acquired by HPE in 2021 .
Link to the press release by HPE
Software Engineer at Real-Time Innovations (RTI) Summer 2019
* Research and development as part of the core team, working on two projects for the next release of Connext DDS. \textit{C, C++, Java}. * Designed and implemented APIs to expose information about the type system for customers. \textit{C, C++} * Evaluate, research, and develop a pluggable lossless compression solution for real-time, peer to peer communication of user data. Targeting use-cases for autonomous vehicles: sensor sweeps and camera feeds. [Internship]
Software Engineer (RA) at Institute for Software Integrated Systems 2017 - 2019
Developing our open source, web-based visual programming environment, NetsBlox introducing distributed programming concepts like message passing and remote procedure calls to block based languages.
* Standardized a base class for developing RPCs, improving performance and reducing lines of code by up to 70% * Performance optimizations: Improved messaging throughput by up to 24x under load. Selective caching, through a layer positioned close to the networking module, in conjunction with smart cache busting enabled the router to avoid stale routing information and provide verifiable socket information for clients at a much higher rate than before. * Developed a parser for dynamic creation of documentations for service APIs currently covering 130 modules and counting * Redesigned user-facing services and RPCS to guarantee type safety in Javascript removing the burden from the developers. * Reduced production client bugs by 20% through automating browsers tests, a chaotic monkey and Travis. [Part-time research assistant]
Teaching Assistant at Vanderbilt University Spring 2017
Assisted with Program Design and Data Structures course taught in C++. Helped students understand different data structures and algorithms, design modular programs, use best practices, edge case testing and safety checks.
Software Engineer at TebSoft May 2015 - Dec 2016
* Reduced peak load on internal servers serving data distribution within in-network hospitals using a forward proxy by up to 40\%. * Optimized the routine backup process by implementing a differential backup strategy. * Started as an intern and quickly took on more responsibility as a full-time engineer.
Software Engineer Intern at Tosan Summer 2014
* Developed a csv parser and multi-part loader for legacy data sheets saving data entry time while reducing error rate.
Ph.D. in Computer Science at Vanderbilt University 2017 - Dec 2020
Advisor: Prof. Ákos Lédeczi.
I decided to drop out of the Ph.D. program end of 2020 to pursue a career in industry.
M.Sc. in Computer Science at Vanderbilt University 2017 - 2019
Advisor: Prof. Ákos Lédeczi.
Researching the intersection of Computer Science education, Networks, Distributed Systems, and Robotics in Vanderbilt's cyber physical systems lab, Institute for Software Integrated Systems.
Coursework: Machine Learning; Modeling & Simulation; Deep Learning; Advanced Algorithms; Distributed Systems; Web-based System Architecture; Concurrent Java Programming; Reinforcement Learning; Cloud Computing
B.Sc. in IT Engineering at Tehran Azad University 2011 - 2015
Coursework included: Data Structures; Software Engineering; Databases; Artificial Intelligence; Computer Networks; Operating Systems; Programming Languages; Statistics & Probability; Operational Research; * Top Student: Engineering department, junior and senior years.
Webcam Mods (WFH) (2020)
Linux 1st face tracking, background removal/blur, crop, zoom, record/replay. Zoom did not have support for virtual backgrounds on Linux for a long time so I made my own. A quick demo of my webcam mods. Python, TensorFlow, Linux
Decision Tree to Explain X (2021)
Write a decision tree in YAML and get a link to provide a visual step-by-step explanation of the process with someone. With support for loops and conditional branches. See how my dog reacts to any object here
Roboscape Device Provisioning (2018)
A set of solution for batch provisioning of heterogeneous robots used for provisioning Roboscape robots. C, JS, Vue.js
Visual Machine Learning (2018)
Machine Learning and Reinforcement Learning abstractions for Snap visual programming environment. JavaScript, Tensorflow.js
Fog Alert (2018)
A 3-component fog based, intrusion detection system with basic threat detection mechanisms. Using a Raspberry Pi Zero, a beefy RPi 3, and NodeMCU modules Python, C
Roboscape (2018)
Educational robotics platform for teaching fundamental cybersecurity concepts using robots and NetsBlox C, JavaScript
Generalizable QLearning Framework (2018)
A simplified deep Q learning framework with examples Python, JS
NetsBlox Player (2018)
A mobile app to run networked, user-created, NetsBlox projects on IOS and Android. JS, Cordova, Ionic
Falcon9 Simulation (2018)
Numerical simulation and feasibility analysis of a reusable rocket Python, Matlab
Sketch Adventures (2018)
A game made for Global Game Jam 2018 to learn Rust. It is a game that allows users to move with the arrow keys and draw with the mouse. User drawings are classified and come to life with different behaviors to help pass the levels. Watch our demo here. Rust, Python
Teachable Robots (2017)
Accessible RPI powered robotics for the classroom (CTE paper) JS, Python
Next Block Prediction (2017)
Predicting and suggesting next blocks in block programming languages given the current flow of student's project using N-grams, Word2Vec and RNNs. Python, Tensorflow
Distributed PubSub Broker (2017)
Led a team of three to design and implement three different architectures of a resilient PubSub broker with QoS using ZeroMQ, CHORD, and Zookeeper from scratch.
Palantiri Gazing App (2017)
A toy app to demonstrate and exercises different concurrent programming paradigms and frameworks in Java. Java, Android, Concurrent Programming
Smart Home Automations w/ RPI & ESP (2016-P)
A collection of DIY smart home projects. TODO list and expand: hot-word detection, re-purposed Google assistant, Kodi voice control, smart blinds, sound reactive led lights, sensor node Python, C, Bash
UniDB (2016)
University Database is a crowdsourced database of universities and colleges in the states. In need of an accurate, comprehensive, and free source of information, I developed and published the platform as I was going through the graduate school application process. RoR, Ruby
Ruby on Rails; Android Programming; Linux Professional Institute Certification (LPIC) I & II; CentOS System Administration; Cisco Certified Network Associate (CCNA); Cisco Certified Network Professional (CCNP) Routing & Switching; Soft Skills; UI/UX;
H.Zare, M.Mar'oti, A.Ledeczi "Educational Robotics with a Twist", Blocks+ - 2018
A.Ledeczi, H.Zare, G.Stein "NetsBlox and Wireless Robots Make Cybersecurity Fun", SIGCSE - 2019 - ACM
A.Ledeczi, M.Mar'oti, P.Volgyesi, B.Broll, H.Zare "Teaching Cybersecurity with Networked Robots", SIGCSE - 2019 - ACM
B.Broll, ́A.Ledeczi, H.Zare, D.Do, J.Sallai, P.Volgyesi "A Visual Programming Environment for Introducing Distributed Computing to Secondary Education", Journal of Parallel and Distributed Computing - 2017 - Elsevier
B.Broll, H.Zare, A.Ledeczi. "Creating engaging science projects with Netsblox", Block & Beyond - 2017 - IEEE
B.Broll, H.Zare, D.Do, M.Misra, A.Ledeczi. "You can teach computer networking in high school", 2017 - IEEE
N.Hutchins, T.Darrah, H.Zare, H.Biswas. "A DSML for a Robotics Environment to Support Synergistic Learning of CT and Geometry. 2018 - CT in Education
* Mentored at Vandy Hacks * Presentations TODO * Conferences TODO
* Awarded full scholarship by Vanderbilt University's graduate school. 2017-2019. * Top Student: Engineering department, third and fourth year of undergraduate. 2014, 2015 * Ranked in the top 1% in the Iranian National Universities Entrance Exam. Sep 2011
* Email: [email protected]
* Address: San Francisco Bay Area, CA
* Linkedin: linkedin.com/in/hamidzare
* GitHub: github.com/hamidzr
* Resume: hamid-resume.pdf