This blog has moved to Medium

Subscribe via email


Posts tagged ‘Career’

Commerce Sciences Is Hiring!

As most of you know, I left Google a few months ago to join a hot new eCommerce startup (I can finally reveal it’s Commerce Sciences).

So far it’s been just Eyal, Aviv and myself working here at our Herzliya office.

 

Well …

 

We are pleased to announce that we secured an investment of more than 1.5 million dollars, and are now ready to spend that money on you!

That is … if you’re a really top notch developer looking for adventure, learning, teaching, cutting edge tools and challenges, a terrific product (still stealth mode, but we already have some clients) that will change the way we do eCommerce, together with a superior team.

You will be our second or third employee … plenty of room to grow, influence the team, the code/architecture and the product.
I was actually just planning to write a post about “why I love startups so much” when the news of the investment round was made public .. look forward to it.

I can’t elaborate publicly about the product, but technology wise I can say we’re working with Java 7 (thinking about Scala), Groovy, Play! Framework, Javascript/HTML/LessCss (will integrate Coffee Script first chance we get) Amazon EC2, git, and Trello.

Leaving so soon?

tl;dr – I’m leaving Google, to join a hot new stealth-mode eCommerce startup founded by Aviv Revach and Eyal Brosh, after five months of being at Google.

To make a long story short – during my short period there, I came to the conclusion that I really prefer working in a startup over being at a large company, at least in this stage of my life and career. The reason I joined Google was to learn how a good big company works – and Google is the best company to do this at. It has really excellent people to learn from, a good culture of moving fast, iterating, dogfooding, and fixing things that are broken. The one thing I was missing there was … they are not a startup, with all that implies. Although Google preserves a lot of startup elements in its culture, and has “startup like” projects started all the time, from above and bottom, including the famous 20% time, what I was missing the thrill and focus of being able to start a new project from absolute scratch, being in charge of major technological decisions, choosing the tooling and technology, and getting the chance to “make it or break it” on my own.

In Google, I knew that even if a project I started would fail, my job would be safe. There are a lot of advantages to this kind of stability, but the advantage of being totally on your own is that it hones the senses, simply because you and your team have so much riding on the success of your project. In a startup, I know that a lot of decisions I make will have major impact on my success, and this is much less apparent in any medium-large company.

I really intended to give it a go and learn all that I could from a large company, but then came Aviv and Eyal, both of which I knew from my army days, and slowly convinced me that their startup was the next best thing on the planet.

It took an agonizing few weeks to decide, and it was a really tough choice (thanks to my wife Aya for her support in these weeks. She heard my endless deliberations and took it really well, and recommended me the wonderful book How We Decide). Eventually, I decided that at this stage of my life, joining a promising startup, especially with such very high caliber people, beats the promise of staying at Google and trying to make things work for me. I can’t be sure this is “the one and only right choice” (there is never “one right choice”), but I know I have to try this, at least for the education I’ll get by doing this.

Fellow Googlers (especially the Trends/Insights team, where I spent the last five months) – I hope to work with you in the future, either in Google or outside. I’ll miss you all, and of course the salad bar in the 26th floor :). You’re welcome to visit me in Hertzelia Pituah, and I’ll still drop by every now and then. So long, and thanks for all the fish.

How I got hired by Google (this time)

(Yada yada, this post doesn’t represents any opinions except my own, and barely even that :))

For the sake of friends, family, and other readers who might be interested, I wanted to document the process I’ve gone through with Google. I find it a bit similar to the process Steve Yegg went through when he got hired by Google, because both of us were turned down by Google the first time we interviewed there. I hope this might help you if you ever decide you want to try to become a Googler yourself (here is why I chose it, but you should find your own reasons).

My history with the job market is rather short – before interviewing at Google for the first time, I have been “employed” by the Israeli Defense Force for six years, in the course of normal army service. I was doing professional and interesting work, but I wasn’t exactly free to choose (Israeli mandates a three years compulsory army service for guys, and I signed for three extra years at the age of eighteen as part of the Atuda program). While in the army, I started my Master degree in CS, and when I finished it (half a year after being released from the army), I finally had to make my first employment choice in the “real world”.

