Kiki (K): Hi everyone, welcome back to Kartini Teknologi, episode 18. We now have a guest who comes from far away, from Hamburg, her name is Nadinda. She’s currently working as a Junior Software Engineer in Mercury Media Technology GmbH (how do you pronounce this, this is like a “PT” right in Germany?) how are you, Dinda?

Dinda (D): Good, despite of Corona, everything is well.

K: We’ll talk about a lot of things with Dinda, because she has a lot of experiences. I met Dinda a while ago and she told me that she also joined Binar Academy, and she actually doesn’t come from a Tech background, so we’ll talk about how Dinda got into tech. How did you figure out that you want to work in tech?

D: Hmm, it’s a long story. Maybe I’ll introduce myself first.

K: Ah right, you can introduce yourself first [laughs]. I forgot about that since we already know each other.

D: My full name is Eraulia Nadinda Rachmat, but people usually call me Dinda. In Germany people call me Nadinda, so Dinda or Nadinda. If we look back, actually my interest started when I was in kindergarten. Both of my parents work, so sometimes they would be late to pick me up. So they signed me up for additional classes, besides of reading the Qur’an, there was also a computer class. ELementary school was more intense, since besides there was a computer subject, we also had PC at home. At home I was the one who tinkered around with the PC the most. I used the PC to play games, but there was a lot of things you can learn from playing games, as a PC gamer compared to console. Because we had to install everything on our own first, find out whether the requirements match our computer or not. When it comes to console we just need to insert the cassette and play. From learning how to install those games I also learned something about modifying the game. So there are several kinds of game mods, one of them is activating a certain feature that is usually not allowed in the default version.

K: Is that like a cheat?

D: No, cheats are usually in the game right. But game mods, you have to open the game file, open it in Notepad, and change the states from False to True. I didn’t know that it’s called coding. So I liked doing that. And when I was in elementary school I was known as the go-to person when someone needs their computer fixed. So if there were issues like, “Din, I want to install this game but I can’t, do you know why?” II would go check. One of my friends already had Internet so I often went to my friend’s house. In middle school, besides of an IT class, we also learned HTML, and there was also a subject called “muatan lokal”, like electives. So there were cooking, fashion, electronics, and graphic design. I actually wanted to register for the electronics class, but because there was no girl in the class, I hesitated and ended up choosing graphic design since it still has something to do with computers. In high school, I already knew I wanted to major in tech. I also had a dream major, called Game Technology, in PENS. But I hadn’t told my parents that I wanted to major in that, because I was scared they wouldn’t let me if it has something to do with games. In the second semester of the third grade in high school, I signed up for these universities by myself, I hadn’t told my parents. I got accepted in two majors in Universitas Ciputra Surabaya, Psychology and Informatics. Then I told my parents. My parents didn’t really agree that I major in informatics, although I preferred informatics to psychology.

K: Why is that if we may know?

D: There are several reasons. But what I remember the most is that, one, my parents still thought that informatics is dominated by men. Because to them, men’s logic is better. I wasn’t particularly good at math and they thought it would be difficult for me. I can, but I would struggle more than people who are already natural at it, in which (they thought) men are more natural to do something logical. In high school, I also enjoyed economics. That’s why after that I signed up for business management. I also signed up for PPNS, Politeknik Perkapalan Negeri Surabaya, and got accepted. I didn’t sign up for Game Technology because the registration would be opened long after I graduated. Meanwhile, for the others, I was able to register before I graduated. I was also still curious about SBMPTN so I signed up for SBM ITB, and I was accepted. I thought, I wanted to know how it feels like to move to another city, so I chose ITB, and I moved to Bandung. I studied business there, in SBM—Management Business School. But it didn’t remove the opportunities for me to enjoy technology. There, I always offered my friends, if they have an assignment to create a business, I’d offer to create the website or design something—anything related to tech. I also built several company profiles, so since we were in a business school, there were a lot of businesses, so I made a lot of websites. Although that was just web design, I didn’t use backend whatsoever. So that’s how I got started.

K: You also mentioned that you eventually studied business management in ITB. But now you’re working in tech again, and I think that’s not easy, considering your background. So, how did you eventually find your way back to tech? What were your considerations?

