What Lies Beyond…?

Its time to start looking forward. After all, for many of us we are around 2 weeks way from completing a pretty awesome accomplishment. I think capstone has be a great final OSU experience to end with.

I feel like capstone has really allowed me to connect with software engineering at a professional level. This has given great insight into what the profession might actually be like. But now as we get close to the end, I find myself wondering what lies beyond all this? I personally think the future is a bright one and the possibilities are endless.

In my new position I am able to actually code and apply the skills I gained here in school. It is really amazing being able to contribute on a professional team using computer science to enhance productivity. It shouldn’t be a surprise though. I mean,
we have all worked on plenty of teams to overcome challenging projects. Now that I am finally getting some coding experience at work its like the beginning of the next chapter. I’m so happy to see where this all takes me. I have plans for some projects after school, and even plans of what I will be doing with my newly gained spare time.

Starting an exercise regimen is absolutely part of my plan. I am more stagnant than ever now and its good to get moving for some of the day. I am now a life long learner and computer scientist…truth is, I always was. It just took the discipline of school to get me to sit still long enough to actually get something out of it. Good luck to all of you in everything you go on to do! It’s been a great ride and I hope to work with some of you one day.

As always, thanks for reading…

The Mighty Code Beard

Today feels like we made it!

Photo Credits: Ian Staufer

Today was a good day! That’s it really … it just was. We have around a month or so left of school for the term and if we are still here reading these. Chances are we are learning and doing some cool things.

This week in my own capstone…in fact, over the past two weeks. I have been feeling stretched thin. After all, the progress we have made its excited to think about our accomplishments. My group as learned a lot.

Project management has proven to be a tough task at times. The complexity of cloud solutions, has been challenging, frustrating and exciting. Container images don’t always build how you expect. Do we need to convert this legacy project to a new framework using a special command line tool? It goes on and on… However we are doing it ….. we are slowly becoming software engineers!

For most of us this is our last term before graduation and these are probably the most challenging projects we have worked on. But we have made it and we are doing it. This has been quite a journey and recently for me, it paid off.

As of this past Monday I started working in a brand new capacity as a Geospatial Analyst. I was previously a Forest Technician and then a Forester for the past nine years. In all of that time I never thought I would be here. This new role is going to give me my first professional experience writing code at work. The neat thing about this is that as the journey of school is ending, a new chapter in life and next career is just in its most early stages.

I hope that all of you are having luck with interviews and ongoing job searches. It can be tough out there, but in the end we will make it. Good luck on the rest of your projects and as always, thanks for reading.

The Mighty Code Beard

Keep Going!

This week was hard…but hey it happens. If there is a take away I have learned from capstone project about software engineering, it’s that sometimes you don’t feel like you’re getting anywhere or making progress….but rest assured you are.

Looking back to the project plan, I am realizing that the amount of hours I estimated for certain tasks was grossly underestimated. Project management is a skill carefully honed by years of experience and when the workload ends up being a lot it can cause burnout. As a result sometimes we need to take a night off and just breath and relax. It’s important to take care of ourselves so that we can continue to do the work we love. After all, we all became software engineers because of some deep interest in technology.

Aside from work we all juggle a lot. Work, school, family obligations……the list can go on. But we have to keep going! In many ways his blog has been helpful to vent and express things to potentially help others. I never used to like writing but I suddenly find myself seeking it out as a therapeutic escape from daily stresses. I hope you all are having a great term and that your projects are going well. Keep going and take care of yourselves!

Thanks for reading, and as always, happy coding!

The Mighty Code Beard

One small step can be a giant leap

Photo Credits: Lindsay Henwood

So far this term has definitely been a little bit stressful at times. My capstone project has honestly felt like I imagine the first few days in a new software engineering role would feel. There’s legacy code, a lot of it, and I have been tasked with learning new technologies on the fly in order to containerize and push a dated program to the cloud. When I say that out loud it sounds like something I never would have been able to do 2 years ago. It’s when I look at it that way that I start to see how far I have come thanks to my education at Oregon State University.

These first few weeks I have been learning a lot about being a software engineer. I have honestly been feeling like maybe I am not making the progress I should be. I have felt hopeless and wondered “Can I even do this?”. It is always around this time that I dig deep, rally, and start making progress. I’m starting to realize that sometimes projects work in baby steps. It isn’t always going to be a straightforward and simple path, but it you stick with the problem, you will solve it.

