Oregon State University|blogs.oregonstate.edu

Category: Uncategorized


Coping With “Getting Stuck”  February 9th, 2023

Throughout my four years of classes at OSU (averaging one class per quarter) and my two years in software development, there have been many times that I have gotten “stuck” on a project. Sometimes they have been simple issues where due to inexperience, I can’t come up with how to proceed with one aspect of a project. Other times they are more complex issues that I have encountered a “hard stuck”, where I could not make progress on any part of the project until I solved a problem.

In the first instance where I would be stuck on one aspect of a project, I tend to swap to a different aspect of the same project to get my mind off of the issue at hand. This tends to calm me down, so I don’t get as stressed out about it. Sometimes I indirectly solve these problems in my sleep or have an ah ha moment just as I am waking up in the morning.

This type of sleep problem solving reminds me of something I heard about Albert Einstein. When he would encounter a problem where he had a lot of thinking to do on a subject, he would take a nap in the middle of the day. In his hand he would hold ball bearings with his arm hanging down to his side while sitting in his chair. When he would start drifting into deep sleep, his hand would relax and drop the ball bearings. The thud of the ball bearings hitting the floor would wake him. He would then write down thoughts that came to him during his nap. Getting enough sleep at night that you get into deep sleep definitely has helped me many many times to solve complex problems that I would otherwise have been stuck on grinding away at night.

The other instance of being stuck on an entire project, while rare can be very stressful. In one of my earliest semesters at OSU I because paralyzingly stuck on an issue that took me right up to the wire of a hard deadline. This was a 2 week project, where I was hard stuck for about three days with only four days left in the project. In those three days I was in a panic. I started to lose sleep over, and I really started to lose faith in myself completing this post-bacc program. At the time I felt like I had to solve it 100% alone or I wasn’t good enough. I did end up getting through this specific instance of being hard stuck, but it affected my mental state for a while.

If I were to give advice to my former self I would say. “Don’t be so stubborn and ask for help when necessary. Asking questions doesn’t mean you are dumb. No one person has all the answers 100% of the time. A lot of Software Engineering is researching and learning how to solve problems. Start on projects right when they are given, and don’t procrastinate.”

Read the post...


Bring it on AWS and Serverless Technologies  January 23rd, 2023

My first main task for the capstone was learning about AWS serverless technologies. In the past I have used Google Cloud after starting app deployment projects in AWS, but finding IAM service, dealing with assigning Roles, and creating Policies to be confusing. In a way this capstone project is a good kick in the butt to learn some capabilities of AWS.

The first technology we will be working with is AWS Lambda. AWS Lambda is for running code that is not necessarily going to run 24/7 on a dedicated server. Lambda functions allow for automatic scaling up and down how many instances of the function are required to run at any given time. In our use case Lambda functions will be triggered by API calls to run code to transform data from a database and return the result to the front end of a web app. Here is a link to learn a little bit about AWS Lambda by creating a simple Serverless Hello World.

The next technology I researched that we may be working with is Amazon API Gateway. Amazon API Gateway is a service to create APIs. The AWS Lambda functions can be called directly by the Amazon API Gateway after receiving a request from the front end. For our purposes there are two options of the older and more feature laden REST API option, and the newer HTTP API that is has 70% lower costs associated with it but has less features. For now I will jot down that this may be something to discuss with our mentor (the client of our project) on required features for the API. There was a good analysis in the documentation located here.

The final technology I researched was Amazon DynamoDB. Amazon DynamoDB is a NoSQL database service where you can create tables to store and create tables. AWS says that you can store and retrieve any amount of data (great for our use case) and is fully managed by AWS, so there will be less administrative duties as the application scales up to use more and more data in the future.

After running through some of the AWS tutorials it has really boosted my confidence that I can learn AWS technologies. Before this project when I would look through the pages and pages of AWS documentation, it was daunting and stress inducing. I would normally have to deploy a project at the end of a class with very little time to learn something new. With having a little more time to learn, it definitely is much less stressful. Bring it on.

Read the post...