Software engineer Java
Our product needs a passionate and experienced Java dev to help it grow.
- has deep affection to Java 8 / JVM and distributed, highly-concurrent systems,
- has grounded knowledge and understanding of structures / algorithms,
- has solid experience with modern web technologies (we use Vert.x) and distributed async programming (things like RxJava),
- understanding of modern concepts/techniques like CQRS, Event Sourcing or eventual consistency together with both relational and non-relational data models (NoSQL),
- understands problems and intricacies of highly scalable, cloud based infrastructures (including DevOps, infrastructure as code).
We are also not concerned with your 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 especially in a field of distributed systems, devops and scalable architectures. We would consider both regular engineers (3-6 years of professional experience) as well as senior level engineers (usually 6+ years of professional experience).
What we create here is basically top-notch e-commerce system. In short you can think of it as Amazon-like webstore. And we really mean it – as both for the scale and breadth of functions. Our customer is one of the largest retailing company in the world.
We work mostly with Java 8 in very functional way (streams, immutability, piping of async processing, reactive principles etc). The product is composed of multiple teams (every team is 4-6 people) each working on separate microservice. Teams are mostly self-managed (we basically do not hire any junior engineers – you will work only with experienced people).
We are based at our office in Cracow, Poland. We allow some sporadic remote work (e.g. 1 day/week; more after you become more experienced with the project) 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: we start our pilot deployments with requirements for handling thousands of requests every second and the ability to dynamically scale and handle peak traffic transparently for end users.
From day one in our project:
- 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.
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 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.