Career Journey At Trendyol Android Team As A Beginner

Sumru Kars
Trendyol Tech
Published in
5 min readMay 25, 2021
https://codegym.cc/groups/posts/327-what-its-like-to-be-a-junior-developer-a-short-guide

In this post, I will share my three months experience during my adaptation period at Trendyol Android team.

Like most developers who is at the beginning of their career path, improving my technical knowledge and adapting software development process are my biggest motivations. That is why I was very excited about the experiences I would have gained when I joined the team.

In my first day, the team members welcomed me sincerely and supported me in getting used to the team and the project during my orientation process. Although adapting to a new job is a challenge, especially when working remotely, I got through this process quite comfortably with the help of the team members.

I had lots of questions at first time like where to start, how is the workflows, what kind of technologies used here. That’s why I will mention a few topics about how I found the answers of these questions during my adaptation period. Also, you can check out the onboarding guide below to find more resources about the team.

UNDERSTANDING THE WORKFLOW

Before starting the development, the first thing I learned was the workflows of the mobile team. There are five different domains in the mobile team where business are developed. These are: Discovery, Checkout, Meal, Market and DolapLite. The last three domains are also called channels because they are different platforms that are directed through the Trendyol app.

Each domain has its own scrum board. Every week in the planning meetings, the board is updated with new tasks from backlog and one-week sprint starts. We follow the tasks status from board such as ready for dev, in-dev, code review, in qa, uat and done. Each task is scored according to its scope. At first, I was focusing more on learning projects and the codebase, starting with tasks with less points.

scrum workflow

When development is done, we open a pull request and the team members review the code.At this stage, I had chance to improve myself by receiving team’s comment about coding standards and alternative implementations.

After the code-review process is over, QA engineer starts testing and lastly, user acceptance tests are performed. If tests are completed successfully, development is merged to target branch and task status is updated as done. The merged developments are included in the next release package. When the release processes are completed, we publish the app and monitor it to keep track of the crash or any anomalies occurring. For more information about the workflow you can check the article below.

GETTING INVOLVED IN ANDROID EPICS

In addition to the domain-based jobs I mentioned in workflows, there are some epics that we follow as an android team. These are UI-Test, Performance, Aphrodite and Leylek.

These epics interests are respectively, UI Test implementations in the project, app performance, app style & theme related implementations and automating ci-cd processes. By following these epics, we make necessary developments to improve the application and development/test processes. In the team, it is expected to participate in these epics and give effort for the topics followed here.

For example; Ever since I got involved in the Leylek epic, I started doing more research on what kind of solutions we can produce to automate the ci-cd processes.I have learned that we can automate our manual jobs by integrating the services offered by platforms such as Bitbucket, Jira, Jenkins, Slack into the project. Although we use different technologies or services which are not directly related to mobile technologies, I am glad to it has given me perspectives about automating the workflow here.

Like Leylek, other epics follows up-to-date technologies to find new solutions for its goals. Thus, we get the chance to contribute to both team and our own improvement.

BUILDING EFFECTIVE TESTS

Writing the tests is an important step as well as development. Two different tests are written for improvements in the team which are UI and Unit Tests.

Unit Tests are used for testing classes/methods that are independent of the Android framework. Writing the unit tests is a must for a task’s definition of done. I had no experience with either test method before I started work, but I quickly got over my inexperience by reviewing the previously written tests and learning which class/methods we were writing tests for. At the same time, I was able to check if there was a case affected after a new development by running the tests. There is an article where you can get details about our unit test practices.

There is also UI test are performing which helps to automate the tests performed manually.It is something that I’m still improving myself on but basically we create a scenario and write the test for relevant pages and run them. It enables tests to run more frequently and faster.

UI Test Example For Market Review Page

Running these tests provides advantages in issues such as detecting bugs early in the app development process, refactoring the code more securely and a stable development speed.

WORKING TOGETHER

As a beginner, there have been some challenges I’ve encountered like confusion about codebase and technologies I haven’t used before. Working as a pair helped me overcome these challenges.

Pair working is commonly used concept within the team so it is not beginner-specific way of working but it definitely makes adaption period easier. It helped me to get used to codebase and coding style faster. It has another advantages such as continuous code-review, increasing communication within the team, sharing more knowledges and fewer coding mistakes.

Except pair working, concept we increase interaction in the team by asking each other questions, sharing new technologies or implementations we experienced, and giving constructive feedbacks.

I tried to convey my three month journey at Trendyol Android Team. It was an instructive, challenging and enjoyable adaptation period in which I was able to improve my coding skills, gain different perspectives and increase my technical knowledge.

I hope you enjoy reading 🙂

--

--