Have you ever thought about working in a project where all the users are Scala Developers?
We are working in a unique niche as we are creating tools for Scala developers. That can mean building plugins for sbt or Intellij, developing
Metals (LSP server for Scala) or even working on
Fury, the new build tool created by Jon Pretty. Our team cooperates with our partners that are industry leaders:
JetBrains,
Lightbend and
Scala Center.
Our work changes how hundreds of developers work each day and our solutions make a difference (e.g. by cutting the compilation times by an order of magnitude). We work closely with the R&D department and lessons that we’ve learned are transformed into new projects (like
git-machete or
Context Buddy).
We often have to find impossible solutions or workarounds to problems that may seem unsolvable. If you are looking for a project where you have an interesting problem to debug each week and always have a code-related story to tell then you are looking at the right position. Also, you can work fully remote or from the office - the choice is yours!
> What and how
- Most of our code is written in Scala with small parts in Typescript (e.g. for VS Code plugins).
- We are using sbt (and sometimes pants, bazel or gradle), git, Github/Bitbucket and Travis/Jenkins.
- A big part of our work happens in open source projects
- We are responsible for our code architecture and design choices
- We have a lot of freedom in evaluating and picking the right solutions
- We have full ownership of the created solution, which means that we need to provide support for it. That is done only in working hours and in a quite limited way.
- We are using an agile approach (Scrum or Kanban)
> What we expect:
- Solid knowledge of Scala
- Proficiency with a build tool of choice (e.g. sbt or Gradle)
- Good understanding of git (e.g. git-hooks, ref-log)
- Experience with JVM internals (e.g. classloaders or memory model)
- Experience with CI/CD pipelines
- An open and creative mind
- Proactiveness and initiative
- Willingness to learn
- Ability to manage long term goals and lead people