I’m starting to accept the small steps and appreciate them as giant leaps. Project management can be difficult and dividing work up into manageable chunks is not always the easiest to do in the beginning. I am now seeing the importance of splitting hairs when developing a project plan. If you think a task is going to just be easy and a little bit of work, think again. Give it some more consideration. I bet if you try you can most of the time break one step down into three or four more. These are the small steps that build the giant leaps. Then after struggling through them you realize “Wait a minute, I thought I wasn’t getting anywhere for the past three weeks but now I have this thing containerized!”….SO what is the take away from all of this?

  1. If you are working on a project sprint be realistic about your sprint goals.
  2. Don’t feel discouraged if you don’t meet every single sprint goal, it happens.
  3. Appreciate each small victory and recognize that the small steps build the big leaps
  4. Don’t give up and stick with the problem, you will solve it.
  5. Its always easier looking back down the mountain after the climb. But remember to enjoy the climb and appreciate the process of software development.
  6. Know that you will succeed and that you can do anything as long as you don’t give up.

Thanks for reading, and as always, Happy Coding!

The Mighty Code Beard

Mama Mia! It’s Legacy Code!

Photo Credits: Nerfee Mirandilla

The last post was an exciting post about new learning, and this one is too….well sort of. As new software developers we will constantly be challenged and expected to perform. Many times we will need to work on the fly learning new legacy code. And that is what this post is about.

Working on a large base of legacy code that is not well documented or well commented can be very stressful. It can begin to feel like trying to trace a single noodle through a big bowl of spaghetti. But it is something we all will face st some point or another. So pull up a chair, grab you’re napkin and take a big bite as we explore some considerations for dealing with hard-to-learn legacy code.

DO:
– Try and give it your best in exploring the code
– Walk through it with the debugger
– Come up with specific questions about functionality
– Ask for help from a developer more familiar with the code base

DON’T:
– Over think it (you got this!)
– Stress yourself out, after all its just code!
– Waste time, we have deadlines to meet, ask for help there is no shame in it.
– Cling to assumptions you have made about how it works
– Be afraid to ask more questions!

These are just some things I have discovered in my own dealings with some legacy code. It is easy for us to stress ourselves out, but really there is no need. Do your best to sift through it and learn to the best of your abilities, and then come up with some thoughtful questions that show you have been trying. Then once you are more comfortable with the limited knowledge you have acquired, ask a more senior developer! They have the knowledge and its better to ask questions than to waste your valuable time spinning your wheels.

At some point just like every other project you have done, things will click. When they do it will be very rewarding and none of the stress or worry will matter; Remember that. As developers it is easy to be hard on ourselves, but don’t be. You are smart and very capable, so get out there and take a bit bite of some legacy code!!

Thanks for reading and as always, Happy Coding!

The Mighty Code Beard

Let’s Dockerize!

Photo Credits: Ian Taylor

This past week has been all about containers! I have been doing my best to learn Docker on the fly… I have secretly always wanted to learn more about containers and now capstone is giving me a chance.

To be perfectly honest, Docker has always been this abstract “Cool Thing” that I have heard about, but without an application for it and a reason to learn it…..it didn’t seem to be a priority. But thankfully the project I am working on is perfectly fit for it. We are migrating a legacy simulation engine to the cloud that runs on an older version of .NET Framework, this seemed like a perfect opportunity to use Docker, so here I am. I will use this post to now introduce Docker to you, encase you are wondering about it like I have been.

What is Docker?

Docker is a platform that allows developers to package runtime environments of all different types into a structure known as a container. This has the added benefit of being able to run all sorts of different code in very different environments, but with the added benefit of still being able to integrate it all together. Pretty cool right ? For example, say you had some unique web app that needed to access a Postgres Database, a MySQL database and a MariaDB database, with a Node.js back end and you wanted to quickly generate a front end using Jekyll…. Docker has you covered. You can create a quick docker-compose.yml and run a quick command line command and have the different environments up and running in minutes! There’s a lot more to it than that but in essence it really is that simple. At the root of things docker is built around the idea of a container and some other things.

  • Dockerfile – This is essentially a running process of some type. In this file you can configure a number of things including commands to run on start of the container, which ports to expose and more.
  • Docker Image – This is the template for running a docker container, there are many official ones such as Ubuntu, Alpine, MySql, Node….. the list goes on. This is kind of the basis for the environment within the container, and you can fully customize them.
  • Docker Container – This is essentially a running process that is built from your Dockerfile and image. It is packaged neatly and highly portable.

