Oren Eini is a senior developer / architect, focusing on architecture, data access and best practices. Most often, he is working on building complex business systems using .Net 2.0, NHibernate and Castle's Frameworks, providing training and guidance for the use of Object Relational Mapping, Inversion of Control, Domain Driven Design and other exciting topics. Oren is an active member in several leading Open Source projects, including (but not limited :-) ) NHibernate, Castle and Rhino Mocks.
Ayende @ Rahien | 09 Feb 2016 10:00
Oren Eini writes "....We get some… fascinating replies from candidates to our code tests. Some of them are so bad that I really wish that I could revoke some people’s keyboard access: Case in point, we had a promising candidate from Israel’s equivalent of MIT (Technion,..."
Read more » Answering a code test like a literature pop quiz
Ayende @ Rahien | 08 Feb 2016 10:00
Oren Eini writes "....Let us assume that we have the following simple task: Given a Dictionary<string, string>, convert that dictionary into a type in as performant a manner as possible. The conversion will happen many time, and first time costs are acceptable...."
Read more » Dynamic code generation in C#
Ayende @ Rahien | 05 Feb 2016 10:00
Oren Eini writes "....This little nugget has caused a database upgrade to fail. Consider the following code for a bit. We have CompoundKey, which has two versions, slow and fast. The idea is that we use this as keys into a cache, and there are two types because we can..."
Read more » Production postmortem: A null reference in our abstraction
Ayende @ Rahien | 04 Feb 2016 10:00
Oren Eini writes "....I have a piece of code that does something on types. It is a whole complex thing that does a lot of stuff. And the code is really ugly, here is a small part from ~180 lines method. The problem would have been much simpler if we could only switch..."
Read more » Good, fast, pretty code: How to choose?
Ayende @ Rahien | 03 Feb 2016 10:00
Oren Eini writes "....You might have noticed the low level work I have been posting about lately. This is part of a larger effort to better control over our environment, and hopefully gain more than mere incremental performance improvement.
As part of that, we decided to..."
Read more » Measuring baseline costs
Ayende @ Rahien | 02 Feb 2016 10:00
Oren Eini writes "....As you read this post, you might want to also consider letting this play in the background. We had a UDP port leak in RavenDB. We squashed it like a bug, but somehow it kep repeating. We found one cause of it (and fixed it), finally. That..."
Read more » Production postmorterm: Houston, we have a problem
Ayende @ Rahien | 01 Feb 2016 10:00
Oren Eini writes "....Kelly Sommers had this twit, that caught my attention. While half a minute pause is not something that we have really seen, we have seen production systems that spend a lot of their cycles on GC. That is better than a pause, but only in the same..."
Read more » If you’re a db, you need to manage CPU / Memory / IO
Ayende @ Rahien | 29 Jan 2016 10:00
Oren Eini writes "....One of the most important things that you need to do for high performance is to control your allocations. Indeed, the blittable format is almost entirely implemented in unmanaged memory. And we get a great deal of performance from not having the GC..."
Read more » Fastest code is the one not run: Part II – Memory management
Ayende @ Rahien | 28 Jan 2016 10:00
Oren Eini writes "....This series of posts is continuting the work I have outlined in this series. While in the previous series, I focused on the overall picture, here I want to talk about the small things we did to speedup pretty much every aspect of the system. In some..."
Read more » Fastest code is the one not run: Part I – The cost of escaping strings
Ayende @ Rahien | 27 Jan 2016 10:00
Oren Eini writes "....Unlike previous posts in this series, this is actually something that happened to our own production server today. It resulted in our website being inaccessible for a a couple of hours, and like most such stories, its root cause is tremedously..."
Read more » Production Postmortem: The Razor Suicide