Working fully-remotely and on opposite sides of the world, I would like to introduce how my team (HRMOS EX) hosted interns this summer!
At Visional, we recently aligned our hiring standard to the global standard. Therefore, even though it is not common in Japan to provide internships, we decided to give it a try. Our internship program is a technical, hands-on experience solving actual problems while also getting real-world experience working in a Japanese tech company. This year, we worked with our interns to create a program spanning the globe and because of Covid, completely remote.
This summer, we welcomed 2 students to join our team, one working remotely from the US and the other from Kyoto. The internship consisted of 3 main parts: onboarding, developing with a team, and developing across teams. Finally, there was final presentation to go over the results of their hard work. Great communication, coordination, and flexible members helped make this internship a success.
Onboarding
To start, all new members complete our onboarding procedure. This consists of a series of meetings with senior developers and members of the business team to get a condensed walk-through of the tech stack, architecture, and product vision to bring everyone up to speed.
Spending time on onboarding not only speeds entry into development but also serves as a systematic check for the team to make sure documentation is current and clearly written.
Developing with a Team
Once onboarding is complete, the real work begins! Our teams use scrum and are self-organized, which giving us a flat organizational structure. As such, each team works slightly differently. This year, our interns joined the Marvel team, which mostly works on new features such as our organizational-health evaluation product.
While introducing them to scrum, our new members quickly adjusted to the team practices and started developing immediately! However, in addition to the actual development we had a large timezone difference and a range of Japanese ability. As a team we adjusted the existing practices to maximize communication and output. We shifted work hours to guarantee at least some time to sync, and video calls were a mix of Japanese and English. Diligently planning out tasks, supporting each over Slack, and following up with a quick call when necessary prevented us from getting blocked. Pair and mob programming when possible also improved progress.
As an example of the work we did, we evaluated a database design adjustment for an upcoming feature. To really encourage thinking through the whole design process, each person studied the existing structure and looked at the new specifications to come up with a new design. We discussed the trade-offs of everyone’s design, gave feedback, and shared design patterns. While updating the UML diagram in real time for everyone to see, the end result was something that took the best parts of everyone’s designs and created a more refined structure for our data.
The rest of the time we spent adding other features and squashing bugs. Everyone had tasks to do independently, but for more complex or domain-related issues, we would pair or mob program alongside a more experienced engineer. The new members mastered the release flow and saw their pushed code in action.
Developing Across Teams
During the final week, the interns took tasks from the departmental backlog. This allowed them to get hands-on experience with different technologies and work with team members across the entire codebase. They each picked an area they wanted to focus on improving (backend, frontend, infrastructure, etc), pulled a related task from the backlog, and got to work.
Final Results
On the last day, the interns presented their final results to the team and other senior engineers they had career-planning workshops with during their internship. While both of them wrote a lot of code in a short amount of time, they highlighted the other challenges we overcame as team. Due to Covid-19, we were working remotely, bilingually, and with members on other sides of the world (sorry you couldn’t join us in person!). I’m really proud to work in a place where the team can hold each other up.
Special thanks to the two who joined us this summer and to those working behind the scenes to make this internship a reality!