Schaeufelhut-Berger_PartnerSlide thumbnail

WE’RE SEARCHING FOR YOU!

Lucrative career options at Schäuffelhut Berger GmbH

Schäuffelhut Berger GmbH is a growing team of professional software developers. Our main offices, located in southern Munich, are centrally located with quick access to public transportation, only 18 minutes by train from the city center of Munich (Marienplatz). Our satellite office in Bilbao, Spain is in the planning stage.We offer a multitude of advantages to our employees, starting with a positive, highly-interactive office environment, perfect for professional debate and idea development. Because of our flat organizational business structure, with minimal bureaucracy, each team member is valued as essential, as reflected in our competitive compensation plus retirement benefits plan. Office perks include flexible and family friendly working hours, ergonomic dual-screen workstations, complimentary drinks and fruit basket, use of in-house kitchen and outdoor grill, or alternatively, nearby restaurants/beer garden/cafes for an enjoyable lunch with colleagues. Yearly highlights are the company outing to our reserved table in the Löwenbräu tent at Oktoberfest, and our participation in Unterhaching’s Run4Trees followed by lunch together at the Volksfest tent. Come join us for our morning espresso round and we’ll tell you all about it.

AVAILABLE POSITIONS

Senior C++ Software Engineer,
VPN Client

You will be working on a VPN client used worldwide. It is a desktop software available for Linux, MacOS and Windows implemented in Qt. You understand the challenges with software installed on end user hardware, therefore you are committed to writing high quality code. The application currently supports the protocols OpenVPN and OpenConnect.

You will maintain all aspects of the software. On the one side, the GUI; on the other side, VPN and network stack (TCP/IP) related functions. You will be responsible for adding new features and VPN protocols, namely SSTP. You will use the existing open source project and integrate it with the application. You will quickly find out the complexity of the software and you are eager to take on the challenge of implementing cross platform support for various networking features needed by a VPN client.

You will provide developer support to the second level customer support team which will report issues to you. You will keep track of these issues in our trouble ticket system. The support team has to deal with many thousands of end users, many of them often reporting the same issue. So you will work closely with that team, resolving those issues in a timely manner helping to free up their resources.

If you are interested in this position, please see whether you match the profile below.

Android Software Engineer,
VPN Client

You will be working on a VPN client used worldwide. It is written in Java. You will be responsible for writing high quality code and modern user interfaces to keep customer satisfaction reports highly rated in the Google Play store. The app currently supports the protocol OpenVPN.

You will maintain all aspects of the software. On the one side, the GUI; on the other side, VPN related functions. You will be responsible for adding new features and VPN protocols, namely OpenConnect and SSTP. You will use the existing open source projects and integrate them with the app using the Android NDK.

You will provide developer support to the second level customer support team which will report issues to you. You will keep track of these issues in our trouble ticket system. The support team has to deal with many thousands of end users, many of them often reporting the same issue. So you will work closely with that team, resolving those issues in a timely manner helping free up their resources.

If you are interested in this position, please see whether you match the profile below.

YOUR PROFILE

Spoken Languages: You are fluent in German or English, with good communication skills.

General Attitude: In general you have a growth and learning mentality, which will be highly valuable in filling any gaps in knowledge or skills as we continue to push technology forward. You keep yourself up to date with the current state of the art in the software industry and you are excited about new developments which you follow out of your own interest. As a experienced professional software developer, however, you are able to gauge when a framework, library, or tool is mature enough to be used in one of our projects.

Open Source: You like open source software and ideally you have used it since you seriously started working with computers. It is certainly a plus if you have contributed to a open source project, even if it was just a tiny patch. You know your way around in the open source libraries and frameworks available for the programming languages in which you specialize.

Work Environment: Your preferred work environment is Linux. You choose Linux because you understand the power of the command line in which you feel comfortable, so writing little scripts and automating ad hoc tasks is routine, and you would be opposed to working without this power at your fingertips. Besides Bash and the typical command line utilities like find, grep, cut, sort, diff, and the like, you also know at least one other scripting language which you are using if you find a shell script might not be up to the task. This might be Perl or Python but you try to stay away from Node.js for these kinds of tasks.

For editing your shell scripts or configuration files you prefer using an editor like VI or EMACS because you know about the advanced features these editors provide when editing plain text files.

General Developer Skills: As an experienced developer you know how important it is to keep your code maintainable. Therefore you employ REFACTORING — the art of transforming code one small step at a time, along with unit tests which you insist on running after each change. Because you understand refactoring well, you know how to separate structural changes from adding features. When adding new features or fixing bugs you use UNIT TESTS ideally in a test first manner.

You know how hard it can be remembering why a change was made or a feature was implemented in a certain way, particularly if some months have passed. Therefore you keep your coworkers and your future self in mind when adding new features or fixing bugs by leaving comments in the code explaining the reasons and causes for a change.

C++: If you are applying for any C++ software engineer positions, you are certainly a proficient C++ developer, and you are up to the task of cross platform development targeting Linux, Mac and Windows. You know the Qt library and how to maintain a CMAKE-based build. Of course you prefer to do the bulk of the development in Linux, but when it comes to addressing platform specific APIs you also enjoy the challenge of solving a problem directly in MacOS or Windows.You understand the power of a good IDE like CLion and you use not only its simple editor functions but also employ its more powerful features.

Android: If you are applying for any Android software engineer positions, you are of course a proficient Android developer, and you know the ins and outs of the Android API and the key differences of API Levels. You write apps supporting multiple API levels adapting at runtime to the capabilities of the Android version on which the app is running.You know the power of Android Studio or IntelliJ Idea as well as the Gradle build system. You regularly use IntelliJs refactoring support and you would miss those tools if you had to use a different IDE. You are familiar with the Android Jetpack Components, especially the support libraries, which you use for writing modern and backwards compatible Android apps.You have a deep understanding of the application life cycle, services, background tasks, UI layouts, Fragments and different device categories (e.g. phone, tablet, TV). You know about the issues that can occur when using these Android concepts but you can overcome these.

GIT: As a experienced developer you know how important version control is. Therefore you use GIT on a daily basis. You commit code early and often because you value the safety net GIT provides, so you can easily explore problems and develop a good solution, without losing a day’s work.

Of course you use GITs features from the command line but you also understand the power of a graphical GIT browser like the one in IntelliJ and you know when to use it.

You value a repository with a clean linear history but you also know its your and your coworkers responsibility to keep it that way. Therefore you are not only using the simple ADD and COMMIT commands but you also prefer using REBASE over MERGE and you employ INTERACTIVE REBASE for cleaning up your local history before sharing your commits with the common repository. If a bug made it into the project, you know how to find when it was introduced using GIT BISECT.

You understand GIT as a communication tool between developers. You use the GIT LOG regularly to find out why a change was made and you read your coworkers commit messages to keep up to date with changes done by your team members.

Literature: You have read or are interested in reading the following books:
Refactoring: Improving the Design of Existing Code (Martin Fowler)
Working Effectively with Legacy Code (Robert C. Martin)
Clean Code: A Handbook of Agile Software Craftsmanship (Robert C. Martin)

If this profile resonates at least partially with you, please send your CV to:
bewerbung@schaeuffelhut-berger.de

TELEPHONE

Monday to Friday
9:00 am to 5:00 pm at:

+49 (0) 89 -124 13 73-0

FAX

24/7
using the Fax number:

+49 (0) 89 -124 13 73-99