D: Okay, so this is an experience that I think is magical. So, I studied business and specialized in finance during my final year. I had determined that I would apply to financial institutions. When I was waiting for graduation, someone contacted me in LinkedIn, this person was from abroad, saying, “Hey, I will be in Indonesia next week. I want to build a company and I like your profile. Can we meet and talk?

K: That’s so random isn’t that?

D: I joined AIESEC, and they said, “I saw you were involved in AIESEC, and I like AIESEC people, that’s why I’m contacting you.”

K: I see.

D: He went to Bandung, and I met up with them. They interviewed me, but it felt like we were just chatting. That’s when it was discovered that actually my interests were in tech and coding, not business development or finance. They asked me very deep questions that they could actually resurface my interests in tech. And they said it’s not too late if you want this, and I really felt that. Because it felt like it was my personal secret, but it was uncovered by a stranger that I totally didn’t know.

Galuh (G): It was as if someone had validated that this is what you want. [Laughs]

D: That’s totally correct! But that’s one of the weirdest points in my life.

K: [Laughs] so we can say that it’s a turning point that brings you back to tech, isn’t it?

D: Yeah.

K: You joined Binar Academy. What’s the story? Did you try to find opportunities right after that meet up?

D: Not right at that moment, because it’s not like one person could truly convince me. I didn’t want to just drop everything I learned in three years, not using the knowledge I had learned in college. So I joined my friends education startup, and I was in finance. The CEO learned coding by themselves, so they also coded the product. Although I was in finance, I often asked them about, “how did you build this?” and they said, “I learned it by myself.” They said, if you want to learn it by yourself, you actually can. I hung out a lot with them, they were all engineers mostly because it was an early stage startup. At that time we were still seeking for seed fund. The only non-engineer was me. The more we interacted the more I missed computers. I talked to my CEO, and they said it’s okay, if your interest is there, you can look for coding bootcamps. I browsed around and I was interested in Binar Academy because it was free. But they had a long waiting list. I graduated in 2017, Binar was in 2018. I studied in Binar Jogja. In 2018 I studied Android, Java. Why? Because those were the hardest. I thought I had to strengthen my fundamentals first. And I heard that OOP is difficult conceptually, and I wanted to learn the most fundamental first. It turned out to be difficult! [Laughs]

K: So it kinda backfired. [Laughs]

D: The more we learn about something, the harder it gets it seems. There are many things we do not know.

G: Yeah, right. We learn that there are so many things out there we do not know yet, with all of their complexity. [Laughs]

D: True! Most of the people who joined the bootcamp had a tech background, but they felt they couldn’t code. So they joined a coding bootcamp. I felt weird—didn’t their college teach coding or what? I was the only person who didn’t come from tech background in Jogja. It was also full of drama but thankfully my team was the best team. I think they also assessed us based on growth, not based on end product.

K: Ah, progress.

D: Yeah, progress. In Binar Academy, if you’re the best team, you can get a golden ticket to interview with one of Binar’s partners. BUt not everyone, though. So the team will get a golden ticket but the company still has to choose which ones they want to interview. After I graduated Binar for the first time, I joined Binar again, so I studied in Binar twice. They invited alumni to try Binar’s experimental class in BSD. So they had like a new program. It was supposed to be free. Binar isn’t free now, right, and that program was the start.

K: So it was like you were given a trial, right. But according to you, for people whose background are not in IT, is it important to join a coding bootcamp?

D: I actually can learn coding by myself. From online courses, tutorials, many of them are already available on the Internet. But, I think the plus side of coding bootcamp that had an effect on me the most is how to collaborate in a team. Each developer usually has their own way of solving problems, so this is more like how we put our thoughts together to solve the problem that we want to solve. So although I think we can learn by ourselves, in coding bootcamp we can also learn collaboration and team work.

K: Okay, so you already shared with us about your experience on coding bootcamp. When did you get your first tech job?

D: After the second Binar. I took full stack web class, the front-end was JavaScript, the framework was React, and for the back end I used Java using the Sprng Boot framework. After the second Binar in BSD, I got more offers. So perhaps compared to mobile development, there were more jobs in web development. I got more interviews but all of them were in Jakarta.

K: And you were in BSD, right?

