Skip to main content

Particular Software Blog

Latest articles

  • An organization deconstructed

    It’s safe to say I knew next to nothing about the challenges of a software development company when I joined the Operations department at Particular Software two years ago. My background is in Human Resources, and that part of me was intrigued by the little I knew about the company – just past the start-up stage, 100% dispersed, flexible hours, growing fast. As a passionate planner, it rocked my boat a bit that there was no master plan for the company. Three things were clear, though. One, I was part of a team passionate about our culture, organization, and products. Two, we wanted to build tools that developers were equally passionate about. And three, we wanted to build the kind of company where we all wanted to work.

    Read more
  • Encouraging an "I don't know" culture

    I recently started as a software engineer with Particular. Being new means I've had plenty of opportunities to realize what I know and what I don't know. With every new role, project, or technology, I've always found there is a lot to learn. I look at the team around me and see their good qualities, how they have it all together, and I realize how far I have to grow. They are experts, and I am supposed to know what I'm doing as well. You respect the knowledge of your peers, and you want them to respect yours, too. Admitting that you don't know something is scary. Will you lose a bit of that respect? What if you admit not knowing something that was obvious to everyone else?

    Read more
  • Goodbye microservices, hello right-sized services

    If you follow industry news, you have probably heard about microservices. They are everywhere. More and more companies are exploring this architectural style, sharing their successes and their failures. The landscape is changing and advancing rapidly. Much has been learned recently from these real-life implementations. However, one of the most frequent and controversial questions remains the same: so how big should each microservice be?

    Read more
  • Productivity power-ups in the August Platform release

    This month, we released an update to our platform, designed primarily to give you a much better user experience. If you have been frustrated by having to deal with large numbers of failed messages, or if you routinely deal with relatively large messages, we have included new features specifically to address your pain points. We've also added multiple productivity enhancements across the platform, so there's sure to be something in it for everybody.

    Read more
  • TransactionScope and Async/Await. Be one with the flow!

    You might not know this, but the 4.5.0 version of the .NET Framework contains a serious bug regarding System.Transactions.TransactionScope and how it behaves with async/await. Because of this bug, a TransactionScope can't flow through into your asynchronous continuations. This potentially changes the threading context of the transaction, causing exceptions to be thrown when the transaction scope is disposed. This is a big problem, as it makes writing asynchronous code involving transactions extremely error-prone.

    Read more
  • On the importance of auditing

    Any good accountant will tell you how important it is to keep receipts. I never imagined that advice was applicable outside of accounting and finance. For example, I once worked on an ordering system, and one day, it was clear that something was broken. Orders that were expected to come from a well-known region on the globe weren’t coming in as usual. The incoming rate was exactly zero; definitely not the same rate as the week before. Read more
  • Async/Await: It’s time!

    Async/Await is a language feature introduced in C# 5.0 together with Visual Studio 2012 and the .NET 4.5 runtime. With Visual Studio 2015 almost ready to be shipped to end-users, we can see that async/await has been around for quite some time now. Yet NServiceBus hasn’t been exposing asynchronous APIs to its users. Why the await? We have been carefully observing the adoption of async/await in the market and weighing its benefits against its perceived complexity. Over the years async/await… Read more
  • Inside the fishbowl at NDC Oslo

    Particular stand at NDC Oslo
    Particular stand at NDC Oslo
    With a record breaking 1,900 attendees, 160 speakers, 20 workshops and 170 talks spread over 9 tracks, NDC Oslo last week again asserted itself as a cornerstone of the developer conference calendar. And it doesn’t stop there. Furthering the expansion that started in 2013 with the creation of NDC London, it was announced that the NDC will be coming to Australia’s Gold Coast in 2016. We were proud to be an official sponsor of NDC Oslo 2015, which ran from… Read more
  • Death to the batch job

    This post is part of the NServiceBus Learning Path.

    The Batch Job Troll
    There’s something dangerous lurking in your software. Not just the general lurking, murky, ickiness you might expect. Something big…something ugly. There might even be more than one. It can’t decide if it’s angry or hungry or both. All it knows is it’s having a very bad day. And it’s going to eat you… Ok, maybe it won’t literally eat you, but it will come after your family time, your sleep, and your sanity. Only the things you really care about. Read more
  • Mining for gold in your log files

    Once you’ve already learned the ins and outs of a library, it may seem obvious how it should be used (and which parts should be avoided). The thing is that, from one project to the next, we often make use of new and different libraries and frameworks and may not appreciate some of the more subtle differences among those technologies. The better frameworks out there will log all kinds of information, often telling you when you’re using them incorrectly. So… Read more