Senior Software Engineer

  • Contract: Full-time

Job Description

We’re looking for collaborative, detail-oriented people who are ready for a challenge. In this role, you’ll have the opportunity to take significant ownership of technical projects that will drive the success of the overall business. A strong candidate will bring solid product and technical acumen, combined with the ability to move fast (and fix things).

We are passionate about providing a remote, flexible and supportive work culture. Collaboration is in our DNA.


  • Writing maintainable, robust code and developing APIs to offer high-performance access to our backend systems.
  • Evaluating, benchmarking and improving the performance and scalability of Semaphore.
  • Researching and implementing algorithms for Pipeline processing, Virtual Machine management, CI/CD automation.
  • Working with monitoring and automation tools to ensure the availability of systems.
  • Providing feedback and code reviews to your peers.

Skill Requirements

  • Proficiency in one or more high-level languages such as Elixir, Ruby, Go or Python.
  • Understanding of techniques and algorithms for data processing and process management in highly distributed environments.
  • Experience making technical decisions when some future requirements are still unknown.
  • Strong communication skills. You speak and write well. We’re a distributed team so we’re extra mindful about communication.

Preferred Qualifications

  • Experience working remotely in a distributed company.
  • Experience building and scaling distributed services in Elixir or Go.
  • Experience working with Ubuntu, Kubernetes, RabbitMQ, Postgres.
  • Experience building cross-platform applications.
  • Knowledge of operations: monitoring, alerting, metrics, and automation.
  • Experience diagnosing and resolving performance and stability problems in complex software systems.

About the Company

Semaphore is a leader in hosted continuous integration and deployment, with over 30,000 developers relying on Semaphore to test and deploy their code. Our mission is to help teams ship their software faster and with more confidence by providing a robust and scalable platform for software delivery.

The Product Team is responsible for all user-facing experience of our platform. Our platform provides continuous delivery services for all mainstream programming languages as well as native support for building and shipping Docker containers. We aim to deliver the easiest to use and fastest CI/CD service. We work in small highly effective teams, so every team member is vital to the success of the company.

How to apply

Apply for this job online using the link below.

External Link »