Blacklane Developer Journeys: Javad – Mobile Developer

This month, we’d like to introduce you to Javad. Javad is a mobile developer. He joined Blacklane in October 2016.

Where are you from, and what is your minimum viable autobiography?

I’m from Iran. I studied computer science in university, and after graduating, I started teaching programming and IT courses. Then, I worked in a bank as a regional IT department manager for 5 years. After that, I went abroad to Finland and continued my studies at master’s degree level in computer science at the University of Helsinki. I got my first full-time programming job at the university as an Android developer in 2014. After some time, I started working in the industry and continued this wonderful journey.

When did you realize you wanted to write code for a living?

After attending a short “computer” course at the age of 14, I got fascinated by how cool computers are and did some programming on a friend’s shiny new Pentium-II PC. We couldn’t afford to buy a PC until my second semester in the college.

How did you end up in Finland?

I started looking into universities with computer science programs in English in countries I could afford. I didn’t have much money. I looked into programs in Norway, France, Canada, and Finland, and I was admitted to all of them. I realized I could afford either tuition or living expenses if I studied abroad, but not both. I also thought about the quality of life, too, and the quality of the education I would receive. Linus Torvalds created Linux at the University of Helsinki, for example. In the end, I chose the University of Helsinki because of the university’s ranking and the quality of life in Finland.

Why did you want to leave Iran?

I didn’t dream about becoming a programmer when I was a child, but I ended up going to a technical school. Everyone was against this, because my GPA was very high. I was good at math. My high school principal said I should stay where I was and study math, but I was more interested in computers, so I went to the technical school. When I got the job at the bank, it was interesting at first, but eventually I didn’t get to do much programming. I did have a childhood dream about studying abroad, so when I got bored with that job, I decided that was the time to do it.

What brought you to Blacklane?

A friend of mine had moved to Berlin and as we talked several times, he told me how cool and vibrant the city is and convinced me to move here. So I started looking for Android developer jobs in Berlin and came across Blacklane (on LinkedIn) among other companies. I checked Blacklane’s website and found a video about Blacklane’s move to the current building and the working atmosphere. I loved it — it was the friendly and nice atmosphere I wanted. After my interview with the team’s tech lead, I also got the impression that this is the friendly and professional environment that would help me grow.

As a developer, how do you feel about living and working in Berlin?

I love Berlin. There are tons of meetups, gatherings, conferences, hackathons, and startup events held here. I attended DevFest conference just a month after arriving in Berlin. Droidcon, one of the most popular Android development conferences started here several years ago. Indeed, I’m attending Droidcon this year and my ticket is paid for by Blacklane. Also, I gave a talk in a Kotlin meetup that was hosted by Blacklane two weeks ago and hung out and had engaging conversations with other speakers and developers attending the meetup.

What differences have you noticed between working here and working in your home country?

People are much more efficient in Germany — except for banks. People in banks in Iran work too much. I was on call all the time. At 10 pm, some ATM might not be working, and then I would have to go to the nearest branch and fix the problem. That was stressful. Also, developers were underpaid in Iran when I was there, but now they are catching up, probably because of the startup scene, which is expanding very fast these days! I hope the political situation doesn’t mess it up, because it’s so nice that it’s happening there, in Tehran, Isfahan, Shiraz. There’s an Uber-like service called Snapp in Iran. Nobody knew about it 2–3 years ago, but since then they’ve become huge. This is just one example. There is also Digikala. It’s like the Amazon of Iran. It has also become a big player in Iran’s tech retail industry. Currently, there are about 20–30 startup incubators in Iran and a new one pops up every now and then. I can’t keep track of them all anymore. But interest rates in Iran are very high, so I wonder about the motivations of the investors there since it’s so easy to earn money just from a bank account.

Why do you enjoy staring at a screen for hours and hours every day, manipulating symbols that tell a machine what to do?

It feels good when you solve a problem after focusing and thinking for some time. It feels good when you craft things or make visible changes that people find valuable as those changes solve one of their problems. Even more importantly, I like dynamic jobs when you get the chance to learn and do something new every single day. The first year of my job in the bank was awesome, we were building the bank’s infrastructure, opening up new branches, and figuring out and fixing problems and improving our banking software. After two years, however, the job became boring as it got static. I don’t like monotone, routine jobs where you repeat identical or similar tasks every day, more or less like a machine.

How do you find working on a team versus working alone?

