A Very Long Tale of My Career, Or How Teaching NHibernate & Other Backend Stuff Got Me Into Readify

I told a few people how I joined Readify, but I never wrote it down. Here’s more than you ever wanted to know:

Before The Beginning

I didn’t have a computer when I was a kid, until I was 14 or something. I only had access to DOS computer in the mid-to-late 90s in a community center, where I was not allowed to run Norton Commander, because “you won’t learn anything like that”. I learned DBASE III, at the time my teacher was using Windows 95 or 98.

Then I got a computer. Internet came later. I noticed I could be a web developer. PHP was the craze at the time. I jumped on it, and learned some C and Visual Basic too. I didn’t get so far with either.

Then my family moved into another house. My new neighbour who attended a Computer Science college said they had free lectures on Visual Studio 2002 beta during summer, and I couldn’t have missed them! I got the software with a help of the public library I used to go to. The IT manager there was so helpful, even though I was barely allowed in the “grownups” section at the time. That reminds me of something else that’s useless in this context, which is how for over a year I used to note “useful URLs” in a small book, until an affordable Internet Cafe was open in the same library, and I was able to surf like a guru!

My First Company

I started work when I was at uni. I attended a international Microsoft developers conference in Egypt on 2004 and was picked as a best attendee by one of the speakers, to win a Microsoft MCAD training track (8 courses). I was in my first year of 5 years engineering uni.

It wasn’t easy doing a 4 hour training 3 days a week plus uni, but it paid off. I was lucky that most students were senior developers at the time, and all somewhat new to .NET.

A friend recommended me as a trainee in her company in the summer. She left the company, and shortly after, the other 2 developers left on the same day. It was funny. I had to handle this little company myself, with an interesting technical founder who at the time only knew classic ASP. I was interviewing both junior and senior hires technically while still called a trainee!
I also wrote a PoS Windows app that sync’ed with my web app’s SQL DB via Access and DataSets!

My First Move

Then one of the 2 developers who left invited me to work as a freelancer in her company, for a month, with 6 times my full time trainee salary. It was a custom CMS written by someone who left and no one else could wrap their head around the code, and the company needed to extend it in ways it was never meant to work.

That was flattering, and I was crazy about CMSes at the time. I took it, and after a few weeks of day and night work, I decided to dedicate my day to the new work.

It was uni time again (September 2005). My work was successful and led to more work. Eventually someone else left, and he was taking care of a system that nobody wanted to touch for a very different reason. It was in VB.NET! I didn’t know VB.NET at the time, but I took it, and it had some interesting business challenges, and .. em .. KSA remote client management challenges.

I decided to continue working as a part-timer during uni. It was the beginning of crazy era.

The Work – Uni Balance

A New Life

I’d go to uni, finish and head to the company, through a very crowded road (about 2 hours long, including 45 minutes in a single crossing), finish work so late I’m too tired to go home, pull in some chairs together to sleep on, to wake up early enough before anybody comes, and go to uni.

I’d go back home every 2-3 days to change my clothes. I also would take 2-4 weeks off before and during exams. I was so proud I was so rich I could order food whenever I wanted, and was being treated just like all the “big developers”.

Officially A Full-Timer

Then the same person who brought me to the company told me about this American company opening in Egypt, that is always working with pre-release technologies. She said she failed their test because she didn’t take it seriously as the company didn’t seem to have a proper office or anything. She told me she thought she was wrong, as it’s just a different culture. She told me the UX designer I liked the most in our company went to work there.

So, right after finishing a uni final test, I went to this other company for a tech test. It was a horrible idea. I think I did too bad, but having been blogging for a while about tech events in Egypt and other tech stuff, when .NET bloggers were relatively rare at the time (talking 2006), especially in Egypt, I was a well known person to the guys who worked there. Also one of them knew me from a tech forum we both used to help people in.

So, I got to the interview with the tech founder. He’s an Indonesian from a Chinese background, who I think holds a degree from Australia, and is partnering with an American in founding a company in Egypt! He was a legend!

These maybe were some of my best times in life. I worked as a full-time junior developer for pretty much the same salary as my previous company. I worked in the same way I did in the other company plus 10 hours a day in weekends to have 40 hours total. That was doable because our main account was in the U.S., and the time difference was in my favor as I was working mostly by night during uni.

