Click here to Skip to main content
15,867,704 members
Articles / All Topics
Article

A Coder Interview With Oren Eini

,
Rate me:
Please Sign up or sign in to vote.
4.96/5 (17 votes)
1 May 2013CPOL4 min read 24.2K   7   12
Welcome to our continuing series of Code Project interviews in which we talk to developers about their backgrounds, projects, interests and pet peeves. In this installment we talk to Oren Eini, perhaps best known for his work on RavenDB.

Welcome to our continuing series of Code Project interviews in which we talk to developers about their backgrounds, projects, interests and pet peeves. In this installment we talk to Oren Eini, perhaps best known for his work on RavenDB.

Who are you?

My name in Oren Eini, I am also known under the nickname Ayende Rahien for reasons that are too long to detail here. I live in Hadera, Israel (about an hour north of Tel Aviv) and mostly work there as well, although I tend to travel quite a bit.

Mostly I work on our NoSQL document database: RavenDB. Job title varies from "Wizard" all the way to "Oh No! Him Again."

I also blog frequently at Ayende @ Rahien.

What do you do?

I have worked on quite a lot of Open Source projects: Rhino Mocks, NHibernate, Rhino Service Bus, etc.

In the past few years I have been busy making life better for data management. Specifically, we build a set of profilers to make working with OR/M easier. We have the NHibernate Profiler, Entity Framework Profiler, Linq to SQL Profiler and Hibernate Profiler for Java.

After really getting the problems of developers working on relational systems, I decided that I have had enough and set out to write a database that wouldn’t make me want to jump out of a high window at every opportunity. That is how RavenDB was born. It is a database that was written by developers for use in actual OTLP applications, and it make it a joy to develop applications because it gets out of your way.

Most days I start by going over the mailing lists for our products, answering support questions and then either doing bug fixes :-( or working on new features :-).

What is your development environment?

I am mostly developing using C#, with VS 2012. We are still working on .NET 4, but we just added the async targeting bridge to make things easier.

My current machine is a quad core 3.2 Ghz machine + 8 GB RAM with SSD drive. I don’t care much for the CPU, but the RAM and the SSD drives are crucial for good performance.

With regards to tooling, I can’t say enough good things about JetBrains, we use [ReSharper](http://www.jetbrains.com/resharper/, YouTrack and TeamCity for all our projects. They are effective tools that get out of your way.

What new tools, languages or frameworks interest you?

I like working with C# 5’s async, and I am probably going to do evil stuff there.

Node.js is getting a lot of noise, but when I looked at it previously, the major point was the event-driven nature. Now I want to look at that from an architectural point of view. More specifically, how the limits of JavaScript force a common architecture of single function per module.

What is your coding pet peeve?

Pet peeve? SELECT N+1 is right there at the top of the list, but error handling via catch() {} is what will get my blood boiling

I pretty much use the .NET standard guidelines, plus whatever R# tells me :-).

How did you get started programming?

I got into programming something in my early teens. I remember playing with the Logo’s turtle, then moved to VB4, then VB6 and finally C++.

At around 2001, I started hearing about this .NET Framework thing, and after wondering how stupid the marketing team at MS was, I decided to give it a try.

The following is my first C# program:

C#
public class Program

{

   Form form;



   public static void Main()

   {

         new Program().form.Show();

   }

}

This failed with a null reference exception, and I just couldn’t figure out why. For my C++ eyes, the form variable should have been allocated using the default ctor.

It took me a while to grasp that this is actually a pointer. Once I got that, which took more time than I am willing to say, I wrote the exact same program in C++.

In C++, I got:

C++
Invalid pointer access: 0x01230accd

After comparing this to the C# error, which told me about a null reference exception and in which line. I knew where I wanted to be.

How has the developer community influenced your coding?

I think that it had a lot of influence. I started out working on my own, so a lot of the things that I learned were from off the ’net. Even today, you can pretty much tell whatever I am doing because it is in my blog. A lot of my early projects were heavily influenced by that.

We use GitHub for all of our projects, and I can state that it has easily changed the way we are working with software.

The thing that I dislike the most about the dev culture is the tendency to grab into something - today it is probably CQRS/event source and few years ago it was DDD and before that TDD - and declare it to be THE thing you need to be a good developer. Usually without any need for additonal context.

What advice would you offer to an up-and-coming programmer?

Go and re-read the books about the basics. From how to implement a memory manager to networking protocol to case studies in project failures. Having good grounding is the most important aspect in being a developer not just for a year or two, but as a profession.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Software Developer CodeProject Solutions
Canada Canada
The CodeProject team have been writing software, building communities, and hosting CodeProject.com for over 20 years. We are passionate about helping developers share knowledge, learn new skills, and connect. We believe everyone can code, and every contribution, no matter how small, helps.

The CodeProject team is currently focussing on CodeProject.AI Server, a stand-alone, self-hosted server that provides AI inferencing services on any platform for any language. Learn AI by jumping in the deep end with us: codeproject.com/AI.
This is a Organisation

4 members

Written By
Israel Israel
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.

Comments and Discussions

 
QuestionHow and when ? Pin
Master.Man19803-May-13 9:27
Master.Man19803-May-13 9:27 
AnswerRe: How and when ? Pin
Ayende @ Rahien3-May-13 9:31
Ayende @ Rahien3-May-13 9:31 
GeneralRe: How and when ? Pin
Master.Man19803-May-13 9:40
Master.Man19803-May-13 9:40 
GeneralRe: How and when ? Pin
Ayende @ Rahien3-May-13 9:44
Ayende @ Rahien3-May-13 9:44 
GeneralRe: How and when ? Pin
Master.Man19803-May-13 9:48
Master.Man19803-May-13 9:48 
GeneralGreat interview but... Not long enough. Pin
gwojan2-May-13 3:34
gwojan2-May-13 3:34 
GeneralRe: Great interview but... Not long enough. Pin
SamNaseri2-May-13 16:59
SamNaseri2-May-13 16:59 
GeneralRe: Great interview but... Not long enough. Pin
Ayende @ Rahien2-May-13 19:52
Ayende @ Rahien2-May-13 19:52 
GeneralRe: Great interview but... Not long enough. Pin
gwojan3-May-13 4:26
gwojan3-May-13 4:26 
GeneralMy vote of 5 Pin
Pete O'Hanlon1-May-13 21:44
subeditorPete O'Hanlon1-May-13 21:44 
GeneralRe: My vote of 5 Pin
Chris Maunder2-May-13 1:55
cofounderChris Maunder2-May-13 1:55 
GeneralRe: My vote of 5 Pin
Pete O'Hanlon2-May-13 3:47
subeditorPete O'Hanlon2-May-13 3:47 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.