AppyHigh - My Experience

I joined Appyhigh, a mobile internet technology company that builds global products, as a Backend Developer Intern in May 2022. The past six months have presented me with various learning and growth opportunities, and how real-life product development takes place.

First week as an intern I was introduced to my colleagues and given a couple of working repositories to familiarise myself with the projects the company has worked on. Then came the d-day.

First Project

Come the second week of my internship, I was assigned my first project, an internal micro-service for the company to test any servers created for their load-bearing capacities in various scenarios. I had a bunch of questions mainly...

How and where do I even get started with this?

During a quick call with my mentor, I was introduced to an existing load-testing tool k6.io now it was up to me to develop a working micro-service around it.

What did I do?

I started where any developer would start, the documentation. After going through it, I was clear that using NodeJs for development would be a wise choice for two reasons

  1. K6 provided open source support for JavaScript
  2. I was already fluent in the language

Quickly whipping up a standard ExpressJS server, I integrated the k6 CLI (Command-line Interface) for Js using child-process in NodeJs. While testing out the server using postman, I encountered an error that the HTTP request would timeout oftentimes before the test was finished. This gave me a chance to work with web sockets. I started exploring the socket.io library for the client and server and finally, after refactoring the whole codebase to use web sockets instead of conventional HTTP requests, my first project was done. You can find the final product here https://www.npmjs.com/package/@appyhigh/load-test

Second Project

After the successful completion of the load-test package, I was assigned another and arguably one of the longest projects I've worked on so far. I was tasked with creating a desktop native email client, bringing together multiple inboxes from different providers into a single application. Having no experience with native desktop application development I decided to use ElectronJS a Javascript framework to build native apps with conventional web development tools. Working on this application proved to be rather challenging mainly because I had to deal with the Google developers' API which if you haven't worked with is very tricky to use, the data is encrypted and fetching a single email required multiple API calls which made the app slow at times. However, this allowed me to explore various caching and compression techniques that I eventually used to optimise the complete application until the project was moved from a native desktop app to a web app following some issues posed by the macOS regarding the registration of the application and almost three and a half months later I am finally done with the minimum viable product waiting for it go further, meanwhile waiting for my next assignment.

My overall experience at Appyhigh has been nothing but awesome so far, with a manageable workload, supportive managers and very helpful colleagues.

Thanks for reading!