A Senior Title

I really enjoyed the company. The founder made it ever better. He was an awesome geek. He stayed late with me, came on weekends, and sometimes we both would go out to eat or just walk. That was life!

I was the only junior developer at the time. A year later they started hiring junior developers and I was promoted to a senior developer. I was proud I got the title while still a student, even though that didn’t include a pay rise. That came a few months later though.

The company also encouraged me to start public speaking. I was a semi-frequent speaker at the only .NET usergroup in Egypt at the time, and the company itself held its own conference every year, having me as a speaker twice. That was cool, and helped more people recognize me.

The “Experts” Team

After graduating (2008), a friend from the MCAD courses told me his friend left his well-paying online freelancing work to go back to their old company, which was re-opening. It was a part of a very large well known brand in Egypt. He called me to join him in an architecture team they called “The Experts Team”.

It also had the guy I liked the most from the usergroup organizer team. I was getting ready for marriage at the time, and for those who don’t know, marriage costs tens of thousands in Egypt — that’s IF you have an apartment, and I was lucky that my parents suffered from paying loans for many years to ensure I had one before I understood why that was important.

Flying To Abu Dhabi

The Decision I Never Considered

So, I moved to the same team as that friend. I got married. I was happy where I was, working with nice people in a big company. Then the same guy who got me in the company told me about a senior position in a big company in Abu Dhabi. He told me he was called for the opportunity but he felt it was small for him, but OK for me. At first, I rejected the idea. I was still new in my company and wouldn’t want to leave so quick. I also never thought about traveling, but -let me admit- mostly because I never thought I’d be able to do it.

Then someone else from the company encouraged me to take it. My father, whom I thought would say don’t go, encouraged me to go abroad in a way that was very touchy. We are talking 2009. Things weren’t that bad in Egypt, but they were still definitely not good. Having recommendations from the company I didn’t want to leave, and also because the phone interview with my team leader was so nice (He was sure a geek I’d enjoy working with), all led me to go ahead with the offer.

That was the best decision I have taken in my life. Not just because the Egyptian company closed again in a year or two (the parent company thought software was lengthy and expensive compared to integration like SharePoint etc), but also due to political issues later, etc.

Life In Abu Dhabi

I arrived to Abu Dhabi. First time to travel by air. I got freaked out in Abu Dhabi airport when they couldn’t get a scan of my “eye print” and kept me held for an hour. But I was let in! And I started work. I was well respected and had my fame with me, which was nice at first. It wasn’t an oil company but the closest to that (half owned by government). I didn’t have the best salary, but had the highest medical insurance etc.

The Real Beginning

Meligy, The Backend-Focused Speaker

At this time I was all about design patterns and framework design. I had already spoken in the usergroup about all of these. I was being followed by Scott Hanselman on Twitter!

I also went too fast with Entity Framework when it was very new and it screwed me up. I turned to NHibernate, and after joining their mailing list looking for help, I myself became someone who helps others, and someone who interferes with some of the maintainers for how they’d make fun of some of the questions etc. I made good friends with some NHibernate core members. And this was how I heard about Readify.

In February 2010, I was invited by the .NET usergroup I used to speak in, to speak in a big conference they organized, called Cairo Code Camp. It was the 2nd one and I had already spoken at the first. I couldn’t miss it. Scott Hanselman was there. I’ll see him for the first time, AND, as a speaker, both of us, WOW!

I was delivering a session called “Framework Design Guidelines”. That is, stuff inspired by MSDN Patterns and Practices, and Design Patterns and Domain Driven Design.

Someone else was in there, Mitch Denny, the Readify CTO at the time (now in Microsoft U.S.). I enjoyed a nice conversation with him during speaker dinner party, although I didn’t know where he was working at the moment.

My Friend, From The NHibernate Core Team

Now, back to Abu Dhabi. Work was getting boring. I was hoping for some challenging work in U.A.E (Abu Dhabi or Dubai), again, not thinking about travel. It wasn’t very successful. I chatted to my NHibernate core team member friend, and he pointed me to someone he knew, who blogged about his interview process at Readify.

I was pretty impressed. I thought they’ll never take me. There were so many celebrities who worked there that I just knew I won’t be good enough to work there. I tried anyway!

