Experienced Software Engineer with longstanding passion for programming at Evidos B.V. (Haarlem, Netherlands)
Location: Haarlem, Netherlands
Type: Full Time
Created: 2021-05-05 05:00:39
What we expect
Currently most of our development efforts are made in C# on .Net. As we don't simply build using connect-the-dots we expect our software engineers to know what they are doing and that they are still aware there is still a CPU doing the actual work. For example we expect you to know that C# is an high level language, but also that there is a runtime which manages the garbage collections. Although we don't expect you to know all the inner workings of the garbage collector and how it is exactly implemented we do expect you to know what garbage collection is and how it does and doesn't impact your code.
As mentioned we use Git as our source control and not as our backup tool. This means we want you to be able to use Git to the fullest. We expect you to know how to do rebasing, to know when conflicts can occur and how to recover from them. We do expect you are able to use Git from a terminal.
As we use multiple ways to store and proces our data, for example in object store, SQL, queues and other No SQL like storages you should be aware of the upturn and downfalls when using for example SQL. Choose the right tool for the job.
How and with what we work?
We have not standardised on one specific method of Agile development. We love to develop in an Agile way in the freeest sense of the word. To support this, we use, for example, a Kanban board with the most important points at the top. As software engineers we have the option to put development issues on the Kanban board ourselves, so that we are free to perform the necessary refactoring.
By means of Git branches and continues integration, the code is always unit-tested as well as the automatic execution of a complete integration run. Although we do not actually apply continues deployment, we have set up our processes as if they were. This allows us to quickly implement bug fixes without fear of compromising quality.
Our architecture is built on the basis of messaging and event sourcing. Thanks to the use of eventual consistency, among other things, we are able to dynamically scale our services.
Although we mainly develop in C# .NET, we do not have the obligation to develop everything in C# by definition. If another programming language or tool is more suitable, we will certainly use it, for example, using Rust for WASM (web assembly).
We use our brains to build what we need and do not rely on external tools or libraries. Of course we use existing frameworks and libraries, but we do look at the quality of these types of products before we deploy them.
How do we handle the processing of sensitive data?
Due to the kind of service we provide we deal with potentially sensitive data, including personal data. We provide a service to solve a problem, we are not data warehousing company whose primary goal is to collect data. This means that we keep the data we collect as briefly as possible and delete it as soon as we no longer need it for our services. Partly because as we delete the data as quickly as possible, we are well able to guarantee the privacy and security of users. After all, we cannot leak what we do not keep / have. During the time that the data is with us, it is of course important to protect it the best as feasible possible, one of the most basic measures is to encrypt sensitive data.
Of course we use even more security measures, such as the use of CSP, for example.
What comes around goes around, you can expect the same from us.