My name is Nicholas VanCise, currently I am beginning my masters at the University of Nevada Las Vegas. I work full time, and as a contractor, where I am exploring automation and distributed back-end services supporting an environment designed for real time data ingestion and analysis.
In addition to this, in my own time I dabble in iOS development, webscraping, data visualization, and kernel programming.
When I'm not studying or working on my personal projects I enjoy going to the mountains, listening to metal music, and science fiction.
The Ingestion API is designed to function as the middle man between independent user programs orchestrated by Apache Airflow that collect data, and multiple postgres database connections. This API was built with golang, and utilizes GORM and Gorilla Mux for database operations and routing, and can concurrently process multipart forms in bulk for data ingestion through http requests.
This environment consists of a distributed Apache Airflow Cluster, backed by Celery, that utilizes an array of custom docker containers to fetch and process data from public webpages and data buckets, and send this processed data to the Ingestion API. Docker was used to isolate browser reliant code, and build reusable, language agnostic, one-time use containers. The containers are designed to allow for fast and reliable setup, deployment, testing, tear down, cloning, and failure recovery.
This crawler is designed to reduce search times of already ingested data for an in-house manual data ingestion system. It crawls all the pages of existing instances for a specified user, and produces a list with the name, page number, and status of each instance. This allows for fast searching and navigation using the built in utility script. The crawler was built using Selenium in python and encapsulated in a docker container for easy deployment.
This project was done as part of my senior design, where the goal was to reintegrate RoboVM into the Quorum toolchain in a streamlined and encapsulated manner. This was successful, where gradle was used to package the process, cmake and xcode were used to compile C/C++/Objective-C natives, and the MobiVM RoboVM compiler was used for source code transpilation. This allows for Quorum applications to be run on iOS devices, apealing to the needs of the existing user base, while providing greater reach in an area where Quorum is needed the most!
I am a thorough lover of the Metroid series, so I built a short side scrolling platformer from scratch for iOS. This project is written in Objective-C and utilizes features from Spritekit, GameplayKit, AVAudioPlayer, and JSTileMap. I have written all of the event driven animation scheme, collision detection, character physics, data storage schemes, and game logic.
This project was a fun exercise in data visualization, where fixed coordinate data points in Terbine were plotted and connected on an interactive world map based on their location type. The data mining was done using Selenium in python, and the data visualization was accomplished using Mapbox in R.
This cross platform program was a fun way to fulfill my idea of having a generic listing/rating utility that utilized regular expressions to quickly search lists of movies, books, or other rateble media in an organized fashion. Fyne was used for the application display and packaging.