Midpoint Awakening

This week was our Midpoint Check-in for our projects. This came with a bit of some fun work over the weekend to enable the last few things per our original time line. It also caused us to take another look at our project plan calendar.

Anxiety or Excitement?

A quick look at this caused a bit of anxiety and excitement all mixed in one. Even though our team has been right on time with our initial project timeline, we found ourselves in a worry state when we stepped into our last stand-up. As we went over our plans for this coming week it was apparent that we have a lot left to do! Our project initially involved a lot of exploration and learning due to trying new technologies. This was a lot of work but left our midpoint check-in right in the middle of the work, but not middle of the product build. This just means that our progress for the next 4 weeks will feel even faster and more exciting as we start enabling features left and right on our web app!

Revisiting Tasks

Due to the amount of work we have left, we decided to reprioritize some of our features to make sure we hit requirements before expanding. This act diminished our anxiety by showing that our requirements are clearly in sight and we will have time to implement our original stretch ideas! Now our anxiety has been replaced with excitement for our final product and finishing the quarter quickly and strong! We have no doubt that this anxiety will return soon, but we will just need to look to utilize this anxiety as a motivator to stay on task and continue working.

Time or Energy Management

Time is constant, energy is not. This means that managing time doesn’t really make sense as you can’t make more of it, but energy is renewable. Without energy, time is useless to you when it comes to getting tasks done. There is a wonderful Harvard Business article written about this concept found here. To me, managing my energy is critical to not wasting time. As my energy dips, if I don’t take the time to recharge I end up losing more time to distractions, procrastination, or errors. The following techniques are my most used to manage my energy and tasks.

Pomodoro Technique

The Pomodoro Technique is a well known time management method that was developed by Francesco Cirillo. The thing is, while this technique focuses on setting aside time for tasks it focuses more on the idea that you can only focus for a certain amount of time before taking a break. This in essence, is managing your energy before recharging. The method breaks your time into 30 minute chunks with a 25 minute focus work period and a 5 minute break. This helps you focus on your task for 25 minutes without getting distracted due to knowing that you can reenergize yourself with a 5 minute break doing whatever you want. Follow this link to use my favorite Pomodoro Timer and give it a try yourself!

To-do Lists

I heavily rely on to-do lists. Whether I’m using a bullet journal type of list or a kanban board, getting my tasks written down in a visual format is critical. Without this, I will spend a lot of energy reminding myself of all the tasks I need to get done. This amount of energy and focus I spend on reminding myself cuts into my productivity of actually getting the items done. The stress of possibly forgetting an item is too much and distracts me from working on one item at a time in an efficient manner. Asana is a great place to start a kanban board for yourself for a specific project or class!

Planned Physical Activity

The best thing in my opinion that you can do to stay productive and energized at work or school is to get some exercise. Many studies show that doing regular exercise increases your general energy levels. I also find that getting this physical activity in keeps myself from getting restless and distracted while trying to focus on work or a task. If I go a few days without getting some physical activity, my productivity plummets. The YouTube videos, the Instagram posts, the new game, and all of the other distractions get to the forefront of my thoughts much easier while working.

While working out, you get to a point where you can’t think about work due to the struggle that you’re facing. This helps give you headspace away from work. I know we have all been there trying to relax in the evening while our mind is filled thinking about all of the tasks we have to accomplish the next day. If you let yourself do this during your off-time, your brain thinks it has been working the entire time. This exhausts you and causes burnout. Physical activity is a great way to force your mind away from the work tasks by making you focus on the task at hand… breathing.

My Database is in the Cloud

This week I dove deep into cloud hosted MySQL databases. For our project, we decided we wanted to use a MySQL database and I thought it would be as simple as setting up one hosted by OSU. After searching through the tools available to us, I found that this wasn’t readily available. So, I looked to the clouds for an answer! That’s Google, Amazon, and Azure clouds I mean.

