At exoreaction we use golang and we have an expert on the subject. My partner Sindre. You will find many of the projects he has worked on in Cantara. Later I will tell you about some really interesting ones.
Characteristics
Go, also known as Golang, has gained popularity in the tech industry for several reasons, making it a preferred choice for many companies. Some key factors contributing to the popularity of Go include:
1. Concurrency Support:
Go has built-in support for concurrency, making it easy to write concurrent programs. The language includes goroutines, lightweight threads managed by the Go runtime, and channels, which facilitate communication between goroutines. This makes it efficient for developing scalable and concurrent applications.
2. Efficiency and Performance:
Go is designed with a focus on simplicity and efficiency. It compiles to machine code, providing fast execution and performance. Its garbage collector is optimized for low-latency, making it suitable for building high-performance applications.
3. Static Typing:
Go is statically typed, which means that type checking is done at compile-time. This helps catch errors early in the development process, making the code more reliable and less error-prone.
4. Simple and Readable Syntax:
Go has a clean and straightforward syntax, making the code easy to read and maintain. Its simplicity is conducive to quick learning and adoption, especially for developers transitioning from other languages.
5. Standard Library:
Go comes with a comprehensive standard library that includes packages for handling tasks such as networking, encryption, and file I/O. This reduces the need for external dependencies and provides a consistent set of tools for developers.
6. Cross-Platform Compatibility:
Go is designed to be cross-platform, and its compiler generates binaries for different operating systems without requiring modification to the code. This portability is beneficial for building applications that can run seamlessly across various environments.
7. Open Source Community:
Go is an open-source language with a thriving community of developers contributing to its ecosystem. This community support has led to the creation of numerous libraries, frameworks, and tools that enhance the development experience in Go.
8. Scalability:
Go is well-suited for building scalable systems, and many large-scale applications and services, including those at companies like Google, Dropbox, and Docker, have been successfully built using Go. Its concurrency model and performance characteristics make it suitable for handling large numbers of simultaneous connections.
9. Strong Backing:
Go was developed by Google, which provides it with a strong backing and support. This backing has instilled confidence in companies considering Go for their projects, knowing that it is developed and maintained by a reputable tech company.
10. Effective for DevOps:
Go's efficiency, static typing, and cross-platform compatibility make it well-suited for building tools related to DevOps, such as container orchestration tools (e.g., Kubernetes and Docker) and infrastructure-related software.
Overall, the combination of performance, simplicity, concurrency support, and a strong community has contributed to the widespread adoption of Go in the tech industry.
Tech Companies using Golang
Several prominent tech companies have adopted Go (Golang) for various purposes, including backend development, microservices, infrastructure tools, and more. Keep in mind that the technology landscape is dynamic, and the usage of programming languages may evolve over time. Here are some companies known to use Go:
1. Google:
Go was developed by Google, and many internal projects at Google are written in Go. Google's Kubernetes, a popular container orchestration platform, is also written in Go.
2. Uber:
Uber has been using Go for building various components of its infrastructure, including some backend services.
3. Dropbox:
Dropbox has adopted Go for certain backend services and infrastructure components.
4. Docker:
Docker, the containerization platform, is written in Go. Docker heavily relies on Go for its speed, efficiency, and concurrent capabilities.
5. SoundCloud:
SoundCloud has used Go for building parts of its backend infrastructure.
6. Twitch:
Twitch, the live streaming platform, has employed Go for some backend services.
7. BBC:
The British Broadcasting Corporation (BBC) has used Go for certain projects and backend services.
8. American Express:
American Express has reported using Go in some of its backend systems.
9. Cloudflare:
Cloudflare, a content delivery network and cybersecurity company, has utilized Go in various parts of its infrastructure.
10. X:
Before Twitter, Now X has adopted Go for certain backend services and tools.
11. Apple:
Apple has shown interest in Go and has used it for certain projects and tools.
Remember that the usage of Go can vary within companies, and some may use it for specific projects or services rather than across their entire tech stack.
HungerStation is the leading food delivery app and marketplace in KSA. They are part of the Delivery Hero Group, headquartered in Berlin, and a listed company on the DAX.
Their focus is customer-centricity, they celebrated their 10th-year milestone last year, but they still operate like a startup in an Agile environment. They currently have more than 2 million active users and are growing!
Their Tech Hub was formed in Dubai with 2 people in 2019 and has grown rapidly to over 100+ with the plan of ending 2023 with 150 employees. Their Tech leadership and Senior engineers come with global experience in high-scale product companies such as Amazon and Microsoft, and hyper-growth startups, so you can be assured to learn and work with diverse talent.
They work on:
- Golang;
- Microservices;
- Architectural decision-making for a platform used by millions of customers;
- Working with Design Driven Development and more.
The good news is that they are recruiting. If you want to relocate to Dubai. Follow them.
What should I do to learn Golang?
Learning Go (Golang) can be a rewarding experience, especially if you're looking to build scalable and efficient applications. Here's a step-by-step guide to help you get started with learning Go:
1. Understand the Basics:
Start by understanding the fundamentals of the Go language. Familiarize yourself with the syntax, data types, variables, and basic control structures (such as loops and conditionals). The official Go Tour is an excellent resource for this:
A Tour of Go.
2. Set Up Your Development Environment:
Install the Go programming language on your machine. You can download the official distribution from the
official Go website. Follow the installation instructions for your operating system.
3. Read the Official Documentation:
The official Go documentation is comprehensive and well-written. Read through the
official documentation to gain a deeper understanding of the language features, standard library, and best practices.
4. Code Along and Practice:
The best way to learn any programming language is by writing code. Start with simple programs and gradually move on to more complex projects. Practice is crucial for solidifying your understanding of the language.
5. Explore Go Packages and Libraries:
Go has a rich standard library, and there are many third-party packages and libraries available. Explore the standard library and learn how to leverage existing packages to enhance your programs. The Go documentation is an excellent resource for this.
6. Concurrency and Goroutines:
One of the key strengths of Go is its support for concurrency through goroutines. Learn how to use goroutines and channels for concurrent programming. Understanding concurrency is essential for building scalable and efficient applications.
7. Build a Small Project:
Apply your knowledge by working on a small project. This could be a web application, a command-line tool, or any other project that interests you. Building real-world projects is a great way to reinforce your learning.
8. Explore Web Development with Go:
Go is often used for building web applications and APIs. Explore web development in Go using frameworks like Gin or Echo. Learn how to handle HTTP requests, route traffic, and work with databases.
9. Read Books and Tutorials:
There are several books and online tutorials that can help deepen your understanding of Go. Some recommended books include "The Go Programming Language" by Alan A. A. Donovan and Brian W. Kernighan and "Programming in Go" by Mark Summerfield.
10. Engage with the Community:
Join the Go community to stay updated on the latest developments, ask questions, and seek help if needed. The
Go Forum and
Go subreddit are good places to connect with other Go developers.
11. Contribute to Open Source Projects:
Once you have a good understanding of Go, consider contributing to open source projects. It's a great way to gain practical experience, collaborate with other developers, and improve your coding skills.
Remember that learning a new programming language takes time and practice. Be patient, and focus on building a strong foundation. As you progress, you'll gain the confidence to tackle more advanced topics and projects in Go.
How can exoreaction help me learn golang?
Exoreaction has developed
many projects with Golang in Github and the best of all is that they are public and you can review them, learn from them and participate with the issues/PR in each repo to interact with our team. It is the route that I have followed to learn Golang in my personal case.
If you need developments or consulting in golang. Feel free to contact exoreaction.
Enjoy!
Joe
P.D. I hope the arrive of my new t-shirt :P