I didn’t know the first thing about what I wanted. Throughout my army service, I had the concept that I really wanted to do “research work” (not that I knew what this means, it just sounded cool). I also remembered that I really enjoyed studying algorithms and data structures back in my B. Sc days, so I considered working as an algorithm developer (I had assumed the job has some correlation to the problems I faced in Algorithms and Data Structures courses – which is not necessarily true). Also, I was really drawn to the startup world, having tried unsuccessfully to create one myself. And, of course, Google was on my list of possible employers, because, well, it’s Google.

I approached interviewing at Google like I would any other company. I ignored the emails they sent me on “how to prepare for the interviews”, and hardly did any any research about the Google interview process. Also, since I thought it’s such a good company, I interviewed there immediately – actually, it was among the very first companies that I interviewed for. Unfortunately (or fortunately), I completely sucked at the interviews (or at least this was my subjective feeling at the time). The interview problem I most distinctly remember is being asked to sort an array of integers. “Trivial”, I said, and blurted either “Quicksort” or “Mergesort”.

“OK”, said my interviewer, “that’s a good answer. Now please implement it on this sheet of paper.”

“What?!”, I staggered. Still, I didn’t completely freeze, and wrote down some implementation or another. I did understand the concepts of both sort algorithms well enough to explain them, but when I tried to put it down on paper, I made some annoying +1/-1 indexing error, which I was unable to track down in the course and pressure of the interview. This, and other errors like this one, was one of the factors that made Google decide I was not ready to work for them yet. “Please interview again in another six months” was the reply I got.

Of course, in another six months I was happily employed at what became my job for the next three years, so the thought of interviewing again didn’t cross my mind until now. Recently, when I decided that it’s time for me to switch jobs, I took a second, more mature look at Google. I thought long and hard about what my motivation for leaving Delver, and found that it’s a desire to learn and grow. I then concluded that Google was the best place for me to do this (not an easy decision, but a decision that had to be made nonetheless). Once these thoughts crystallized in my head, I decided that this time, I’m going to be hired. I knew internally that I’m good enough, and I could make it with the right combination of preparations and luck.

The first thing I did was grill a couple of friends that were hired by Google in the last year. They didn’t reveal anything secret about the interviewing process, of course, but talking to them did send me in the right directions – “go study data structures and algorithms!” was the clear message. I first implement Bubble Sort as a warmup exercises, and managed to include a horrible yet hard to detect bug that made me take things a bit more carefully from then on. I revisited Introduction to CS, Data Structures, and Algorithms course material, and actually solved exams by coding the solutions. I didn’t anticipate how difficult this would be – not the actual problems, but the act of mentally forcing myself to fill in all the gritty details and code algorithms that actually work (and prove it via test cases). “Google is looking for smart engineers who know how to solve algorithmic problems, and code the solutions”, I was told, and so I made sure I am one of these engineers. One of the most difficult things I had to do was mentally push myself to do things throughly and not take shortcuts.

I scurried the web, reading tales of other qualified engineers that went through the interview process. I solved several Google Code Jam problems. I thought about how I would build large, Google scale services such as Search, Gmail and Maps, and wasn’t ashamed to ask questions when I didn’t know the answers. When I was almost ready for a Google interview, I started interviewing at other companies. You can’t believe how bad at interviews we (I) get when we don’t practice it for a few years – interviewing with other companies was a good way to get a feel of the market, validate to myself my choice of Google, and get better at interviewing and solving technical problems. Finally, I submitted my resume via a friend that works at Google (a good recommendation from a Googler tends to help your chances … it certainly can’t hurt). All this time, I kept repeating the basics – I reread the material for Data Structures and Algorithms courses quite a few times until it all sunk in, and I must have implemented Quicksort and Mergesort a few dozens of time until I was sure I could do it flawlessly and under pressure.