And guess what? They called me back! I learned that Mitch actually remembered me, and knew where he works! I still had to go through a tough interview, and I passed! Hooray!!

The Foolish Call That Made Me Decide To Join Readify

But I wasn’t sure whether I want to make such a big move myself. Fun fact: when they asked me: “which state would you be interested in going to?” I said Sydney only because it was the only city I knew its name (and didn’t remember how I knew it). I wanted to get something extra to weigh the decision.

I DM’ed Scott Hanselman. Didn’t I tell you he was following me on Twitter and knew me in person? I asked for someone who can tell me in all fairness whether Readify was a good company. He pointed me to Tatham Oddie, our current Delivery Lead today :D — He had his phone number on his blog at the time. He picked up the phone once to find an anonymous international caller saying Scott Hanselman recommended him for asking whether Readify was a good company. Of course he wouldn’t say anything bad about his company to a stranger! It was a foolish call, but it was all I needed to get going.

Making The Move

My annual-paid rent was expiring — I had to borrow 60% of my salary to pay that rent (Not having a good enough eyesight for driving made cheaper out of the city options impractical for me). I had to live in a temporary apartment that had legal issues and could have had me kicked out any time because it was cheap and had nice furniture for me and wife. The visa took from April to August, which was very unusual, but it came, and I arrived in Australia!

Since I arrived, so many things happened. I hated Sydney at first because Abu Dhabi was so fancy (I used to move around in latest-model taxi cars, for 6 Dirhams or so — the city was so small). I learned to see the beauty of Sydney only a few months later. My son spoke his first words here, and I and him call it home today.

It’s been long time since arrival in September 2010. During the time I only left Sydney to one-day company annual events in other states, and a one week holiday in Melbourne earlier this year.

Life At Readify

I joined Readify and worked in the same company as so many celebrities I used to fancy, and so many great other people I discovered while working here.

I saw the company go through several growing stages, every time feeling a worry about losing the culture I love in the company, then feeling happy that it is as awesome as ever.

It is definitely an awesome place to work. There’s countless number of great people around here, and I also more than often get to either work at great customer sites with great people I loved to go back to and help with the great work they are doing (my current client is one of them), and other sites that are not as great as I’d hope to see them yet, but instead of feeling feeling bad, I feel inspired to help them make things better bit by bit. Because that’s why you’d hire a Readifarian :)

Yesterday And Today

I got to work with so many clients in different industries, from finance to media to charity to met and livestock handling(!), and many others. I got to play different roles, as a team member, as a mentor, as an appointed tech lead, etc. etc.

I spoke at ALT .NET and SydJS usergroups, and DDD Sydney and NDC Sydney conferences.

And I learned a lot more, not just at work.

I attended several workshops, like Distributed Software Architecture and Messaging by Greg Young, and International Domain Driven Design Tour workshop by Vaughn Vernon. I attended workshops on being a Scrum Product Owner, and a Scrum Master (and learned that I cannot be both at the time time, before they are different interests).

And then I somehow became known as a JavaScript guy. That’s me, who in 2007 was very happy that UpdatePanel in Webforms could abstract AJAX, and thought that people who could write code with Scriptaculous (before jQuery) were magicians. I even run a usergroup for one of popular JavaScript frameworks in Sydney!!!

I’m very proud of what I have done so far, and am still hungry for more learning and achievements. This is a journey that will hopefully never end before I die. One that I wanted to document the past pieces of before I start losing some of the important details.

Thanks for sticking with me till the end. in this long post :)

Cheers,

Using OneNote As Wiki Inside Readify

onenote In recent projects I have been on with Readify, I have seen the rise of using OneNote to share most of the artifacts related to project. We still had requirement documents and proposals and all, and also tracking systems for ongoing and future work (backlog), but we used OneNote to record all sorts of information you’d store in a Wiki and/or in email and floating documents everywhere like:

  • Induction information (why does the project exist? how to setup dev environment? etc.)
  • Demo notes (what items are ready to demo? what are the steps? which users/links are needed?)
  • Meeting notes (demo meetings, sprint retrospectives)
  • Essential communication (Copies of release notes after sending, special notes coming in email / chat)

