Introduction

Hello, I am Owen Kemp. I am currently a student at Wright State University. My majors are a Bachelor's of Science in Computer Science (BSCS) and a Bachelor's of Science in Physics. I am a senior in Computer Science and a Sophomore in Physics.

My motivation to do Computer Science is that I love learning about how to build and optimize software. I first started making simple games in Roblox around 2018 with a primary focus on trying to build maintainable software. I enjoyed programming a ton and worked on random side projects between schools. Because of this, I majored in Computer Science when I first went to University.

My motivation to do physics is that I also love to understand how the physical world interacts. I first got started into physics when I took physics at Wright State in Fall 2023. I found physics to be very interesting and decided to major in it 2 years later after taking more advanced physics courses.

My goal with both majors is to understand how to build and optimize software designed for physical products. An example includes creating software for robotics.

My Personal Github is Striker2783 and my Github for school is Porogaramu. I do care a bit about my privacy, so almost all of my accounts are not my actual name, but they are somewhat consistent in naming.

Projects

Knowledge

Programming Languages

  • Java: I learned this through my university's Computer Science I and II courses. I like Java because it is a nice high level language that also teaches Object Oriented Design. If I was given a choice to what language to use for a coding competition, I would probably choose Java due to its high level nature.
  • Rust: I learned this through reading through the Rust book and programming algorithms to solve problems. I like Rust due to its mix of high level and low level features. It also taught me how to be safe when working with low-level languages like C/C++. It has a lot of positive features that I love like macros, traits, and default testing. Of course, it also sometimes has a lot of boilerplate when it comes to lifetimes and generics. If I was to make an algorithm for production use, I would use Rust due to its speed and safety.
  • Javascript/Typescript: I also learned this through my own. I play many HTML games and I initially learned some Javascript by looking through the game's code to see how the game worked (and maybe exploit it a bit). I started really learning the languages when I started to learn about web development. I do like the dynamic nature of Javascript and being able to easily program stuff in, but it is a pain to debug. That's why I like Typescript more, which allows for better types, making it easier for me to read code and program stuff in. Typescript can be a pain with a bunch of types. I mainly would use this if I was doing a full stack application with the same language.

Framesworks Used

  • Spring Boot: this ia mainly a backend framework developed for Java to create API endpoints. I have used this framework in two of my projects: Restaurant Ordering System and a Car Tracking Application. I have also used JUnit (Unit/Integration Testing), Java Persistence (JPA), Mapstruct.
  • NextJS: this is a full stack framework written in Javascript and developed by Vercel. I used this framework when developing a website for a Youtube channel that I helped manage.

Frontends

  • React: a reactive frontend framework for interactive websites. I have used this frontend a bit in building websites (not listed in this portfolio). I know most of the basic features of React and how to build React websites.
  • Java Swing: I learned this in my Computer Science classes and used it in the Restaurant Ordering System.

Tools Used

  • Visual Studio Code: This is the main code editor I use when programming any language. It has vast numbers of extensions that I use to improve my coding experience. It also contains many features I love like multiple cursors, quick open, and quick find. A few things that I dislike is that it can be slow with large projects and a lack of features IDEs have.
  • Git: This is the version control system I use for any of my projects. I mainly use Git on the command line and in VSCode where it's a bit more convenient. I have done plenty of squashing of commits using Git.
  • Github: This is the main site where I push my repositories. I have used many features of Github, such as Issues and Pull Requests, creating workflows, and configuring a repository.
  • Linux Commands: I know plenty of Linux commands to navigate through a Linux system. I use Ubuntu LTS on my main computer.

Activities

School Events

  • Wright State's 2023 and 2024 Coding Contest: A contest at Wright State University where I participated in the contest and won first place in both years. This contest features coding questions for contestants to solve.
  • ICPC East Central Regional 2024: A regional competition for the International Collegiate Programming Contest (ICPC). I was in Wright State's Gold team and the competition is linked here.
  • Wright State's Hackathon 2023: I partcipated with a team of two other people. This event lasted for 24 hours in which my team used Sveltekit and a Content Management System to create a website that allows the addition and tracking of products in a supply chain. This is the project link.