All three popular cloud service options have free options for you to use, though they come in different packages. Each option has an always free tier, but none of these include their MySQL database option. Luckily for us, each offered a free trial period that we could use! One of my team members had some experience with Google Cloud Services, so we went with that. Below I will lay out the details of each though so you can make the best decision for you! (Hint: I don’t think Google is the best choice for a trial period).

First we will start with Google Cloud Platform! Google Cloud Platform is used for a whole array of Data Science needs, from Data Lakes to setting up Machine Learning compute instances! The way Google works is you pay for a compute or storage instance based on your amount of usage. Their free trial period offers user $300 in credits to use for 90 days. So setting up a small machine for a MySQL database will easily give you 90 days of database access if you only have a few connections. Currently we are 5 days in and have used $2.56 of our allotted credits. This will get us through the class, but we will need to move our database elsewhere if we want to keep our web app up. The major draw to GCP MySQL database is that you get to pick your size. The more performance/storage you need, the quicker you will use up your allotted credits though.

A far better option for a school project seems to be Amazon Web Services. Their Relational Database Service (RDS) is free tier eligible. While it is capped at 20GB of storage, you get to use its services for 12 months! This is long enough after capstone that you can show off your project in full working order while you apply for positions. You can follow this documentation to easily set up your database with AWS: https://aws.amazon.com/getting-started/hands-on/create-mysql-db/.

The final option that I investigated was Azure. Azure is Microsoft’s cloud service and it’s offers are very similar to what AWS offers. Due to the fact that our team is using Azure to host our web app, I wanted to see if we could keep it all on the same platform. The only issue that kept me from pursuing Azure was the lack of clear documentation. While Microsoft has been amazing with documentation over the years, Azure was not as easily understood at a glance for me. This might just be due to the content community usually making tutorials for Google/Amazon.

No matter what option you choose, setting up a cloud based MySQL server is a great exercise! Knowing some database management skills is critical to landing a great position in the web development world! If you need more convincing to set up your own database, give this great post by Derek Sivers a read: https://sive.rs/dbt

As always, thank you for reading!

The Path is Not Always Clear

OSU has granted us all a wonderful opportunity to pursue a different direction than we at least initially thought. Whether it is right after our first degree or more like me after several years in a different industry. Either way, our paths to Computer Science all differ and contain different bends and forks compared to the rest.

My Path

Early on into thinking about my career I was interested in Computer Science, yet I forked early away from it. In my sophomore year of high school I took a web development course where we learned HTML, CSS, and PHP. This was before the HTML5 changes but I took it on pretty quickly. My teacher at the time ran a consulting web development company and invited me to “intern” in the summer. This consisted of revamping our districts school websites and work on a paid project for a big carwash chain that was new to our town. Overall, I got paid to write some basic HTML, CSS, and PHP and learn a whole lot that summer. Unfortunately, this was during a time I was more focused on friends and fun so it kind of put it in a bad light to me. I decided that I didn’t want to pursue Computer Science anymore because I wanted a career where I wasn’t typing all day and I could be more hands on. This led me to pursuing Chemical Engineering which was awesome. I made several life friends, connections, and memories while pursuing this degree and working in the Semiconductors industry. As my time has gone on though, engineering became more and more data oriented and I’ve found myself gravitating towards the programming parts of my job, utilizing it wherever I could. I found myself ignoring my day to day activities to work on the next greatest script I could write to improve our job. Now this got me a lot of recognition and more work in my position, but also pushed me to start pursuing this second degree.

My path was initially set to continue following these normal engineering applications, but as I’ve worked through the degree and pursued side projects I have gravitated more and more towards software engineering. It no longer satisfies me to write a new script or create a new data frame for reporting, I want to build applications! This is where my path forked once again and I’ve pursued opportunities outside of my team in Software Engineering. I’m now determined to make the switch from Chemical Engineering altogether and join a Software Engineering team as soon as I graduate this December!

Now if any of you have connections or opportunities, I’m looking for work… 😀

Into the Storm

