Gleap Internship

About the experience ⭐

Gleap is a company that offers a bug reporting and customer feedback tool for apps and websites, supporting the entire process from beta testing to customer support and roadmap planning.

Joining Gleap was my first experience in a real developer environment, where I transitioned from personal projects to contributing to a pre-existing codebase built with a React tech stack. I collaborated through a remote repository, which deepened my understanding of how development teams write, review and deploy code.

Notable contributions 📌

Here are some key achievements from my internship:
– Improved mobile and tablet responsiveness for a better user experience.
– Enhanced dark mode accessibility for better readability.
– Fixed frontend display bugs to ensure accurate UI information.
– Corrected spacing issues in message displays.
– Added template and button shortcuts for easier platform navigation.
– Implemented modals for improved user interaction.
– Created deep links to navigate directly to specific chat messages.

Keeping code maintainable 🧹

One of the most valuable lessons from my internship was learning how to structure code for maintainability- an essential skill in large applications. Instead of duplicating functionality across multiple components, I could integrate the application’s centralised “Bug Store,” a file that organises all functions related to managing bug tickets. This made bug-related features easily accessible across the app, improving efficiency and consistency.

The same principle applied to the platform’s design. Rather than manually assigning unique colour codes to individual elements, a centralised theme system ensured uniformity. A predefined colour palette allowed updates to be made in one place, automatically reflecting changes across the entire platform.

A similar approach was used for responsiveness, with standardised rules defining tablet and mobile breakpoints. These could be applied as classes to adjust or hide elements based on device size, ensuring a scalable and cohesive layout.

Overall, this experience strengthened my ability to write clean, maintainable, and scalable code while working within a structured development environment.

Developer workflows 🚀

One of the biggest takeaways was understanding how developers follow structured workflows to resolve bugs efficiently. I gained hands-on experience using browser inspection tools to debug, network throttling to simulate performance issues and keyboard shortcuts for faster navigation across the codebase. I also learned to reproduce issues locally, stay in sync with the latest version of the remote repository and ensure my code was review-ready—clear, concise, well-formatted and free of unnecessary comments or console logs.

Working with Typescript 📘

Working with TypeScript for the first time in a React application felt like adding a safety net to my JavaScript code. The strict typing system initially felt restrictive, especially with props and state, but it quickly proved valuable in catching errors early. Defining types for components and API responses made the code more predictable and easier to work with, especially in larger files or teams. While it required more setup, the improved autocomplete and reduced runtime errors made the transition worthwhile.

A large codebase 🏗️

I had worked on my own projects before, but never on a professional app’s codebase, which is naturally much larger! One of the key skills I had to quickly develop was navigating this expansive codebase, understanding the component hierarchy and organisation and learning how to efficiently add functionality by injecting specific stores that contained functions related to the component I was working on. Initially, it took some time to get my head around it all, but once things clicked, I was able to find solutions much faster and the quality of my code also improved.

Closing remarks 📝

Overall, this experience sharpened my ability to navigate complex codebases, troubleshoot efficiently and work within a professional development workflow. By the end of the internship, I was closing tickets faster and with more confidence, applying previously learned approaches to solve new challenges more efficiently. Moving forward, I plan to continue practicing and refining common troubleshooting patterns to further improve my ticket resolution speed.