Posts

CST 438 - Software Engineering - Week 8

Image
  List the 5 most important things that you learned in the course, and why you chose them. The five most important things I learned in this course are JUnit testing, full system testing (covering both backend and frontend), how to use Postman, working with Vite, and using the H2 database. Before this class, my experience with web development was pretty limited, and honestly, I think many of my classmates came in with more knowledge than I had. That made the course challenging for me, but in a good way, it pushed me to learn quickly and adapt. Each of these tools and skills feels practical and relevant for real-world development, especially JUnit and system testing, which taught me how important it is to verify that everything works together as intended. Postman made it much easier to understand and test APIs, while Vite showed me a faster and more efficient way to work on frontend projects. The H2 database was also helpful because it gave me a lightweight way to handle data during ...

CST 438 - Software Engineering - Week 7

Image
  Describe some of the differences between using an Agile process and using a  Plan and Document (or Waterfall) process.      One big difference between agile and plan and document or also known as waterfall process is how flexible they are. With agile, the team works in short cycles and gets feedback quickly, so it is easier to make changes along the way. This is really helpful when the project is still evolving or when the client’s needs are not really clear from the start. On the other hand, the waterfall approach is more structured, you plan everything upfront and follow each step in order. That can work well for projects where the requirements are stable and unlikely to change, but it can also be frustrating if something needs to be changed later, because you'd have to go back and redo earlier steps. Agile feels more collaborative and adaptable, while waterfall is more rigid and focused on sticking to the original plan.

CST 438 - Software Engineering - Week 6

Image
  This week I learned more about how companies like Google run their systems using things like containers, virtual machines, and serverless computing. One thing that grabbed my attention was how batch jobs are managed. I did not realize how important it is to break up jobs into small chunks and use things like checkpointing to keep things running smoothly, even if something goes wrong. I also learned what hybrid cloud means and how companies mix their own servers with public cloud infrastructure to save money and stay flexible. Some of the quiz questions were tricky at first, but going over the reading helped everything make more sense.

CST 438 - Software Engineering - Week 5

Image
  This week I learned about the different challenges that come with running large tests, especially at big companies like Google. One of the main things that grabbed my attention was how ownership becomes harder when a test involves many teams. I also learned that not having a standard way of running tests can cause confusion and slow things down. Another interesting point was how hard it is to run large tests if they do not follow the usual systems, which can frustrate engineers. Overall, chapter-14 helped me understand why large tests need good planning and clear roles.

CST 438 - Software Engineering - Week 4

Image
  One thing that grabbed my attention while reading Software Engineering at Google was how much thought goes into greenfield reviews. I always assumed reviewing new code was mostly about making sure it runs and does not have obvious bugs, but at Google, they treat it almost like a design checkpoint. They care about whether the code matches the original design, if it has been properly tested, and even whether it will still make sense six months from now. It kind of blew my mind that something like, is this easy to maintain in the future?, is a major focus before the code is even used. It made me realize that writing code is only half the job, thinking about how it will age is just as important. I never thought of code as something that could expire, but now I see why they treat it like a long term investment.

CST 438 - Software Engineering - Week 3

Image
  How does React compare to other frameworks you have used for front end development?  What do you like, and not like, about React? I do not have a lot of experience with web development, so I have not really used other front end frameworks besides React. At first, React felt a bit confusing to learn, especially with all the components and state stuff. But once I got the hang of it, I started to really see how helpful it is. It makes building user interfaces faster and easier to manage, especially when working on bigger projects. What I like most is how reusable the components are, you do not have to repeat yourself as much. What I do not like is that there is kind of a steep learning curve in the beginning. Still, I think learning React is one of the best skills to have if you want to get better at front end development or grow professionally in this field.

CST 438 - Software Engineering - Week 2

Image
  In lab 1, we used something called a Mock in our JUnit tests. A Mock is kind of like a fake version of a class or object that we do not want to use directly in our tests. It helps us test just the part of the code we care about without needing everything else to work. For example, if one part of the code talks to a database or an API, we can use a Mock instead so that our test runs faster and is not affected by outside stuff. This makes it easier to find bugs and keep our tests simple and reliable.