Hello I'm

Joseph Demyanovskiy

About me
Software Developer

Working as a Software Development Engineer in Test with demonstrated experience in building, updating, and executing sophisticated automation tests against software systems. Always seeking new opportunities to further develop my skills as a software engineer.
Projects
An introduction to Swift and SwiftUI. Weather data is pulled through OpenWeather's APIs, parsing the JSON formatted data using decodable.

Features

  • SwiftUI
  • API
  • JSON parsing using Decodable
  • Model View ViewModel (MVVM)
  • NavigationView + NavigationLink transitions
  • Theme change based on sunset time
  • 5-day forecast with additional details
  • Hourly forecast
A mobile trade market app for the popular third person MMO Warframe. Pulling data from warframe.market the app displays item information to the user that might be part of the set.

Features

  • Kotlin
  • API
  • JSON to data class
  • User authentication
  • SharedPreferences storage
  • XML Layouts
    • Navigation Drawers
    • Recycler View
    • Fragments
  • Item sort by search

Features

  • Kotlin
  • API
  • JSON to data class
  • User authentication
  • SharedPreferences storage
  • XML Layouts
  • Item sort

Stated Problem:

Given a CSV of packages and their delivery locations, and a table of distances between locations, create an algorithm for the Western Governors University Parcel Service (WGUPS) to determine the best route and delivery distribution. The Salt Lake City route is covered by three trucks, two drivers, and has a daily average of approximately 40 packages. Add functionality to query a packages data including with a given timeframe.

Features:

  • CSV File Parsing
  • Data hashing
  • Nearest neighbor algorithm
  • Space-time complexity evaluation using Big O notation

Assumptions:

  • Each truck can carry a maximum of 16 packages.
  • Trucks travel at an average speed of 18 miles per hour.
  • Trucks have a “infinite amount of gas” with no need to stop.
  • Each driver stays with the same truck as long as that truck is in service.
  • Drivers leave the hub at 8:00 a.m., with the truck loaded, and can return to the hub for packages if needed. The day ends when all 40 packages have been delivered.
  • Delivery time is instantaneous, i.e., no time passes while at a delivery (that time is factored into the average speed of the trucks).
  • There is up to one special note for each package.
  • The wrong delivery address for package #9, Third District Juvenile Court, will be corrected at 10:20 a.m. The correct address is 410 S State St., Salt Lake City, UT 84111.
  • The package ID is unique; there are no collisions.

Restrictions:

  • Package data must be stored via hashing.
  • Some of the packages must be delivered with other packages.
  • Some packages must be delivered with other packages.
  • Some of the packages must be delivered by a specific truck.
  • Some packages have a specific deadline by which it must be delivered.
  • Some of the packages are delayed in arriving to the depot and will not be available for pickup until later in the day.

Psuedocode:

  1. Go through package list and insert them into hash table
    • A separate distances CSV contains distances from each location to the other location by ID
    • i.e. Distance from location 10 -> location 27 is 6.0 miles
  2. Set package priority
    • Go through each package and set priority value based on package deadline
    • If package deadline is 9:00am, set priority to 1
    • If package deadline is 10:30am, set priority to 2
    • Else set package priority to 3
  3. Run simulation
    • Load any hard-required packages into associated truck (i.e. package #36 and #38 are required to be on Truck #2)
    • Sort package list by priority
    • Load trucks by priority
    • Start truck 1 and 2 delivery at 8:00am, and truck 3 at 10:20am
      • For each truck's delivery process:
      • Sort loaded packages by priorty
      • Go through each package and find the closest located package
      • Drive to package's location
      • Add to truck's drive and time stats, and pop package from queue
  4. Display UI for user to read simulation stats

Proof of concept:

All package statuses between 8:35 and 9:25

All package statuses between 8:35 and 9:25

All package statuses between 9:35 and 10:25

All package statuses between 9:35 and 10:25

All package statuses between 12:03 and 13:12

All package statuses between 12:03 and 13:12

Course work for WGU's course C195. This application uses Java to connect to a pre-setup SQL server to store data about customers and appointments.

Features:

  • Java + JavaFX
  • MySQL Server connection
  • Add, Modify, and Delete data using SQL
  • Lamda
  • Username and Password login
  • Report generation
  • Auto language selection based on region

How it works:

The project starts by setting up a connection between the user and the SQL server. We check the region of the user and set the language accordingly. Note: Current only available in english or german Ask user for username and password and attempt to authenticate the information with the database. Once the user successfully logs in, they will have the options to add, modify, or delete customers and appointments in the database server via JavaFx UI.
Contact me