We are looking for a experienced Software Engineer to join and take technical leadership role in the development team behind a central components of Open Location Platform (OLP).
The team works with an agile process where every team member gets the opportunity to analyze, develop and test software. Also, the team supports the analysis of usage data, the monitoring of production systems and is actively involved in supporting clients.
We use Scala as our primary language and we are committed to rigorous automated testing and pervasive automation of everyday tasks. We run extensive functional and performance test suites upon every commit. We care about software design and take the time to write quality software. We use Scala in a strongly-typed and functional way. If you are not already a Scala expert, you should posses the drive to become one. We use code reviews to learn from each other and to ensure our self-imposed bar for quality is constantly met.
Our services are already managing huge amount of data and has billions user requests per month. This load is steadily growing as the platform gets wider adoption and receives a lot of attention internally and from our customers. We are constantly dealing with interesting architectural and scaling challenges.
Your role encompasses defining and working on features and technical tasks in a self-directed fashion, supporting your colleagues with technical challenges, working with product management to analyze requirements, talking to stakeholders, designing, implementing and documenting solutions as well as testing and reviewing your colleagues' work.
Some specific technologies we use:
- Cassandra, Kafka
- Amazon Web Services
- Spark, Hadoop, Splunk
- design, develop, test, deploy and support OLP components the team is responsible for
- evaluate and choose technologies suitable for our work
- communicate effectively about decisions, direction and progress, both inside and outside the team
- have decisive vote on technical aspects
- provide coaching and technical guidance for less experienced team members
- Experience in technical leadership
- Readiness for technical challenges
- Excellent analytical skills
- Relentless desire to learn and improve
- Solid knowledge of object oriented and functional programming languages and related technologies
- Knowledge about basic algorithms and data structures
- Familiarity with HTTP, the REST-principles, and TCP/IP networking
- An understanding of the importance of producing good and readable code
- Experience with continuously delivering to and running software in production (from libraries to highly available service serving millions of requests)
- In-depth experience of writing unit-, acceptance- and performance tests
- Understanding what does it mean to efficiently work in a team
- Good communication skills with good written and spoken English
--- What we offer ---
- A stimulating multi-national work environment
- Great work-life balance
- Involvement with internal and external users
- Exposure to new technologies and development methodologies
- Development of analytical and technical skills
- A chance to contribute to a product we are proud of
- Opportunity to learn from highly-experienced and motivated colleagues
- A chance to work on interesting and unique back-end problems at serious scales
- Conferences, technical and soft-skills trainings