Position: Backend Golang Developer
Company: UPPeople
Category: Golang
Experience required: 5y
English level: fluent

our mission
You will be develop the backend components for companie's products such as Edge Virtualization Platform (EVP) or Simple Training Service (STS). Together, these products make up an innovative edge computing platform that brings next-generation AI onto the IoT devices equipped with various cutting edge sensors. We solve challenging problems in the world of IoT such as centrally managing massively distributed devices, deploying and upgrading applications remotely, securing data end-to-end, retraining AI models on demand and optimizing the placement of workloads onto a set of heterogeneous devices

We are looking for a highly motivated team player with excellent coding abilities who is willing to learn new technologies and innovate and has strong analytical, problem-solving, and communication skills, as well as the ability to take on multiple responsibilities at once

Responsibilities
Develop backend components in high quality and on schedule to help achieve company business goals.
Design and implement scalable and efficient software components.
Deliver fully tested software and debug and troubleshoot it when necessary.
Deliver software that has operability, security and support as first class concerns from the design phase all the way to operations.
Contribute to architecture designs and evaluations.
Interact with the product team to gather requirements and understand the reasons behind them as well as our customers’ needs.
Be an active participant in companie´s engineering community helping to continuously push it to higher levels of excellence.

Must-have Skills and Experience
- Excellent communication and analytical skills
- A solid base of software engineering fundamentals
- Strong development experience preferably in Java, but not necessarily (C++, C#, Golang, Scala, Kotlin are all valid experiences)
- An eagerness a to learn new technologies and a pragmatic approach to their application

Desired Skills and Experience:
Experience designing and developing distributed systems (high availability, fault tolerance, consistency, replication protocols)
Experience deploying and running code public cloud platforms (Azure, AWS, GCP)
Container and container orchestration technologies such as Kubernetes and Docker
Concurrent and/or asynchronous programming
Version control, continuous integration, continuous deployment tools
Experience with developing service based architectures and everything associated with them: instrumentation, service to service communication, testing, continuous deployment strategies, etc
Experience being part of a team that takes full responsibility for the operations of the software it builds
SaaS development: RBAC, authorization and authentication, API design, etc