Friendly and Intuitive Software Developer who learns quickly and specializes in application, web, and game development. 
 I have experience in the following programming languages:
     •   C#
     •   Java
     •   C++
     •   JavaScript
     •   SQL
     •   HTML
     •   CSS3
     •   PHP
     •   JQuery 
 View My LinkedIn Profile
A project I made in 2 weeks using Unity to create a simulation of a production line for doors and windows
This was created as a coding test for an interview. I incredibly enjoyed creating this project because I had to learn how to create and manage threads. I was also curious if I would be able to create this project on Unity because it isn’t very thread friendly and is not necessarily designed for how I envisioned the project.


Built with
Multi-threaded application
Door measurements are randomly generated to simulate orders
Calculates height and width of the window using door measurements. Windows are calculated differently depending on 3 different window types.
Constantly calculates the average measurements of finished doors and windows after each new addition
The speed of the lasers and products can be changed during runtime
Generates a report in a .txt file that lists each product information as well as the final averages of the measurements
Method to calculate window measurements using given door measurements
/// <summary>
    /// Gets all doors and matches each door with their corresponding window using their IdNumber
    /// The measurements are then calculated by:
    ///     *Getting the height and width of the door
    ///     *Subtracting the difference to create a gap
    ///     *Do calcuations depending on the selected window type
    /// </summary>
    public void calculateWindowMeasurements()
    {
        foreach (Door door in allDoors)
        {
            foreach (Window window in allWindows)
            {
                if (door.getIdNum() == window.getIdNum())
                {
                    if (door.getSelectedWindowType().Equals("Full"))
                    {
                        //calculates height of a full window by subtracting the height of door from the gaps 
                        //multiplied by 2 to account for both top and bottom gaps
                        windowHeight = door.getDoorHeight() - (heightDifference * 2);
                        //calculates width of a full window by subtracting the width of door from the gaps 
                        //multiplied by 2 to account for gaps on both sides
                        windowWidth = door.getDoorWidth() - (widthDifference * 2);
                        //set the window measurements
                        window.setWindowHeight(windowHeight);
                        window.setWindowWidth(windowWidth);
                    }
                    else if (door.getSelectedWindowType().Equals("Half"))
                    {
                        //calculates height of a half window by dividing the height of door by 2 and subtracting the gap
                        windowHeight = (door.getDoorHeight() / 2) - heightDifference;
                        //calculates width of a full window by subtracting the width of door from the gaps 
                        //multiplied by 2 to account for gaps on both sides
                        windowWidth = door.getDoorWidth() - (widthDifference * 2);
                        //set the window measurements
                        window.setWindowHeight(windowHeight);
                        window.setWindowWidth(windowWidth);
                    }
                    else if (door.getSelectedWindowType().Equals("Quarter"))
                    {
                        //calculates height of a quarter window by dividing the height of door by 4 and subtracting the gap
                        windowHeight = (door.getDoorHeight() / 4) - heightDifference;
                        //calculates width of a full window by subtracting the width of door from the gaps 
                        //multiplied by 2 to account for gaps on both sides
                        windowWidth = door.getDoorWidth() - (widthDifference * 2);
                        //set the window measurements
                        window.setWindowHeight(windowHeight);
                        window.setWindowWidth(windowWidth);
                    }
                    else
                    {
                    }
                    //print(window.getId() + "\nHeight:" + window.getWindowHeight() + "\nWidth:" + window.getWindowWidth() + "\nWindow Type:" + door.getSelectedWindowType());
                }
                else
                {
                }
            }
        }
        computationWindowDone = true;
    }
Copyright 2019 © niknik27