Categories
Uncategorized

Capstone Project

I am part of the Cloud-Based Algorithmic Trading Strategies for Individual Investors team, where I am responsible for the front-end development.

One of the biggest challenges I’ve faced so far has been understanding my teammates’ code. In school, I haven’t had much practice working with code written by others, but I recognize that this is a critical skill in the real world. Since I handle the front end, I am also responsible for integrating back-end code. While I can grasp what the code is meant to do, understanding how it works in detail is essential for seamless integration. To overcome this challenge, I have taken the initiative to ask my teammates questions and carefully dissect their code line by line to ensure I fully understand it before proceeding with integration.

I chose this project because I have a strong interest in investing and wanted to deepen my knowledge in the field. I was excited by the idea of building something practical—something I could actually use to benefit me financially. Along the way, I have also gained valuable insights into trading strategies.

So, who will use our project? Our project mentor, Chester, as well as other employees at Levrum, will utilize the final product. Additionally, my teammates and I will have the opportunity to use it ourselves, which makes this project even more rewarding.

As a team, we are making steady progress and are confident that we will deliver a well-functioning, high-quality product.

~Madison Dowell

Categories
Uncategorized

Technologies I Have Been Using

  • Throughout my capstone project, I’ve had the chance to work with some great technologies, each offering unique advantages and challenges. When it comes to my favorite technology, that would have to be Plotly Dash. This tool has made my project so much more manageable, especially when it comes to graphing, charts, and tables. It’s powerful yet easy to use, and one of the best parts is how much less code I need to write compared to other methods. Plotly Dash’s integration with Python makes it an ideal choice for visualizing the data we’re working with in the project, and it’s made my workflow a lot smoother.
  • The learning curve with callbacks in Dash was a bit tricky at first. It took me a while to understand how they worked, but once I got the hang of it, I really started to appreciate how much cleaner and more efficient the code became. Now, I see the value in them, and I wouldn’t want to go back to a more convoluted way of managing interactivity.
  • On the other hand, my least favorite technology has been AWS Lambda and Elastic Beanstalk. While these tools are essential for deployment in our project, I’ve found them pretty challenging to wrap my head around, especially when I had to learn them on my own. The process of hosting a website using AWS was a real struggle. I hadn’t had to deal with deployment at this level before, and I honestly felt a bit lost trying to set everything up. Even though I haven’t used them much yet, I know I’ll be diving into them more as we move forward with the deployment phase.
  • Initially, I was building the UI using JavaScript, HTML, and CSS, but I’m so glad I switched to Plotly Dash. The integration is much smoother, and the amount of code I need to write is drastically reduced. Going with Dash has made a huge difference in simplifying the project and making it more manageable.
  • If I had the chance to start over, I think I would stick with Plotly Dash for the front end. As for AWS Lambda and Beanstalk, I’d probably look for alternative deployment options that are a bit more straightforward, but I will dive deeper and see if I can get a better understanding. But overall, I’m learning a lot from the challenges, and I’m excited to see how these technologies play out in the final product.

~ Madison Dowell

Categories
Uncategorized

Clean Code and Code Smells.

I read Chapter 1 of Robert Martin’s book Clean Code: A Handbook of Agile Software Craftsmanship to gain a better understanding of what clean code truly means. One habit I want to work on is avoiding the rush and ensuring that my code remains clean throughout the entire development process. In the book, Martin highlights a common mindset among developers:

“Were you trying to go fast? Were you in a rush? Probably so. Perhaps you felt that you didn’t have time to do a good job; that your boss would be angry with you if you took the time to clean up your code. Perhaps you were just tired of working on this program and wanted it to be over. Or maybe you looked at the backlog of other stuff that you had promised to get done and realized that you needed to slam this module together so you could move on to the next. We’ve all done it.” (Martin, 3).

As a student, I’ve fallen into all of these traps, often resulting in poorly written code. While the code technically worked, it was rushed and lacked quality. Moving forward, I want to ensure that I take my time and focus on writing clean code throughout the entire process.

Martin also quotes Michael Feathers, who says, “I could list all of the qualities that I notice in clean code, but there is one overarching quality that leads to all of them. Clean code always looks like it was written by someone who cares.” (Martin, 10). This resonates with me—I want my code to reflect that I care, not that I was simply trying to finish as quickly as possible.

Writing clean code as a student can be challenging due to strict deadlines and the constant pressure of juggling multiple projects. However, after reading Clean Code, I recognize how crucial it is to build this habit now, before entering the workforce. In my upcoming assignments, I plan to prioritize clean code and ensure it becomes a standard part of my workflow.

