5 Lessons I learned from my internship at Rackspace

Rackspace Internship Experience

Mon, 09 Sep 2019

./rackspace_internship.jpeg First day at Rackspace Blacksburg office.

During this summer, I interned with the Managed Public Cloud (MPC) Engineering team at Rackspace, who build tooling and self-service user interfaces for MPC. In this article, I will talk about the five lessons I learned from my internship at Rackspace.

1. Discuss your Plan in the Early Stage of the Card

Me on Slack: For /accounts/v0/awsAccounts/search endpoint, does the query string parameters critaria refers exclusively to awsAccountNumber?

One lesson I learned through this internship is the importance of taking a step back to understand the spec, discuss the scope of work and design with team before implementing changes. There were times when I would pick up a trello card; I would come up with a rough solution and jump straight into implementing it without first consulting my teammates.

Later, my teammates would explain to me the flaw in my solution through PR review. I would have to re-write the code that I had been working on for days.

After this experience, whenever I pick up a new trello card, I would first post my solution and my thought process behind it on Slack channel. I would also clarify things by asking questions to make sure that I understand the problem correctly.

2. Take Feedback with a Positive Attitude

As an intern, I received a lot of feedback through Pull Request (PR) reviews. Honest feedback can seem harsh at first, but it is what made me become a better developer.

When I received feedback, I took them with an open mind. I knew that my coworkers were providing this kind of feedback so I could perfect my craft and be prepared for bigger and tougher tasks. The fact that someone with more experience is taking the time to give me feedback means that they’re taking an interest and seeing the potential for growth in me.

3. Write Maintainable Code

let finalCellVal;
if (price[9]) {
    let temp = price[9].internal.split("$");
    finalCellVal = temp[temp.lendth -1];
}

vs.

const getFinalCellValue = () => {...};
const finalCellVal = getFinalCellValue();

When I started my internship, I would often use let to declare a variable (as opposed to const) then change its value later. One of my coworkers suggested to me that I should avoid mutation whenever possible because changing the value of variables after assignment makes code very hard to read and error-prone. Instead, writing meaningful functions and well-named variables should be my alternative.

4. Write Better PR Description

Code review is an essential part of the software development cycle. Pull requests (PR) are used to review code on branches before it reaches master. One thing I learned through this internship is the importance of writing a better PR description. A few ways to write better descriptions are:

  1. A screenshot of before/after
  2. Having a link to show the change you made working in dev
  3. Having collapsable images

5. Take Ownership of Your Code

https://medium.com/blacklane-engineering/code-ownership-177566d93378

I also learned the importance of taking ownership of my code. As a developer, I think it is important to test your code before shipping it to production fully. If you and possibly other people are going to modify your code, it’s very easy to break it in unexpected ways. A suite of automated unit and integration tests gives you the confidence you’ve not broken anything significant.

  1. Write unit test
  2. Write integration tests to make sure that your code work in a group
  3. Test individual logics in your code (if statements)
  4. Push to dev and do manual testing
  5. Get your PR reviewed by other developers and use their feedback

So why test your code, you ask? You know it can work, and want to have a way to verify it still works as it evolves.

Conclusion

In conclusion, I believe that the lessons that I learned through this internship will help me become a better developer. Throughout the whole summer, my manager and my coworkers were always there to guide, support me, and answer any questions I had. As I leave, I can say that I am beyond blessed. I take away many valuable lessons and experiences that I am sure will help me for the rest of my career.

Image Credit: Medium Post

Loading...
greg lobinski

Hassan Yakefujiang is a web developer based in Blacksburg, VA. He has over 2 years of experience building web applications using with JavaScript, React, and Redux. He is currently in his last year studying Computer Science at Virginia Tech. Follow him on Twitter at hassan_yakef.

  • © 2020 Hassan Yakefujiang