I’m Spencer Martin, cellist, programmer, and now honorary Racker at the Racksburg offices. This last summer, I had the privilege of shadowing and learning from some of the smartest and most skilled programmers I’ve ever met. During my time at Rackspace, I was assigned to observe and work for two days with each of four different teams. I worked with a different team each week and was given a corresponding project for each team. My projects were educational in nature, and did not involve any Rackspace production code. Through my experiences at Rackspace, I’ve become a more experienced and well rounded programmer, and I’ve met a lot of tremendous people.

During my first week IMG_6359at Rackspace, I worked with Seth McMahon and the rest of the Microsoft Services team. My first day started with Seth outlining the team’s infrastructure. I was quizzed on various programming terminology to gauge my understanding of programming in general. Then, I was assigned to create a provisioning API using Powershell and C# that I would work on for the next week.

 At first, I familiarized myself with the some of the Microsoft product cmdlets, and powershell in general. Then, I worked on wrapping that functionality in C#. Unfortunately, it wasn’t as simple as copying my script into C#. I had to move all application authentication into native C#. After getting C# to communicate with the application, I moved on to creating the RESTful API using the ASP.NET Web API. It was quite similar to Flask in my opinion, but with a lot of extra fluff. I set up the program to call the relevant cmdlets depending on the HTTP request. Unfortunately, there was one more issue to resolve before I considered the API complete. Calling Powershell from C# returns a PowershellObject, which is not useful outside of C#! To convert it into something more sensible, I wrote a function to convert arbitrary PowershellObjects into JSON. Finally, the API was complete!


 I did not attend Rackspace to just work on a mock project. During the development process of my API, I joined meetings, standups, and the end-of-week demos. On my first day, I shadowed team member Mike, who was working on an improved internal control panel. Unlike the previous system, which required manual implementation of the UI, this new control panel dynamically generated controls based on given hyperschema. Then, I attended a meeting in which the participants decided upon a better technology to offer high availability mailboxes between data centers. I had a hard time following the logic of the technology at first, however, as I got acquainted with some Rackspace terminology, I caught on. I found myself rather quiet during standups. It’s tricky getting comfortable working in a professional environment for the first time! Finally, I attended demos in the Dragon’s Tooth Conference Room. The hyperschema based control panel was demoed to much fanfare, as well as a 2 other projects.


IMG_6347In week two, I worked with Reach and learned about Javascript. Jigar, the Reach team lead, allowed me to view his workflow, and showed the process of getting and completing a “story” of work in an Agile/Scrum team workflow. I learned a great deal! I got a greater understanding of how CICD (Continuous Integration / Continuous Deployment) automation systems work, and the various stages of deployment and testing. The IRC bot for pushing builds that the team used was also quite memorable. The Reach team gave me what I think was the best look at a typical work day, which was much valued!



During my third week, I was in the Control Panel group, led by Bob Black. I furthered my knowledge of Javascript with them and learned Angular.js and CSS. With Control Panel, I was assigned a  side project to create an alternate frontend to Github Gists (or code changes and related documentation). My solution, Gisthub, is a tile based editor, in which all your gists code snippets are shown on a single page. You’re able to create gists, remove gists, and create/add/modify files. I used a pre-built Github Javascript API, as I couldn’t find any simple OAuth examples for Javascript.

IMG_6350The members of the Control Panel group freely provided the much-needed help and I felt very integrated into the team. This time I participated, and did not merely observe, their standups. During meetings, I heard retrospectives on the prior week and saw what went into planning upcoming scrum product stories. The Control Panel team and I ate out on the back porch, and discussed various programming and gaming related topics. That’s when Bob inquired as to what programming project was I most proud of. I had gotten into Java and serious programming by creating modifications to the game, Minecraft. To my own disappointment, I responded with a Minecraft mod I had
made the prior year. Even though I’ve created projects much more interesting than just a simple mod, I was most proud of it because it was the only project I’ve made public to users. I realized how important that was to me and now I would now have a different response to his question. Since my time at Rackspace, I have created a website, build.lol, by utilizing skills I learned this summer, and of course it is hosted on a Rackspace cloud server.


IMG_6353In my final week, I worked with the Anti-abuse team. With anti-abuse, I was tasked with configuring an Apache server using Chef config management automation system. I was provided with a tutorial, which unfortunately failed quite spectacularly. This particular tutorial used a seemingly deprecated way of configuring Apache, rendering it unusable. After consulting stackoverflow, I found an alternate method for configuring apache with Chef, though it meant I was unable to continue with the given tutorial. I instead elected to spend time with the rest of the team. I observed Chef in action, and most amazing of all, I got to witness the release of a major feature! This feature was an automated security that had been in the works for months! During my stay at Anti-abuse, I was also exposed to both Vim and Emacs, and I set up my first Vagrant VM for doing dev testing in.

I cannot say enough good things about the teams I worked with at Rackspace. I appreciate all that went into creating these shadowing experiences that gave me a much bigger picture of the development cycle that one cannot get from being a self-taught programmer. Thank you to Thomas “Tweeks” Weeks for arranging the experience, to Robert McAden the Blacksburg Site Leader for hosting me, and to Doug Juanarena who gave my brother and I our first tour of Rackspace in 2012 that showed me that there was a whole community of Rackers that shared my interests.

I’d love to return to Rackspace and work there in the coming years, and would highly recommend Rackspace as a workplace and hosting company.

Editors Note: Spencer Martin is very bright, young 15 yr old Blacksburg tech-guru in his own right and pretty serious Rackspace groupie. Spencer and his younger brother Grant have been proudly sporting Racksburg swag, winning awards, and attending (and even teaching) in our Let’s Code Blacksburg! community programming workshops since before they were teens. However, as a part of the Racksburg’s Let’s Code Blacksburg community STEM program, Spencer really stood out above other young coders. With at least a half dozen languages under his belt, and actual open source community contributions, we thought it would be great to bring him in as a part of a pilot STEM Externship program to share with him what working at a real dev center looks like. Everyone at Rackspace was blown away by Spencer’s skills and maturity and really loved being able to influence what we’re sure will be a bright future in technology.

Share and Enjoy

  • Facebook
  • Twitter
  • Delicious
  • LinkedIn
  • StumbleUpon
  • Add to favorites
  • Email
  • RSS