I read Chapter 8 of Oregon State University’s Handbook of Software Engineering Methods: Code Smells and Refactoring to better understand what constitutes bad code. Code smells are signs that the code needs refactoring, and this chapter focuses on common issues in comments, functions, and duplicate code.

One issue I want to avoid is writing long functions or functions with too many parameters. The handbook offers practical advice for these situations:

“Long Function (more than 10 lines or so). Break into multiple functions. Aim for five lines or fewer. Function with Many Parameters (more than four, some say more than three). As appropriate, pass an object that combines the parameters, make calls within the function to get the parameter data, break into multiple functions, or find another way of reducing the number of parameters.”

This guidance makes it easier to recognize when a function might have a code smell. Having clear limits, like a maximum of 10 lines or 4 parameters, provides a helpful benchmark. To ensure my code stays clean, I will make sure my functions are focused and only do one thing. As stated in Clean Code, Bjarne Stroustrup emphasizes that “Clean code does one thing well.” (Martin, 7).

~ Madison Dowell

Categories
Uncategorized

Blog Post #3

My Project

I probably already said this, but I am on the Cloud-Based Algorithmic Trading Strategies for Individual Investors team. I’d say we are making pretty good progress on our individual sections. The next step is integrating everyone’s work together to have a complete product. For the final week, I have been working on displaying historical market data in an interactive graph. It has taken more time than I anticipated, so I may not have time to integrate backtesting into the UI just yet. Overall, I am proud of my teams progress and I am learning so much!

New Technologies

I originally designed our UI using Javascript, HTML, and CSS. Then I discovered Plotly Dash, a Python library for building data apps. I did some research and decided this would be the better choice for our project because it would be easier to integrate with the backend (which is all coded using python). It took a little while to understand Dash, especially callbacks, but once I got the hang of it I liked how it worked.

Internship Search

I am still applying for internships and hoping to enter the MECOP program. I went to the MECOP career fair a couple of weeks ago and got to talk to 22 company representatives, which was really cool and pushed me out of my comfort zone. Fingers crossed it went well!

Feedback on the course

Overall, I have enjoyed this course so much. It is my first glimpse into what it is like working with a larger team to build a full-stack application. However, I wish we had more time on v0.0.02 because I would like to add more before next term.

Categories
Uncategorized

Blog Post #2

Navigating My Capstone Project, Coursework, and Internship Search

As a senior at Oregon State University, I’ve been balancing a lot this term. My capstone project is titled “Cloud-Based Algorithmic Trading Strategies for Individual Investors”. We’re building a platform to help users automate their trading strategies. I’m in charge of the UI and interaction, and development is just starting. So far, project planning has gone smoothly, with clear deadlines keeping my team on track. I’m excited to dive deeper into front-end development and stock market data integration.

Challenges and Wins

While planning has been a success, balancing weekly assignments with other classes has been tough. The workload can be intense, but seeing our progress each week makes it worth it. I’ve been learning a lot about new technologies like AWS and APIs, which has been a rewarding challenge.

Feedback on the Course

I’ve enjoyed this capstone course because of its hands-on approach. The weekly deadlines push us to stay on track, which is helpful but can be overwhelming when juggling multiple commitments. Still, it feels like a great preparation for the professional world.

Internship Hunt

I’m currently looking for a summer internship and waiting to hear back from the MECOP Program. Finding time to apply between school and work has been challenging. I’ve learned that setting aside specific time each week for applications can help. Tailoring resumes and cover letters takes effort, but it’s essential.

This term has been challenging but rewarding. I’m excited about the project’s progress and hopeful for what’s next.

— Madie Dowell

Categories
Uncategorized

Welcome!

About Me

Hey everyone! I’m Madison Dowell, but you can call me Madie. I’m living in Albany and taking most of my classes over at the Corvallis campus. I am a computer science major with a focus in data science!

I played volleyball for two years at Lane Community College before transferring to Oregon State. I love snowboarding, hiking, playing volleyball, cooking, and reading. 😊

I have experience with Python, C/C++, HTML/CSS/JavaScript, SQL, R, Node js, and Git/GitHub. My preferred language is Python.

Project Preferences

My top four projects at the moment are:

Leveraging AI for Improved Public Transit

Cloud-Based Algorithmic Trading Strategies for Individual Investors.

The Unknown Venome (2024-25)

Gamification of PharmD classes. Create “Pharmacy Go”.

These projects appeal to me because I want to work on an industry project with an experienced project partner to create something that will actually help people. I would also love the opportunity to work on a project that involves data science.🤞