We are embarking on a challenging and ambitious journey. At Arrive, we guide customers and communities towards brighter futures and more livable cities. Our team is composed of individuals who embody our values: Curious, Focused and Together. These guiding principles help us be at our best for our customers, the cities and communities we serve, and ourselves. We are looking for a Software Engineer to work on both legacy and new software projects. The successful candidate will assist in upgrading, maintaining and developing new features for the legacy system, as well as contributing to the development of new microservices that will eventually replace the legacy system. This includes cloud native development in Golang, configuration and management of deployments via CI/CD pipelines, building APIs and Services with collaboration from other teams. Key Responsibilities: - Design, build, code review and maintain efficient, reusable and reliable code in Golang - Integration of data storage solutions including databases, key-value stores, blob stores etc. - Identify bottlenecks and bugs, and devise solutions to these problems - Contribute to maintaining code quality, organization and automatization - Collaborate in the creation of new microservices - Create and maintain configuration files for deployment into infrastructure - Participate in Scrum team activities while adhering to Agile ceremonies and practices Required Skills: - 4+ years of experience as a Software Engineer building applications using Golang (Big plus with experience in .Net or Java) - Strong understanding of Unit testing - Experience working in a microservices architecture - Understanding of fundamental design principles behind a scalable application - Experience with relational databases (SQL Server, Postgres) - Experience building RESTful APIs - Experience with continuous integration tools such as CircleCI, GitHub etc. - Willingness to learn how to contribute to automation test suites Additional Requirements: - Experience in .Net or Java - Experience deploying containers to Kubernetes - Understanding of containerizing applications for Docker - Knowledge of event streaming platforms like Kafka is a plus - Solid understanding of object-oriented programming - Observability tools such as Datadog, Grafana and Humio - Experience creating automation tests with every deliverable