Over the last 18 years, Microsoft Development Center Serbia (MDCS) has expanded to include hundreds of engineers, program managers, data scientists, and marketing and sales representatives. The software engineering team is dedicated to developing technologies used by millions of people worldwide. In this interview, we spoke with Dejan Kraković, a principal software engineer in Azure Data Team at MDCS, who has shared his experiences working there and talked about how technology has evolved over the years, particularly with the shift to cloud-first development. He also discussed some of the solutions he has worked on and the importance of fostering a culture of continuous learning and knowledge-sharing within his team.
Can you tell us a bit about yourself and how long you have been working at Microsoft Development Center Serbia?
I joined MDCS in the summer of 2010 with less than a year of prior working experience. A few of my friends were already part of MDCS, and they told me great stories about it, so this was a place I naturally aspired to join. Back then, I was the 16th member hired in MDCS SQL team, and MDCS overall had around 40 people in total, which was almost 20 times fewer compared to today.
Do you remember your first day there? What was your first role?
I received a box that contained my machine and all the hardware, so I first had to unpack everything and set it up on my own. This helped me embrace the mentality that my job was to deal with tasks and issues at hand, whatever those might be at a given time, and to find a way to make progress without getting blocked for a sustained period of time. My first major role was a devster, which corresponds to today’s software engineer that does both development and testing work, but back in the day, those were separate roles and disciplines. There was always a ‘do whatever it takes to make things happen’ approach. Therefore, for a project where we didn’t have enough dedicated developers and testers, we pioneered the devster role where a single person would cover both disciplines because it was the only way the project could be delivered. A few years later, the entire organization and the majority of the company transitioned to a single software engineer role, and this has been the setup ever since.
Looking back, what has changed regarding technology? Where are we today, and where have we been when you started working?
The biggest change, from my perspective, has been the shift to cloud-first development. When I first joined the team, we were developing on-premise SQL Server, which had a major release once every several years, so every new feature was developed for months or even years while being rigorously tested before shipping the final product. With the emergence of the cloud, the paradigm of building a new feature has completely shifted to optimizing for fast iterations and accelerated learning in order to eventually get the product right in a much more data-driven way than it had previously been possible.
What is the biggest impact of technology you have seen, and what has that brought you and your work environment?
To expand on the previous point, just the impact of running the service across the entire Azure production worldwide and having insights through copious amounts of telemetry into how customers actually use the features that we built really helps validate the design assumptions that were previously made and allows us to improve the service and build world-class solutions iteratively. On this journey, what is really gratifying is that success does not come by chance or as a set of semi-random circumstances that are hard to replicate but instead as a natural consequence of the methodologies applied and by fast-tracking learning through real-life data and feedback, meaning that such learnings and experiences genuinely help us build even better products with quick turnaround moving forward.
What are some of the solutions you have been working on?
I had an opportunity to work on many different projects and services over the years, and some of the contributions that I’m quite proud of include Query Store performance troubleshooting features and improving networking isolation and security for Azure SQL Managed Instance. Also, being part of Azure SQL Database service that has continuously been growing over the years has always demanded our team to come up with innovative solutions that are scalable and sustainable, so having our features and services successfully run across millions of databases within the surrounding platform has usually served as a genuine measure whether we’ve done a good enough job.
How do you foster a culture of continuous learning and knowledge-sharing within your team, and how has it helped you and your colleagues improve and innovate at MDCS?
What really energizes me is learning from other people in their areas of expertise through various conversations and knowledge-sharing sessions because I’m fortunate enough to be surrounded by top-notch experts and world-class engineers. Then additionally, by having these interactive discussions with them, I have a chance to understand not only how something works but why it has been implemented in a specific way, what challenges and trade-offs had to be made along the way, and how to potentially apply those learnings and common principles to other ongoing and future efforts for even greater benefit. Naturally, it goes both ways, so this is one example of how we are able to help improve each other and what makes the working environment really enjoyable in MDCS and Microsoft overall.
What motivates you, and how do you inspire others to grow as engineers while ensuring high-quality work?
What really motivates me is to see the results of the work that we are doing and to make a difference, either through products and services that we are building which are used on a worldwide scale or by helping and inspiring others around me to grow as engineers and be the best versions of themselves, while at the same time getting the opportunity to grow and learn from them. I genuinely believe that it is important to appreciate the journey, stay true to yourself, and have fun along the way, as those built experiences and relationships stay with us far beyond the scope of any project or feature, so getting all that in return can be really fulfilling.