Skills


The following is an example of my writing from my ethics class, PHIL 355E, at Old Dominion University. This work displays my skills in critical thinking, communication, research, analysis, and writing. I valued the opportunity to challenge my initial assumptions of these ethical frameworks and found how limiting considering only one perspective can be. I can apply the ethical insight I learned from assignments like this one by making cybersecurity decisions that balance outcomes, rules, and human impact.


All the ethical “tools” we used in this class were interesting and left me in deep thought. However, the three ethical perspectives in our course that intrigued me the most are consequentialism, Confucianism, and deontology. Most of the ethical theories we covered in this course were completely new to me. In this reflection, I will discuss how my thoughts on these terms have developed and provide a relevant takeaway for each.   

The first ethical term that I will be reflecting on is consequentialism. At first, my understanding lacked depth, and I thought of it as a theory that determines morality by outcomes. To unlock this tool, there was a reading about two individuals who had unlocked the full potential of the mind, and their intelligence transcended the rest of the world. One chose to use their power to gain enlightenment, while the other worked to save humanity and the world. Seeking enlightenment initially seemed like a selfish way to use the power this individual had gained. After going through the engaging ethical dilemmas introduced to me in this course, I have come to realize that this could have benefited humanity as much as the other genius was trying to help. The one working to clean up pollution with new microorganisms would have helped restore our planet, but who is to say if the rest of humanity would have listened? It’s impossible to know all the outcomes as we are not omniscient. Also, I believe that the path taken is just as important as the outcome.  

When introduced to Confucianism, my understanding was limited to how best to live our lives based on the overall path we walk and fulfilling our roles. Throughout this course and discussions, I have realized that one’s role is to foster different relationships with those closest to us and with society. This theory pushes us to be the best in all roles we play in life, whether it be a husband, brother, grandson, etc. Moral excellence in this lens is gained through consistency and tied to our social context. This theory challenged my previous views of morality and taught me that relationships are the foundation for moral life.   

The final ethical theory that I am covering in this reflection is deontology. My initial impression of this theory was acting based on the best reasons, do unto others as you would have them do unto you, and accepting that it is never right to lie. I also really enjoyed the reading with this tool, which was a Superman comic book where he refused to compromise his beliefs even though it seemed like the entire world had turned against him. I agree with Kant’s principle of treating others as ends in themselves, and never merely as means to an end. I enjoyed this theory because it leaves so much up for individual interpretation and respects the moral worth of Individuals. I now see the ethical theory of deontology as a counter to the temptation to justify harmful actions against others by stressing the importance of dignity. 


The following are two lab assignments from my class, CYSE 301, at Old Dominion University. In these assignments, I configured pfSense firewall rules, tested the configurations, discovered subnet topology information, scanned for open ports and services, successfully exploited Windows XP and Windows Server 2022 using the Metasploit Framework, and got more comfortable with Wireshark and Linux. I valued these assignments because they gave me hands-on practice in defensive and offensive cybersecurity practices. It brought concepts I learned in class to life and showed how the smallest misconfigurations can have major security implications. Through these assignments, I further developed my technical competency in network security, firewall configuration, and traffic analysis using widespread penetration testing tools like Wireshark, Kali Linux, and Metasploit. I will apply these skills as a cybersecurity professional by designing more secure networks, finding vulnerabilities before attackers, and clearly communicating technical risk and mitigation strategies.


Lab-Assignment-4-1

Assignment-3-1


The following are a server and a client I created in Python to display some of my favorite hiking spots in Virginia and information about them. I valued this project because it combined two personal interests with technical problem-solving. The key lesson I learned is how client-server communication is created and how data between systems must be structured and transmitted between systems. This project strengthened my skills in Python programming, networking fundamentals, and designing a simple application for users with a shared interest. In the future, I can apply these skills to modify/build/secure a client-server architecture from scratch.


import socket
from time import ctime

HOST = 'localhost'
PORT = 5000
BUFSIZE = 1024
ADDRESS = (HOST, PORT)

def log_request(user_input):
    with open("logs.txt", "a") as log_file:
        log_file.write(f"{ctime()} - Request: {user_input}\n")

def load_hiking_data(filename):
    hiking_data = []
    try:
        with open(filename, "r") as file:
            for line in file:
                parts = line.strip().split("|")
                if len(parts) == 4:
                    name, location, difficulty, distance = parts
                    hiking_data.append({
                        "name": name,
                        "location": location,
                        "difficulty": difficulty,
                        "distance": distance
                    })
    except FileNotFoundError:
        print("Data file not found.")
    return hiking_data

def find_hiking_info(name, hiking_list):
    for hike in hiking_list:
        if name.lower() in hike["name"].lower():
            return f"{hike['name']} - {hike['location']} - {hike['difficulty']} - {hike['distance']}"
    return "Hiking spot not found."

hiking_spots = load_hiking_data("hiking_spots.txt")

server = socket.socket()
server.bind(ADDRESS)
server.listen()

while True:
    print("Waiting for connection ...")
    client, address = server.accept()
    print("Connected to", address)
    client.send("Welcome to the Virginia Hiking Info Server!".encode())
    client.send((ctime() + "\nYou can type 'list' to view top hiking spots or type a name to get more info. Type 'exit' to quit.").encode())

    while True:
        try:
            message = client.recv(BUFSIZE).decode().strip()
            if not message:
                break
            log_request(message)

            if message.lower() == "exit":
                client.send("Goodbye!".encode())
                break
            elif message.lower() == "list":
                hike_names = [h['name'] for h in hiking_spots]
                response = "Top Hiking Spots:\n" + "\n".join(hike_names)
            else:
                response = find_hiking_info(message, hiking_spots)

            client.send(response.encode())
        except:
            break

    print("Client disconnected.")
    client.close()
import socket

HOST = 'localhost'
PORT = 5000
BUFSIZE = 1024
ADDRESS = (HOST, PORT)

client = socket.socket()
client.connect(ADDRESS)

print(client.recv(BUFSIZE).decode())
print(client.recv(BUFSIZE).decode())

while True:
    message = input("Enter command or hiking spot name: ")
    client.send(message.encode())

    reply = client.recv(BUFSIZE).decode()
    if "Goodbye" in reply or not reply:
        print(reply)
        break
    else:
        print(reply)

client.close()