GO-vatar series: How I Play With Go Language As a Software Development Engineer in Test

Ferawati Hartanti Pratiwi
Inside Bukalapak
Published in
6 min readFeb 7, 2019

--

https://yourbasic.org/golang/square-gopher.png

Automation. That word is identic with my job role.

Hello there, my name is Fera and currently, I’m working as a Software Development Engineer in Test in Bandung, Indonesia. Do you have a job role same as me? Then I hope my story is quite interesting to you.

https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQYWw_LFrjhomBmdEGaJKjklhxOXrPTrksDYzROHT8ZkE3YzXAc

My professional life starts with a role as a Software Quality Assurance. I only do and understand manual testing. Try that for several days, months or years. Yes, I’m bored. Then someday I change my mind and I said to myself “I cannot do it forever. I will change no matter what it takes”. Trust me, when I start to learn about automated testing is REALLY NOT EASY. But I only have one thing in my mind. I really really REALLY curious about automated testing. If you’re curious then I believe you’ll find a way to make yourself comfortable.

Thereafter I start with an automated testing job, I think everything will be much more fun than if I do manual testing only. Well, humans are never satisfied. Yes, me too.

https://quotefancy.com/quote/1766368/Russell-Westbrook-I-m-never-satisfied-I-m-always-trying-to-get-better-and-learn-from-my

Well, I can code. I do like coding. I’m not an expert at it, that’s what I always say to myself. But at least I have a curiosity about coding. When I become an employee in my current company, there are lots of programming language that I really don’t understand. I become a weirdo to watch such a weirdo talk about weirder things every day. But I think that’s a good sign. I have to be poor to become rich. I have to be stupid to become smart. That’s what I believe.

For your information, my current company have five cultures for its employees :

  1. Go the Extra Mile
  2. Speak Up
  3. Customer Obsessed
  4. Gotong Royong
  5. Try, Fail and Try Again

When I think about go the extra mile, I remember about my company birthday hashtag #MenerobosBatas (break through the boundary). What can I do as a Software Development Engineer in Test to break through the boundary? I don’t want something usual, I want to be different. That’s why I start doing something out of the ordinary.

My first experiment about coding besides my main job is when I develop a Telegram bot. Why? Why not develop something that might be useful for my main job? Well, maybe I am not really that curious besides my main job. My second reason is, I need an escape from work saturation. Yes, I’m bored again.

So for the next, I will tell you about my journey when I develop a Telegram bot.

https://miro.medium.com/max/480/1*L-rBBZXiYJQyNR3kr8xFTw.png

I told you that I can code right? But I really have no confidence. This journey starts when my squad need something (sorry I try to remember but end with nothing) then someone talks about if someone can develop a bot for it, it will really helpful for the squad. At first, I, who have no experience, of course, do not want to try it. Then someday I don’t know where the mood came from, I start research about Telegram bot. Yes, that’s when I create my first bot with the name Nabilah. Where is the name come from? Simple, I like JKT48 (as an idol fan).

Starting with Nabila, I become really greedy. I create Melody, Shani and the last Veranda. When I coding them (it sounds really weird right now), I use Ruby as the main programming language. Why? Because I create an automated scenario with Ruby and Cucumber. I think I will learn more about Ruby if I also use Ruby for bot development. Well, that’s not completely wrong. I learn a lot from developing a bot.

That’s a story from around a year ago (around at November or December of 2017). Now it’s 2019. What’s happen?

My Ruby Telegram bot is stable right now. There is not much feature to develop currently. But I still greedy. I have another curiosity. What if I redevelop the bot with another programming language? With the language that I really don’t understand? That thought really make me excited for sure. I will have a toy that I can play around.

https://upload.wikimedia.org/wikipedia/commons/thumb/0/0a/Toy_Story_logo.svg/250px-Toy_Story_logo.svg.png

I choose Golang because of a random pick. I don’t have any specific reason why I choose Golang on the first place. I started my research about the pro’s and con’s about golang right after I choose it as my programming language. Well as simple as that, then I started my new journey.

For developing a Telegram bot, I need a framework so I start doing research and then choose to use https://github.com/tucnak/telebot. It’s easy to understand for someone like me. Well, but easy doesn’t come at the first try. So, as a newbie in a new programming language, I need to do something that really simple. That’s why I start with the “Hello World” #legendary code. Yeah, you might want to laugh at me but it really helps me to understand how the code work at first. Then the next step is to copy paste the example code from the framework. Try to edit the code a little and see what happens. From learning by doing method I develop new abilities step by step but for sure.

What I like about Golang that it is very simple. I don’t know why I can say that but my sense just feels that way. I use Visual Studio Code for Golang editor and I really like it. It makes my code clean and I learn to increase my code readability. But what I don’t really like is when I run Golang in my local computer I don’t know why it sometimes causes a run out memory even though I read that Golang is “Small Memory Footprint. When I developing and running Ruby many times in my local computer it’s all fine. Is my computer the weird one here?

Golang, as far as I know, doesn’t have class. It’s using package and if you want to define a method you use types. A method is just a function with a receiver argument is what I read from https://tour.golang.org/methods/2. I don’t really know exactly what it’s mean but if you take a look at the example you might understand.

I admit that I don’t really understand the technical aspect of every programming language that I’ve learned. I only try to copy paste then edit some code to become something that I need or I want. I always use that method and somehow the program I made become useful. Magical things often happen during a software developing. The only way to achieve it is, to begin with in any way.

https://image.shutterstock.com/image-vector/break-all-boundaries-let-your-260nw-1084330943.jpg

Golang is different from Ruby of course. Many things that I need to adjust of course. Many difficult things I faced of course. But I learn something exciting for sure. I find my work life is become more interesting for sure. And I have managed to break through the boundary as a Software Development Engineer in Test for sure.

That’s my story. — MperMperPisang (… and that’s my pen name)

--

--

Ferawati Hartanti Pratiwi
Inside Bukalapak

Continuously striving to elevate QA standards with a quality-focused mindset