Software engineer Scala
Could you be the passionate and experienced Scala engineer we’re looking for?
- has deep affection and understanding of Scala language together with functional programming concepts,
- has solid experience with JVM platform,
- has grounded knowledge and understanding of structures / algorithms,
- with in-depth understanding of modern web technologies (Play experience would be ideal), distributed and async programming (Akka would be perfect),
- has good grasp on modern concepts/techniques like CQRS, Event Sourcing or eventual consistency together with both relational (ideally with Slick) and non-relational data models (NoSQL),
- understands problems and intricacies of highly scalable, cloud based infrastructures.
Some basic experience with novel frontend programming (Angular / React) would be a big plus (though definitely not necessary in most of the projects).
We are not very much concerned with your formal education or any other formalism. What we are concerned with is your passion, knowledge and experience.
This is not an entry-level opening. We do expect proven professional experience.
This is a general position within our company (not targeted to any particular project). As we are healthy growing software company, we are always on a lookout for brilliant engineers.
We do perform projects in various sectors (finance, e-commerce, software tools development, manufacturing etc) and for customers scattered around the world (usually outside of Poland – UK, US, Dubai, Shanghai, Australia).
As a company we are mostly focused around Lightbend technologies (Scala, Akka, Play, Spark) but some exceptions happen. Often projects that we participate in are of unprecedented scale or complexity (including working with one of the largest Scala codebases in the world or applying custom modifications to Scala compiler itself).
We are based at our office in Cracow, Poland. We allow some sporadic remote work (usually 1 or 2 day/week) but the bulk of work is to be done in our office where the rest of the team works.
What to expect
As for our way of doing things we rely strongly on industry best practices and put a lot of emphasis on code quality of our products. We are also putting large emphasis on scalability, performance, availability and robustness. And we really mean it.
In most of our projects:
- we peer-review 100% code we do,
- we use continuous integration and deployment,
- we constantly test performance of the product to meet requirements,
- we use tools for static code analysis,
- we use and encourage contributing to open source projects.
We put emphasis on internal training. We even have a department which specializes in internal / external trainings. We also participate and sponsor many of technical conferences (both in Poland and abroad) and encourage employees to present speeches, run workshops or even become certified trainers. Professional growth of our team is substantial part of our company culture.
If this sounds interesting to you, just get in touch and tell us about yourself.
What we expect
We don’t expect you to be an expert in everything we mentioned in the beginning section but we do expect you to have a general understanding of each of these areas together with a solid and in-depth expertise in one or two of them. In short we are focused mainly on T-shape skilled individuals. Above all we expect you to be curious and be willing to learn.
Oh and in case you haven’t figured it out already – fluency in English language (also spoken!) is a must. We do work with foreign customers and we strongly believe that seamless communication is one of the most important things in software projects – so naturally at least intermediate level written/spoken English is required.
We expect someone who will bring a sense of unrivaled curiosity and an urge to solve real world problems. You’ll need a warm and fun attitude and a sense of exploration. Above all we value people who put heart into their work and would call themselves real craftsmen. People who not only wouldn’t run from unprecedented challenges – but ones who are rather expecting problems and are ready to go down the rabbit whole, understand complexities of a problem and find a way to solve it.