D: Yeah. But I thought this would be my last year in Indonesia, right. So I chose to return to SUrabaya. In Surabaya I wasn’t actually looking for jobs actually, but someone phoned me, a recruiter, they said I signed up at Glints, so they knew my phone number from there. “Hello, Dinda, are you still interested in this position?” and I was like, right. They didn’t know that my position was in Surabaya, because when I registered at Glints, my position was still in BSD. But they said the position was in Surabaya.

G: Wow.

D: I was accepted, and the next day I got to go to work. It was a very fast process. They said, “I actually have never hired someone that doesn’t come from a tech background and your case is pretty unique. But well, I’ll give you a chance.” So I took it. Because it was close, in Surabaya, so nothing to lose right, so I worked as a front-end developer.

K: How’s your role in your current office like?

D: When I got this second job I was in Berlin, right. When I landed in Berlin, I got an email from Outreachy. I signed up for Mozilla’s project, I registered because they were using React. I learned a lot from there. I learned that they used React’s type system called Flow. When I learned Flow, I was very interested. This type system was very helpful. So I learned that there’s something called functional programming. I actually didn’t know functional programming before this, but I knew Elm first, from someone at a conference in Berlin. So I knew that there’s a programming language called Elm and it’s a strongly-typed language. I was like wow, this is very related to my work in Outreachy, so this seems like something that I need. I learned Elm, and joined an Elm workshop, and after that I searched for Elm job in Germany. I applied, and I waited. If I wasn’t mistaken because I signed up in December, and then there was Christmas and New Year’s in which there was all hiring processes were frozen. I was contacted again in January, they asked whether I’m still interested. They offered me, do you want to remote or relocate to Hamburg? I said, I’m okay with moving to Hamburg. I was invited to Hamburg, then I had pair programming test, and got my offer there.

K: So you’re now using Elm?

D: Yes. I’m working full stack now, so Elm for the front-end, Elixir for the backend.

K: If you can choose, do you have any favorite programming language?

D: I’m very into Elm currently. Elm’s compiler really makes it so that it’s hard for you to make bugs.

G: Have you ever asked your CTO or your peers why they chose Elixir and Elm instead of other stacks that might be more usual?

D: I never asked directly, but in my office there were a couple of services and legacy projects using Ruby and JavaScript although there were various frameworks. They said, one, once the programmer of those projects resigned, the projects were difficult to maintain. So previously they used a software house, and after that they decided to build an in-house team. The tech lead came from the software house and they were the first person to suggest the stack. THey said that there are actually programming languages that are not too difficult for people to pick up, but more reliable than most programming languages. At that time the CTO was just like, okay, go for it. So actually they tested this gradually, on one part of one project first. But coincidentally, the service that I’m working on, is entirely already using elm and Elixir. So it’s like a rather large trial project.

K: So Elm can be considered as a functional programming language, right. Which people rarely use. How would you describe functional programming to others?

D: So, functional programming is just one of the programming paradigms. In programming, we are trying to solve a particular problem, right, and it can be solved in a few different ways. One of them is with functional programming. So the point of functional programming is it iterates through the data using function, not for loop. But functional programming has characteristics that can prevent the bugs I’ve mentioned before. One characteristic is called immutability. So for one function, the input and output has to be the same, and that prevents the bug. So there is no state that is carried in the function. The second characteristic that I like is strongly typed. So, actually in functional programming it can be strongly typed like Elm, also dynamically typed like Elixir. For strongly typed you have to really write the type, if the input is integer, the output has to be integer. But for dynamic, it’s possible to have it different, it’s called impure function. This is how Elixir is like. So I think, rather than focusing on the functional programming, maybe you can take things like, typed function for example. I was interested in functional programming because I learned about typed function. In React you can use Flow. So you can use it in JavaScript too.

G: In Python, you don’t have to write the type. And yeah sometimes there are bugs because what the function expects vs the input and the output can be different because we don’t type it. But in Python there’s a library that we can import if you want to type it, but it’s not mandatory. Okay, when entering the world of functional programming there must be a lot of new concepts right, like immutability which might not exist in… what is it, the opposite of functional programming, OOP?

D: I’m not an expert yet, maybe procedural?

G: Procedural? I’ve learned about it in college but I don’t remember. [Laughs]

