A guest blog by our interns Mallika, Oju and Ryan.
This summer Tech4Dev’s very own Sanjeev Dharap took three undergraduates under his wing to introduce them to the ins and outs of the project, Glific. The students: Mallika, Ryan, and Oju share their experience of the first 6 weeks here!
What colleges are you from, where are you based, and what are your tentative future goals?
Mallika: Hi! I’m a rising sophomore at the University of Michigan, Ann Arbor. I hope to work in the Cogsci x CS field!
Ryan: Hi! I am a rising sophomore at Purdue University. I am planning on majoring in electrical and computer engineering with a focus on software and computer design.
Oju: Hi! I am a rising sophomore at the University of Illinois at Urbana-Champaign. My hope is to use my computer science degree to combat the world’s injustices.
What have you done in the internship so far?
As of today’s date, we have completed 6 weeks of our internship. Our initial tasks consisted of understanding the Glific project via blogs, demos on the website, and the GitHub repository (the latter was a bit daunting but necessary). Then, we began learning Elixir and Typescript. We focused on one language per week to allow for time to develop comfortability. Every Friday, we would have a code review either by Lobo, Akhilesh, Shamoon, or Sanjeev himself where each intern presented an exercise they were working on during the week. Additionally, we had tri-weekly stand-ups. After 4 weeks of this, we shifted to learning the basics of system design, API building, research, and lexical analysis where each intern would be assigned a small project to outline and present in the next meeting. For example, Ryan created a detailed outline for the system design of a library! Our current project is to create a lexical analysis for AWK.
What resources did you use to learn the coding languages?
How did you like Elixir?
Elixir was very different from the programming languages that we were familiar with, but luckily the Exercism website that we used to learn Elixir has many resources that make it easy to pick up the language in a relatively small amount of time. Using the Exercism track for Elixir is very convenient, as lessons on relevant programming concepts, a vi interface for coding programs, and additional resources are all readily available. This makes it easy to go through multiple programs and grasp various concepts in a short period of time, making it easy to learn a language that might be unfamiliar to many.
How about Typescript?
Since the Exercism track for Typescript is less developed, all three of us found ourselves procrastinating the exercises a bit. However, once we got in the flow of it, we gained appreciation for the language. Typescript’s syntax is more similar to Java (which a couple of us are very familiar with), meaning the code came more naturally to us compared to the functional language rules and syntax of Elixir. The applications for Typescript seemed very diverse. We also liked that typescript tutorials could be found anywhere on the internet since it is a very well-known language. Editing the text on common websites via the console was a fun, rather entertaining, skill that this new language gave us.
What have you learned besides the coding languages? (system design, API building, etc.)
After the first 5 weeks, we started alternating between programming and other CS-related facets. For example, each of us worked on a mini system design project of sorts, and honed our analytical thinking by specifying functional and technical requirements, designing data flow diagrams and API calls. Switching gears to a more high-level approach to the task at hand as opposed to dealing with details during our programming exercises kept things interesting!
How does this internship support your career goals?
This internship offers an opportunity for those going into a computer science related career to explore their interests in a way that is unique. It introduces some of the aspects of a typical programming profession while being paced in a way that is tailored to students who don’t have the same level of experience as working programmers. A lot of the time internships can struggle to find a healthy combination between these two aspects, but Tech4Dev strikes a good balance in this regard.
What do you like about Glific’s product and team?
There are many aspects to love about the product and employees of Glific! The product is catered toward NGOs and nonprofits that need extra support to create their admirable impacts. It is wonderful seeing technology being funneled in the direction of serving the community. The team has also been so welcoming and helpful. Sanjeev has CS and real life knowledge always on hand and has thoughtfully created the internship structure based on our needs, adjusting along the way as he observes our successes and challenges. The employees are always willing to help us debug our program or explain a concept to us despite their hectic schedules.
What advice would you give to future interns?
The breadth of exposure this internship provided was new to us! It really speaks to the polymathy of our mentor, Sanjeev Dharap. The projects we worked on came with a learning curve, and we’d highly recommend embracing the process. Also, the Tech4Dev team is extremely helpful and responsive – and like Professor Dumbledore says, ‘help will always be given at Hogwarts to those who ask for it.’ – so don’t hesitate to reach out!