Hello, I am Brayan. I am a software developer.

I am a senior at the University of Houston looking for employment opportunities in the computer science field. I value clarity and perseverance above all else. These ideals guide my general approach to problem-solving and life in general.

I was born in Tegucigalpa, Honduras, and moved to the United States at the age of 10. I enjoy gaming, coding, playing soccer and volleyball, and trying new foods. The purpose of this website is to serve as a portfolio and to expand my CSS, HTML, and JavaScript knowledge.

Here is my Git, Gmail, and LinkedIn:

My Computer Science Journey:

My journey as a computer scientist sparked when I was in middle school. I took a class called "Globoloria". It is a strange name, but its purpose was to try to introduce computer science to students through game development. I didn't really learn much in this class. It was mostly copying and pasting Java code given to us and messing around with some values to change colors, adding our own character models, etc. It felt like I was not the one who made it. However, despite not learning much from this class, I did gain something from it. I now knew I wanted to go into computer science. Though at the time I didn't know that it was called "computer science." It was not until my first year at the University of Houston, and the first semester since COVID, that I would truly begin to develop as a computer scientist. I had my first real computer science course, and it was quite the wake-up call. So far, all I had done in the past was copy and paste some code and mess around with values to better understand it. However, this was no longer an option. In my Intro to Computer Science course (mainly focused on C++), I felt like I was extremely behind everyone else. As far as I was concerned, everyone had done some type of computer science course, even if it was in a different coding language. It was a huge struggle, so I had to put in extra work to be able to catch up to others and make HW's feel manageable. So far everything was going well, and I was scoring full marks in all assignments. But then the midterm came. For me, and for many others in my class as well, it went horribly. I felt extremely ashamed and disappointed in myself, but it gave me some insight into what studying computer science would be like. It would not be easy, and I would have to put in a huge amount of work if I wanted to score good marks in exams. After putting in loads of effort and having a stressful first semester, I managed to score an A. Then, in my final exam, I scored a 97%, which made me feel very proud of myself and fulfilled. Here, I learned one reason why I like computer science. As you continue to improve and complete projects, it feels very rewarding. I get to see my progress! After I finished data structures, I got into different branches of computer science. I started with data science and digital imaging, which was really interesting and very refreshing after going through all the main components of computer science. It was nice to get a small break from learning the basics. I gained more interest in data science in general than I did in digital imaging, though I will say I believe my digital imaging project was more enjoyable to make than my data science project was. The next two branches that I dabbled with were AI/Machine Learning and Database Systems. Both projects for those classes respectively were very challenging to make. However, it was very enjoyable as well, and I gained a new interest in database systems. This database class had me create a database and make a web application that could connect to my database and interact with it. Completing this project was gratifying, especially after struggling to complete my team members part. All the courses so far make me feel like I have learned so much. And even though this is the case, I know that I have a long way to go before I can complete this journey as a computer scientist.

Portfolio Website

This is the first project that I did solo and out of school. I decided to build my website with links to my GitHub, Gmail, LinkedIn, and other important work-related platforms. I also wrote a little about myself to let readers know who I am and how my computer science journey has been going so far. I created tabs and made a section for all the projects that I have worked on. This is the first project where I also purchased a domain to host this website. It was an interesting experience to host a website this way, but I enjoyed this project throughout since I was in no rush. I also got to practice some more on my CSS, HTML, and JS.

Clinic DB w/ UI

This is a recent project of mine and one that I am very proud of. What was once supposed to be a group project turned out to be one of the toughest duo assignments that I have ever worked on. This project ended up being very tough because I had to do double the work because three teammates didn't do their parts. I really enjoyed creating the relational database for a clinic with all its different relations, attributes, and triggers, as well as building what was technically my first website filled with data entry/modification/deletion forms. This application was made with different users in mind, those being doctors, admins, and patients. It also had its own user authentication system to go along with it. Connecting the database to the web application was a bit tough to figure out because I had no prior experience doing something like this, and we were limited to using only vanilla methods to connect these two. However, it did not take too long to figure out how to properly connect these two. Once this was done, my teammate and I were speeding up creating all the different data entry/modification forms and views and later connecting them. In my opinion, the most difficult part of this project was hosting the website and database through AWS. Thankfully, I get to practice hosting a website thanks to this portfolio website. I am extremely proud of this project, however, there are two things that I do regret about this project. One is the color scheme (which I didn't get to pick) and the other was the lack of prepared statements and ways to ensure non-authorized users cannot access the data. At the time that I finished this project, I did not even know that these things were necessary or even existed. In my mind, I thought they were already protected by whatever DBMS I was using. So, this might call to revisit this project soon to change both this application's aesthetics and security.

