SOFTWARE ENGINEERING, NETWORKING, INFOSECURITY
Hello! My name is Frank Charles Lugola, and I am a Computer Science graduate from Luther College with a minor in History. My time at Luther College has provided me with valuable opportunities to work with various technological skills, enabling me to develop reliable software that is relevant to modern society.
Through my Computer Science curriculum, I have gained proficiency in Full Stack, Front-End, Back-End, Security, and Network Engineering. These skills were reinforced through intensive projects that challenged me to apply these concepts in real-life situations.
I have a diverse knowledge base, with experience in programming languages such as Python, Java, JavaScript, and SQL. Recently, I have also delved into Scheme and functional programming. In addition, I have familiarized myself with frameworks such as React, React Native, and Vue for frontend development. Currently, I am expanding my skills in front-end development with Next.js. For back-end development, I am proficient in Flask, Django, and Node.js, enabling me to create full-stack applications.
In the field of History, my studies have allowed me to understand the historical connections between various cultures and communities worldwide.
I have delved into East Asian history, South Asian history, African history, environmental history, and the reformations during Renaissance Europe.
I have also explored the Classics, diving into the history of Ancient Greece and Rome, and engaging with the works and tragedies of renowned tragedians such as Aeschylus. These explorations have deepened my curiosity about ancient societies. Additionally, I have delved into the practices of ancient physicians in Ancient Egypt, Mesopotamia, Greece, and Rome, as well as their views on astronomy and their theories regarding the composition of the universe.
Languages
English - Swahili- Spanish(Beginner)
Interests
Software Engineering, Stand-up Comedy, Soccer, Video
games
•Front End: Javascript(ES6), React, React-Native,
Vue, MUI, Chakra UI, HTML, CSS, Bootstrap, React-Bootstrap, Lodash
• Back End: Flask, Django, Node.js, SQLite3, Firebase, REST API, JSON
• General Programming Languages: Python,
Java, Javascript,
Scheme, SQL
• Testing/Deployment, Developer Tools: Firebase,
Python Anywhere, Heroku, Git, npm, Webpack, Babel, Visual Studio,
Socket Programming, Information Security
Relevant Coursework
• Fundamentals of Web Programming
• Data Modeling and Querying
• Introduction to Computer Science
• Writing in the Major Lab
• Data Structures and Algorithms
• Object-Oriented Programming with Java
• Advanced Data Structures and Algorithms
• Computational Models
• Internet Programming
• Programming Languages
• Information Security and Assurance
• Computer Networks
I had the responsibility of assisting the athletic department at Luther College's Regent's Center. My duties included closing the building, overseeing the smooth flow of regular games, and providing assistance to individuals visiting the facility by offering directions. Furthermore, I handled ticket sales for NCAA events at Luther and ensured that concessions and directions were clearly communicated to visitors.
I worked as a front desk assistant at Legends Gym, where I not only assisted individuals at the front desk but also provided support to those in need of spotting and assistance with any gym-related questions. Additionally, I took responsibility for ensuring the cleanliness and proper condition of the facility.
I worked as a Fundraiser for the Luther College Phonathon program, a program developed by the Luther Development Office. In Phonathon, my role was to reach out to alumni, seeking donations to support Student Scholarships and Athletic programs at Luther College. It was a rewarding experience to connect with alumni and witness their generosity positively impacting the college community. I took pride in being part of a program that empowered students and contributed to the growth of the college.
Norse Mates is a College Roommate Finder Application developed by our Senior Project team.
To create a comprehensive solution, we utilized React-Native, Node.JS, and PostgreSQL. My primary responsibility in the project was designing and developing a one-on-one chat feature to facilitate communication between potential roommates. This involved implementing the necessary components and functionality to ensure smooth and efficient messaging. Collaborating closely with the backend team, we employed POST requests to establish a secure login and registration system.
By enabling users to create accounts and authenticate their credentials, we ensured the privacy and security of their personal information.
In addition to the chat feature, I took the lead in developing the header and footer user interface elements. These components played a crucial role in enhancing navigation throughout the application. By implementing intuitive design principles and user-friendly interactions, our aim was to create a seamless and intuitive experience for users. To enable real-time chat functionality,
I engineered a chat update feature for the one-on-one chat.
Leveraging Socket endpoints,
I implemented the necessary code to ensure that users could receive and view new messages instantaneously, enhancing the responsiveness of the chat system.
Click here to watch the Norse Mates presentation video
Click here to download the Android APK
During my journey of learning React, I embarked on developing an application called Mezani, which means "table" in Swahili. Mezani is a web-based movie sorting system that aimed to enhance the user experience. Leveraging my skills in JavaScript, React, Bootstrap, and Lodash, I set out to create a robust and intuitive application.
To establish a solid foundation for the front-end, I utilized Bootstrap to construct the user interface. This allowed me to create reusable React components, resulting in a more efficient development process and an improved visual experience for users.
In order to ensure proper organization of movies within the local database, I harnessed the power of Lodash. By utilizing its functionalities, I successfully implemented effective sorting and filtering mechanisms, enabling seamless navigation through the movie collection.
To provide users with a personalized experience, I optimized the utilization of Bootstrap forms. This enabled the development of a simple yet intuitive login form, allowing users to access personalized features and preferences.
Recognizing the importance of efficient data management, I implemented pagination within Mezani. This enhancement significantly improved the organization and accessibility of the available movies, allowing users to browse through multiple pages of movie listings effortlessly.
Click here
I implemented a distributed vector routing protocol that facilitated collaboration among routers and efficiently handled multiple connections asynchronously. Each router in the network maintained a set of neighboring routers, along with a routing table dictionary adhering to the format "{ destination: [cost, next_hop] }".
This project was developed using Python and executed on the Ubuntu platform.
The protocol's objective was to optimize routing decisions by dynamically updating the routing table based on information exchanged among routers.
Click here to check the Routing project
During the Fall of 2022, I worked on a project to implement client-server communication using the Daytime protocol (RFC 867). This protocol enables clients to retrieve the current date and time from a server.
For this project, I developed both a TCP and UDP server that could respond to client requests with the current date and time for a specified location. To achieve this, I utilized the 'net' module for the TCP server and the 'dgram' module for the UDP server.
These modules allowed me to handle client connections and messages efficiently. I utilized the 'getTime' function that I had defined to provide the necessary information to clients.
The implementation served as a concise demonstration of utilizing Node.js to develop server functionality and communicate with clients using different protocols. This project provided me with valuable experience in working with server-side development and utilizing various protocols.
On the client-side, I implemented the Daytime protocol using Python. I developed a script that allows me to connect to a server and retrieve the current date and time. The script supports both TCP and UDP protocols, giving me the flexibility to choose the communication method with the server.
For the TCP implementation, I used the socket module and established a TCP connection with the specified server and port. After connecting, I received the server's response containing the current date and time, which I then printed to the console.
Similarly, in the UDP implementation, I used the socket module with the SOCK_DGRAM parameter, indicating a UDP socket. I sent a UDP message to the server, received the response, and printed the obtained date and time to the console.
To enhance the versatility of the client script, I incorporated command-line argument parsing using the argparse module. This allowed me to specify the desired protocol (TCP or UDP) when running the script.
The project showcased my skills in server-side development using Node.js and client-side implementation using Python, with an emphasis on working with TCP and UDP protocols.
Click here!
I undertook the development of a comprehensive full-stack project, a Gym Check-In Application. To ensure efficient data management, I designed a robust database system utilizing SQLite3, allowing for secure storage and easy access to user data by the administrator.
To enhance functionality and facilitate seamless communication with external systems, I engineered the integration of Requests, enabling smooth interactions with relevant APIs.
For an intuitive and visually appealing user interface, I leveraged the power of Bootstrap and CSS to craft a visually appealing and user-friendly design.
On the backend, I employed the Flask framework, utilizing its capabilities to handle HTTP requests and responses. Through the utilization of GET and POST methods, I ensured seamless user interactivity and an optimal user experience.
The culmination of these efforts resulted in a feature-rich Gym Check-In Application that efficiently manages user data, communicates with external APIs, presents an intuitive user interface, and can be accessed seamlessly online.
Click here to visit the Gym Check-in repository repository
During the spring of 2022, I undertook a Security Project focused on developing a Custom Virtual Private Network (VPN) application. Using Python, I designed a secure message exchange system that allowed users to transmit data securely over a shared network, simulating the experience of being connected through a private network. To ensure secure communication, I implemented a cryptosystem negotiation exchange, enabling the client and server to establish uniformity on preferred ciphers. Additionally,
I architected a Diffie-Hellman Key Exchange protocol to establish authenticity between the client and server pair.
As part of the project, I engineered a robust data transfer mechanism that involved the server validating the HMAC hash and displaying the received data on the console.
This comprehensive solution provided enhanced security and confidentiality for data transmission within the network.
This Java application served as a debugging tool that enabled the users to detect errors in assembly language and also perform assembly language operations as directed by the instructions in the program. To design an interactive GUI framework, the use of Java Swing was utilized throughout the whole project. Furthermore, the project was organized using a Model-View-Controller framework which enabled a swift configuration of the specifications of the program.
The program utilized Java libraries such as beans, io, lang, swing, and util which were essential for the functionality of the program.
This was developed by a team of four members which improved my collaborative skills and teamwork
Click here to download the VM-252-Debugger-with-Java code
I developed a full-stack web application that generates secure passwords for clients, taking into account parameters such as length and special characters. The application also assesses the strength of the passwords based on their entropy.
For the front-end, I employed HTML, CSS, and the Bootstrap framework to create an intuitive user interface. On the back-end, I utilized Flask and Django, two powerful Python frameworks for backend development. With these frameworks, I implemented the functionality to compute the entropy of passwords and set the parameters for password generation.
This application serves as an educational tool, highlighting the importance of strong passwords in ensuring information security. By providing users with secure password options, it promotes best practices in password management.
Click here!
This Front- end application was developed to emulate the Premier League score system. The application provided data such as scores, fixtures, and match data of the English Premier League.
Javascript was used to fetch data from the Premier League API and parsed it through JSON.
The use of bootstrap and CSS was utilized for interface design and the use of Model-View-Controller Javascript framework was used for event handling.
Click here!
Phi Alpha Theta is a prestigious national honor society that promotes the advancement of historical studies and research among undergraduate students.
Founded in 1921, it boasts a membership of over 400,000 individuals across the United States,
with approximately 9,000 new inductees joining each year.
For more detailed information about the organization, please visit their official website at https://phialphatheta.org/.
I had the privilege of being inducted into Phi Alpha Theta due to my exceptional performance in History. As a history minor, I excelled in my classes, which led to my recognition and induction into the society. The induction ceremony, organized by the Luther history community, provided me with the opportunity to join a community of talented individuals who share a passion for history.
As a board member of the Luther Black Student Union, my primary responsibility was managing social media and providing updates on plans and events organized by the Luther BSU. This allowed me to extend my activism and raise awareness about racial injustices faced by the black community in the United States. I also practiced intersectionality by highlighting injustices against other minority groups. The Luther BSU platform served as a tool to combat mistreatment of minorities . Being part of the executive board, I regularly interacted with the black community through organized meetings, where I took part and facilitated discussions on Thursdays.
As the treasurer of the Computer Science Society, I handled budgeting for various events related to the Computer Science department. For example, in spring 2022, I organized a code challenge and managed the budget for prizes awarded to the winners. This experience enhanced my organizational skills and taught me proper money allocation. Code challenges provided an opportunity for CS students to test their interviewing skills with leetcode-style questions and trivia on Data Structures and Algorithms.
During the spring of 2021, I had the privilege of working as a Mathematics tutor, providing assistance to my peers with any math-related challenges they encountered.
This opportunity allowed me to make a positive impact by helping students with their math assignments and coursework. Through this experience, I developed valuable skills in organization and teaching, honing my ability to effectively communicate complex mathematical concepts.
One area in which I particularly excelled was in assisting students with calculus. By working closely with them, I gained a deeper understanding of various approaches to problem-solving and was able to tailor my guidance to suit their individual needs.
At Luther College, the Center for Academic Achievement plays a crucial role in supporting students with a wide range of academic needs. Whether it's offering tutoring services or providing assistance to students facing academic obstacles, the center is dedicated to ensuring that every student receives the help they require to thrive academically.
Davis United World College (UWC) Scholars are exceptional young individuals who have completed their education at a UWC school and then pursued their higher studies at select U.S. colleges or universities.
The UWC experience, characterized by students from diverse backgrounds living and learning together in 18 locations across five continents, has not only provided them with academic and personal challenges but has also broadened their perspectives and fostered an appreciation for diversity.
Upon enrolling in one of our partner U.S. colleges or universities, UWC graduates receive financial support for their undergraduate education through institutional grants dedicated to providing need-based scholarships for Davis UWC Scholars.
I had the privilege of becoming a UWC Davis Scholar and attending Luther College following my graduation from UWC Thailand. The UWC experience, coupled with the opportunity to pursue my higher education, has had a profound impact on my life. It has brought me closer to achieving my dreams by obtaining a university degree.
ColorStack is a non-profit organization dedicated to assisting black and Latinx computer students in advancing their trajectories in the tech industry. As a nonprofit, ColorStack focuses on fostering a robust cross-campus community, offering community building initiatives, academic support, and career development opportunities on a large scale. Personally, I decided to join this community because I deeply value diversity and inclusion. Connecting with other students who have encountered similar challenges in the field of computer science has been incredibly valuable to me. ColorStack has provided me with mentorship and invaluable insights into various opportunities within the industry.
This is a national honor society for undergraduate students dedicated to the advancement of historical studies and research.
Established in 2010-2011, the Academy for the Talented provides a platform for exceptional students to pursue intellectual growth and academic learning. The Academy's focus is on fostering personal development and exploration of various academic disciplines.
In 2018, during my 11th grade at UWC Thailand, I had the fortunate opportunity to attend this transformative experience.
Attending the Academy exposed me to a diverse group of intellectually driven students from across Asia, which inspired me to delve into STEM and coding. Although I had no prior coding experience, this program ignited my passion for coding and led me to choose Computer Science as a focal point in my college applications.
I was introduced to Python and Google Sketches, and our project involved building a virtual reality system to address the issue of limited space in Hong Kong. It was a fascinating experience, especially since I had primarily focused on natural sciences before.
My team's efforts were rewarded with second place, and I felt a great sense of pride in my accomplishments. Moreover, I formed long-lasting friendships with fellow participants who continue to excel in their respective fields.
Additionally, being in Hong Kong allowed me to appreciate the remarkable architecture and vibrant atmosphere of the city.
The JP Morgan Software Engineering virtual experience offered me the chance to explore life as a software engineer at JP Morgan Chase and acquire valuable technical skills. Throughout the program, I worked on tasks such as interfacing with stock price data,
implementing open-source code for data visualization, and creating trading dashboards.
This immersive experience allowed me to develop practical skills in financial data analysis,
Python programming, and utilizing JP Morgan Chase frameworks and tools like Perspective, React, and TypeScript.
I also gained expertise in web application development, equipping me with the necessary skills to excel in the software engineering field.
Upon completion, I received a prestigious certificate from JP Morgan Chase, validating my expertise in software engineering. By sharing my work and profile, I had the opportunity to stand out and catch the attention of the JP Morgan Chase HR team.
Joining the JP Morgan Software Engineering virtual experience not only enhanced my technical abilities but also provided invaluable insights into the dynamic world of software engineering at JP Morgan Chase. It was a remarkable opportunity to build a solid foundation of skills and propel my career in the software engineering field.