Working on a team is much more pleasant for me. Your morality gets better over time, you feel more alive, you learn new concepts, techniques, or general life lessons from your teammates, and you professionally grow more quickly. It’s also more fun as you interact and talk with others. You get to have lunch together with your nice colleagues. In Blacklane, we have really fun team events organized periodically by each team independently. We go somewhere and do a fun activity together; you feel energized and refreshed after these kinds of events. However, sometimes you need to be alone in order to avoid interruptions and be more focused to get something done. That’s why one day a week, I work from home.

Do you have any favorite languages, technologies, or frameworks? What do you like about them? Are there any that you secretly despise?

I think languages and technologies are tools that can be utilized for getting things done. Some of them are better suited than others for specific types of tasks. Some older ones have served us well for a long time and were a breakthrough when they were introduced. However, as time goes on, some new technologies are built on those solid bases while avoiding their downsides. Pragmatic developers tend to evaluate pros and cons of new technologies and tools and give them a try if they have a high potential for improving the codebase or are better suited for the kinds of tasks he/she/the team does.

For example, Ruby is considered slow in terms of machine performance, however it’s incredibly fast in terms of development speed and productivity for web development thanks to frameworks like Rails. So from my point of view, it’s a very good choice for prototyping and validating ideas and for developing the MVP (Minimum Viable Product) of an early-stage startup, where you need to add features, and you don’t have many resources. However, it’s a poor choice for developing microservices in a company that needs scaling.

I personally like the Kotlin language a lot as it’s less verbose, safer, and more extendable and flexible than Java — which is used for Android development — and it improves the readability of the code which leads to fewer bugs, as it’s easier to spot mistakes when there is less noise in the code.

What are you looking for in a company when you’re considering a job? What is most important to you, and what is least important?

The most important factor for me is a fun, friendly, and stress-free atmosphere that provides room for personal development and growth. An atmosphere in which you can learn and experiment with new approaches and technologies. An atmosphere that recognizes and honors your work. If the working atmosphere is not healthy, your mind is always struggling with political and irrelevant issues and you cannot focus on coding. The technology stack is also important, as I prefer not to work with legacy code, but that’s less important if the team is happy with changing that code and accepts the risks and required time associated with touching a legacy codebase. Financial compensations and the stability of the company is also important as I don’t like the uncertainty associated with early-stage startups.

What role do developers have in the world, do you think? Are we just passive code robots, or do we have responsibility for the impact of our work on society?

I think they have a huge impact on the world. Think about what we do today on our smartphones. Think of Google, Amazon, Airbnb, Meetup, etc. They have changed our lifestyle, and that wouldn’t be possible without good developers. And each individual developer should think about the consequences of their work. The invasion of privacy, for example. We had a list of features in our backlog for collecting some data from our users in order to improve their experience. One of the features was to collect user gestures. During our initial discussion, we thought our users might not want this, and therefore we decided to collect the data we need in another non-intrusive way. Each developer should have the mindset to protect user data. Also, since mobile users generally have limited data plans and battery life is also limited, we should be very careful not to waste their data allowance or batteries. We should think about the consequences of the features we implement and the libraries we use because we care about our users.

If you could change one thing about Android development, what would it be and why?

Currently, we have a problem with the need to cover devices with a low Android version. You, as a developer, need to make sure that your changes are compatible with the lowest version of Android you support. There is a compatibility library we use to make this less painful, but sometimes it’s still cumbersome. Therefore, I would speed up the development of an API that smartphone (and tablet) manufacturers can use to implement the hardware-related parts of Android and add their own customizations while still keeping the user experience smooth and, more importantly, making it possible to offer timely and lifetime OS updates with a minimum amount of effort from hardware manufacturers, in order to keep the device functioning properly. Google is working on a project called Treble that is exactly aiming at this. However, we haven’t heard about it in awhile.

What is it like working in a different country, and culture, than the one in which you grew up?

It’s mostly fun as you get to learn about other cultures, especially considering that Berlin is an international city, and people from all around the world live here. But it can also be challenging when you contact local companies or authorities, as some of them don’t speak English. It can also be surprising at times when you learn about some certain things in other cultures. But so far, it’s been a pleasant cultural experience for me.

At Blacklane, we have a diverse and growing engineering team. Every month, new faces appear among us, often adding to the long list of countries that are represented here. We started this interview series because we wanted to give our developers an opportunity to tell us about their background, share their interests, and answer the question, “How did you end up at Blacklane?” We figure everyone has a story to tell, and since Blacklaners come from all over the world, and more and more work all over the world, it’s fascinating to hear about what brought them to our company.