Hi There,
Our company AutoScout24 GmbH (http://www.autoscout24.com/) is searching for Software Engineers to work on-site here in Munich, Germany.
Short summary of our stack: Scala, JS, VanillaJS, SCSS, Play Framework, Akka Actors, Akka Streams, Akka Http, Elasticsearch, Apache Kafka, AWS, Agile environment, microservices.
If you do not know one or some of the mentioned technologies or languages, don't give up! We believe that attitude and mindset matters! If you have relevant experience in web and/or experience with another JVM or functional language — do not hesitate to apply. We believe that you will learn what is needed, we will help and support you on this learning path.
Our company offers following benefits to all engineers:
- 30 working days of paid vacation per year (+ Bavaria has the most public holidays in Germany — 13 days per year);
- Relocation bonus;
- Yearly budget per employee for the conferences and education;
- A lot of trainings and workshops inside the company;
- German and English classes;
- Company pension plan;
- Free books;
- Flexible working hours;
- Possibility to work from home office;
- Free parking lot;
- Oktoberfest;
- Kicker;
- Office with mountain view - you can see Alps;
- Good transport connection;
- MacBook Pro with Retina display - as default machine for the engineers;
- Free tea, coffee, fruits. I guess nowadays it is industry standard;
- Paid working days to take care of the sick child;
- Good life-work balance. We are a family-friendly company.
AutoScout24 is Europe's largest online car advertisement portal. For the last couple of years our development teams have been working on slicing up our legacy monolith .NET
application into microservices. We are using Scala
and moving all infrastructure into the cloud powered by Amazon Web Services (AWS
). We are also working on a full reimplementation of our frontend, with the aim of being ”Mobile first”. You can read more about our move in our blog:
http://inside.autoscout24.com/2015/01/04/autoscout24-changes-technology-aws-linux-jvm/
AutoScout24 is a business that demands change and the use of up-to-date technologies. Our engineering group do not need to beg the business to allow us the time for refactoring or stabilisation. It is fully in our control and in the business's interests to do so. However, it is important that we are focused and keep the business values in mind in everything that we do.
We defined a set of solid principles that guide us through our day-to-day business. Principles like “you build it, you run it”, “collaboration culture”, “autonomous teams”, “infrastructure as a code” and others help guide our development. You can find more about our principles in our GitHub repository (feel free to open PDF files to have formatted text):
https://github.com/AutoScout24/scout24-it-principles
Christian Deger – our Chief Architect – gave a talk where he explains our principles, culture and why we are doing it [picture ↓ is clickable]
Slides from this presentation (SlideShare)[picture ↓ is clickable]:
Feel free to visit the Microservices Meetup in Munich organised by Christian. We are trying to invite interesting speakers from all over the world, we are proud to say that for last couple of years our speakers were: Stefan Tilkov, James Lewis, Sam Newman, Phil Calçado, Eberhard Wolff, Uwe Friedrichsen, Chris Richardson, Adrian Cockcroft, Gregor Hohpe.
You can also watch videos from the Microservices Meetup on our YouTube Channel [picture ↓ is clickable]:
Our teams are cross-functional. We do not divide engineers on backend, frontend, QA or Ops. It is OK to be deeply specialised in one of the fields, but you should be ready to work in any area.
For our backends we generally use Scala
but we also use Ruby
and Bash
scripts for deployment. When working with AWS
Lambda we mostly use Scala
but we also use NodeJS
. We build microservices with the principle of “Share nothing” to achieve as much autonomy as possible. Our teams use the Play
Framework and Akka
stack with Actors, Streams and Http. To achieve high availability, performance and scalability of our services and to use best practices we consult and work directly with Lightbend (ex Typesafe), Codecentric and ThoughtWorks.
Our frontend is built with the principle of “Mobile first” in mind (Mobile Web). We do responsive design with help
of SCSS
and we care about page load. We try to minimize external JS
libraries and prefer pure JS
(Vanilla JS
).
Feel free to check out some of our Open Sourced frontend libraries:
- https://github.com/AutoScout24/showcar-pictures
- https://github.com/AutoScout24/showcar-ui
Also our Web Experience team built Bootstrap library with AutoScout24 styles: https://autoscout24.github.io/showcar-ui/
You as a team member are responsible for code quality and for covering your code with tests. Of course you should feel free to use knowledge and experience from our QA engineers. So, do not write bad code, write good code! ;)
Candidate should not be scared of working with the command line. We are using the concept "You build it, you run it", so the team is responsible for owning microservices in AWS
, therefore you should be ready to fix problems during "on call" duty. Each team is responsible for implementing all the monitoring and alerting tools necessary to be aware of what's going on with their microservices on production.
If you would like to know more about why we chose AWS
and how it works for us, you can read it in our Amazon Web Services Case Study (article in German)[picture ↓ is clickable]:
Also recently Werner Vogels CTO of Amazon mentioned us in his blog as good example how autonomy brings freedom to create: "How companies can become magnets for digital talent".
You should be open to do a lot of (self-) education and be open to learning new things. AutoScout24 provides a lot of training and is invested in each employee to become smarter and better in what they do. This is an integral part of our company culture. All of the IT people at AutoScout24 are passionate about technology. Almost every week there are 1-3 workshops from employees, where someone is explaining or showing what cool stuff they did, implemented or discovered.
So if all of this sounds interesting for you we would be happy to receive your CV. Feel free to contact one of our colleagues [picture ↓ is clickable]:
- From time to time we get questions like: "Are the teams very specialized in the stack listed above?".
It depends really of the particular team. Since we’re trying to follow the principle "you build it, you run it" every team has a set of products created and run by this team, related to one area of the business. From this perspective there are teams which have for sure more correlation to different technologies like Elasticsearch or Kafka. Let’s assume you are in a team and this team unfortunately has nothing to do with a newest technology of your dream, but the neighbor team does. And you’re completely unhappy and demotivated in this situation. What is to do? Well, currently in AutoScout24 we’re not practicing job rotation on regular basis. But, for sure it makes sense to talk about such situations in order to find a suitable solution for all participants. (Btw. there is another possible way for introducing a technology of your dream – you just have to persuade your team and show usage benefits of those technology in current / future products). So, thinking "out of the box" is not a criminal issue :), don't be afraid to extend your influence! We even appreciate it!
- Another question: "Are you open to new technologies?".
Well, it depends one more time :), I’ll explain why. Remember, one of our principles "AUTONOMOUS TEAMS. Make fast local decisions. Be responsible. Know your boundaries. Share findings". If you would like to introduce some amazing ideas/solutions for your local team, it’s very likely doable and completely fine. If this is something bigger and affects other teams, well, we have to think/talk about it (for example in a architecture guild session). I’d like to provide an example - our architecture is based on micro services which has been written in Scala (partially in NodeJS for Lambda). And, it’s highly unlikely we would introduce something else like Go, at least at the moment. Why not? Well, because nobody is perfect, we have from time to time situations where a product suddenly must be completely shifted (for supporting/maintaining) to another team (yes, despite “you build it, you run it” principle). And now imagine, a team is responsible for a product, but no one in this team is able to maintain it because of missing knowledge. A pure disaster :(. So, I like to complete the question above with a thought – nothing is written in stone, it’s a matter of common sense in the particular time period of our development.
Or you also can directly contact Juri ([email protected]).
If you have questions do not hesitate to ask.
Best Regards, Juri Smarschevski
- Skype: juri.smarschevski