It’s official, we have our project! Our team will be working on creating a “Dating” Web Application to enable successful animal adoption! As an owner of 2 adopted dogs, this project intrigued me right away. Of course, it also fits my teams desires to utilize the C#/.NET/React stack. Everything seems to be falling in place, but now it is time for the hard part…

Lets Dive In

NoPawsLeftBehind is the current working name for this project. This web application will be a fully usable “profile” based application. The application will work in two ways: the animals looking to be adopted will have a “dating” profile with all of their details including a picture, name, breed, disposition, and a small blurb where the animal will get to entice potential adoption matches! Active users of the application will be able to make a take a quiz to get matched up with potential candidates or search for specific characteristics. I could not be more excited to see this come to life. You can find full details of requirements on the EECS Project Page here.

So Do We Have A Plan?

A plan is a strong word for what we currently have. What we do have is a fantastic basis of an idea and have decided on the main stack we want to use. We will be using C#/.NET framework, MySQL for the database, and React for our front end components. These are new technologies to most of the team in some form or another but we wanted to challenge ourselves and learn some popular technologies in the industry!

The project plan is due within the next few days though and we have started the initial pathfinding. We have split up the initial tasks of diagrams for designing our application and will be meeting back up to finalize everything. Once we have an agreed upon design, this is where the task planning and sprint planning comes into play. Unfortunately, we already have dangers of scope creep as we all continue to think of really fun and exciting ideas to implement before we have even started on basic functionality. This speaks to our ambitious attitudes but can definitely be a cause for concern if we don’t reel it in!

Overall, I’m very excited and nervous about this project. I know our team will come together and produce an awesome product, but seeing the forest through the trees is a bit difficult at the moment. Working through this weekend with the team will start to put everything into perspective and give us a plan to execute towards.

As always, thanks for reading! Follow along here for more rants and raves about our Capstone Project journey!

Hurry Up and Wait…

Week 1 of a new quarter is always a busy time filled with anxious thoughts and busy fingers, almost incessantly logging into canvas, checking the calendar, and checking all of the due dates. This is my last quarter in the OSU Postbacc CS program and I knew it was going to be busy taking two classes: CS 467 and CS 372. 

I currently work full time as an Industrial Engineer which has kept me to only taking one class per quarter for the majority of my time in the program. Due to a possible opportunity in January, I made the decision to try and close out the program this quarter and take my last two classes. It is because of this decision and the busy first week we usually see in quarters that I tried to get ahead and find a team for CS 467 from my previous classmates. The problem here is the first week of the class is heavily dedicated to finding a team and choosing a project, which makes complete sense for all the students coming in solo. 

My team quickly set up communications on the first day of the course and chose the direction we want to go for our tech stack. Two of us will use C#/.NET in full time work so we settled there. The entire team wanted to learn React as it is a very popular choice in industry. After agreeing on this direction, we quickly browsed our project options, submitted our surveys, and…. well that was it. Now we are anxiously awaiting when we can move on to the next step. Don’t get me wrong, I’m sure we all love not being bombarded with tasks right as class starts but we built ourselves up to attack this project with fervor and now we are a bit subdued. My main concern is getting complacent and dumping all of this energy before we actually get to start on the project. 

I know our team will be able to move forward as soon as teams are fully assigned and the projects are released! I’m very excited to learn some new technologies with my team and work together to produce a great Capstone project! In the mean time we will be brushing up on our skills and getting introduced to the technologies we want to use for our web application. For .NET Core, I’m exploring all of Microsoft’s documentation as it is actually very good, starting with the tutorial here: Tutorial: Create a web API with ASP.NET Core. React has a wonderful tutorial as well, but I know this just scratches the surface. Luckily, one team member found an awesome Udemy React course that we all have access to now to explore. The tutorial can be found here: Tutorial: Intro to React.

This is going to be a tough quarter, but I’m excited to take it on head first with this team! Make sure to follow along here for all the rants and raves I have about my journey through CS 467.