A Google interview process is usually composed of a basic “screening” interview, followed by a series of more difficult interviews. I was actually told by my Google recruiter that because my results last time I interviewed, I could skip the screening interview and proceed directly to the more difficult ones. I chose not to, and took the screening interview as a warm-up exercise (I was surprised and encouraged to find that it was really easy for me, and this encouragement helped with the other more difficult interviews). Google usually schedules all your advanced interviews (5-6 of them!) into one long day. One important tip is that you can ask your recruiter to split these interviews into two different days – I found it much easier this way)

Finally, after several challenging interviews and nervous days waiting for Google’s response, I got the “ok, you’re hired”. The process I’ve gone through was, I believe, the right process for me. I might have been slightly over-prepared for some (not all!) of my Google interviews (and I was never actually asked to implement Quicksort or Mergesort), but it’s better to be 400% over prepared and succeed than be 10% under prepared and fail. I understand that not everyone can dedicate as much time for the preparation process as I have – it was relatively easy for me because I announced that I’m quitting before finding another job, and so didn’t have to hide the fact I’m interviewing and studying – this can be very stressful, thinking about your new job while nobody at your current gig knows you’re quitting.

If you want to apply to Google, you should decide what process works for you, and how much you really want it. And study up on your Mergesort/Quicksort – learning to implement them flawlessly is not an exercise in memorization, but rather an exercises in solid algorithm building using pre/post-conditions and an excellent “mental muscle warmer”. I took Steve’s advice of doing “short-term warm-ups” to heart.

I hope this has been a useful post for you, and I encourage you the look up the other available sources. Here are some links to get you started:

Good luck in your interviews!

My 2011 job hunt

I was asked by my dad to “send him a few links about prospective hi-tech companies” to pass a long to a friend who is looking for a job. Instead, I decided to blog about my experience from recent “job hunt” I did, and concentrate it into one post.

I decided to look for a job on February, posted this fact on my blog, and sent my CV to a two placement companies – SeeV and Pinzzeta. I was relatively selective in choosing companies to interview at, because I knew I’ll probably go work for Google if they accepted me anyway, and I wanted to try a few other companies both to see if I could find something that excited me more, and to practice my interviewing skills. Before going to any interview, I formulated a list of things I wanted to know about my future employers, and decided what my next job would be about – working and learning from great people, and being part of a team that has a bright future ahead of it.

Finally, I would like to end with a short list of some of the companies that I found more interesting, in no particular order:

  • Delver – Some of the brightest people in the industry work there (I know, I spent 3 years working with them!)
  • Snaptu – A leader mobile app platform, Facebook just signed a big deal with them. Their sheer scale was amazing (I don’t recall the exact numbers, but they have a shitload of hits every day).
  • Soluto – I was impressed by the people and vision of Soluto. They make a downloadable client that “makes your frustrations go away”, and they already a lot of users. Note that user counts of a desktop client should be counted differently from user counts of webapps – users are way more reluctant to download apps.
  • Waze – even though I only had the chance to do one interview there, it seems like everyone I know uses their software! I always wanted to build something that’s very wildly used, and Waze looks promising in this aspect.
  • TypeMock – one of the world leaders in TDD, and with impressive people in its current & former ranks, TypeMock seems like a great company to work for.
  • I’ll finish this list with a few stealth-mode startups that caught my eyes. It was really hard turning you guys down – I would keep my eyes open for both Yotpo and MashLife

(I’d like to add that if I interviewed for your company and it isn’t on this list, this does’t mean I think of it negatively – just that it wasn’t a good fit for me, at this time. I deliberately wanted to keep this list short.)

Update – it appears that only one day after I posted this, Facebook announced that they’re acquiring SnapTu for $70 million. I wonder if that would have meant anything for me if I had just signed there two weeks ago.

Why do I want to work at Google?

listed Google as one of the companies I was considering to work for. It was a bit difficult explaining my goals to people, as I wanted either “a cool, small startup” or Google, which are very different in nature.

I don’t really have to explain why I consider working at a cool, small startup … cool. Working for Delver for past three years was an amazing experience. I joined Delver to “change the world”, and knew that I personally will take a large part in the effort of a really small, focused and excellent group of people. The openness, desire to learn and improve, and passion were common to almost everyone on the team.

