MY BITLAB INTERNSHIP EXPERIENCE
Course/University: Bachelor's of Computer Science / University of Malaya
Period of internship: 1 August 2022 to 15 January 2023
Internship function: Engineering - Backend
My Bitlab internship
I underwent an internship at Bitlab Digital in the technology department, mainly as a backend web intern. The internship lasted from 1st August 2022 to 15th January 2023, which is a 6 months internship required by the university I'm currently attending. I have been assigned a great supervisor who supervised and helped me throughout the period.
What I like about my internship experience
There are a lot of things I truly love about this internship, just to name a few below.
- Chances to work on the production-level codebase
I appreciate Bitlab providing me opportunities to work on various production-level codebases, and through those I learned plenty of knowledge that I couldn't have elsewhere, such as the importance of writing maintainable code, deciding factor of the approach to a solution in any given scenario, bringing value to a project, and proper communication with other colleagues on the same project.
- Helpful colleagues
This is an energetic workplace with a lot of young, but experienced workforce. I truly appreciate that I have colleagues who are more than willing to teach me things I directly asked for, and for those, I didn't but is important as those provided the foundational in which I'll need in order to understand what I really asked. After the talk, I would've gained a throughout understanding of the topic on hand and been able to apply that to use immediately.
- Cheerful environment
I enjoyed spending time with my colleagues in activities from time to time, such as building puzzles, playing video games together, and eating snacks haha. There's so much fun in the office that it felt as if time flies.
Challenges that I met during my internship
As a fresh developer, I met several challenges during the internship, as this is my first time working in a business setting. Just to name a few below.
- Estimation for time and effort needed for a task
I had a hard time during the fresh start to estimate the effort and time required for a task, be it simple or complex. As a result, I once underestimated the complexity of a task and set the target date to completion too early, for which I need to work overtime to get it done. Luckily, after more and more tasks, I've been able to grasp the idea better and have a better estimation of the task given.
- Understanding of technical concepts
Sometimes I'll have a hard time understanding technical concepts in order to complete a given task, due to several reasons, but mainly due to a lack of understanding of the fundamentals to lead up to the technical concepts of the given level. For example, in the beginning, I took a long time to understand why the codebase is structured in the way it is, and where best to place my code. This is happening because I did not have a high-level understanding of how the backend works, and how everything connects together. Once I understand that everything starts to make sense and the way of working is logically reasonable.
What I learned from my internship
I have learned tons of things from this internship. Below are a few examples.
- Production-level codebase
I have come to an understanding that for a production-level codebase, maintainability is, most of the time, the most important aspect to think of. A project might keep going for a long time, so it's important that the code is readable, easy to change, and loosely coupled. A one-liner might look cool, but it takes more brainpower for someone else to understand what the code is doing, debug the code, and change the code. Over the long run, maintainable code will prove useful to a project where developers can work happily with each other's code.
I've had many opportunities throughout the internship to work with different projects and tasks and come to an understanding of how important communication is. With proper communication, requirements can be understood correctly, and an applicable solution can be delivered without wasting effort and time on designing the wrong solution.
- Bringing value to a project
I truly experience the power of a developer, to understand and think from a client's perspective, why and how best to create value for them when implementing features for a project. I truly appreciate the fact that Bitlab encourages its employees to think for the business and try to bring the most value to the project. In this way, we're happy to have produced a project that proved most useful not only to the client but also to the user of the system.
My advice for internship
This internship has been a great experience for me. There's nothing more I could ask for, to be honest!