Categories
Uncategorized

Reflecting on Project Progress

I have been working on the Cloud-Based Algorithmic Trading Strategies for Individual Investors project. The project aims to develop an accessible solution for both manual and automated trading, allowing users to maximize profits while minimizing draw down by leveraging various algorithms. Early on in development we decided we wanted to focus more on delivering a full service product rather than researching and optimizing the algorithms.

Once we separated everything into components and tried to equally distribute the workload, I ended up being given the post processing and performance reporting components. Most of my time has gone into researching and experimenting with different cloud-based solutions for sending automated messages to subscribed email accounts.

When I chose this project I did so because I was interested in unique investing strategies and thought working with trading algorithms would be super interesting. I had hoped to learn more about trading stocks and investing, which I suppose I could have, but so far it has been in no way necessary for my work on the project. While I have learned a lot of new skills and information during my time spent on the project, it has not been related at all to the reasons I initially chose it, which is slightly frustrating.

No matter which capstone project I chose 6 months ago, I’m sure I wouldn’t have ended up doing exactly what I imagined it to be. I’ve been reminded a valuable lesson that you choose a subject you’re interested in so you can be surrounded by it, and how much you explore is up to you.

Categories
Uncategorized

Technologies

My favorite technology as well as the one that I have used most during my Capstone project so far would definitely be Python. It is an extremely simple and clean language that is easy to learn and use. It has near endless applications in web development, data science, finance, general automation, and much more. Python also has a massive ecosystem of libraries and frameworks which have saved me countless hours.

On the other hand, my least favorite technology to work with has probably been AWS. As one of the few new technologies I have had to learn for the capstone project, it isn’t exactly a fair comparison. AWS seems extremely useful and convenient, but it is also overwhelming and at times very confusing.

While I have had difficulties learning some of the AWS tools, I do certainly appreciate what it offers. The ability to have a central hub for so many different services is very practical and keeps things accessible. They also provide tutorials which in my experience have been varying levels of usefulness.

So far, Python and AWS stand as my most used technologies over the course of the Capstone project, and I have learned a lot about both of them. There have been moments of frustrating confusion, as well as moments of blissful breakthroughs, but in both cases I always gained important experience that I plan to carry with me. I look forward to continue learning about new and exciting technologies.

Categories
Uncategorized

Clean Code, Smelly Code

Today I read two articles, one about how to write clean code, and one about common code smells. A lot of it was pretty familiar, but there were some things pointed out in the articles that I wasn’t fully aware of and will definitely be keeping in mind the next time I am coding.

One thing I want to start doing more often is really focusing on keeping my code modular and reusable whenever possible. I should always avoid repeating the same logic multiple times. I should break down big chunks of code into smaller individual functions. And I should make sure to maintain a clear flow of execution in the code where a logical structure is followed from beginning to end. The clean code article provided the following example:

This example shows how even a small and simple function for calculating a price total, can be improved through modularization, making the code more readable and reusable. I have found many times while coding that modularization has been obvious for certain chunks of code, but other times its not so obvious how to effectively break up an oversized function, even though it would be very beneficial. I want to be more thoughtful and aware of this in the future.

On the other hand, one thing I want to avoid doing is creating “data clumps”. The article about code smells gave the following example: This example shows how it can be very useful for readability and to improve organization, if a group of relevant parameters are kept together in a class. I have on multiple occasions used a similar connect() call as in the first part of the example and I now realize how ugly it looks. I will be avoiding this code smell as much as possible and instead implement database credential classes when they are applicable.

Clean Code Article: https://www.freecodecamp.org/news/how-to-write-clean-code/

Code Smells Article: https://8thlight.com/insights/common-code-smells

Categories
Uncategorized

End of Fall Term

It is the final week of fall term and time has really flown by. This is my tenth term at OSU and I still find myself surprised at how fast everything feels once week 9 and 10 roll around. Of course, in the earlier weeks of the term things always seem to go much slower. I guess it just goes to show how my perception of time is very subjective and heavily influenced by events happening around me. This term I won’t have much work to do for finals, which is usually very stressful, so I am excited to finish everything up and enjoy winter break.

Today the v0.0.2 Progress Report was due. I certainly made progress on the features I have been working on since the previous report, but I don’t really feel that the progress was significant enough. The past week has been very busy with family visiting for the holidays and other distractions popping up, but regardless of that, I still think I need to try and contribute more time to the project. It’s hard to make steady progress on a feature of a large application when there are so many unknown factors such as figuring out how everything will fit together. Luckily the only way to overcome those unknown factors is to keep moving forward. Worst case scenario is I spend a lot of time working on something that ends up needing to be changed or redone. Either way, I will gain experience and learn new skills.

Overall, I think cs461 has been a good course. I appreciated the manageable pacing, organization of assignments, and frequent communication with staff. Like I mentioned in a discussion post on canvas, I do wish the process for choosing what project you will spend 9 months working on was a little more in depth. It would be nice if there was slightly more detailed information on the capstone project website, but I understand the need for some vagueness and flexibility. I look forward to seeing what cs462 has to offer as well as the progress me and my team will make on our project.

Categories
Uncategorized

Project Progress

It has been about 5 or 6 weeks since I was assigned to the Cloud-Based Algorithmic Trading Strategies for Individual Investors project group. The name is quite a mouthful but it is a very interesting subject. I think the more I learned about this project the more I realized how complex it is, or at least how complex it can be. My group and I faced a decision fairly early on where we had to choose if we wanted to focus more on the research and algorithm side, or more on delivering a full service application. Based on our interests and what we believed to be a more well-rounded choice, we went with the second option.

The trouble with a full service cloud-based algorithmic trading application is that it has a lot of moving parts which can feel overwhelming at times. This leads me into one of the benefits of cloud applications. The modularity of cloud apps is great, but it means that all the separate pieces or modules of a product have to fit together and connect with each other for things to work.

So far, my group and I have completed problem statements, a requirements document, preliminary designs, and a design document. Now we are at the point where we are actually put things together and trying to make it all work. A week from yesterday, we will be delivering v0.0.1. I feel nervous about it because I’m not sure if everything will work or if we’ll have enough time to address any issues which will likely arise. I guess looking on the bright side, no matter what happens it will be a valuable learning experience.

Categories
Uncategorized

First Post

Hello there!

My name is Kai and at the moment I am living in Beaverton, OR. I like to spend my free time watching movies, reading, drawing, playing video games, and spending time outdoors. Of course, most of my free time I don’t actually end up doing those things, but I sure would like to.

I am currently working a part-time job at a warehouse while looking for an internship or other opportunity to gain experience in the CS industry. I attended OSU on campus for my first 3 years but decided to move home and switch to online courses for my final year, which I think was the right choice. I initially became interested in pursuing CS while I was in high school when the software industry was booming and I liked computers, so I thought it would be a good fit. My favorite languages have to be Python and C++. I am very interested in learning more about developing and maintaining large projects.

The Capstone projects that I am most interested in are:
1. Algorithmic Stock Market Trading Strategies
2. Cross-platform Personal Trainer App
3. Language Immersion Virtual Environment (LIVE)

Categories
Uncategorized

Hello world!

Welcome to blogs.oregonstate.edu. This is your first post. Edit or delete it, then start blogging!