I still have this passion, and there’s a good chance that one day I will either work in a small startup again, or better yet create one from scratch. However, if there’s one thing that Delver taught me is humility. I know I’m a good software engineer, but I also know how much I don’t know, and that I can improve and learn in so many different areas. This is why I made learning my number one goal in my job search. Beyond “changing the world”, I wanted to find a place where I’ll maximize my improvement, my skillz, and my career path. I wanted to meet a lot of smart people, and get the “I’m the dumbest person in the room” feeling on a daily basis.

I think that Google can be this kind of place for me.

Don’t get me wrong – I know from personal experience that startups offer these kinds of opportunities as well. Some people would say the opportunities for learning are greater at startups that any any big company, Google included. Some say quite the opposite, that Google is so unique that it far outweighs almost any other gig.

What’s your opinion? Do you want to work for Google?

What I’d like to know about my next employer

Here are some questions that interest me when choosing a company to work for. I won’t necessarily get the answer to all these questions, but there’s no harm in trying…

Company
  • Tell me a bit about the history of your company.
  • How old is it, how has it evolved, what are its goals/vision?
  • Is it a startup?
  • Do you have sales yet? How many?
People
  • What people will I be working with?
  • Do you have blogs I can look at?
  • How many people are we talking about?
  • What is your growth/hiring plans for the next year?
  • How does the org chart look like?
  • Who will I be reporting to, and who is he/she managing?
  • What kind of people are you looking for?
Projects
  • What projects or roles am I interviewed for?
  • What is the job description/title?
  • How dynamic is the project?
  • Can you provide an example of a component I would own?
Tools, Technologies and Methodologies
  • What tools do you use?
  • Do devs have budget for decent IDEs & hardware? Two screens, laptops with SSDs?
  • What are you using for build management & continuous integration?
  • What programming languages are used?
  • What open source / 3rd party libraries are you using? Extra Credit (thanks Ken): do you contribute to any OSS libraries?
  • Do you have specific development methodologies you use?
  • How does your release cycle look like?
That covers most of it. What are your questions?

Goodbye Delver, hello ???

After 3 years at Delver (and then Sears Israel), I’ve decided that I need to “see other people”.

I joined Delver 3 years ago, fresh out of IDF and Technion. I still remember how proud and full of myself I was back then. Well, these last three years just served to show me how much more I don’t know!

In Delver Mark I, I worked under the amazing Bogen, learning what Web 2.0 and startups are all about. Is was a great year with its ups and downs, which ended with us being acquired by Sears.

Under Sears, we maintained the startup spirit and relaunched Delver.com as a social shopping site. It is intended to be a cross between Amazon & Facebook, somewhere you can discover interesting products, find trusted reviews and ratings from your friends, and leverage your social network in helping you choose your next LCD TV. We had an wonderful growth from 16 people to 60, including some amazing new talents. I started to lead a small infrastructure team, and together all of us contributed to Delver’s buildup and launch.

At the end, it all comes down to Choice. After three years at the same place, and a few months of deliberations, I made the difficult choice that I had to move on. I feel that my personal career’s growth will be better served by having more experience working with people I don’t know, and expanding the limits of my comfort zone. I feel the burning need to “be all that I can be”, and I feel that the best way for me to achieve this goal outside of Delver.

So … what’s next for me?

I don’t have a specific job offer yet. My top priority right now is continuing my growth and education, in both technical and product aspects. I have a few candidates already on my list, in no particular order:

I would love to hear your opinions on these companies, and of course if you have other ideas on cool startups or places where I can learn about B2C websites, scalability, product design – and most importantly, work together with amazing people.

What do you think – should programming language carry any weight in deciding where to work next? Should my next programming gig be in Java, C#, Ruby or perhaps the language doesn’t matter at all? For reference, I’m attaching this chart from langpop (although according to it, the market leader in C. Even if I’m paid double my current salary, I won’t program in C for a living.)



And to all the great people I’m leaving behind in Delver – I wish you all the best, and hope to read that TechCrunch or HighScalability article about how you scaled Social Commerce to 100,000,000 active users. Best of luck, until we meet again…

Delver Logo