The availability of OneNote pretty much everywhere (including mobile devices, and web, as it’s hosted in out Office 365) and automatic synchronization made it a perfect alternative to a wiki for internal communication.

And yes, although I haven’t noticed this earlier, but OneNote also keeps track of all revisions and modifications, just like a proper wiki does.

If you want to learn more about how this approach worked for us in Readify, Tatham Oddie, one of our Readify Principal Consultants had an extensive writing of this model and other related communication strategies that help us excel at Readify.

Check it out: BEING AN OPEN RECIPIENT

Of course this is more applicable in situations where we do have more control over the way of communication. Not all projects follow this yet, and many projects work according to the established ways of our clients as long as they get the job done.

For those who wonder, Readify is still (always) hiring

This is an open letter I wanted to share with you…

Anyone doing software development on Microsoft platform?
(or knows someone who does)

I think I may have a challenging opportunity for you.

I work as a Senior Consultant for Readify Pty Ltd. Readify is an Australia-wide software consulting company specialised in Microsoft technologies. We have a lot of MVPs and ALT.NET developers (for example, we have the writers of Castle and Autofac IoCs, and Linfu dynamic proxy used in NHibernate, among many others including several worldwide technical speakers and book writers).

The company is also specialised in hiring the top 10% developers all over the world (so, if you have friends from Egypt or any other country, they are also welcome to apply).

Some of the company’s recent awards:

– Microsoft [[ Worldwide ]] Software Development Partner of the Year 2012
– Microsoft Australian ISV Software Development Partner of the Year 2012
– Microsoft Australian Software App Partner of the Year 2012
– BRW Best Places to Work Listing for [[ 2010, 2011 & 2012 ]].

If you would like to learn more, and then maybe consider applying, I wrote more about what it’s like to work for Readify from my own personal perspective (including notes about the recruitment process and answers to common questions):
http://bit.ly/readify-openings-2012

Readify is always hunting for the best talent all over the world, so, this is open call that you can use any time, although cool stuff better not wait

Once you are ready, apply TO careers@readify.net, CC: mohamed.meligy@readify.net

P.S.

Please note that due to the very nature of Readify as a software development "consulting" company not just a normal software shop, we do not usually offer overseas vacancies for junior developers (we offer "local" internship program). This is for senior developers and beyond. Also, we do not usually offer vacancies for designers, testers, dedicated project managers, or administrators, as these roles are often handled by our clients already.

Hey, Readify is hiring all across Australia, from all over the world!

Too long to read?

Readify, the great consulting company where I work now, is hiring for Senior Developer (Consultant) and Senior Consultant positions all across Australia, and sponsors work visa for accepted international applications. You can apply here: http://bit.ly/readify-openings.

You can also just sit down and write an introductory letter about yourself why you think you may be a good fit for Readify, attach your resume, and send it TO careers@readify.net CC mohamed.meligy@readify.net (and I’ll ensure it’s processed, even though this normally not much needed).

And it’s all still current!

If you come here thinking “This must be outdated”. Don’t worry, Readify is always expanding and hence is always hiring too.

Except after this post was originally written, Readify was honoured several other awards as well:

Microsoft Worldwide Software Development Partner of the Year 2012

Microsoft Australian ISV Software Development Partner of the Year 2012

Microsoft Australian Software App Partner of the Year 2012

BRW Best Places to Work 2010, 2011 & 2012

Working at Readify, what’s it’s like

image

Through blog, twitter stream, and more, you probably saw me talk about how awesome it is to work here at Readify. Being in the same company with Tatham Oddie (the creator of WebformsMVC and tons of other things, and frequent speaker in MIX and other events), Richard Banks (the father of ALT.NET Sydney, and great Agile master), Krzysztof Kozmic (the Castle Windsor guy), Philip Laureano (the creator of LinFu dynamic proxy, used by default in NHibernate),, and .. the list is so long actually, and I have missed most of them…

 

Not just that, through my work at Readify, I have had the chance to play with a lot of technologies and frameworks. Windows Azure, OData, WebformsMVP, Windsor, Autofac, SQL Server 2008 R2, ASP.NET MVC, jQuery, jQuery UI, knockoutJS, HTML 5, CSS3, and have all sorts of geeky conversations about the newest hypes like Windows 8 and VS 11.

