This Summer, I had the opportunity to intern at Kayako. They had found me through a trending post on Hackernews which featured one of my projects. That day, I was ecstatic(and worried 😱) to be the most trending developer worldwide on Github.
Needless to say I was elated on being offered an internship 😇. Working on production software and adding value to it is a whole different ball game than making side projects over a weekend; I knew I’d be in for a great learning experience.
Kayako is a customer service platform that helps businesses with their customer service. Serving each customer with a delightful experience is ingrained into each Kayaker. The Effortless Experience was one of the books I was given on my first day even though I was going to work with the engineering team.
Kayako operates from offices in London, Gurgaon and Jalandhar. I was based in their Gurgaon office where I worked for 2 months. On my first day I recieved some swag, a macbook pro, thunderbolt monitor, and books ❤️. An onboarding trello board was set up filled with activites to get set up quickly. Seriously though, that trello board with detailed to-do lists really helped me ease in to the organization without getting flustered (shoutout to Ruhi Mahajan).
I soon came to know that I had joined in exciting times, just a month before the launch of all new Kayako. Everyone was working at full steam as the launch date came closer. We had daily engineering meeting in the evenings with the CEO, where we’d all discuss the progress, blockers and catch up. It was interesting to see the kind of problems faced at this scale and how those more experienced than me would approach it.
I spent my initial days getting familiar with our in-house framework, and making a simple app. Then I was given my first task that involved Kayako’s Developer portal. It contains Kayako’s API documentation for developing 3rd party apps and integrations. Jekyll is a static site generator used to scaffold this website. My first task was to template API responses across the portal. With the way it was implemented previously, a large number of files had to be updated for a change in response body of say, a particular resource; therefore even a small change would consume unreasonable amount of developer time in updating the portal.
The second task was to integrate Algolia for implementing search across the portal. This involved generating indexes/search records for our content with ruby, and then pushing them to algolia’s servers. After which I switched to frontend templating/styling, followed by tuning the search results. The Algolia folks were also quick to add features or fix a bug that I came across.
Takeaways as a Developer
Code review is a must. Initially it may seem like a hurdle or something that slows you down, but the tradeoffs are worth it. You will catch mistakes before shipping to production and question decisions that will matter further down the line.
Continous integration is awesome. In my opinion, out of all agile practices, having a good development pipeline benefits the most.
Communication is key. Always discuss your approach and trade-offs with the team. As an intern, sometimes it is too tempting to ask for help just because it’s there; regardless, always try to think of a solution before seeking it. My mentor struck the sweet balance between guidance and challenges.
All said, It was a pleasure to work alongside the best people in their domains, be it engineering, creative or bizops. It left me with a mindset to always strive to improve my skills and raise the bar everyday.