I am a computer engineering graduate from Ryerson University. I chose to pursue this field of study early on as I always have been interested in computers and working with them. During my undergrad, I gained experience and exposure to various fields such as software design, computer networks and security and data engineering. I found that software and data engineering captured my interest, and I decided to further my career. What fascinates me about data engineering is its versatility as it applies to nearly every industry out there, and its importance is only growing with time.
Proficient: Java, Python, C, Object-oriented design, Windows, Linux, Bash scripting, Git
Competent: RDBMS/SQL, Agile/Scrum, Networks, GUI design, Numpy library, Pandas library, Seaborn library
Familiar: Cybersecurity, Operating systems, Hardware engineering, MIPS assembly, VHDL
Project source code: https://github.com/jarviscanada/jarvis_data_eng_NiharSheth
Cluster Monitor [GitHub]: Implemented a monitoring agent on CentOS 7 using Bash and SQL that gathers Linux host information from various machines within a cluster and aggregates them in a single database using PostgreSQL within a Docker container. Static hardware information is stored for each host in one table while resource usage for each host is pushed to the database every minute automatically using crontab. This project was an implementation of basic data analytic tecniques.
Core Java Apps [GitHub]:
- JDBC App: Wrote a Java program that implements Java Database Connectivity to interface with a PostgreSQL database using the data access object design pattern to perform create, read, update and delete operations on an individual table in the database. The program connects to the database using a JDBC driver class.
- Grep App: Wrote a Java program that mimics the usage of the grep command line utility to search for text through files using regex pattern matching. Given a root directory the program gets a list of all files within it and any subdirectories recursively and searches them individually for a passed regex pattern, results are then stored in a text file. The application is deployed as a Docker image.
- Twitter App: Java program using Spring Boot that communicates with Twitter's REST API to create, read and delete tweets from a developer account. This project is deployed through Docker and runs on the command line to post a tweet with a text status and point coordinates, show a tweet by its unique ID value or delete a series of tweets.
Springboot App [GitHub]: A trading platform implemented in Java 8 with the Spring Boot framekwork that consumes the IEX Cloud REST API to pull, update and read market data such as daily lists, quotes and security orders. Users can manage their profiles and accounts through a webservlet presented with Swagger in their browsers through the use of implemented REST endpoints.
Smart Fire Alarm System: Designed and implemented a smart fire alarm system on a Raspberry Pi using Arduino LoRaWAN that detects a fire and calculates an escape route using an array of individual fire detectors that is pushed to a mobile app with MQTT. Implemented using Python, Arduino and various IoT libraries.
Book Tracking/Logging Database: Designed and implemented a simple book logger using SQLite and a text-based query system in Java as a frontend. Users can keep track of books they read and query information on books entered into the system.
Bank Account Application: Coded a Java application using JavaFX for the GUI that simulates a bank account tracking system, users can register accounts and move through reward tier rankings based on their account balance. This project was an exercise in object-oriented programming and UML design.
Inter-domain Routing Control System: Implemented an inter-domain routing algorithm in the C language that simulates the border gateway protocol used in connecting autonomous systems over the internet.
SSL Handshake Protocol: Coded a back-and-forth simulation of the SSL handshake protocol in Java. A client and server program run concurrently and perform the protocol by exchanging and verifying certificates and making use of cipher algorithms to exchange messages.
Videogame Processor for VGA: Programmed a real-time videogame using VHDL on a Spartan-3E FPGA that makes use of the VGA standard to display real-time graphics on a VGA-connected monitor.
Application Developer, National Bank of Canada (2022-present): Took on back-end and front-end tasks as a junior developer. Worked on and implemented projects such as Java 8 to 11 migration on existing internal applications, scripting for API endpoints.Technologies used: Java, Maven, Urban Code Deploy, Jenkins, Python.
Software Developer, Jarvis (2021-present): Developed and implemented various data engineering projects making use of various technologies and languages.
IT Technician, TTEC Computers Inc. (2020-present): Provided IT support and internal support through updating and upgrading ticketing system (ConnectWise Manage). Responsibilities included client support, product management, service documentation and data entry.
Ryerson University (2016-2021), Bachelor of Engineering, Computer and Electrical Engineering
- Dean's List (2020): Achieved Dean's List standing in the Fall semester.
- GPA: 3.210
- Working on PCs
- Reading fiction novels
- Music (I enjoy all sorts of genres, rap, metal, alternative)
- Gaming (action-adventure games, shooters, platformers)