Note that some other technologies people use here include WCF, WPF, Windows Phone, and more…)

 

 

Readify is a consulting company. Working as a consultant is nice in that you always go to new customers and work with different projects all the time. It’s very unlikely that you stay at the same customer for more than 6-12 months, and it’s not so rare to have 4-12 weeks customer engagements.

If you like what you see, and want to be part of it, then I have some good news for you.

Want to know more?

Check out the official top 10 reasons why it’s awesome to work at Readify.

Readify is hiring, what, where, and how?

One of the nice things about Readify is rapid growth. Since Readify started, it has always been hiring and expanding in size (more than double sometimes) every year. This is a scary thing if it happens once or twice, but if happens every year, this is sure a great indicator.

 

All across Australia, accepting overseas candidates

So, it’s 2012, and Readify is hiring for the (still?) new year. in brief, we need Senior Developers (consultants), and Senior Consultants (like team leaders), to work for Readify in our various branches in different states across Australia.

You don’t have to be located in in Australia already to join Readify though (but happy to be). We actually are 4 Egyptians here distributed across Sydney, Melbourne, and Perth and expecting more to join soon.

See update 4 for information about different states to choose

 

How to apply

Just go ahead to:

http://bit.ly/readify-openings

 

First thing you’ll want to check what it means to be a Senior Developer or Senior Consultant at Readify, what the responsibilities are like, and what Readify expects from the candidates applying for each of these positions to decide which is best fit for you, and maybe navigate a bit across the website as a whole (http://readify.net) to learn more about the company as a whole.

 

Once you do that and feel comfortable, send an email to the recruitment address (careers@readify.net) or use the online application in the selected position page.

Feel more than free to quote this post in your application, CC me and/or mention this post as your reference (such a pleasure, thanks!), or just send it normally (it’s the same from the process point of view).

 

I also highly recommend you check the recruitment process page, to know what expect after you apply:

http://bit.ly/readify-recruitment-process

As you probably guessed, you don’t have to mention this post in your application, but I’ll sure be more than happy fi you do!

Update 1: Can you CC me?

As some people asked, yes, it’s OK to CC in your application email to Readify. I will “not” make any difference to your application as Readify recruitment process is already optimized and begins pretty quick, but I wouldn’t at all mind if you CC me.

Actually, you “CAN” even CC my Readify email if you want: mohamed.meligy@readify.net.

 

Update 2: What about the visa for international candidates?

Another FAQ I have been getting is “what about the visa?”. Readify sponsors a 4 years temporary business visa for accepted overseas candidates and their family (partner, kinds), and provides lawyers to assist you in lodging and following up the visa application.

The final offer is obviously conditional based on the government approval of the visa.

 

Update 3: What if I fail? Or Can you review my resume first? etc.…

OK, first, Readify is trying to maintain a standard of hiring only top 5% of the world developers. You need to decide first whether this is a challenge you want to take.

 

Your CV won’t make a big difference as long as it doesn’t look horrible or unrelated to position. In most cases you’ll get back a coding puzzle to solve (and return Visual Studio solution), After that there is an HR interview (very friendly one), and then a technical interview and debugging test (given a problem in Visual Studio while the interviewer watches your screen online to see how you approach the problem s/he gives you, which is more important than the solution itself). The rest is more of an administration stuff really and people are unlikely to fail at.

 

But most importantly, if you fail at any step, you get back a nice feedback about which areas you need to improve to meet Readify’s (high) standards. It’s also all OK to work on those areas and re-apply after a year or even few months (going through all process again).

 

Update 4: What’s the difference between cities / states to live in?

The most common cities are Sydney, Melbourne (has the Readify head office), Perth, and Brisbane. Each of them has some benefit. Most Egyptians only heard of Sydney, Melbourne has a nice cultural nature (including Muslim university, various cultural places & events), Perth is “very” fast growing business city, moving quickly from a small city style to a mix of the good in both, and Brisbane is known to be a very beautiful city in general. I only live in Sydney, which is getting crowded now to be honest. I think for Egyptians maybe Perth and Melbourne are the best choices, while I pretty like Sydney and hope to visit Brisbane still,

You don’t have to decide now though. If you get accepted in first or second step, google those cities, see pictures and comparisons and decide which is best for you.