In designing the architecture of our project we realized early on that containerization will give us a huge benefit in meeting our client requirements. Maybe docker can help you to on a project? I encourage you to look into it!

Thanks for reading, and as always, Happy Coding!

The Mighty Code Beard

This is an Emergency!

Photo Credits: Spencer Davis

So the first two weeks have passed and things are slowly starting to take shape. The first week proved to be challenging in ways I hadn’t foreseen. Trying to find a project and teammates who are interested on working on the same thing was quite a challenge. While picking from the pre – canned project ideas, I explored a couple of different options. There was a 3D printing project, a web app to find Farms close by for Oregonians, A JS fiddle style web app for compiling C/C++….quite a variety. I must admit, at first I wasn’t very drawn to any of them.

Before I make the big reveal, I think I should give a little bit more background about myself. For the past 8 years I have been a wildland firefighter. The most recent 5 of those years, I have been employed as a Fire Forester. During this time I have seen many deployments all over the country and even worked my way into leadership. I know what you’re probably thinking…what in the world does that have to do with software engineering? The funny thing is ….I have been asking myself the same thing

On the road to becoming a Software Engineer I have been wondering on how I my best blend my full skill set together. I do have 8 years of experience with geospatial information systems (GIS). The more I search for jobs the more I realize that I do have a unique skill set that some companies would desire. It just so happens that the final project I found when searching for my capstone project was Code3-Response partnered with Levrum Data Technologies.

This company builds software that helps emergency jurisdictions using machine learning in order to make strategic planning decisions. I also allows them to measure their effectiveness and even simulate different staffing paradigms. This data driven approach to emergency response is definitely the future of the sector and I am so excited to have found and been accepted to this project along with my team! I look forward to breaking ground and having a positive impact on emergency response!

Thanks for reading, and as always, happy coding!

The Mighty Code Beard

“Hello world!”

Photo Credits: Danielle MacInnes

Welcome! My name is Joe and this is my new blog where I will chronicle my journey toward becoming a software engineer as I work toward completing my capstone project as a soon-to-graduate CS senior at Oregon State University (OSU). Since this is a programming blog, in an effort to maintain balance in the force, I have chosen to keep the “Hello world!” title for my initial post. You may see this blog change a bit over the course of the next 11 weeks as it evolves through the fall term. But I encourage you to come along for the ride with me!

To give you a little bit of information about myself, I am a professional Forester and Wildland Firefighter; I have worked in this field for around 8 years. When I started my original college journey way back in 2006 I started as a Computer Science Major. Back then I was a little bit unsure of my path still and was quickly developing a great love of the outdoors, which is why I ended up switching majors. After all this time the question of “What if ?” has never left me, and I have always continued to program as a hobby (weird right?!). In 2019 I decided that I would go back and follow my dream and prove to myself that I was smart enough to major in CS and here I am now with the Highest GPA I have ever maintained in my life! But enough about me…I’m excited to start this blog and I am going to leave you with 3 tips to the first week of capstone (even though I am currently living it and navigating these things myself.)

  1. Start Researching Your Project Early:
    I can’t stress this one enough! As I am writing this I so wish I did a better job of brainstorming for my capstone project beforehand. I know that ultimately I will work hard with my team and come up with a great idea and end product, but having a great and unique idea to finally build out after you have been able to think about it and plan all of the neat features it might have, well it would be pretty cool!
  2. Don’t overthink it:
    We all have a lot going on outside of capstone whether it be real life stuff, other classes, etc… Just remember to be good to yourself and take it easy, follow the process and to some degree let things evolve organically. Always remember things will work out in the end as long as you do your best to manifest positive energy into everything you do…don’t sweat the small stuff, you can do this!
  3. Be excited, be very excited:
    Though we have a long road ahead of us in our projects, this is such an exciting time! For most of us we are very near to graduating and getting one step closer to being professional software engineers. This is our time to showcase our abilities and skills that we have gained through our hard work as students. Get ready for the grind, those 100 hours are going to be filled with all kinds of new learning and coding, lots of coding, but we all know the rewarding feeling when we compile and it runs! At the end of this we will all have a spiffy new project to showcase and that’s something to be excited about!

Thanks for reading, and as always, Happy Coding!

The Mighty Code Beard