Going Strong With Go Language
What’s Going on?
During the last few years, the Go programming language has been steadily conquering more and more airspace in the digitalization industry. The StackOverflow’s 2021 Developer survey lists the 4th most wanted programming language to learn after behemoths like Python and JavaScript, and at the same time, Github’s Go repositories scored 3rd place in popularity measured in Stars Received.
At Oivan, we have been embracing Go for years, and now we want to tell you about our experience and forward plans with this unique technology.
Accompanying us on this journey will be Kasper Parviainen – once an entrepreneur and one-person solution factory – who today creates exceptional value with Go at Oivan to the benefit of our valued customers.
Catching him on the Go
Aki: Hello Kasper! I’ll lead with a question about your background – you used to have your own company?
Kasper: I’ve been a partner in several companies, all of them except Oivan sold now. Movila was actually founded before IWA – a predecessor of Oivan before the company merger. I joined Oivan 5 years ago when Oivan bought Movila’s business.
Aki: Much of your earlier work was done with PHP. How did you first discover Go, and when was that?
Kasper: PHP wasn’t any choice, just one language to get things done. We were at Boost VC in Silicon Valley with the Coinmotion team in 2014. There, very talented people were doing stuff with Go before it went mainstream or had the current feature set. I decided that there must be something in it.
Aki: Go was originally invented by Google’s developers, who wanted the
• Readability and usability of JavaScript or Python
• Runtime efficiency of C
• Great networking performance
• Out-of-the-box multicore capabilities
That is quite a tall order. So, Kasper, what’s your take on this? How would you describe working with Go today?
Kasper: In software development, I’ve always kept in mind three simple steps: make it work, make it right, and fast. I think it was Kent Beck who created this famous concept. Go makes code refactoring fun. Too bad that the customer is often too satisfied with the first version.
We gave it a Go
At Oivan, we have built several highly technical solutions using the Go programming language, ranging from scalable communication gateways to enterprise systems to traditional web backends to crypto exchanges and tokenization engines. Let’s hear from Kasper about a few of those.
Aki: Kasper, what was the first significant project you worked on with Go with Oivan?
Kasper: I started learning Go in 2015 and did the first big project in 2016. The task was to replace a system made by a big vendor (massive) with state-of-the-art technologies. The original solution from this vendor had failed so badly that it didn’t see a single full day in production without crashing, despite costing several 100k€ for the customer.
The Go solution we built from scratch to replace the original failed one is still there and is nowadays developed actively by a dedicated in-house team. It currently handles several PBs (yes, Petas) of data.
What is the most important to note here is that the Go solution worked from the launch with a fraction of the budget compared to the previous solution. Of course, some existing design decisions of the prior solution cleared the path for the team, but at the same time, the whole tech stack was replaced by open-source technologies.
Aki: Once upon a time, you created a crypto exchange, which still lives on today under the brand Coinmotion. This year, you wrote a white-label Bitcoin trading and savings platform called Hatch for Oivan from scratch.
Can you tell me a bit about this project? How did you come up with this project, and did Go provide any specific advantages in creating this solution?
Kasper: Having done the exercise before, I decided to do something right with the latest technologies. I knew what could have been done differently and what I would change now if I could. Some of these visions were challenging concepts to develop, some not. Using Go made things so much easier. In Hatch I especially liked the security-first architecture way of thinking. The project started as a hobby and then continued as an Oivan project – I received tremendous support from Oivan to bring Hatch into a reality. I couldn’t possibly have done it right with any other tech stack.
Aki: Any other exciting Go projects you would like to mention here?
Kasper: There was a Hyperledger Fabric project with a big teleoperator from Southeast Asia. Hyperledger Fabric supports other programming languages, but I chose to use Go, since Fabric is internally implemented with the Go for most of the components. The experience gained from this project led us to create our own Tokenization engine, TokenIT, based on Hyperledger Fabric.