D: I didn’t study IT, so I don’t know. [Laughs]

G: Majoring in IT is not a guarantee, folks. I don’t remember, I have learned about it but I don’t remember. The point is, in functional programming there must be a lot of new concepts that we rarely come across usually, and maybe when you learned it for the first time you didn’t know about those concepts either. Any tips to understand those concepts for our friends who are listening?

D: Why did the creator of Elm created Elm? So they wanted to create a programming language that can be studied by everyone. Functional programming is, if I’m not mistaken, famously often used by researchers right, like Haskell. Haskell is actually the most popular functional programming language.

G: Yeah, I learned Haskell back then.

D: I’ve just learned Haskell as well. Elm is not only inspired, but it is the constrained version of Haskell. Haskell is powerful, but because it is powerful, it’s difficult to digest by someone who is just starting to learn it. So the creator of Elm has thought about how to make learning functional programming easy. So I suggest that if you want to learn functional programming first, you can learn Elm. I think it’s the easiest to understand.

G: I see… because I remember when I learned Haskell, it was like a whole new world. In the first semesters I learned Java, right, so it was very OOP. When I was taught Haskell in the next semester, I was like, what is this? Like monads, and stuff… it was fun, but just so different. Also I’ve just learned that Elm is actually inspired from Haskell and is, in a way, trying to simplify it.

K: You mentioned that functional programming is more oftenly used in academia. And you’re working in the industry now. How is the application of functional programming in the industry?

D: I think many people have used Elixir and there exists a Telegram group too. Elm, unfortunately there’s no Indonesia group yet.

K: You should create one!

D: [Laughs] Elixir has been used by many. In Germany, many companies using Elixir start to pop up. Elm was inspired by Haskell, right. Meanwhile Elixir was from Erlang. Erlang is usually used by large corporations. The startups start using Elixir, because the syntaxes are simpler. So it’s easier to adapt. When you’re looking for programmers it’s easier to train them too. So it’s starting to be used a lot in industry. But like Galuh said, people start to create programming languages that try to simplify the big giants like Haskell and Erlang.

G: And it’s not just for back-end, right? Like Elm can be used for front-end?

D: Yes, Elm is for front-end. Elixir can be used for front-end but it will be server-rendered. So the rendering is from the back-end, not that we create the UI ourselves.

K: I’ve just learned that many people are starting to use Elixir. In Indonesia itself, do you know whether it has been used by companies or is it mostly used by hobbyists?

G: In my company some projects use Elixir. But I’m not sure why. I think the learning curve is not too steep, one of my friends in my team has work that is related to another team and he has to follow their stack. So he has to learn Elixir as well. But it’s quick to learn, like you just need to adapt and go.

D: Yeah, Elixir is easy to learn. If I’m not mistaken, Elixir wants to emulate Ruby’s syntax. So people who are already used to Ruby, usually can get up to speed pretty quickly with Elixir. That’s why many startups start to adopt Elixir, because they can just find people who understand Ruby, and when they use Elixir usually it’s like they’re natural at that. I have never used Ruby though so I don’t really know.

K: Speaking of paradigms, I didn’t think that paradigms are this important to help us form our thinking patterns when learning programming. Do you think it’s important to learn about paradigms before we learn the programming language? Or do you learn the programming language first, and you can learn the paradigm as you go?

D: That’s a tough question [laughs]. So I start to learn something that is in front of my eyes. So what I came across, I chose that, I learned that, and I built something using that. I’m not fanatic of one particular paradigm. There are people who are like, Java fanboys, or are really into one programming language. I try to be openminded. So although I might be learning that, there’s possibility that I will learn other languages as well. And, each programming language might have different paradigms right. Although in JavaScript you can… well, JavaScript is weird, we can’t have that as an example [laughs]. Java is usually OOP, or Elixir and Elm are functional. I learn as I go. So I think, just pick one, learn it, but don’t rule out other programming languages as well.

G: I agree, and from what I hear about Dinda’s story, I think by being open minded, you can have more opportunities. When you know Elm you get the opportunities to work at a place that uses Elm. That’s one thing, right. If we do not know Elm, we may not know there are job opportunities that require Elm. So I agree, stay open minded. And always learning is also important. To have one language that we’re comfortable in. But right, do not become too fanatic, be open minded. Especially that technology moves so fast. So if we’re not open minded we will be left behind.

