Sunday, July 19, 2026

SWE - Week 4

 CST 438 - Software Engineering Week 4

What is the most interesting thing you have learned in your reading of "Software Engineering at Google"?

There are a few things that have caught my attention from this book. First, it is how they explain that in each Pull Request the code reviewers are expecting to also see the unit test from the created class. And also, how a PR should not exceed 200 lines of code "If the code is over 200 lines of code, it is best to break the code review into multiple reviews so that a single code review deals with less than 200 lines of code". This makes sense because at work, I am currently working on testing multiple classes in a microservice using the Mockito Extension, and I had to split my commit into multiple ones, so the code reviewers don't need a long time reviewing one PR containing 20+ files. This week has been particularly interesting since we started collaborating on GitHub with my team, I am excited to see how the app comes along.

Monday, July 13, 2026

SWE - Week3

 CST 438 Software Engineering - Week 3

Describe what are the good points about using Git for source code management.  What are possible problems that Git merge does not solve when merging code from different developers? 

Even though this week has been surprisingly challenging for me, managing internship + family + school, I am happy that we got into the actual project, which really relates on how things work at work. We have 2 week sprints, and after those two weeks, we go into planning, which usually takes all day. We use GitLab instead of GitHub, but they are both very similar, just a few differences. For instance, GitHub uses pull requests, but GitLab uses merge requests, which are basically the same thing. I am so glad this class is so focused on real industry work because all the content so far applies to my internship.

I think Git is so important because it helps developers try different versions of the code, while giving them the ability to roll back to earlier commits if needed. For example, I work in a program that shares a baseline framework with another two programs, and I was improving the way the swagger gets displayed and I utilized application.properties to add multiple profiles getting rendered, while it worked for our program, it didn't work for the other two, so that means I broke their swagger. One of the senior's response to my mistake was: no worries, that is why we have Git, to be able to see our oldest versions and implement features that might or might not be needed. So Git really helps to visualize all the changes we make, and at the end of the day, it improves efficiency.

One of the problems that Git has is definitely the conflicts when other developers are working on the same feature or on the same line of code, because when both get commited, the second one tends to have merge conflicts. Luckily, Git shows you that, so you can make decisions like Dr. Wisneski was showing in the lecture.

Monday, July 6, 2026

SWE - Week 2

 Week 2 (CST438)

Summarize what you learned about React this week.  In your opinion, what are the strengths and weaknesses of React

It is my first time learning React. I have been working in the back-end, so I don't really get to see what the front-end does besides what they share in scrum meetings. What I enjoyed the most while writing React features was the ability to see how the back-end is running in the background while the front-end is running separately with the `npm run dev` command, but together they make together an app. Without the front-end an user can't really use an app, and without the back end, the UI acts like decoration but with no functionality. The beauty of it to me is how they depend on each other and how they both make an app function. As far as weaknesses, I think the fact that we need to import external packages and does no thave built-in tools for routing, state management, or API calls, and if a package becomes deprecated this might be time-consuming to keep updating it. Another weakness I see is how React re-renders the interface when data gets updated or when it changes. Sometimes this could be unnecessary when one change can make a whole re-render to load again. Overall, I enjoyed learning React.

Monday, June 29, 2026

SWE - Week 1

Software Engineering - CST438

Week1

What did you expect a course in Software Engineering would cover?   

So I am currently interning at a Defense company as a Software Engineer, and I was so surprised to learn that we were going to be learning Spring Boot because this is what I currently use every day at work, I did not expect that. I am supporting a team in the backend, and I've been learning Spring Boot, OpenAPI, and some of the frameworks that Spring offers. The first lab was the intro to what I do at work, and I am very happy that what we are learning in this class is actually very related to the current industry. With Spring Boot, we can avoid all the boilerplate code and simplify the use of RESTful APIs. At work, we use Kubernetes for deployment, Redis for caching, Kafka topics for data records where producers write the events and consumers read the stream of data. I am looking forward to learning more and collaborating with my teammates.

Monday, April 20, 2026

Service Learning CST462S

 Reflection:

What went well? What would you improve? What was the most impactful part? What challenges did you face? What advice do you have for future SL students?

The results we obtained after we finished the service project hours, is what went well. I was able to deliver a step-by-step manual of how to list and ship items on eBay for the non-profit organization Homeless to Forever. They were very grateful to how much we helped them understand from a non-technical side how to run their shop without having to face so many technological challenges. This goes in hand with this being the most impactful action we did too. They expressed they have been looking for these kind of results for over a year but no volunteer/intern has been able to achieve this. The challenges I achieved were in the beginning of the service project, our supervisor did not have the technological tools and the time to provide us with the work to do, so it was very challenging to follow up with her so we can get hours up to speed and not to fall behind. The best advice I have for future SL students is actually keeping very throughout communication with their supervisor so both parts know each other's expectations.

Monday, February 23, 2026

Week 7

 Week 7 (2/18-2/24)

This week's content had a lot of topics and algorithms to cover. These are some of the concepts I learned this week:

Counting Sort: Count how many times each value appears (frequency), then build the cumulative distribution to place items in sorted order.

Radix Sort (LSD): Sort numbers digit by digit starting from the least significant digit (ones place), using a stable sort each pass.

Dynamic Programming (DP): Solve problems by storing results of smaller subproblems and building up to the final answer.

Coin-Collecting Problem: In a grid, find the maximum coins collectable when moving only right or down using a DP table.

Coin-Row Problem: Choose coins in a row to maximize value without taking adjacent coins

Warshall’s Algorithm: Finds the transitive closure of a graph (reachability: whether a path exists between vertices).

Floyd’s Algorithm: Finds all-pairs shortest paths by updating distances with intermediate vertices.

Greedy Method: Build a solution step by step by always choosing the best local option at the moment.

MST (Minimum Spanning Tree): Connect all vertices in a weighted graph with the minimum total edge weight and no cycles.

Prim’s Algorithm: A greedy MST algorithm that starts from one vertex and repeatedly adds the smallest edge connecting the current tree to a new vertex (weights matter first; alphabet only breaks ties).

Monday, February 16, 2026

Week 6

 Week 6 (2/11-2/17)

For this week, we practiced AVL trees by inserting values and fixing balance with rotations. We did 2–3 trees by inserting keys, splitting 3-nodes, and reading results level-by-level. We worked with max heaps: inserting (bubble/sift up), deleting max twice (swap with last, sift down), and connected this to heapsort and the array/bottom-up heap build method. Finally, we covered hashing: using 𝐾 mod 𝑚, detecting collisions (separate chaining), resolving them with linear probing, and using load factor thresholds to trigger rehashing to a larger table size. Going to office hours has been extremely helpful for me in this class to better grasp the concepts.

SWE - Week 4

 CST 438 - Software Engineering Week 4 What is the most interesting thing you have learned in your reading of "Software Engineering at ...