The following are the logins:

  • Username: BM100 & PW: admin; this is the admin login
  • Username: Doctor & PW: 12345; this is the login of an employee
  • Username: SH7231 & PW: 12345; this the login of a patient
  • Please feel free to create your own patient account! However, you won't be allowed to make an appointment with a specialist until giving that account permission through the doctor account.

This is a snapshot of the login page to my web application.

This a snapshot of the agents moving around the world while the process is still running

2 Agents in a 3D World:

This is one of my most recent projects where I was tasked to apply methods that I learned in my AI class. I was tasked with devising two agents that are placed in a 3D world of size 3x3x3. These two agents were tasked with traversing the 3D world and collecting blocks at pickup cells and dropping them off at drop off cells. The actions that the agents take yield rewards, those being: regular cells have a reward of - 1, pickup cells (and picking up blocks) 14, drop off cells (dropping off blocks) 14, and risky cells -2. There are a few more rules in this world like the two agents can't be in the same cell, pickup cells can't be accessed if the agents already have a block, and drop-off cells can't be accessed if the agent does not have a block. With those rules out of the way, the agents traveled around the world by using either SARSA or QLearning, depending on the experiment that is being run. Both of these learning strategies employ learning policies, being P-Random, P-Greedy, and P-Exploit. P- Random chooses a direction randomly as long as it follows the rules and is not out of bounds. P-Greedy chooses the direction based on which future direction has the highest Q-value and is valid. Finally, P-Exploit randomly chooses between either P- Greedy or P-random based on an 80/20 proportion respectively. The agent will travel around the world using all these methods and updating the Q-table to take better decisions as they continue traveling around the world with a limit of 10,000 steps to pick up all blocks and drop them off while yielding the highest possible reward.

Tennis Data Analysis:

This project, along with my CT Scan project, is one of the early projects that I worked on. In this project, I dabbled in data science, being tasked with finding a data set, running a few of the algorithms that I was taught and interpreting the results. I ended up selecting a Tennis tournament data set with 2000+ observations. I began by cleaning up my data by deleting any predictors that I deemed unnecessary, filling in any missing values, and scaling/factoring all my parameters. After all the data cleaning was completed, I split my data set into a training and a testing set and then I performed the Kth-Nearest Neighbor and SVM algorithm on my two sets. Both of my data models were able to yield an accuracy of 80%+, meaning that we will be able to successfully predict the results of a match correctly 80% of the time. My report mainly consisted of talking about what 80% accuracy means, all the nuances of my data set, a small section talking about over-fitting, and how the data models work.

This is my confusion table after running a radial SVM

This is an example of a 5 slice image

CT-Scan Simulation:

This is one of my early projects. In this project the goal was to create a simulation of a CT scan, in this case, a virtual CT scan. We begin this project by creating an object to perform the image reconstruction of the CT scan. We call this image a virtual phantom which serves as a stand-in for what a CT scan is normally used for. I created my phantom to simulate a human brain and allow the user to choose the dimensions of the phantom (which will be of size nxn). After the creation of our object, we then must simulate the image slicing that a CT scan does. Normally, a CT scan scans sections of the full object and then puts them back together. Since I don't have pre- made slices for my image, I chose to let the user input the number of slices that they would like to see for the image and the direction of the cuts (diagonal, horizontal, or vertical). The orientation of the images plays a huge part in the way the cut is done. Horizontal and vertical cuts are quite simple. However, diagonal cuts are not as simple. I decided to use the linear inequality x + y = ((row+col)*(1/numberofImageSlices)) to figure out the diagonal slices that should be done. Keep in mind that equation is solely for the first slice, but the rest follow a similar pattern. I then create X number of slices, all based on user input to our image. Finally, we get around to image reconstruction, which the CT scan is all about. Using the slices that were created previously, I put together the image that we made before. I create an empty image with the size that the user asked for and for horizontal, diagonal, and vertical images, it is quite simple. We are able to add the images next to each other as they are being sliced in order to avoid any overlap or wrongly ordered images.