D: Yeah, true. Technology develops at a rapid pace. We have so many frameworks already. So whether we like it or not, we have to learn new things. So, why not learn everything and open our minds to other things?

K: Talking about learning, when you were learning functional programming, what are your references?

D: I really like a website called elmprogramming.com. They have these interactive tutorials. So they do not only give examples, but they also explain and have these diagrams. I’m a visual person so I really like it, compared to only reading texts.

K: One thing that I think is very characteristic of you is you love communities. When you were in Berlin you would often join local community events, including Outreachy. Can you tell us about your experience in Outreachy?

D: So Outreachy bridges people who want to get into open source. Open source is like Linux, Mozilla. The organizations that have these open source projects, they join this program called Outreachy. So Outreachy is a three-month internship program, it’s paid and remote. So we can join wherever we are. In Outreachy, these organizations submit their projects that open source contributors can work on. There are three steps: first you have to submit an essay. Motivation, your bio, etc. Second, this is the contribution step. You have to create pull requests to projects that you applied to. Third step is the real internship. In the first step, I got the email right when I arrived in Berlin. I actually forgot that I signed up for Outreachy. I got through the second step, the contribution step. There were a lot of projects. I first signed up for Gnome because I wanted to learn Rust. But they were looking for someone intermediate, and I was just starting to learn Rust. I tried to search for other projects. Mozilla actually had a lot of projects, but I choose Pontoon, which is Mozilla’s localization platform because they were using React. The good thing about Outreachy is, you will be assigned a mentor. So each project can be assigned one or two mentors who seem to be able to respond to us for 24 hours. I mean, they respond very fast. So we were very guided to contribute. You actually don’t need to give as many contributions as possible. They assess you from how impactful your contribution is to the project. I was quite confident because I already had 5 pull requests, because they said at least you have one. Like you can just have one and it’s okay. But, yeah, because there were a lot of people who registered. And Mozilla is very famous right, and one project can have multiple people who want to register, and they would accept one person. But yeah, actually in that step I already learned a lot. And there were mentors too so we could ask anything. And my codes were reviewed, that’s the first time I got my code reviewed. Not in my first job. So I really learned the good code practice in Outreachy. I also learned unit testing. I’ve never learned automated testing before right, and I also learned about type system in Outreachy the first time. The contribution step was only two months including choosing and contacting mentors. Turned out, I didn’t make it. But although I didn’t make it, I already earned so much, and I was close with other applicants so I got some new networks too. So it’s very recommended.

K: So in the second step you already had the chance to interact with your mentors, right?

D: Yeah.

K: You also mentioned about joining a coaching/mentoring program in the local tech community in Hamburg. Can you share more about that?

D: You can ask my college friends that I’m very into communities. I think communities are important contributors to your self development. Before I moved to Hamburg, every time I moved to a new city I always tried to find what are the local communities there. The ones that I can join or at least, if they have any event, I’ll drop by, doesn’t have to join as a member. It turns out they have a mentoring program. So this is actually the Hamburg chapter of Women Techmakers, but they have their own branding, and the coaching session is more about career actually, not programming. But it’s very helpful for me to strategize about my future career. So they already have their own syllabus. From session 1 to 6, I set my own goals, action plans, and have peer review. And since I’m new in Hamburg, I’m making new friends too. It’s very helpful for me to fit in to a new city.

K: If I may summarize, I think Dinda is very open to opportunities. So you are open to trying other things although you actually already have something too. And communities are very helpful. You can become like who you are now because you join a lot of community activities. So I think it’s very cool. I hope this can inspire others who are listening too. Do you have any message for our listeners?

D: I think your summary fits really well. So don’t stay in your bubble. Once you burst your bubble, there are many things in this world that you have to try and you can only see once you’re out of your bubble. So yeah. Don’t stay in your bubble, burst it, once you’re out, you will see the whole new world.

K: That’s very cool. So that’s it, friends. Don’t stay in your bubble! Burst your bubble and look at how the outside world is like. Thank you, Dinda. I also learn a lot from your story, so thank you so much. Bye!

D: Okay, thank you.