My summer internship at Tremend as a web developer

4 min read >

My summer internship at Tremend as a web developer

Life at Tremend

Can a job be fun and offer a learning opportunity at the same time? My experience at Tremend proved to me that this was possible. I first heard about Tremend at the job fair organized by the Faculty of Automatic Control and Computer Science. I was drawn in by the many diverse departments they had and the flexibility they offered in switching between technologies and departments if I decided a different area was more to my liking. In the three months I worked as an intern, I discovered new technologies and with the help of my colleagues and mentors, I managed to overcome a steep learning curve.

My internship was in the web platforms department working mainly with Python. The first project I worked on began immediately after I had joined the team and focused on a mini IoT platform. I had the chance to team up with a fellow intern and work in a team under the guidance of our mentors. This was a small-scale replica of a larger project within the company and the project’s main purpose was to allow us to get used to the technologies and processes used inside our department.

Working on this first project, I managed to successfully use technologies such as Django, RabbitMQ, Celery, and Docker. This is when I faced my first challenge — containerizing an application more complex than any other I had previously worked on. One main factor that made the process difficult was the communication between different system components. Having developed the system locally, there were quite a few variables that did not pan out as expected when we moved all services (a couple of Django apps, PostgreSQL, and RabbitMQ) to separate containers.

One major mistake I would make from time to time was to confuse the local host of the container with the local host of my machine. Since it was my first time using technologies like RabbitMQ and Celery, it took me a little while to figure out how to make them communicate with each other. On top of these operational problems, there was also the task of learning how to use Docker, how to manage containers and the syntax of both the Dockerfile and the Docker Compose file.

After a few weeks, our initiation project was complete, and it was time to move on and start working on a real-world project. I was assigned to one of Tremend’s largest projects involving multiple teams across several departments. At first, it was intimidating because it was far from the easy task of doing homework and testing it locally. In the real world, you do not have a checker that will give a grade, but setbacks that can occur at any moment and clients that need fast solutions.

One major challenge when starting complex projects for the first time is understanding how all components work together. Having said that, you get the benefit of working in a team with dedicated colleagues that do not hesitate to answer any question. In my case, my mentor gave me a thorough presentation of the whole project and assigned me increasingly difficult tasks, which helped me develop a clear overview of the project. An unexpected plus of this internship was that I had direct contact with our client by actively participating in various project meetings. This gave me a deeper insight into the business side of things and thought me a few things about the whole development workflow of a project, starting from client requirements all the way to delivered software solutions.

I have also enjoyed the social aspect of the company with monthly events like parties, karaoke nights, and pub outings. The game room is also great since it gives us a chance to take interactive breaks playing ping-pong, foosball, and even Xbox video games. For the more musically inclined, there’s also a jamming room fitted with a guitar, a drums set, and a sound system. All in all, I greatly enjoyed my time at Tremend during the internship, learned a lot, had fun, and was more than excited to join the team full time after my internship was over.