Working in The Best Place to Work!

This is a non-technical post regarding being a member of a great community - Demant Technology Centre, the company I work in, has been recently awarded the 1st place in a Great Place to Work competition. If you're interested in what is like to work with us, read the whole post and get the picture :)

Our culture

We're R&D. That means, we're researching the best solutions and really care when implementing them. There's no place for imperfection and half-measures. This is a big advantage of DTC over other companies - you always have time to prepare a few concepts to present and discuss them. You can use whatever tools you like - what matters is the result.

What is more, we really like to empower people working here. In fact DTC is the first company, where I really feel that everyone trusts, that I really know what I'm doing and respects my choices. This is really inspiring and helps in my daily work.

Our workplace

We have a completely open work space - you'll see no closed boxes or separated teams. Everyone works really hard to make sure that other people feels comfortable. Additionally we have different "quiet zones", where you can go anytime and just relax(or take your laptop and focus even more on your tasks). 

The best thing is that though we're doing some really serious projects(medical devices are not something you can trifle with), we still are able to introduce a fun factor to our daily work - e.g. each team had a possibility to invent a name for itself and project a logo. Now in each team zone we have big flags representing a team working there.

Our people

In DTC you will find no random people, each one is the expert in his or her domain. Developers, HRs, QAs, BAs and other positions are occupied by people, who enjoy their work and make the whole site unique. 

You like board games? We meet each week in the evening to play. You like sport? For sure you'll find someone who would like to go and play with you. Would you like to find someone to talk about chemistry? Come to us!

The last but not least - we're recruiting! Waste no more time - just send a CV and start your journey in the best place to work in Poland :)

Useful links:

Do it only when you need it

Writing good quality code is somehow jumbled and not an easy task to do. To be honest, it's a matter of your experience - the more code you write, the easier is to make it reusable and easy to understand. As a beginner I tended to write many layers of abstraction, which were supposed to separate all the concerns. At least it's something many books and tutorials for "rookies" say - create a lot of abstraction, use this, use that - it will help making your code maintainable. To make a long story short - it's a complete bullshit.

The more abstraction you introduce in your code, the harder it is to understand it. You can divide your 50 LOC method into three different ones, which JIT compiler will inline anyway - but is it something you're doing because you know it's the right thing to do? You can introduce all those builder, singleton, abstract factory patterns - but are there any evidences you're delivering any value to the codebase? In most cases we're doing something because a mysterious man - the author of the most popular C++/C#/Java book - said so. We're building the foundations of our skills basing on fairy tales, which are completely irrelevant in a real world.

Very few people proclaim a very easy and straightforward rule - do it when you need it.

The rules are simple. Don't introduce a pattern if don't need it yet(and never introduce it, if you don't understand it). Don't introduce an abstraction, if you're not sure what your code is going to look like. Don't divide your methods or classes just for a sake of dividing them. Whatever refactoring you're about to do - do it only if you need it.

I believe this is from all the misunderstanding of TDD comes from - people have learned, that they should refactor their code always, no matter how it looks like. They forget, that they should use their intuition rather than blindly following all the rules.