We started with Computer Science last year when we started college, and then applied for a software developer internship at Logic Square Technologies earlier this year. We had limited practical experience but we had tried out a few JavaScript frameworks by developing simple projects like To Do list, real-time chat etc. There was a match in the technologies we were interested in – Angular 5 & Ionic 3. During the phone interview, the founder mentioned that they were looking for young people who have a passion for technology. That was the reason they passed-on senior engineering students and shortlisted us even though we were in the 1st year of college. The interview process included two parts – the first was problem-solving questions in the phone interview and then an offline assignment to test our practical knowledge. Questions were not very difficult but not obvious either. We got an offer about a week after submitting the programming assignment. The assignment was open-ended – they wanted to see how we put our thought in implementing something and our code was reviewed.
We were assigned our first projects immediately after joining. One of us got an event management application and the other got an eCommerce application for a Bar. We were given HTML templates of the application, a design prototype on Invision and some basic documentation about the app. Our first task was to convert the static HTML into a clickable prototype in which one could transition from one page to another and see the workflow of the application. The idea was that the client could see something tangible in their hand and plan any modifications needed before substantial work was put in by us for integration.
When we submitted the prototype and it had been reviewed, we were given the API with documentation and our next task was to develop each feature one by one starting with simpler functions like from login and signup. We made some mistakes initially but with some guidance from senior developers we were able to get things right and working smoothly. Our code was reviewed from time to time and suggestions were given by senior developers on how we could have implemented certain parts better.
After the first project, we were more comfortable and were more easily able to do prototyping and the simpler modules. Over time, we worked on different 3rd party integrations like Facebook authentication, Firebase, Vimeo, YouTube, Stripe, RazorPay, Cloudinary, MixPanel, JWT authentication flow, etc. and learned a lot of things. We were mostly working on developing mobile applications on Ionic 3 & partly on web applications using Angular 5 / 6. We also got a chance to learn and use VueJS.
They were open to exploring new technologies and promised to let us explore new technologies. One project that is scheduled next for us involves Action API to work with Google Assist and another involves Ionic 4 which is still in Beta! There are other technologies like blockchain, crypto-currencies, sometimes experiments could not happen due to time constraints and deadlines but we are hopeful that would happen more as we continue with this internship.
A major learning was how to write optimal code – we were working with a couple of senior developers in one of the larger projects. They spend some time to refactor the entire codebase and upgrade to Angular 6. There was an evaluation of best practices to use and we were able to implement and see the improvements it brought in the same application we had been working on before. From things like optimizing images, lazy load, caching, correct use of app storage we learned good development practices instead of just being able to do it. This made us feel that there really is no end to learning.
All feature requests and bug fixes were assigned to developers via tracker tools – that varies by project. We were given a company email address where all the resources were shared but day to day communication among the team members is done on Slack. All projects were on Git (source control) and working with it, we learned how to manage git repositories, working across branches and solving merging conflicts. For some projects, we also got tickets on JIRA so we got to learn that too.
We were informed at the time of joining that we would we would be allowed breaks for semester exams as long as we informed the management in advance which we did. After our semester, we started again and were allocated new projects – one on cab booking, one on parcel delivery service and another larger project that involved streaming video and audio. With these new projects came more learning, we were able to learn and then implemented different features like music notification panel, playing offline video (like YouTube), google maps custom interface (like Ola / Uber), etc. Most of these projects were for international clients from USA, Singapore, and Canada but luckily developers were not expected to attend meetings!
Something we feel really great about is the teamwork at the company, we report issues to the backend developer and usually got it resolved within a few hours. Also, since most of the business logic of the application resided on the web services so on the front-end side, we mostly worked on learning how to implement new features and on application performance optimizations. We also used Mix Panel to track application analytics for data points like page views to different occurring events in the app.
We liked that the company involved interns in their community and consider interns as much a part of the team as any full-time employee with assigned responsibilities on their shoulders. Our overall experience with the company has been great and we enjoyed learning new things incrementally throughout our internship.