Senior Golang Engineer (remote)

Location of work: Fully remote 

Time zones: We can consider all time zones from UTC-4 to UTC+2 

Contract type: Contractor (all locations) or employment contract (EU work permit only)

Who we are

babelforce is revolutionizing how businesses communicate, automating complex processes and perfecting the customer experience. Our platform enables users to build and automate all kinds of telephony and messaging processes, to integrate them with any system, and to offer a seamless, context-rich experience.

babelforce is an exciting high-growth startup with a welcoming, sociable atmosphere. Geekiness is encouraged and curiosity rewarded. We offer fantastic opportunities for personal and professional growth, as well as the chance to work with cutting-edge technologies. Our platform serves customers of all sizes, from very small startups to big corporations.

What we are looking for

You are an experienced senior Golang engineer to help us build, improve and maintain our voice communication and automation platform, libraries and development tooling. You will work closely with our Head of Engineering on a daily basis to ensure that our provided platform services are scalable, performant, maintainable, robust and documented. This will allow other teams and customers to build reliable applications, like voice bots and no-code automations.

Futhermore, you like to work incrementally and experimentally, and you challenge your assumptions regularly, rather than waiting for the big bang. You also have an interest in building scalable, testable, and performant code to help create a high quality platform, and hence continuously improve it.  

Does this sound like the challenge you are looking for? Then go ahead and apply. 

What you can expect

You will work in a small team of like-minded people, with the goal to deliver, monitor and operate the voice platform solution and other services.

Another objective of this role will be to help to improve our current systems to an event-driven microservice architecture. Within this role you will mainly work with Golang, which our voice and automation platform is mainly built upon. But during your journey at babelforce you will also get in contact with other parts of the platform which are written in javascript (node.js), java (quarkus) and groovy (grails2). To succeed in this position it is also imperative that you have a hands-on mentality.

At babelforce we have very diverse teams from all kinds of backgrounds, and we are distributed all over the world. Our company language is English. Therefore, it’s important that you are a proficient English speaker and are able to explain complex topics (ideas, documentation, concepts, etc.) in oral as well as in written form, using the English language.

What you will be doing:

  • Writing scalable, robust, testable, efficient and easily maintainable code
  • Translating software requirements into stable, working and high-performance software
  • Designing and implementing microservices which are resilient to high load and can scale on-demand
  • Constant improvement of platform system performance and stability
  • Take ownership of technical decisions and assure the quality of our platform and software stack
  • Develop voice and automation platform functionality, reflect on requirements gathered by other teams or our product experts
  • Discuss, challenge, and show alternatives to what already exists in our platform
  • Work together with our product experts during feature development, bug analysis, and troubleshooting
  • Fix and analyze bugs in our platform
  • Migrate parts of the monolithic application to microservice architecture
  • Monitor and measure performance of the platform
  • Design and maintain CI pipelines to automate our processes
  • Improve our internal tooling, libraries, and pipelines
  • Write deployment configurations to run your services in Kubernetes clusters
  • Conduct code reviews and submit pull/merge requests
  • Assess and analyze changes from (technical) developmental, and operational. As well as functional (product) perspective (3 axes of development)
  • Contribute to our development processes, review and challenge our current practices, guidelines and documentation
  • Mentor, support and train new joiners to help them grow as developers

What you should bring:

Please keep in mind that we are describing the background we imagine would best fit the role. If you don’t meet all the requirements, yet you are confident that you are up for the task and willing to learn, we absolutely want to get to know you!

  • 3+ years experience with Golang
  • 5+ years general experience in the field of Software Engineering
  • Extensive knowledge of computer science fundamentals, incl. data structures, object-oriented programming, concurrency and software design patterns
  • Experience in collaborating with other professionals to determine functional and non-functional requirements
  • Experience with multiple databases like PostgreSQL, MariaDB, Redis and messaging services such as nats.io, RabbitMQ, ActiveMQ, SQS or Kafka
  • Experience with concepts of event-driven architecture and messaging systems in general
  • Experience with Docker, Kubernetes, Prometheus and ideally Helm
  • Strong analytical skills, open-minded and critical thinking
  • Basic knowledge of Linux/UNIX
  • Familiarity with any kind of CI tooling like Jenkins or Gitlab
  • Experience with designing, building, testing and monitoring scalable, highly available, concurrent and performance critical applications
  • load and stress-testing
  • cpu- and memory-profiling
  • increase observability by tracing and metrics
  • Interest in delivering quality solutions
  • writing and/or helping in writing automated tests
  • documenting concepts and ideas to make it easy for new joiners to pick up work that was done in the past
  • Addressing root causes rather than fixing symptoms
  • Good communication skills in English

Nice to have:

  • Experience with low-level languages like C or Rust
  • Experience with languages like NodeJS, Java and Groovy
  • Experience with nats.io 
  • Knowledge in the field of VoIP, eg Asterisk, freeswitch, etc
  • Any deeper knowledge of networking protocols
  • Some experience with various cloud providers like AWS, Google Cloud or Azure
  • Some experience with the Java ecosystem: Maven, Gradle, etc

What we offer

We offer a high degree of personal responsibility in an agile start-up environment with a very flexible and family-friendly work environment. We take our work seriously but ensure we support everybody on the team to provide the best possible work culture. You will be part of an exciting international team, working from all over the world. Our headquarters office space is located in a modern coworking building right in the center of Berlin, however we offer flexibility regarding working from home.

We are a young company so there is great growth potential and we will support you to develop the skills you are excited about. And who knows what topics you will encounter while working with us which you don’t even know about yet?

babelforce is an equal opportunity employer. We are still a small team and are committed to growing in an inclusive manner. We want to augment our team with talented, compassionate people irrespective of race, color, religion, national origin, sex, physical or mental disability, or age. At babelforce we believe that the more inclusive we are, the better our work and products will be. We want to hear from you, so please don’t hesitate to apply via jobs@babelforce.com (title of the position in the subject line) and tell us in a few sentences about why you think you would be a good fit, when your earliest availability would be, and what your expected salary would be.

Category

Jobs