InternShip
At Shutl we believe it is very important to be a part of the engineering community and make sure we give back to it. We know that the first steps for individuals are quite often the hardest and we aim to provide support where possible. For example, we have been long supporters and sponsors of Codebar and Rails Girls London. And last year, we had a new opportunity to explore: having an intern join the team.
We received an email from July Fink in December 2016. She was a 3rd year student looking for a 5 month internship. As we interviewed her for an Internship with Shutl team, we decided that she would be a great addition and offered her the Internship role.
Our aim was to make sure she had a chance to learn as much as she could at Shutl. We believed that the most value for someone new to the industry was to experience the true reality of the everyday job of a software engineer: what challenges we have and how we solve them, what can go wrong and how we aim to reduce the risks of breaking things, how we stay focused and take opportunity to step back and learn from our experiences.
July kindly agreed for us to share parts of her university report on her experience at Shutl. We are very proud to share her words here. Thank you, July!
On-boarding
The first week at Shutl included my on-boarding. Due to the constant growth of the team, they were well-prepared for introducing new people. Having an onboarding documentation (suggesting topics for each day of the first week) made me feel very comfortable with the main points I had to learn for the general flow:
- GitHub set-up for Shutl and eBay repositories
- Pull Request conventions (PR)
- Security instructions and password handling
- Team management and team responsibilities
- Communication channels (ie external and internal)
- General workflow (agile methods used like the daily stand-up or backlog boards)
- Software tools
- General Logistics (i.e. working from home, eBay’s Intranet, etc)
However, the documentation was not necessary because they assigned me a mentor to introduce me to the daily flow at Shutl. There was lots of information in the beginning. But nonetheless, the first day ended with raising one PR as pair programming work with my mentor.
Also, during the first week Shutl provided me with a short presentation of Shutl’s founding and history, the product roadmap within the market, the code base in terms of general architecture and the software development practices followed in the company.
Already after the first week I was impressed by the professionalism and team spirit I met at Shutl.
First stories
For the time being, I was allowed to attend any meeting of any team while being officially on the MoshPit team at first. This team’s backlog also contained a few ‘intern’ tags which told the developers who would pick up that story to approach me to do pair programming.
It was the general strategy to let me pair up with people, so I could be introduced to the massive code base which was anything but easy to work with – even for experienced programmers.
In the beginning my mentor explained to me every story he was working on. Since he was part of the Therac25 team, a part of the Global UI development, I slowly became comfortable with React.JS and our feature team. He also provided me with a whole set of tutorials to get a better idea of the React.JS and Redux.JS concepts.
After a few weeks, I began to ask people to pick up the MoshPit stories with me which got me good feedback. My impression was that everybody was happy to help.
During the second week, I started to look for stories that I could handle myself when I had the time. It ended up being an investigation for potential denial of service because of some regex calculation within the URL we were hitting. Since the customer could manipulate the input (URL parameters) in any way they wanted, it was a potential danger. I spent one day experimenting with my mentor if you could actually force the server to get a denial of service by concatenating special characters. It was one of the most fun parts because I actually managed to set up a string (malicious expression) that would build an almost infinite expression tree. Now you only had to make the request several times.
We confirmed with the engineering manager that we could attack our staging server which quickly displayed a denial of service. It made the experience even more memorable for me.
Also, it turned out to be the first demo on the Friday’s All Hands. I remember being very nervous, also because English isn’t my first language, but it was part of the experience! After presenting more stories, I improved and felt more comfortable later on.
HACKWEEK
For one week from the 26th of July to the 30th, Shutl Ltd. took part in eBay’s global Hackweek, an annual company-wide competition challenging our technologists to innovate and reimagine the e-commerce experience. In a smaller scope, the London and Berlin offices were supposed to compete directly.
My choice was an idea of automating our daily stand-up board meaning to make it faster for the developers to keep it up-to-date.
‘Speedy Boarding’
We spent the first day on planning how our current workflow could be improved and automatised in a sense that it really gives a proper business value. Evaluating and calculating these values from a software engineering point of view was somewhat of a unique experience for me. I realised I enjoy that part of the whole software development process a lot.
At the end of the week we presented and demonstrated our results to both of the London and Berlin office.
CONCLUSION
Internship abroad as a cultural experience
Against my original idea of London, it is not the British capital but a very international, cross-cultural and ambitious city. It was the first time for me living on my own in a city I did not know anybody, or how long I would stay.
Internship abroad as a professional experience
I saw the Global UI growing from a rather small set-up, up to a large, sophisticated set of components, reducers, services and actions interacting with each other. Being part of building something of that complexity was a very teaching and impressive experience for me.
Additionally, I gained a fair idea of both worlds: Start-Up and Corporate. For that, I became a member of a very capable and mature team in which I felt comfortable to actively seek advice at any point. It did not take me long until I first contributed to the code base – which was a high motivation for me and the team. I learned to be more confident about technical discussions, about presenting my own work and most importantly about approaching people.
In general, I was given freedom and self-control in choice of stories as any member of the team. That offered me a broad variety of tasks, partners and programming experience.
Although not initially intended, I also found a mentor for career-related matters to whom I am very thankful for all his advice. I definitely have a better idea of where I want to be in a few years.
Regarding all the benefits, the skills I gained and the great team I could be part of, I cannot think of another working place that could have been better for me.
As for our own experience, we found having an intern on the team very rewarding. It was great to see her learning and growing into a full powered team member during a few months she was with us. And it was a great chance to be seen by someone with very fresh perspective. We were asked a lot of interesting and challenging questions that made us think differently about the way we work.
We embrace diversity of experience level on our team. It makes us richer.
After such a great experience we had with July, we went straight away to find a new intern for our team. Hopefully, it is going to another good learning story to share. Welcome, Mayur 🙂