Getting Started at iyzico

Gokhan Yilmaz
iyzico.engineering
Published in
6 min readJan 7, 2021

--

Hello everyone, in this article, I would like to share with you all the details starting from the iyzico recruitment process to the onboarding process. And of course, I intend to share my experience and thoughts in iyzico during the first two months.

Unfortunately, we have been used to the remote working model due to the pandemic. It seems that both companies and our employees will continue in this way for a while. I hope we can return to healthy days when we can meet face to face as soon as possible.

What have I experienced before the first day?

With the pandemic, the recruitment process continued remotely and also interview process was completed that way too. When the proposal was sent to you and you accepted it, you are now an iyzinator”. Congratulations 🎉 After this time, HR greeted me with a welcome mail to the team, summarizing the onboarding process. In addition, your laptop and, if you wish, your work chair and monitors are quickly sent to the address that you specify. iyziMate is appointed by your manager to assist you in your onboarding process, and your iyziMate will call you before you start to work and make an appointment for your first day through Microsoft Teams.

Who is iyziMate?

iyziMate is the person who does not make the new iyzinator feel alone during the orientation process, gives information about the operations and processes and represents the iyzico culture. The person who is selected as an iyziMate in the remote working order is responsible for the daily works of iyzico in the first 2 months of the new employee, meeting the need for questions and support, communicating with the relevant people, the needs of the team and the work undertaken and the correct transfer of the culture.

My First-day at iyzico

My iyziMate welcomed me at the time we specified before and he told me how it would help me in the 2-month period and about the team structure and organizational schema. After that, we arranged coffee-talks to meet my teammates. (Coffee-talks are routinely set to introduce the new iyzinator to the team.)
Then, we started to complete the installations that I need with my iyziMate. For this, we open CM’s that we call Change Management and get permission for the installations and repositories we want.

After completing installations, First Day Challenge was assigned to you. When you have completed the task and passed the code reviewing, testing and deployment steps congratulations 🎉 Thus, you’ve completed your first task in iyzico. :) Well, let’s explain how these processes happen at iyzico one by one.

What is the First Day Challange?

The First Day Challenge is a task assigned to you so that you understand all processes from development to deployment and to be familiar the repositories.

Daily Meetings

We apply Scrum methodology and our Sprint length is one week so, we have a meeting at 09:15 A.M every weekday. We tell each other about the technical difficulties we experience regarding the jobs assigned to us, provided that it does not exceed 15 minutes in total. And also, every Monday, we meet at 09:30 A.M for planning. Every team members pick up their tasks from the backlog. But, If one of us is batman or robin then we do not include his/her in the sprint planning. But what are batman and robin? I explained it in the following section.

Who are Batman and Robin?

As the software team, we choose Batman and Robin every week. Batman is chosen from more experienced people. Robin is partially chosen from less experienced people. Batman and Robin is in charge of software support for a week. They monitors the whole system and detects existing problems and provides communication.

Weekly and Monthly Meetings

We have all hands engineering weekly meetings at 01:00 P.M on Mondays. In the meeting, each team makes a presentation about the previous week and share information. The presentation is presented by a different person each week.

We have also all-hands company monthly meetings. In the flow, first, we get to know the newly joined iyzinators, then we talk about financials, products, and important developments.

At the end of the meeting, we talk about the questions asked to the management.

Code-Base

At iyzico most of the projects have microservice architecture.
We try to keep these projects up to date as possible. For this, we migrate some projects from Java 8 to 11. And also we implement the newest and useful libraries to write more fluent and efficient code.

Additionally, we apply the domain-driven design(DDD). Domain-Driven Design is an approach to software development that centers the development of programming a domain model that has a rich understanding of the processes and rules of a domain.
I suggest you read Domain-Driven Design: Tackling Complexity in the Heart of Software book for more detailed information.

Integration and Unit Tests

iyzico is a payment company that’s why the codes we write are more critical than other sectors. So, the testing process is most important to us. And when we write a service, controller, manager layers, or something else we must also write unit and integration tests. By the way, we use Mockito and JUnit libraries for testing.

Pair Programming

iyzico seriously cares about pair programming. We work in pairs whenever possible. In this way, we both learn together and there are two people who know the related task.

pair programming

iyzico Pair Programming Rules:

  • Share.
    “In pair programming, two programmers are assigned to jointly produce one artifact (design, algorithm, code, among others). … One person is typing or writing [driving], the other is continually reviewing the work [navigating]. … Both partners own everything.”

Not only is this an effective learning technique, it is also more productive than splitting a task in two, working on each half separately, and then combining the two.

  • Play fair.
    It is important to take turns typing or writing [driving], so that the other person gets a chance to review [navigate].
  • Clean up.
    Defects belong to the pair. Having two sets of eyeballs is much better than one.
  • Hold hands and stay together.
    All programming should be done together; do not create things done alone. The literature of pair programming shows that most defects are traceable to things done singly. It also inhibits learning.
  • Say you’re sorry.
    Ego-less programming … is essential for effective pair programming.”

Do not insist on having things your way or else. Do not get defensive about criticism. Work things out as a pair.

Deployment processes

iyzico has a quite strong Continuous Delivery. The number of releases to production is more than 2000 this year. In other words, the number of deployments is an average of 5.7 times a day. This is tough work, and it makes us stronger in the field.

We generally use Atlassian tools such as Bamboo, Bitbucket for CI/CD pipeline.

Environments

We have 3 environments in iyzico. These are stage, sandbox, and production.

The stage is most used by our developers. Because the environment is for routine testing. And Sandbox is mostly used by our merchants to test their own needs.

Documentation

Another topic I’d like to talk about is documentation. In iyzico, documentation is really important.
If you search on a topic that you need for development, you will probably find it on the Confluence. Because It is constantly updated. You can find any information from coding standards, designs to training. When we start to develop requirements, we arrange a meeting for analysis. After that, we write a high-level design(HLD) and low-level design(LLD) document and upload it to Confluence.

Side Benefits

As you know, It is important for us to access technical training, courses, or books. So, we must keep ourselves up to date.
iyzico gives these kinds of resources to its developers free of charge. iyzico is also a PayU company. That’s way, we have more resources.

Resources are as follows:

  • MyAcademy is a NASPERS platform (includes Udemy, Harvard ManageMentor, getAbstract, Busuu, and more.)
  • Safari books
  • Frontend Masters
  • Cambly Account (with %50 discount)

We’ve come to the end of my article. I wanted to share my experiences with you as accurately as possible, I hope you enjoyed it.

I hope we can see you on our team. :) Thank you for reading. 💙

--

--