Jekyll2017-09-10T19:55:36+00:00https://rudyonweb.net/RudyOnWebRudy Rigot's old blog, in English and French. Beware of dangerously outdated content.
Rudy RigotDid you know? Silicon Valley was founded by a dark, tyrannical man.2016-08-30T20:50:30+00:002016-08-30T20:50:30+00:00https://rudyonweb.net/did-you-know-silicon-valley-was-founded-by-a-dark-tyrannical-man<p><em>Fun fact: the Nobel-prize-holder man who laid the first foundations of the Silicon Valley, and chose its San Francisco Bay Area location, had business values exactly opposed to what became Silicon Valley culture. And that’s no coincidence.</em></p>
<p>William Shockley was a genius in the 1950s fields that became electronics, having invented the transistor, which pioneered the field; and for some reason, he wouldn’t listen to investors who pressured him to start his R&D business on the East Coast, where the rest of the industry was. For some reason, he had chosen the tiny village of Mountain View, CA, and convinced a number of brilliant PhD holders to join him there.<span id="more-940"></span></p>
<p>However brilliant an early electronician, Shockley was a very poor manager. He considered his leadership and vision never to be questioned, and had poor trust for his employees, famously requesting once that they all go through a lie detector (which they refused), recording all phone conversations, and forbidding them to talk to each other. He would find ways to retaliate against employees seeming to be looking for work elsewhere, or simply leaving the company.</p>
<p>In 1957, eight Shockley employees, including the only ones he trusted, decided to leave at once, and founded their own company, which they would call “Fairchild”; he was probably the one to coin the name History ironically would remember them under, “the traitorous eight”.</p>
<p><img src="https://rudyonweb.net/assets/images/The_Traitorous_Eight.jpg" alt="The Traitorous Eight"></p>
<p>It would have been complicated for 8 families to move at the same time, so they decided to stay in the vicinity, even though investors wanted them too on the East Coast. Relieved from their frustrations, they decided to intentionally build Fairchild at the extreme opposite of Shockley’s obsessive and controlling behaviors.</p>
<ul>
<li>People would be allowed to work on what they felt was most promising and interesting, which led to amazing discoveries of better technologies than those built at Shockley; this matches today’s value of “managers stay out of the way”.</li>
<li>They decided to refrain from choosing leaders so as to avoid for anyone to start behaving poorly, following what is known today as “flat organization”. Ultimately, as the company became immensely successful, they had to pick two people to represent them to the outside, which they named “leaders amongst equals”.</li>
<li>People would be encouraged to communicate and shared their findings and success with others.</li>
<li>Employees wishing to leave were encouraged, and helped to find a more fitting position elsewhere, as is still custom today in the Silicon Valley.</li>
</ul>
<p>After only 2 years of shared ownership and rapid technological breakthroughs, the 8 founders had to sell back all of their shares to the initial investor, as per the agreement they had with him. Little had the investor planned that it made them become regular employees again, and according to their own company culture, it didn’t take long for them to start pursuing other interests, with no moral penalty. The company, remained glorious for a few years, but eventually fluttered and failed a few years later. One would argue that this generated the respected opinion in Silicon Valley that employees must be given stock if the employer expects to keep them motivated, and the whole “winning together” approach to ownership.</p>
<p>The “traitorous eight” walked away significantly wealthy, and founded or invested in all of the first major technological companies to be in the area, which started to be know as “Fairchildren”; companies such as Amazon.com, Compaq, Genentech, Intuit, Lotus, Macromedia, Netscape, Sun Microsystems, Symantec, …</p>
<p>One of them, Robert Noyce, who had been one of Fairchild’s “leaders amongst equals”, and before that, had been the most trusted employee of Shockley, went on to found Intel.</p>
<p>Those technology companies were all following the very successful Fairchild model and culture, and a lot of them ended up meeting success as well, making some more people rich; who founded or invested in other technology companies who adopted a similar trusting culture; etc. The Silicon Valley, and more importantly, the Silicon Valley culture, was born.</p>
<p>The main takeaway: it took a genius tyrant with an extreme love for California to spur, in contradiction, all of the uplifting culture and unprecedented decades-long economic success that we’re getting now in the San Francisco Bay Area. Even though barely any of them knows the story, you definitely can feel that people over there are still very much fighting William Shockley every day.</p>Rudy RigotFun fact: the Nobel-prize-holder man who laid the first foundations of the Silicon Valley, and chose its San Francisco Bay Area location, had business values exactly opposed to what became Silicon Valley culture. And that’s no coincidence. William Shockley was a genius in the 1950s fields that became electronics, having invented the transistor, which pioneered the field; and for some reason, he wouldn’t listen to investors who pressured him to start his R&D business on the East Coast, where the rest of the industry was. For some reason, he had chosen the tiny village of Mountain View, CA, and convinced a number of brilliant PhD holders to join him there. However brilliant an early electronician, Shockley was a very poor manager. He considered his leadership and vision never to be questioned, and had poor trust for his employees, famously requesting once that they all go through a lie detector (which they refused), recording all phone conversations, and forbidding them to talk to each other. He would find ways to retaliate against employees seeming to be looking for work elsewhere, or simply leaving the company. In 1957, eight Shockley employees, including the only ones he trusted, decided to leave at once, and founded their own company, which they would call “Fairchild”; he was probably the one to coin the name History ironically would remember them under, “the traitorous eight”. It would have been complicated for 8 families to move at the same time, so they decided to stay in the vicinity, even though investors wanted them too on the East Coast. Relieved from their frustrations, they decided to intentionally build Fairchild at the extreme opposite of Shockley’s obsessive and controlling behaviors. People would be allowed to work on what they felt was most promising and interesting, which led to amazing discoveries of better technologies than those built at Shockley; this matches today’s value of “managers stay out of the way”. They decided to refrain from choosing leaders so as to avoid for anyone to start behaving poorly, following what is known today as “flat organization”. Ultimately, as the company became immensely successful, they had to pick two people to represent them to the outside, which they named “leaders amongst equals”. People would be encouraged to communicate and shared their findings and success with others. Employees wishing to leave were encouraged, and helped to find a more fitting position elsewhere, as is still custom today in the Silicon Valley. After only 2 years of shared ownership and rapid technological breakthroughs, the 8 founders had to sell back all of their shares to the initial investor, as per the agreement they had with him. Little had the investor planned that it made them become regular employees again, and according to their own company culture, it didn’t take long for them to start pursuing other interests, with no moral penalty. The company, remained glorious for a few years, but eventually fluttered and failed a few years later. One would argue that this generated the respected opinion in Silicon Valley that employees must be given stock if the employer expects to keep them motivated, and the whole “winning together” approach to ownership. The “traitorous eight” walked away significantly wealthy, and founded or invested in all of the first major technological companies to be in the area, which started to be know as “Fairchildren”; companies such as Amazon.com, Compaq, Genentech, Intuit, Lotus, Macromedia, Netscape, Sun Microsystems, Symantec, … One of them, Robert Noyce, who had been one of Fairchild’s “leaders amongst equals”, and before that, had been the most trusted employee of Shockley, went on to found Intel. Those technology companies were all following the very successful Fairchild model and culture, and a lot of them ended up meeting success as well, making some more people rich; who founded or invested in other technology companies who adopted a similar trusting culture; etc. The Silicon Valley, and more importantly, the Silicon Valley culture, was born. The main takeaway: it took a genius tyrant with an extreme love for California to spur, in contradiction, all of the uplifting culture and unprecedented decades-long economic success that we’re getting now in the San Francisco Bay Area. Even though barely any of them knows the story, you definitely can feel that people over there are still very much fighting William Shockley every day.San Francisco Engineer Moved To Chicago – Differences Between The Two Tech Scenes2016-05-30T20:52:30+00:002016-05-30T20:52:30+00:00https://rudyonweb.net/san-francisco-engineer-moved-to-chicago-differences-between-the-two-tech-scenes<p><em>This post is part of a three-parter:</em></p>
<ol>
<li><a href="https://rudyonweb.net/san-francisco-engineer-moved-to-chicago-job-search/"><em>How The Job Search Went</em></a></li>
<li><a href="https://rudyonweb.net/san-francisco-engineer-moved-to-chicago-what-helped-the-job-search-work-so-well/"><em>What Helped The Job Search Work So Well</em></a></li>
<li><em>Differences Between The Two Tech Scenes (you’re reading it!)</em></li>
</ol>
<hr>
<p>Well, this has been a deep and time-shrunk dive into the Chicago tech scene. Here’s some stuff I learned, that can help you a good idea of it.<span id="more-908"></span></p>
<h3>Size</h3>
<p>Well, in San Francisco, there’s no way to get a bird eye’s view of what’s going on, since even your baker has a startup. In Chicago, the scene felt much easier to wrap your head around.</p>
<p>Each time I could identify that I was talking with one of the key people / hubs of the scene, they knew almost all of the other key people I had been talking with. This is very motivating to me, as this rings as opportunity to be a part of a community I can help push forward, at my humble level.</p>
<h3>Not many big names</h3>
<p>If you’ve been at the housewarming party of your engineer friend in the Bay Area (“Steve here works for Apple, Katie works for Netflix, John works for Google, …”), but come from somewhere else (“What do you mean you work for Apple? THE Apple?”), you’ve got to know what typical “big names” I’m talking about.</p>
<p>While working at Apple in California was quite unoriginal, it ultimately generates a lot of interest for employers in Chicago, where there are not that many tech big names, besides Google, GrubHub, Salesforce and Braintree.</p>
<p>However, the scene is not at all lacking companies with “smaller” names, but which are amazingly exciting to work for and suitable for many tastes and preferences (from the top of my head, thinking about TrunkClub, Polymathic, Kenna Security, Catalytic, Avant, …). So, if you get your kick out of working for a big name, you might find it hard to find here, but if you don’t really care as long as you love your job, it won’t make much of a difference.</p>
<h3>More companies that have financial red flags</h3>
<p>It’s hard to say on such a small sample, but based on the much larger sample of companies I got to discover in SF, the startup culture in Chicago seemed far less mature and understood among people. Since this makes people less able to pick up on an unhealthy startup structure, I encountered far more unhealthy startups in my small Chicago sample than in my large SF sample.</p>
<p>Some fun horror stories:</p>
<ul>
<li>VC-backed company built some seriously valuable assets in a vertical that has notorious difficulties to innovate, and brags a lot about their opportunities to exit, probably through a purchase. Sounds awesome! Then comes the offer: no equity. Obviously, that surprised me, since their nearby and promising exit should be their #1 argument in their compensation to lure engineers, so I asked why. Answer: <strong>because the VCs (all from Chicago) forbade the executives to give any equity to non-executive employees.</strong> WHAT?? When I turned down the offer, my email explained in details why it seemed to me like it was dangerous towards the balance that ensures people work and win together, and that I didn’t feel it was very healthy that this is the way VCs sees the team, but also how the board and founders see them, since they accepted those terms; but the executives I was talking with were already aware of how shady that is, and kinda apologetic when they had to explain it.</li>
<li>Bootstrapped company (no external investment at all) says that people accept lower salaries to work there, against stock. Except the founder has a very tight grip on the company, and doesn’t seem like being interested to exit at all, ever. With no VC interest to entice him to exit, that’s pretty unlikely to happen, so <strong>the stock they put so much forward is pretty much unlikely to be sellable any time soon</strong>. Also, no VC means no VC oversight on executives, and it turns out they set up the company in a very shady way: one company is the product company, and all of the employees are located very far away, in order not to pay certain taxes; all Chicago employees actually work for another company, technically a “consulting” company, with the product company as their sole client. I didn’t ask which equity they’re granting, but if it’s the Chicago company’s stock, <strong>employees are probably not aware that the stock is very very worthless, since it’s a consulting company, and all the valuable assets are in the other one</strong>. Hm…</li>
<li>Non-technical founder couldn’t find a technical co-founder, so he had no choice but to outsource to India. Except now that his product is taking off, he has what felt like a pretty palpable disdain for engineers, since he could push his product that far without them. He now has a few engineers in-house, but they’re in a separate, darker room than other employees (no kidding!), and only work on the main product, are not helping the internal teams. Also, the main product’s decisions are still fully owned by the founder, very top-down, so it’s <strong>technically not a tech company, even though it poses as one</strong>. Also, founder would like the company to grow, but didn’t feel like sharing his equity, so he took on debt instead of VC funding, so it’s <strong>technically not a startup, but a slow-growth company pretending to be a startup</strong>. In his defense, he does allocate equity to his teams.</li>
</ul>
<p>Don’t get me wrong, you do hear those kinds of horror stories in San Francisco too. They just seemed to occur particularly often within the week that I was in Chicago discovering companies.</p>
<h3>Technologies</h3>
<p><strong>Rails</strong> was invented in Chicago, so it’s no big surprise that almost all of the monoliths of those companies had been done in Ruby. I think I heard the word “Python” once during the entire interview process (but I seem to hear it less and less in San Francisco as well, except perhaps for mobile application companies, for their server side).</p>
<p>The big surprise came from <strong>Go</strong>, which was way, way more used than I expected. It seems like people are switching their micro services from Node.js to Go much faster than I had anticipated. It makes a lot of sense, though, Go fares better on basically everything you need for a micro service, performance being at the forefront (compiled, multi-threaded, …). I don’t think anyone mentioned thinking about using Node.js for any new upcoming or recent services, it was either Go if they needed performance, or Ruby/Sinatra if they didn’t (I’m thinking the latter would probably be more likely to be either Ruby/Sinatra or Python/Flask in San Francisco).</p>
<p>Worth noting: one of the very early startups I talked to was out of this mold though, as they had an architecture entirely based on higher-level AWS products: Lambda, API Gateway, DynamoDB. But it’s definitely an exception to the rule, and that’s very much how they market themselves, rightfully so. (I was glad to have to find out more about those technologies, though!)</p>
<h3>What else?</h3>
<p>Well, there are countless subtle differences I noticed and that I’ll learn to discover more and formalize over the next few months and years. Are you thinking about moving to Chicago and getting into this very lively and interesting tech scene? <a href="https://twitter.com/rudyrigot">Get in touch</a>, I can probably help!</p>Rudy RigotThis post is part of a three-parter: How The Job Search Went What Helped The Job Search Work So Well Differences Between The Two Tech Scenes (you’re reading it!) Well, this has been a deep and time-shrunk dive into the Chicago tech scene. Here’s some stuff I learned, that can help you a good idea of it. Size Well, in San Francisco, there’s no way to get a bird eye’s view of what’s going on, since even your baker has a startup. In Chicago, the scene felt much easier to wrap your head around. Each time I could identify that I was talking with one of the key people / hubs of the scene, they knew almost all of the other key people I had been talking with. This is very motivating to me, as this rings as opportunity to be a part of a community I can help push forward, at my humble level. Not many big names If you’ve been at the housewarming party of your engineer friend in the Bay Area (“Steve here works for Apple, Katie works for Netflix, John works for Google, …”), but come from somewhere else (“What do you mean you work for Apple? THE Apple?”), you’ve got to know what typical “big names” I’m talking about. While working at Apple in California was quite unoriginal, it ultimately generates a lot of interest for employers in Chicago, where there are not that many tech big names, besides Google, GrubHub, Salesforce and Braintree. However, the scene is not at all lacking companies with “smaller” names, but which are amazingly exciting to work for and suitable for many tastes and preferences (from the top of my head, thinking about TrunkClub, Polymathic, Kenna Security, Catalytic, Avant, …). So, if you get your kick out of working for a big name, you might find it hard to find here, but if you don’t really care as long as you love your job, it won’t make much of a difference. More companies that have financial red flags It’s hard to say on such a small sample, but based on the much larger sample of companies I got to discover in SF, the startup culture in Chicago seemed far less mature and understood among people. Since this makes people less able to pick up on an unhealthy startup structure, I encountered far more unhealthy startups in my small Chicago sample than in my large SF sample. Some fun horror stories: VC-backed company built some seriously valuable assets in a vertical that has notorious difficulties to innovate, and brags a lot about their opportunities to exit, probably through a purchase. Sounds awesome! Then comes the offer: no equity. Obviously, that surprised me, since their nearby and promising exit should be their #1 argument in their compensation to lure engineers, so I asked why. Answer: because the VCs (all from Chicago) forbade the executives to give any equity to non-executive employees. WHAT?? When I turned down the offer, my email explained in details why it seemed to me like it was dangerous towards the balance that ensures people work and win together, and that I didn’t feel it was very healthy that this is the way VCs sees the team, but also how the board and founders see them, since they accepted those terms; but the executives I was talking with were already aware of how shady that is, and kinda apologetic when they had to explain it. Bootstrapped company (no external investment at all) says that people accept lower salaries to work there, against stock. Except the founder has a very tight grip on the company, and doesn’t seem like being interested to exit at all, ever. With no VC interest to entice him to exit, that’s pretty unlikely to happen, so the stock they put so much forward is pretty much unlikely to be sellable any time soon. Also, no VC means no VC oversight on executives, and it turns out they set up the company in a very shady way: one company is the product company, and all of the employees are located very far away, in order not to pay certain taxes; all Chicago employees actually work for another company, technically a “consulting” company, with the product company as their sole client. I didn’t ask which equity they’re granting, but if it’s the Chicago company’s stock, employees are probably not aware that the stock is very very worthless, since it’s a consulting company, and all the valuable assets are in the other one. Hm… Non-technical founder couldn’t find a technical co-founder, so he had no choice but to outsource to India. Except now that his product is taking off, he has what felt like a pretty palpable disdain for engineers, since he could push his product that far without them. He now has a few engineers in-house, but they’re in a separate, darker room than other employees (no kidding!), and only work on the main product, are not helping the internal teams. Also, the main product’s decisions are still fully owned by the founder, very top-down, so it’s technically not a tech company, even though it poses as one. Also, founder would like the company to grow, but didn’t feel like sharing his equity, so he took on debt instead of VC funding, so it’s technically not a startup, but a slow-growth company pretending to be a startup. In his defense, he does allocate equity to his teams. Don’t get me wrong, you do hear those kinds of horror stories in San Francisco too. They just seemed to occur particularly often within the week that I was in Chicago discovering companies. Technologies Rails was invented in Chicago, so it’s no big surprise that almost all of the monoliths of those companies had been done in Ruby. I think I heard the word “Python” once during the entire interview process (but I seem to hear it less and less in San Francisco as well, except perhaps for mobile application companies, for their server side). The big surprise came from Go, which was way, way more used than I expected. It seems like people are switching their micro services from Node.js to Go much faster than I had anticipated. It makes a lot of sense, though, Go fares better on basically everything you need for a micro service, performance being at the forefront (compiled, multi-threaded, …). I don’t think anyone mentioned thinking about using Node.js for any new upcoming or recent services, it was either Go if they needed performance, or Ruby/Sinatra if they didn’t (I’m thinking the latter would probably be more likely to be either Ruby/Sinatra or Python/Flask in San Francisco). Worth noting: one of the very early startups I talked to was out of this mold though, as they had an architecture entirely based on higher-level AWS products: Lambda, API Gateway, DynamoDB. But it’s definitely an exception to the rule, and that’s very much how they market themselves, rightfully so. (I was glad to have to find out more about those technologies, though!) What else? Well, there are countless subtle differences I noticed and that I’ll learn to discover more and formalize over the next few months and years. Are you thinking about moving to Chicago and getting into this very lively and interesting tech scene? Get in touch, I can probably help!San Francisco Engineer Moved To Chicago – What Helped The Job Search Work So Well2016-05-30T20:51:30+00:002016-05-30T20:51:30+00:00https://rudyonweb.net/san-francisco-engineer-moved-to-chicago-what-helped-the-job-search-work-so-well<p><em>This post is part of a three-parter:</em></p>
<ol>
<li><em><a href="https://rudyonweb.net/san-francisco-engineer-moved-to-chicago-job-search/">How The Job Search Went</a> (you should read it first)</em></li>
<li><em>What Helped The Job Search Work So Well (you’re reading it!)</em></li>
<li><a href="https://rudyonweb.net/san-francisco-engineer-moved-to-chicago-differences-between-the-two-tech-scenes/"><em>Differences Between The Two Tech Scenes</em></a></li>
</ol>
<hr>
<p>Here are some of the things I did that I believe made a difference, or stuff that I realized I could have done better.<span id="more-907"></span></p>
<h3>Lead sources</h3>
<p>Well, some of my early work was about finding the best sources of leads, and it turned out only 3 sources paid off:</p>
<ul>
<li><strong>Hired.com</strong>: companies apply to you, therefore make sure that your profile is explicit about your skills and expectations, and all leads coming in there are qualified. Also, the personal coach they assign to you will help you through all of your leads, including the ones that don’t come from them. Devin, the coach I had, knows the Chicago tech scene extensively, and he took a lot of his own time to give me insights. Would 200% recommend.</li>
<li><strong>AngelList</strong>: I used their “Tinder-like” app for the fun of it (swipe left of you like the job listing, right if you don’t), but it turned out really amazing. The salary range is already displayed, so the leads are already pretty well qualified (no “senior” role that turns out to be $80k), and it’s not at all time consuming.</li>
<li><strong>Friend’s referrals</strong>: you have a direct personal source of info about internal company culture, so that will help qualify the lead, but the huge upside is definitely about making sure that your resume makes it to a recruiter’s eyes for sure.</li>
</ul>
<p>I also tried LinkedIn, specialized job boards, … but those gave 0 relevant leads.</p>
<h3>Organization</h3>
<p>This has been a real full-time job over 3 to 4 weeks: 2 weeks for phone screens and technical interviews, 1 week for on-sites, and about a week to close loops and come to a decision. That’s a huge time crunch, so there have been a few days with 6 remote interview iterations back-to-back. But people understood very well, and I would start a lot with “<em>I do have a hard stop at X am/pm</em>“, to which I always got a “<em>Sure, no problem</em>“.</p>
<p>Also, I was talking to so many of them that I knew I’d forget details of conversations, and just like in a sales/client relationship, <strong>you want people to feel like they’re the only ones you’re talking to (even though everybody knows they’re not)</strong>. Therefore, I’d write absolutely everything down, and would even write up a report on each conversation to my Hired.com coach, who would sometimes give me insights.</p>
<p>Also, <strong>I made my timeline very clear right from the start</strong> (2 weeks remote + 1 week onsite + 1 week decision), asking “Do you feel like that would be a realistic timeline on your end?” and everyone said yes. Once it was said, I knew that I had no choice but to make time for all of them within that timeframe, one way or another.</p>
<h3>Investigate</h3>
<p>Come up with your own list of smart questions to find out more about what the job and the company are about. This really depends on what you’re looking for, but some obvious ones:</p>
<ul>
<li>What do you think are the biggest challenges of the position? Of the company? (Helps you understand the context better, and helps them picture you as helping them with those.)</li>
<li>Do you consider yourself a “Java shop” / “Ruby shop” / “whatever shop”, or more of a “best tool for the job” culture? (Depends on what you like best, but I strongly lean towards the latter, because they tend to scale up better, and allow for more personal growth.)</li>
<li>When talking to executives, enquire about the stage the company is as (seed, series A, series B, publicly traded or acquired, …), and what is next. Try to see if their path is expectable, or if they’re confused about what their next steps should be.</li>
</ul>
<p>Of course, no question you’re having should have an answer on LinkedIn, Crunchbase or the company’s website, since you will have checked them out thoroughly.</p>
<p>If you’re not sure what other questions to ask, one thing I did for my own list of questions: searched on Google for lists of them, and extracted those I cared about.</p>
<p>Also, another good way to understand the company when you know nothing about it is their technical challenge. It is a 2-way street, and the approach picked by companies is a good window into their culture, and definitely influenced my interest for them. For instance:</p>
<ul>
<li>Is the challenge relevant to the company’s actual challenges, and the actual skills they need from me? (So, I feel they know why they’re hiring me for real, and are testing my actual skills.)</li>
<li>Is the challenge interesting and challenging? (So it proves me they know what “interesting engineering” means.)</li>
<li>Am I being treated as equal or in a confrontational way?</li>
</ul>
<h3>Transparency / genuineness</h3>
<p>However stressful the process is, I tried to take it easy and to <strong>be my true self as much as possible</strong>, so people could get a sense of who I am for real, and how they feel I’d fit into the culture. I think it triggered some of them to do the same thing.</p>
<p>Also, <strong>I never once lied</strong>, not only about my abilities (Product X? I know what it is, but never used it. Product Y? Never heard of it. Your product? Never used it.), but also about my other current interviews. If asked, I was gladly disclosing who I was talking with, and at what stage I was with them. When I started getting offers (one employer extended an offer very early, before meeting me), I would gladly disclose what my other offers were. Not only this made for more mature non-antagonist conversations, but also might have increased FOMO a bit!</p>
<p>Also, I changed jobs a LOT (3 times within the last 3 years), and I know that doesn’t scream “stability” to an employer. This is not a problem in the Silicon Valley (some would consider it a strength), but in Chicago, your mileage may vary depending on who you are talking to. So I was as genuine and honest about each past life change, including personal motivations.</p>
<h3>Don’t linger on dead ends</h3>
<p>As soon as I found out that GrubHub was based in Chicago, I really wanted to talk to them, because I love their product a lot! I tried two avenues: getting in touch through their career site, and through a common contact with someone working there, but they never got back to me. It’s not a problem that I don’t fit what they need, but I was really surprised they didn’t even feed me an automated refusal, like the others did. So I decided not to linger on them, and focus on leads that were more responsive. I was later told that even when they are interested in people, their recruitment is notoriously inefficient, so it may have taken a part.</p>
<p>I also got my resume in front of Google’s recruiters for 3 different jobs through friends working there. It’s obviously an amazing company, so I wanted to pursue them despite their notoriously obsolete interview process, for which they demand tons of energy just for them, to test skills they most likely will never need again (CS academia stuff). I received a rejection for one of the jobs, but nothing for the 2 other ones; I didn’t enquire further, even though I would have loved to talk with people there.</p>
<p>The <strong>time not wasted on unresponsive leads allowed to focus my energy on recruiters who seemed more reactive</strong>, and therefore more genuinely interested of the value I could add. In the end, almost all of my time was used productively during the time crunch.</p>
<h3>Bad apples?</h3>
<p>I first started with the intent to separate the bad apples from the good apples within the companies I was talking to; but I quickly realized that when talking about companies that are already running pretty ok, there were no bad apples per se, just widely different situations. When I realized that, I also realized that the final choice would be <strong>a lot less about finding a good place to work at, than about what I really wanted</strong>, and it shifted my focus to the thing that would eventually be the hardest part to solve in the end.</p>
<h3>Tech assessments</h3>
<p>Like I said in part 1: if you remove the single “dumb CS algorithmic questions” company, about half of companies gave a take-home mini-project, and half gave a pairing session (remote or on-site). I was psyched to notice that most take-home mini-projects looked a lot like the projects that students at Holberton School are given, one of them being straight up “build an MVP for a social network clone of your choice” (it’s exactly a project that Holberton students are given, except they’re constrained to cloning Twitter).</p>
<p>Another thing I noticed: the smaller the company, <strong>the tougher the assessment</strong>.</p>
<p>For instance, roughly all mini-projects were to be completed within 48 hours, but they’d all really take 1 or 2 hours of my time; except for one of them, which took 2 actually full days, full time. That company had just raised their seed funding.</p>
<p>At the other end of the spectrum, the largest company I talked to barely tested my technical skills before making me an offer.<br>
All other companies were somewhere on that spectrum, that seemed to match their size proportionally; well, except for the one company that asked me “dumb CS algorithmic questions”, which was a large company, but which I discarded quickly for the benefit of companies assessing skills they need.</p>
<p>You may think “<em>well, that proves large companies are happy with bad engineers</em>”, but I don’t think that’s the way it works at all. The truth probably stands in how it’s easier for large companies to absorb a bad hire, with an obvious option being: by re-qualifying the person’s skills, and offering them a more fitting job in another department. Smaller companies simply can’t afford to do this kind of things; the smaller they are, the more a bad hire can hurt their very survival.</p>
<h3>Don’t forget to grow your network</h3>
<p>Something I’d do better if I were to do it all over again. Right from the start, consider two goals to the job search: finding the job of course, but also meeting very key people in the tech scene that will be the foundations of your new network. To that end, <strong>I should have more aggressively added people on LinkedIn as soon as I met them</strong>, or talked with them.</p>
<p>I realized it very late, and ended up adding people on LinkedIn towards the very end, when I had already forgotten the names of most people I had met…</p>
<p>However, I did identify the most key people I built a great relationship with, and made sure to follow-up with them to keep in touch in real life (with a lunch, or subscribing to their events, or something like that, …). I want them to know they are very valuable to me as the foundations of my nascent local network, and I want to find ways to be valuable to them too.</p>
<h3>Best long-term tip: become a senior full-stack engineer</h3>
<p>Of course, what’s most important is that you do what you like; but if on the long run, becoming a senior full-stack (back-end + front-end) engineer overlaps well with what you like, <strong>it is definitely a pretty safe bet on the future</strong>. If you’re only getting started in the industry, obviously it will take some time to build enough experience to call yourself senior, but I really don’t think this kind of skills is going anywhere, even as the way software is done changes completely over the next few years, and the tools most being used get completely replaced. As a senior, you will be building and marketing an ability to have relevant opinions in any technical context anyway, as well as an ability to foresee common issues to come from a given situation, and this is all technology-agnostic.</p>
<h3>Focus on getting an insightful picture of the tech scene</h3>
<p>San Francisco’s tech scene and Chicago’s tech scene are wildly different. I’m focusing on those difference in the third and final part of this three-parter post: “<a href="https://rudyonweb.net/san-francisco-engineer-moved-to-chicago-differences-between-the-two-tech-scenes/">Differences Between The Two Tech Scenes</a>“.</p>Rudy RigotThis post is part of a three-parter: How The Job Search Went (you should read it first) What Helped The Job Search Work So Well (you’re reading it!) Differences Between The Two Tech Scenes Here are some of the things I did that I believe made a difference, or stuff that I realized I could have done better. Lead sources Well, some of my early work was about finding the best sources of leads, and it turned out only 3 sources paid off: Hired.com: companies apply to you, therefore make sure that your profile is explicit about your skills and expectations, and all leads coming in there are qualified. Also, the personal coach they assign to you will help you through all of your leads, including the ones that don’t come from them. Devin, the coach I had, knows the Chicago tech scene extensively, and he took a lot of his own time to give me insights. Would 200% recommend. AngelList: I used their “Tinder-like” app for the fun of it (swipe left of you like the job listing, right if you don’t), but it turned out really amazing. The salary range is already displayed, so the leads are already pretty well qualified (no “senior” role that turns out to be $80k), and it’s not at all time consuming. Friend’s referrals: you have a direct personal source of info about internal company culture, so that will help qualify the lead, but the huge upside is definitely about making sure that your resume makes it to a recruiter’s eyes for sure. I also tried LinkedIn, specialized job boards, … but those gave 0 relevant leads. Organization This has been a real full-time job over 3 to 4 weeks: 2 weeks for phone screens and technical interviews, 1 week for on-sites, and about a week to close loops and come to a decision. That’s a huge time crunch, so there have been a few days with 6 remote interview iterations back-to-back. But people understood very well, and I would start a lot with “I do have a hard stop at X am/pm“, to which I always got a “Sure, no problem“. Also, I was talking to so many of them that I knew I’d forget details of conversations, and just like in a sales/client relationship, you want people to feel like they’re the only ones you’re talking to (even though everybody knows they’re not). Therefore, I’d write absolutely everything down, and would even write up a report on each conversation to my Hired.com coach, who would sometimes give me insights. Also, I made my timeline very clear right from the start (2 weeks remote + 1 week onsite + 1 week decision), asking “Do you feel like that would be a realistic timeline on your end?” and everyone said yes. Once it was said, I knew that I had no choice but to make time for all of them within that timeframe, one way or another. Investigate Come up with your own list of smart questions to find out more about what the job and the company are about. This really depends on what you’re looking for, but some obvious ones: What do you think are the biggest challenges of the position? Of the company? (Helps you understand the context better, and helps them picture you as helping them with those.) Do you consider yourself a “Java shop” / “Ruby shop” / “whatever shop”, or more of a “best tool for the job” culture? (Depends on what you like best, but I strongly lean towards the latter, because they tend to scale up better, and allow for more personal growth.) When talking to executives, enquire about the stage the company is as (seed, series A, series B, publicly traded or acquired, …), and what is next. Try to see if their path is expectable, or if they’re confused about what their next steps should be. Of course, no question you’re having should have an answer on LinkedIn, Crunchbase or the company’s website, since you will have checked them out thoroughly. If you’re not sure what other questions to ask, one thing I did for my own list of questions: searched on Google for lists of them, and extracted those I cared about. Also, another good way to understand the company when you know nothing about it is their technical challenge. It is a 2-way street, and the approach picked by companies is a good window into their culture, and definitely influenced my interest for them. For instance: Is the challenge relevant to the company’s actual challenges, and the actual skills they need from me? (So, I feel they know why they’re hiring me for real, and are testing my actual skills.) Is the challenge interesting and challenging? (So it proves me they know what “interesting engineering” means.) Am I being treated as equal or in a confrontational way? Transparency / genuineness However stressful the process is, I tried to take it easy and to be my true self as much as possible, so people could get a sense of who I am for real, and how they feel I’d fit into the culture. I think it triggered some of them to do the same thing. Also, I never once lied, not only about my abilities (Product X? I know what it is, but never used it. Product Y? Never heard of it. Your product? Never used it.), but also about my other current interviews. If asked, I was gladly disclosing who I was talking with, and at what stage I was with them. When I started getting offers (one employer extended an offer very early, before meeting me), I would gladly disclose what my other offers were. Not only this made for more mature non-antagonist conversations, but also might have increased FOMO a bit! Also, I changed jobs a LOT (3 times within the last 3 years), and I know that doesn’t scream “stability” to an employer. This is not a problem in the Silicon Valley (some would consider it a strength), but in Chicago, your mileage may vary depending on who you are talking to. So I was as genuine and honest about each past life change, including personal motivations. Don’t linger on dead ends As soon as I found out that GrubHub was based in Chicago, I really wanted to talk to them, because I love their product a lot! I tried two avenues: getting in touch through their career site, and through a common contact with someone working there, but they never got back to me. It’s not a problem that I don’t fit what they need, but I was really surprised they didn’t even feed me an automated refusal, like the others did. So I decided not to linger on them, and focus on leads that were more responsive. I was later told that even when they are interested in people, their recruitment is notoriously inefficient, so it may have taken a part. I also got my resume in front of Google’s recruiters for 3 different jobs through friends working there. It’s obviously an amazing company, so I wanted to pursue them despite their notoriously obsolete interview process, for which they demand tons of energy just for them, to test skills they most likely will never need again (CS academia stuff). I received a rejection for one of the jobs, but nothing for the 2 other ones; I didn’t enquire further, even though I would have loved to talk with people there. The time not wasted on unresponsive leads allowed to focus my energy on recruiters who seemed more reactive, and therefore more genuinely interested of the value I could add. In the end, almost all of my time was used productively during the time crunch. Bad apples? I first started with the intent to separate the bad apples from the good apples within the companies I was talking to; but I quickly realized that when talking about companies that are already running pretty ok, there were no bad apples per se, just widely different situations. When I realized that, I also realized that the final choice would be a lot less about finding a good place to work at, than about what I really wanted, and it shifted my focus to the thing that would eventually be the hardest part to solve in the end. Tech assessments Like I said in part 1: if you remove the single “dumb CS algorithmic questions” company, about half of companies gave a take-home mini-project, and half gave a pairing session (remote or on-site). I was psyched to notice that most take-home mini-projects looked a lot like the projects that students at Holberton School are given, one of them being straight up “build an MVP for a social network clone of your choice” (it’s exactly a project that Holberton students are given, except they’re constrained to cloning Twitter). Another thing I noticed: the smaller the company, the tougher the assessment. For instance, roughly all mini-projects were to be completed within 48 hours, but they’d all really take 1 or 2 hours of my time; except for one of them, which took 2 actually full days, full time. That company had just raised their seed funding. At the other end of the spectrum, the largest company I talked to barely tested my technical skills before making me an offer. All other companies were somewhere on that spectrum, that seemed to match their size proportionally; well, except for the one company that asked me “dumb CS algorithmic questions”, which was a large company, but which I discarded quickly for the benefit of companies assessing skills they need. You may think “well, that proves large companies are happy with bad engineers”, but I don’t think that’s the way it works at all. The truth probably stands in how it’s easier for large companies to absorb a bad hire, with an obvious option being: by re-qualifying the person’s skills, and offering them a more fitting job in another department. Smaller companies simply can’t afford to do this kind of things; the smaller they are, the more a bad hire can hurt their very survival. Don’t forget to grow your network Something I’d do better if I were to do it all over again. Right from the start, consider two goals to the job search: finding the job of course, but also meeting very key people in the tech scene that will be the foundations of your new network. To that end, I should have more aggressively added people on LinkedIn as soon as I met them, or talked with them. I realized it very late, and ended up adding people on LinkedIn towards the very end, when I had already forgotten the names of most people I had met… However, I did identify the most key people I built a great relationship with, and made sure to follow-up with them to keep in touch in real life (with a lunch, or subscribing to their events, or something like that, …). I want them to know they are very valuable to me as the foundations of my nascent local network, and I want to find ways to be valuable to them too. Best long-term tip: become a senior full-stack engineer Of course, what’s most important is that you do what you like; but if on the long run, becoming a senior full-stack (back-end + front-end) engineer overlaps well with what you like, it is definitely a pretty safe bet on the future. If you’re only getting started in the industry, obviously it will take some time to build enough experience to call yourself senior, but I really don’t think this kind of skills is going anywhere, even as the way software is done changes completely over the next few years, and the tools most being used get completely replaced. As a senior, you will be building and marketing an ability to have relevant opinions in any technical context anyway, as well as an ability to foresee common issues to come from a given situation, and this is all technology-agnostic. Focus on getting an insightful picture of the tech scene San Francisco’s tech scene and Chicago’s tech scene are wildly different. I’m focusing on those difference in the third and final part of this three-parter post: “Differences Between The Two Tech Scenes“.San Francisco Engineer Moved To Chicago – How The Job Search Went2016-05-30T20:50:30+00:002016-05-30T20:50:30+00:00https://rudyonweb.net/san-francisco-engineer-moved-to-chicago-job-search<p><em>This post is part of a three-parter:</em></p>
<ol>
<li><em>How The Job Search Went (you’re reading it!)</em></li>
<li><a href="https://rudyonweb.net/san-francisco-engineer-moved-to-chicago-what-helped-the-job-search-work-so-well/"><em>What Helped The Job Search Work So Well</em></a></li>
<li><a href="https://rudyonweb.net/san-francisco-engineer-moved-to-chicago-differences-between-the-two-tech-scenes/"><em>Differences Between The Two Tech Scenes</em></a></li>
</ol>
<hr>
<p>I’ve met quite a number of people who were interested in the move along the way, driven out of the Bay Area by the beyond-excessive cost of life, and I thought I’d share what I learned going through it, in case it could turn useful to someone else. In a nutshell, <strong>the job search went insanely better than I would have thought</strong>, so I hope you can reuse some of this for yourself.<span id="more-905"></span></p>
<p>What I mean by the cost of life difference: $500k in SF will currently get you <a href="http://www.trulia.com/property/3229961363-1201-California-St-206-San-Francisco-CA-94109">an OK studio in an OK part of town</a>:</p>
<p><img src="https://rudyonweb.net/assets/images/Screen-Shot-2016-05-29-at-10.29.16-PM.png" alt=""></p>
<p>Or probably less, since properties in SF typically go for ~120% of their listed price.</p>
<p>And the same $500k in Chicago will get you <a href="http://www.trulia.com/property/3106235429-1901-W-Armitage-Ave-1E-Chicago-IL-60622">a stellar 3-br 3-bath duplex (so, 2 living rooms) in the best part of town, with some exterior space and 2 heated garage spots</a>.</p>
<p><img class="size-full wp-image-914 aligncenter" src="https://rudyonweb.net/assets/images/Screen-Shot-2016-05-29-at-10.38.14-PM.png" alt=""></p>
<p>Or, probably better, because properties in Chicago typically go for ~90% of their listed price.</p>
<p>With that same amount of money in Chicago, you have a lot of choice, and therefore could have different priorities, and end up going with the <a href="http://www.trulia.com/property/3234543396-2034-N-Albany-Ave-Chicago-IL-60647">not-as-luxurious, not-as-well-located 4-br single-family house</a>. Or typically, you may spend much less and get an awesome 2-br for $350k, which most small families do (I had to pick a higher price comparison, because there’s basically nothing at $350k in SF).</p>
<p>These are NOT overstatements, but real, typical examples. Also, tech salaries are almost the same (I actually got a significant pay increase in the process).</p>
<h3>My personal preparation and my result numbers</h3>
<p>First, I marketed myself as a “<em>Senior Full-Stack Software Engineer with engineering management experience</em>“. <strong>I did not study or prepare for the interviews</strong>, because I was not interested in companies that have “CS algorithmic” challenges, only in those who wanted to test the skills they needed from me for real, and that I do have for them.</p>
<p>Note that given the stakes, I took a pessimistic approach, and opened contacts aggressively at first, which turned out to be overkill, but had the invaluable outcome to make me meet countless fascinating people in the Chicago tech scene.</p>
<p>Now the numbers:</p>
<ul>
<li><strong>I opened conversations with 17 companies</strong> (only counting those I had at least once on the phone; many many more immediately replied to me that they weren’t hiring for my kind of position or weren’t interested to talk to me; but they didn’t cost me any real time, so that’s very much ok).</li>
<li><strong>I was formally rejected by ONLY ONE!</strong> That was right after their take-home mini-project, I asked if they’d be willing to share their thinking, and in true startup fashion, they didn’t reply. It bummed me out because the company had a great product, and I thought “well, first of many, moving on”; but obviously I turned out to be surprisingly wrong!</li>
<li>About half of the companies had take-home projects (most of them took 1 to 2 hours; one of them took 2 actual full days!), the other half had pairing sessions (remote or on site). Pleasantly, about 80% of them had relations with what the company actually does; the others were just fun cool projects (“build an MVP for the clone of a social network of your choice”, …)</li>
<li><strong>Only one tech interview was a CS algorithmic quiz with silly algorithmic questions</strong> (“how would you write a function that would check if an integer is a palindrome integer”; are you really going to ask me to do that on the job??). I passed the interview, but gave the lead up quickly thereafter, but it was a bummer, because the role was about self-driving cars (cool factor!).</li>
<li><strong>I passed all 16 other phone screens and tech challenges</strong>. Next step: the on-site interviews.</li>
</ul>
<p>Problem was: I had planned only 1 week in Chicago for on-sites, therefore 5 business days, therefore time for 10 Chicago companies, each for half a day. I had no idea that so many companies would be interested to see me when I started, so I hadn’t anticipated that “good” problem.</p>
<p>Two of the companies were based in San Francisco (including Salesforce that I ended up joining), but they both needed to have phone interviews with me that week, so I dedicated half a day for them. Therefore, to end up with 9 local companies, I had to pick 5 companies to give up without even going on site and giving them an opportunity to talk about it, which didn’t feel very cool of me at all, but I really had no choice… Obviously I picked the “CS algorithm quiz” company first, plus one that never got back to me after my tech challenge (if they’re not reactive, they probably don’t want to work with you that much), and 3 other ones that felt at highest risk to be a culture mismatch, and/or at highest risk not to close.</p>
<ul>
<li>Back on numbers! If you’ve been following, <strong>I ditched 5 companies, and went on on-site interviews with 11 companies</strong> (9 in Chicago, 2 in SF).</li>
<li>I was starting to get very decent offers, so after meeting them, <strong>I interrupted conversation with 3 of them after they said they wanted to make an offer</strong>, but before they made it, because I knew I preferred to proceed with other employers no matter what their offers may have been.</li>
<li>2 of them dragged their feet towards the end, and still had steps they wanted me to unlock (both cases, talking to executives who had difficulties making time) when the deadline I had set up got passed (it could have taken weeks more, and I had enough interesting offers that it wasn’t a problem on my end; plus, I had shared my time constraints with everyone, so it shouldn’t have taken them by surprise). They both said they were leaning towards making offers, which makes sense when you’ve talked to everyone but executives.</li>
<li>If you’ve been counting, <strong>6 companies made me firm offers</strong>.</li>
</ul>
<p>This was more than I was expecting when I started, so I had to thin out again. I rejected one offer because it was somewhat dishonest because of some shady VC deals (more on that in part 3!); I rejected another one because there would have been some pretty obvious culture misfit.</p>
<p>I was left with 4 offers, all absolutely great and in 4 companies I could easily picture myself working at, but which were also all amazingly different and incomparable. It took me a few days of thinking to try to come up with a good way to make a decision; but I eventually accepted that there was no good way to make a decision.</p>
<p>In the end, I went on a mix of logic and gut feeling, even though the latter is not the way I like to make important life decisions…</p>
<h3>More details about how I marketed myself</h3>
<p>My positioning on the job market (“senior full-stack software engineer with engineering management experience”) was definitely a key factor that got to that outcome. Of course, “<strong>software engineer</strong>” is what everybody is looking for in the tech industry (and outside), but what about the other words?</p>
<ul>
<li><strong>Senior</strong>: well, I didn’t bullshit there, I could prove a track record of seniority in front-end stuff, in back-end stuff, and even more stuff, separately. I’m aware not everyone is so lucky. By contrast, a friend of mine graduated from a bootcamp last year and was positioned as a junior engineer in SF on stacks that are pretty common with me; but the market is pretty saturated with bootcamp juniors by now, and people with real-life real-industry project experience are all the more interesting and seeked after. After 9 months struggling, he went back to his previous job.</li>
<li><strong>Full-Stack</strong>: I made it explicit right away with all employers that I meant “front-end + back-end”, but that’s what they all understood in the phrase too anyway. That’s kinda the focuses everybody needs right now. I’m aware not everyone is so lucky. By contrast, a senior engineer friend of mine builds lower-level firmware at Apple, and has been trying to leave for about a year. But those skills don’t recruit much at all anywhere (even less so outside of South Bay), so he gave up trying about 2 months ago. The combination of senior + full-stack definitely positioned me as quite interesting to talk to, for a lot of needs. <em>(EDIT: After a year of searching in vain, that friend took on learning node.js, and quickly found a full-stack engineering job at Netflix, for, and I’m not kidding, exactly DOUBLE the latest salary he had at Apple. Positioning, positioning!)</em></li>
<li><strong>Management experience</strong>: notice that I didn’t present myself as an “Engineering manager” right away, because I didn’t want to close the door to the people who didn’t need to hire directly engineering managers. The question came up very often: “Do you want to be an engineer, or a manager?”; and I’d answer “If you take me on as an engineer, we’ll take it from there”, and I think people appreciated the flexibility. Also, some project managers with weak tech experience present themselves as engineering managers, and I wanted to put it front and center that I was an engineer first, manager second.</li>
</ul>
<p>Also, people seemed to appreciate a lot that I truly knew a lot about startups, healthy VC deals, typical startup lifecycle, … Even the big companies seemed to appreciate it and had questions around it.</p>
<h3>How did I do it?</h3>
<p>Honestly, I’m not entirely sure, but this whole phase was very intense in energy and tight organization. I go into details about what I think made a difference in <a href="https://rudyonweb.net/san-francisco-engineer-moved-to-chicago-what-helped-the-job-search-work-so-well/">part 2 of this three-parter post</a>.</p>Rudy RigotThis post is part of a three-parter: How The Job Search Went (you’re reading it!) What Helped The Job Search Work So Well Differences Between The Two Tech Scenes I’ve met quite a number of people who were interested in the move along the way, driven out of the Bay Area by the beyond-excessive cost of life, and I thought I’d share what I learned going through it, in case it could turn useful to someone else. In a nutshell, the job search went insanely better than I would have thought, so I hope you can reuse some of this for yourself. What I mean by the cost of life difference: $500k in SF will currently get you an OK studio in an OK part of town: Or probably less, since properties in SF typically go for ~120% of their listed price. And the same $500k in Chicago will get you a stellar 3-br 3-bath duplex (so, 2 living rooms) in the best part of town, with some exterior space and 2 heated garage spots. Or, probably better, because properties in Chicago typically go for ~90% of their listed price. With that same amount of money in Chicago, you have a lot of choice, and therefore could have different priorities, and end up going with the not-as-luxurious, not-as-well-located 4-br single-family house. Or typically, you may spend much less and get an awesome 2-br for $350k, which most small families do (I had to pick a higher price comparison, because there’s basically nothing at $350k in SF). These are NOT overstatements, but real, typical examples. Also, tech salaries are almost the same (I actually got a significant pay increase in the process). My personal preparation and my result numbers First, I marketed myself as a “Senior Full-Stack Software Engineer with engineering management experience“. I did not study or prepare for the interviews, because I was not interested in companies that have “CS algorithmic” challenges, only in those who wanted to test the skills they needed from me for real, and that I do have for them. Note that given the stakes, I took a pessimistic approach, and opened contacts aggressively at first, which turned out to be overkill, but had the invaluable outcome to make me meet countless fascinating people in the Chicago tech scene. Now the numbers: I opened conversations with 17 companies (only counting those I had at least once on the phone; many many more immediately replied to me that they weren’t hiring for my kind of position or weren’t interested to talk to me; but they didn’t cost me any real time, so that’s very much ok). I was formally rejected by ONLY ONE! That was right after their take-home mini-project, I asked if they’d be willing to share their thinking, and in true startup fashion, they didn’t reply. It bummed me out because the company had a great product, and I thought “well, first of many, moving on”; but obviously I turned out to be surprisingly wrong! About half of the companies had take-home projects (most of them took 1 to 2 hours; one of them took 2 actual full days!), the other half had pairing sessions (remote or on site). Pleasantly, about 80% of them had relations with what the company actually does; the others were just fun cool projects (“build an MVP for the clone of a social network of your choice”, …) Only one tech interview was a CS algorithmic quiz with silly algorithmic questions (“how would you write a function that would check if an integer is a palindrome integer”; are you really going to ask me to do that on the job??). I passed the interview, but gave the lead up quickly thereafter, but it was a bummer, because the role was about self-driving cars (cool factor!). I passed all 16 other phone screens and tech challenges. Next step: the on-site interviews. Problem was: I had planned only 1 week in Chicago for on-sites, therefore 5 business days, therefore time for 10 Chicago companies, each for half a day. I had no idea that so many companies would be interested to see me when I started, so I hadn’t anticipated that “good” problem. Two of the companies were based in San Francisco (including Salesforce that I ended up joining), but they both needed to have phone interviews with me that week, so I dedicated half a day for them. Therefore, to end up with 9 local companies, I had to pick 5 companies to give up without even going on site and giving them an opportunity to talk about it, which didn’t feel very cool of me at all, but I really had no choice… Obviously I picked the “CS algorithm quiz” company first, plus one that never got back to me after my tech challenge (if they’re not reactive, they probably don’t want to work with you that much), and 3 other ones that felt at highest risk to be a culture mismatch, and/or at highest risk not to close. Back on numbers! If you’ve been following, I ditched 5 companies, and went on on-site interviews with 11 companies (9 in Chicago, 2 in SF). I was starting to get very decent offers, so after meeting them, I interrupted conversation with 3 of them after they said they wanted to make an offer, but before they made it, because I knew I preferred to proceed with other employers no matter what their offers may have been. 2 of them dragged their feet towards the end, and still had steps they wanted me to unlock (both cases, talking to executives who had difficulties making time) when the deadline I had set up got passed (it could have taken weeks more, and I had enough interesting offers that it wasn’t a problem on my end; plus, I had shared my time constraints with everyone, so it shouldn’t have taken them by surprise). They both said they were leaning towards making offers, which makes sense when you’ve talked to everyone but executives. If you’ve been counting, 6 companies made me firm offers. This was more than I was expecting when I started, so I had to thin out again. I rejected one offer because it was somewhat dishonest because of some shady VC deals (more on that in part 3!); I rejected another one because there would have been some pretty obvious culture misfit. I was left with 4 offers, all absolutely great and in 4 companies I could easily picture myself working at, but which were also all amazingly different and incomparable. It took me a few days of thinking to try to come up with a good way to make a decision; but I eventually accepted that there was no good way to make a decision. In the end, I went on a mix of logic and gut feeling, even though the latter is not the way I like to make important life decisions… More details about how I marketed myself My positioning on the job market (“senior full-stack software engineer with engineering management experience”) was definitely a key factor that got to that outcome. Of course, “software engineer” is what everybody is looking for in the tech industry (and outside), but what about the other words? Senior: well, I didn’t bullshit there, I could prove a track record of seniority in front-end stuff, in back-end stuff, and even more stuff, separately. I’m aware not everyone is so lucky. By contrast, a friend of mine graduated from a bootcamp last year and was positioned as a junior engineer in SF on stacks that are pretty common with me; but the market is pretty saturated with bootcamp juniors by now, and people with real-life real-industry project experience are all the more interesting and seeked after. After 9 months struggling, he went back to his previous job. Full-Stack: I made it explicit right away with all employers that I meant “front-end + back-end”, but that’s what they all understood in the phrase too anyway. That’s kinda the focuses everybody needs right now. I’m aware not everyone is so lucky. By contrast, a senior engineer friend of mine builds lower-level firmware at Apple, and has been trying to leave for about a year. But those skills don’t recruit much at all anywhere (even less so outside of South Bay), so he gave up trying about 2 months ago. The combination of senior + full-stack definitely positioned me as quite interesting to talk to, for a lot of needs. (EDIT: After a year of searching in vain, that friend took on learning node.js, and quickly found a full-stack engineering job at Netflix, for, and I’m not kidding, exactly DOUBLE the latest salary he had at Apple. Positioning, positioning!) Management experience: notice that I didn’t present myself as an “Engineering manager” right away, because I didn’t want to close the door to the people who didn’t need to hire directly engineering managers. The question came up very often: “Do you want to be an engineer, or a manager?”; and I’d answer “If you take me on as an engineer, we’ll take it from there”, and I think people appreciated the flexibility. Also, some project managers with weak tech experience present themselves as engineering managers, and I wanted to put it front and center that I was an engineer first, manager second. Also, people seemed to appreciate a lot that I truly knew a lot about startups, healthy VC deals, typical startup lifecycle, … Even the big companies seemed to appreciate it and had questions around it. How did I do it? Honestly, I’m not entirely sure, but this whole phase was very intense in energy and tight organization. I go into details about what I think made a difference in part 2 of this three-parter post.How should I get started to teach myself software engineering?2016-02-08T20:50:30+00:002016-02-08T20:50:30+00:00https://rudyonweb.net/teach-yourself-software-engineering<p><em>I’ve gotten the question quite a few times since I started <a href="https://www.holbertonschool.com" target="_blank">Holberton School</a>, most often with applicants that were still in process or had been rejected. Here is what I usually answer.</em></p>
<p>As a future self-taught software engineer, you have two significant advantages over other fields:</p>
<ul>
<li>There aren’t many other engineering fields where recruiters care so little about your degree, as long as you can display what you can do.</li>
<li>There aren’t many other fields at all where people spend so much time constantly sharing their knowledge in the most convenient forms possible to consume (online or offline).</li>
</ul>
<p>So, here’s your plan: display as much as possible what you can do for recruiters to get it easily and quickly, and make the most of the open knowledge base and community.</p>
<p>Examples to display what you can do:<span id="more-894"></span></p>
<ul>
<li>Build stuff. Even very bad stuff if you’re a beginner. Make it public on GitHub. Don’t be ashamed of your bad code. (I personally have some pretty bad old code on there from my early days.)</li>
<li>Join an open-source project. If you’re not too comfortable technically, start giving non-technical help (translating documentation, organizing issues, give a user’s perspective on the mailing-list, …), at some point, you will start fixing technical stuff without even noticing.</li>
<li>Respond to people’s questions on StackOverflow and Quora. Yes, there are people who are even more beginners than you, way more than you think. Find their questions and post relevant answers.</li>
<li>Brag about all of the above on your LinkedIn profile, and to recruiters generally.</li>
</ul>
<p>Leveraging the knowledge base / community:</p>
<ul>
<li>Find online tutorials about what you’re interested to learn. The mainstream topics now have free or nearly-free tutorials reaching quality levels that developers even 5 years ago couldn’t even dream about.</li>
<li>Read a lot, about one hour each day, about what’s happening in the tech news. At first, you might not understand much, but gradually you will, so it’s important that you keep at it. You’ll have to curate your own sources based on what you like. One generalist source to get started: the <a href="http://www.hndigest.com" target="_blank">HNDigest</a> daily newsletter.</li>
<li>Go to meetups and hackathons. There has got to be some around you. Some more advanced meetups will be over your head; of course you should prefer those whose topics seem more understandable to you as a beginner, but if there are none because you’re too much of a beginner at first, then go to the ones that are over your head anyway. Gradually, they will be less and less, as your technical culture and understanding widens. Also, this is the only way to grow your network without external help.</li>
</ul>
<p>Of course, those are easier said than done. Learning software is a notoriously hard and maddeningly frustrating endeavor. But just like leaning an instrument or a language, the initial struggle against frustration turns into a lot of fun, and ends up well worth it in the end.</p>
<p>There are techniques to alleviate the frustration, but you’ll have to find what works for you. Some that tend to work: learn with other people who are actively committed to help each other, interaction with mentors who do stuff you’d like to do, use the technology to build stuff you like and care about, write and teach around about what you learn. …</p>
<p><em>(If you know a bit about how <a href="https://www.holbertonschool.com" target="_blank">Holberton School</a> operates, you will recognize that we especially designed it to bring those alleviations, in order to accelerate and deepen the learning.)</em></p>
<p>Good luck to all learners!</p>Rudy RigotI’ve gotten the question quite a few times since I started Holberton School, most often with applicants that were still in process or had been rejected. Here is what I usually answer. As a future self-taught software engineer, you have two significant advantages over other fields: There aren’t many other engineering fields where recruiters care so little about your degree, as long as you can display what you can do. There aren’t many other fields at all where people spend so much time constantly sharing their knowledge in the most convenient forms possible to consume (online or offline). So, here’s your plan: display as much as possible what you can do for recruiters to get it easily and quickly, and make the most of the open knowledge base and community. Examples to display what you can do: Build stuff. Even very bad stuff if you’re a beginner. Make it public on GitHub. Don’t be ashamed of your bad code. (I personally have some pretty bad old code on there from my early days.) Join an open-source project. If you’re not too comfortable technically, start giving non-technical help (translating documentation, organizing issues, give a user’s perspective on the mailing-list, …), at some point, you will start fixing technical stuff without even noticing. Respond to people’s questions on StackOverflow and Quora. Yes, there are people who are even more beginners than you, way more than you think. Find their questions and post relevant answers. Brag about all of the above on your LinkedIn profile, and to recruiters generally. Leveraging the knowledge base / community: Find online tutorials about what you’re interested to learn. The mainstream topics now have free or nearly-free tutorials reaching quality levels that developers even 5 years ago couldn’t even dream about. Read a lot, about one hour each day, about what’s happening in the tech news. At first, you might not understand much, but gradually you will, so it’s important that you keep at it. You’ll have to curate your own sources based on what you like. One generalist source to get started: the HNDigest daily newsletter. Go to meetups and hackathons. There has got to be some around you. Some more advanced meetups will be over your head; of course you should prefer those whose topics seem more understandable to you as a beginner, but if there are none because you’re too much of a beginner at first, then go to the ones that are over your head anyway. Gradually, they will be less and less, as your technical culture and understanding widens. Also, this is the only way to grow your network without external help. Of course, those are easier said than done. Learning software is a notoriously hard and maddeningly frustrating endeavor. But just like leaning an instrument or a language, the initial struggle against frustration turns into a lot of fun, and ends up well worth it in the end. There are techniques to alleviate the frustration, but you’ll have to find what works for you. Some that tend to work: learn with other people who are actively committed to help each other, interaction with mentors who do stuff you’d like to do, use the technology to build stuff you like and care about, write and teach around about what you learn. … (If you know a bit about how Holberton School operates, you will recognize that we especially designed it to bring those alleviations, in order to accelerate and deepen the learning.) Good luck to all learners!12 Startup Pitch Red Flags You Thought Sounded Great2015-06-30T20:50:30+00:002015-06-30T20:50:30+00:00https://rudyonweb.net/12-pitch-red-flags<p>A collection of lines that make you say “yeah”, but may make them say “yuck”. You should remove from your pitch right away.</p>
<p> </p>
<h2>“We have no competition.”</h2>
<p><strong>What you think you’re saying:</strong> “This is such pure innovation, that we are ahead of time.”</p>
<p><strong>What they’re hearing:</strong> “This is most likely not innovation at all, because this market doesn’t seem to interest anyone else.”</p>
<p><strong>What you should be saying:</strong> “Here’s how the competition/incumbents do it, and why it’s wrong…”</p>
<p> </p>
<h2>“We did all of this without a single marketing effort”</h2>
<p><strong>What you think you’re saying:</strong> “Imagine if we did!”</p>
<p><strong>What they’re hearing:</strong> “We have no idea why it’s been working, and therefore couldn’t reproduce it, let alone grow it.”</p>
<p><strong>What you should be saying:</strong> “Here are some early marketing initiatives we had that worked and we believe can be improved, and here are a few others we intend to experiment with…”</p>
<p> </p>
<h2>“We want to focus on building a great product, and we trust that we’ll grow on people’s love for the product.”</h2>
<p><strong>What you think you’re saying:</strong> “We believe we are focused on the right things.”</p>
<p><strong>What they’re hearing:</strong> Marc Andreessen (leading startup investor) puts it better than I would: “<i>The number one reason that we pass on entrepreneurs we’d otherwise like to back is focusing on product to the exclusion of everything else.</i>” (<a href="http://techcrunch.com/2012/05/12/marc-andreessen-visits-peter-thiels-stanford-class-to-talk-startups-how-he-invests-the-future/">source</a>)</p>
<p><strong>What you should be saying:</strong> “Product is critical, but let’s talk about our distribution strategy too. Here’s who will be interested in us, and how we’ll find them to tell them.”</p>
<p> </p>
<h2>“I’m the founder that focuses on tech, and X is the one that focuses on making money.”</h2>
<p><strong>What you think you’re saying:</strong> “We have clear roles, and the tech founder is a tech genius.”</p>
<p><strong>What they’re hearing:</strong> “Not all of the company is focused on creating value. Some founder time will be wasted on stuff that isn’t likely to create any.”</p>
<p><strong>What you should be saying:</strong> “We have various skills across the team, but are all primarily focused on results, and creating value for our users.”</p>
<p> </p>
<h2>“We have 11,229 followers on Twitter”</h2>
<p><strong>What you think you’re saying:</strong> “We have won people’s interest.”</p>
<p><strong>What they’re hearing:</strong> “We’re focused on the wrong metrics, the ones that are not monetizable or don’t express any value we actually bring people. Also, we probably purchased Twitter Ads.”</p>
<p><strong>What you should be saying:</strong> “We have a very strong social presence, which is reassuring for the future as of the interest people show us. Now, let’s talk about the important growth KPIs we chose to track (active users, revenue, pageviews, you choose it depending on your business model).”</p>
<p> </p>
<h2>“We have a clear vision, and know very precisely what users want.”</h2>
<p><strong>What you think you’re saying:</strong> “The founders are geniuses.”</p>
<p><strong>What they’re hearing:</strong> “We are in love with our personal vision, and not with solving the problem, even if it means stepping away from the vision. When users will give us feedback, we’ll bend over backwards proving why they’re wrong and we’re right.”</p>
<p><strong>What you should be saying:</strong> “We have a clear ideal vision, but we know we’ll have to constantly reconsider it based on users’ feedback, because we’re more wrong than they are about what they need. We actively seek feedback and act upon it; here’s what we’ve done based on the feedback we got…”</p>
<p> </p>
<h2>“Dogfooding”</h2>
<p><strong>What you think you’re saying:</strong> “We know firsthand the problems we’re solving.”</p>
<p><strong>What they’re hearing:</strong> “We’re so focused on solving our own problems, that we may end up closing our ears to our users’ problems. It could even get worse, and success could even get us more agressive to anyone who doesn’t agree with us, DHH-style.” <em>(He’s the creator of Ruby on Rails, a founder of Basecamp, and an over-user of the word “dogfooding” to describe his ventures, sometimes pushing that it’s the only way to do things and notoriously being aggressive to people who don’t agree with him on stuff.)</em></p>
<p><strong>What you should be saying:</strong> “We’re dogfooding for sure, but our top priority is to stay in touch with our users’ needs, even if that means having to get further from our own.”</p>
<p> </p>
<h2>“Our managers/founders are great innovators that can tell the team exactly what to do to reach success”</h2>
<p><strong>What you think you’re saying:</strong> “We have geniuses and vision, and we do the right thing to reach success.”</p>
<p><strong>What they’re hearing:</strong> “We think there’s only one way to do things right, and therefore don’t consider other more unexpected/creative ways. It’s more important to be right than to get things done that aren’t necessarily right the first time. Only a handful of people in the company are allowed to innovate, so there’s not much room for serendipity. Also, all of our staff may leave us in frustration once they figure out other startups usually respect their input more.”</p>
<p><strong>What you should be saying:</strong> “Managers/founders stay out of the way of the innovation of the teams. We believe in growth by making people feel accountable and trusted.”</p>
<p> </p>
<h2>“We’re the Uber of X”</h2>
<p><strong>What you think you’re saying:</strong> “Our business model is well-tried, it worked before.”</p>
<p><strong>What they’re hearing:</strong> “We may think recipes that work with potatoes work with carrots without having to think about it much more. Also, we’re unable to formulate an original vision, so we have to rely on someone else’s.”</p>
<p><strong>What you should be saying:</strong> <insert careful worded and convincing vision that expresses both the originality and viability of your business></p>
<p> </p>
<h2>“ We build the X of the future / of tomorrow”</h2>
<p><strong>What you think you’re saying:</strong> “We are first on market filling a need before anyone else, so clients will run to us once the need appears.”</p>
<p><strong>What they’re hearing:</strong> “We have never heard of the uncountable stories of projects that failed because they came out too early. We don’t try to fix today’s very real problems, and since no one can reasonably guess anything about the future, we’re focused on building out of guesswork.”</p>
<p><strong>What you should be saying:</strong> “Today’s solutions to this problem are outdated, we fix today’s problems, with a strong focus on adaptability to ensure we remain current as the industry unavoidably changes.”</p>
<p> </p>
<h2>“We ship features every day”</h2>
<p><strong>What you think you’re saying:</strong> “We move fast, we’re always ahead of the competition.”</p>
<p><strong>What they’re hearing:</strong> “We’d rather make feature announcements that look good, than polish the core value prop of our product, which is what makes it actually better and better. Also, we’re clearly not aware of what the words ‘feature bloat’ means.”</p>
<p><strong>What you should be saying:</strong> “We ship improvements every day. Sometimes, they’re improvements of our core product; and when it makes sense and adds to our value prop, they’re new features. Also, we’re not afraid to scrap experimental features that turned out not to make much sense for our users.”</p>
<p> </p>
<h2>“We have 2000 users, but we’ve ensured our platform can scale as far as millions of simultaneous users.”</h2>
<p><strong>What you think you’re saying:</strong> “Nothing will slow our growth down.”</p>
<p><strong>What they’re hearing:</strong> “We’re focused on problems we don’t have, and may never have if we carry on under-prioritizing problems we have.”</p>
<p><strong>What you should be saying:</strong> “The platform we’re using is known for its scaling; we’ll work on this progressively as our user base grows.”</p>
<p> </p>
<p><em>Thinking of other read flags I didn’t think about? Put them in the comments!</em></p>Rudy RigotA collection of lines that make you say “yeah”, but may make them say “yuck”. You should remove from your pitch right away. “We have no competition.” What you think you’re saying: “This is such pure innovation, that we are ahead of time.” What they’re hearing: “This is most likely not innovation at all, because this market doesn’t seem to interest anyone else.” What you should be saying: “Here’s how the competition/incumbents do it, and why it’s wrong…” “We did all of this without a single marketing effort” What you think you’re saying: “Imagine if we did!” What they’re hearing: “We have no idea why it’s been working, and therefore couldn’t reproduce it, let alone grow it.” What you should be saying: “Here are some early marketing initiatives we had that worked and we believe can be improved, and here are a few others we intend to experiment with…” “We want to focus on building a great product, and we trust that we’ll grow on people’s love for the product.” What you think you’re saying: “We believe we are focused on the right things.” What they’re hearing: Marc Andreessen (leading startup investor) puts it better than I would: “The number one reason that we pass on entrepreneurs we’d otherwise like to back is focusing on product to the exclusion of everything else.” (source) What you should be saying: “Product is critical, but let’s talk about our distribution strategy too. Here’s who will be interested in us, and how we’ll find them to tell them.” “I’m the founder that focuses on tech, and X is the one that focuses on making money.” What you think you’re saying: “We have clear roles, and the tech founder is a tech genius.” What they’re hearing: “Not all of the company is focused on creating value. Some founder time will be wasted on stuff that isn’t likely to create any.” What you should be saying: “We have various skills across the team, but are all primarily focused on results, and creating value for our users.” “We have 11,229 followers on Twitter” What you think you’re saying: “We have won people’s interest.” What they’re hearing: “We’re focused on the wrong metrics, the ones that are not monetizable or don’t express any value we actually bring people. Also, we probably purchased Twitter Ads.” What you should be saying: “We have a very strong social presence, which is reassuring for the future as of the interest people show us. Now, let’s talk about the important growth KPIs we chose to track (active users, revenue, pageviews, you choose it depending on your business model).” “We have a clear vision, and know very precisely what users want.” What you think you’re saying: “The founders are geniuses.” What they’re hearing: “We are in love with our personal vision, and not with solving the problem, even if it means stepping away from the vision. When users will give us feedback, we’ll bend over backwards proving why they’re wrong and we’re right.” What you should be saying: “We have a clear ideal vision, but we know we’ll have to constantly reconsider it based on users’ feedback, because we’re more wrong than they are about what they need. We actively seek feedback and act upon it; here’s what we’ve done based on the feedback we got…” “Dogfooding” What you think you’re saying: “We know firsthand the problems we’re solving.” What they’re hearing: “We’re so focused on solving our own problems, that we may end up closing our ears to our users’ problems. It could even get worse, and success could even get us more agressive to anyone who doesn’t agree with us, DHH-style.” (He’s the creator of Ruby on Rails, a founder of Basecamp, and an over-user of the word “dogfooding” to describe his ventures, sometimes pushing that it’s the only way to do things and notoriously being aggressive to people who don’t agree with him on stuff.) What you should be saying: “We’re dogfooding for sure, but our top priority is to stay in touch with our users’ needs, even if that means having to get further from our own.” “Our managers/founders are great innovators that can tell the team exactly what to do to reach success” What you think you’re saying: “We have geniuses and vision, and we do the right thing to reach success.” What they’re hearing: “We think there’s only one way to do things right, and therefore don’t consider other more unexpected/creative ways. It’s more important to be right than to get things done that aren’t necessarily right the first time. Only a handful of people in the company are allowed to innovate, so there’s not much room for serendipity. Also, all of our staff may leave us in frustration once they figure out other startups usually respect their input more.” What you should be saying: “Managers/founders stay out of the way of the innovation of the teams. We believe in growth by making people feel accountable and trusted.” “We’re the Uber of X” What you think you’re saying: “Our business model is well-tried, it worked before.” What they’re hearing: “We may think recipes that work with potatoes work with carrots without having to think about it much more. Also, we’re unable to formulate an original vision, so we have to rely on someone else’s.” What you should be saying: <insert careful worded and convincing vision that expresses both the originality and viability of your business> “ We build the X of the future / of tomorrow” What you think you’re saying: “We are first on market filling a need before anyone else, so clients will run to us once the need appears.” What they’re hearing: “We have never heard of the uncountable stories of projects that failed because they came out too early. We don’t try to fix today’s very real problems, and since no one can reasonably guess anything about the future, we’re focused on building out of guesswork.” What you should be saying: “Today’s solutions to this problem are outdated, we fix today’s problems, with a strong focus on adaptability to ensure we remain current as the industry unavoidably changes.” “We ship features every day” What you think you’re saying: “We move fast, we’re always ahead of the competition.” What they’re hearing: “We’d rather make feature announcements that look good, than polish the core value prop of our product, which is what makes it actually better and better. Also, we’re clearly not aware of what the words ‘feature bloat’ means.” What you should be saying: “We ship improvements every day. Sometimes, they’re improvements of our core product; and when it makes sense and adds to our value prop, they’re new features. Also, we’re not afraid to scrap experimental features that turned out not to make much sense for our users.” “We have 2000 users, but we’ve ensured our platform can scale as far as millions of simultaneous users.” What you think you’re saying: “Nothing will slow our growth down.” What they’re hearing: “We’re focused on problems we don’t have, and may never have if we carry on under-prioritizing problems we have.” What you should be saying: “The platform we’re using is known for its scaling; we’ll work on this progressively as our user base grows.” Thinking of other read flags I didn’t think about? Put them in the comments!Thankfulness over a Green Card2014-10-29T20:50:30+00:002014-10-29T20:50:30+00:00https://rudyonweb.net/thankfulness-green-card<p><em><a href="http://rudyonweb.net/gratitude-carte-verte">Version française ici</a>.</em></p>
<p>Today, I’ve received the Green Card that the American government decided to grant and send me, and I’ve never felt so thankful in my life.</p>
<p>I’m thankful that I can finally truly build a life here for myself and my family on the long run; I’m thankful that I won’t anymore need to have a backup plan ready at all times to fold back to Europe “in case something happens”, which I believe is what all temporary immigrants do.</p>
<p>I’m also thankful that I’m now unconditionally welcome in the country where my little girl was born. Even though times do get tough sometimes, Vanessa and I have never been happier than since we’re here, and I’m very thankful that we’re so nicely invited to be here for a while.</p>
<p>It was an unusual Green Card process, based on my professional achievements at the time it was posted (very early 2014); but I know for a fact that I don’t owe these achievements to myself only, so my thankfulness doesn’t only go to the US government, but even more to other people without whom none of this would have been possible.</p>
<h3>The awesome people I wish to thank for it</h3>
<p>At the top of my list, I know I owe much of the quality of my case to my previous employer <strong>Clever Age</strong>, and its culture of permissiveness and responsabilisation. I would never have held so many positions and responsibilities, spoken in so many events, achieved so much in just a few years, if it wasn’t for the culture of action and general freedom that there is over there. I know that the amount and variety of stuff I’ve done over there in such a short time is also mostly what impressed my current employer, and is the biggest part of how I got the awesome job I have now.</p>
<p>I’m also feeling very grateful to <strong>the few people who agreed to sign a letter of reference</strong> for my legal case, which was instrumental in making it strong. None of them had to do it, and they all got out of their way to make sure to help; I am deeply in their debt. (Although I’m craving the let the world know of their awesomeness, I’m going to have to refrain from listing them here, as I’m sure some of them wouldn’t necessarily enjoy the attention.)</p>
<p>I’m obviously very thankful to <strong>the attorney I worked with</strong> to get this through. Of course, attorneys don’t come cheap, but the value that Brian provided goes beyond any money I’ll ever own. If you are intending to immigrate to the US, <a href="http://www.transactint.com/brian-j-reilly.html" target="_blank">do get in touch with him</a>, I very warmly recommend him! I’m also amazingly thankful to Sophie, who sent me his way.</p>
<p>Also, much of the strength of my case relied on my speaking gigs at <strong>Paris Web</strong>, my book published by <strong>Eyrolles</strong> and my co-writer <strong>Jérémy</strong>, my speaking at <strong>Front Row</strong>, my being part of <strong>Sud Web</strong>, my article co-written for <strong>Dev.Opera</strong> and my co-writer <strong>Sophie</strong>, my articles in <strong>Le Train de 13h37</strong>, etc… and I’m feeling so grateful to all of these people for giving me all those opportunities. There would be many people to thank by name, so I’ll just throw you a deep, warm general-thank-you.</p>
<p>I’m definitely very thankful for my current employer too, for trusting me that much and making every single of my days fascinating. Working for a major leader usually accounts for a lot in such Green Card cases; however, this supposedly wasn’t taken into consideration, since only the achievements prior to the filing date are supposed to be looked at, and I was not hired yet back then. But if the USCIS agent did notice it anyway, I’m sure it did impact him/her anyway in some way, and had some role to play.</p>
<p>Finally, I’m thankful for the people over at <strong>Zengularity</strong> and the prismic.io team. Even though I know for a fact that what I did over there didn’t account to much in the decision of the USCIS to grant me the Green Card, as well as in the decision of my current employer to hire me (I didn’t have much to show off from my work there), I know for a fact that being geographically in US territory was a strong factor in both instances, and they trusted me enough to send me over here to help in the kickstarting phase of their product.</p>
<h3>Thinking of the people who are still fighting</h3>
<p>My heart and compassion goes to all the ones who are still struggling to be allowed to settle where they want, whether they live there already and can’t be allowed to settle, or whether they’re not yet allowed to live there at all. I was in their shoes for a long time until recently, and this is a very hard place to be. I was committed to the US immigration reform cause until now, fervently publicly enthusiastic about it, and although I made it, I can assure you this will not change.</p>
<p>With this new stability to build a solid life, and also my amazing baby daughter Lila who joined us in September, there are many things we’ll get to be thankful for, on Thanksgiving!</p>Rudy RigotVersion française ici. Today, I’ve received the Green Card that the American government decided to grant and send me, and I’ve never felt so thankful in my life. I’m thankful that I can finally truly build a life here for myself and my family on the long run; I’m thankful that I won’t anymore need to have a backup plan ready at all times to fold back to Europe “in case something happens”, which I believe is what all temporary immigrants do. I’m also thankful that I’m now unconditionally welcome in the country where my little girl was born. Even though times do get tough sometimes, Vanessa and I have never been happier than since we’re here, and I’m very thankful that we’re so nicely invited to be here for a while. It was an unusual Green Card process, based on my professional achievements at the time it was posted (very early 2014); but I know for a fact that I don’t owe these achievements to myself only, so my thankfulness doesn’t only go to the US government, but even more to other people without whom none of this would have been possible. The awesome people I wish to thank for it At the top of my list, I know I owe much of the quality of my case to my previous employer Clever Age, and its culture of permissiveness and responsabilisation. I would never have held so many positions and responsibilities, spoken in so many events, achieved so much in just a few years, if it wasn’t for the culture of action and general freedom that there is over there. I know that the amount and variety of stuff I’ve done over there in such a short time is also mostly what impressed my current employer, and is the biggest part of how I got the awesome job I have now. I’m also feeling very grateful to the few people who agreed to sign a letter of reference for my legal case, which was instrumental in making it strong. None of them had to do it, and they all got out of their way to make sure to help; I am deeply in their debt. (Although I’m craving the let the world know of their awesomeness, I’m going to have to refrain from listing them here, as I’m sure some of them wouldn’t necessarily enjoy the attention.) I’m obviously very thankful to the attorney I worked with to get this through. Of course, attorneys don’t come cheap, but the value that Brian provided goes beyond any money I’ll ever own. If you are intending to immigrate to the US, do get in touch with him, I very warmly recommend him! I’m also amazingly thankful to Sophie, who sent me his way. Also, much of the strength of my case relied on my speaking gigs at Paris Web, my book published by Eyrolles and my co-writer Jérémy, my speaking at Front Row, my being part of Sud Web, my article co-written for Dev.Opera and my co-writer Sophie, my articles in Le Train de 13h37, etc… and I’m feeling so grateful to all of these people for giving me all those opportunities. There would be many people to thank by name, so I’ll just throw you a deep, warm general-thank-you. I’m definitely very thankful for my current employer too, for trusting me that much and making every single of my days fascinating. Working for a major leader usually accounts for a lot in such Green Card cases; however, this supposedly wasn’t taken into consideration, since only the achievements prior to the filing date are supposed to be looked at, and I was not hired yet back then. But if the USCIS agent did notice it anyway, I’m sure it did impact him/her anyway in some way, and had some role to play. Finally, I’m thankful for the people over at Zengularity and the prismic.io team. Even though I know for a fact that what I did over there didn’t account to much in the decision of the USCIS to grant me the Green Card, as well as in the decision of my current employer to hire me (I didn’t have much to show off from my work there), I know for a fact that being geographically in US territory was a strong factor in both instances, and they trusted me enough to send me over here to help in the kickstarting phase of their product. Thinking of the people who are still fighting My heart and compassion goes to all the ones who are still struggling to be allowed to settle where they want, whether they live there already and can’t be allowed to settle, or whether they’re not yet allowed to live there at all. I was in their shoes for a long time until recently, and this is a very hard place to be. I was committed to the US immigration reform cause until now, fervently publicly enthusiastic about it, and although I made it, I can assure you this will not change. With this new stability to build a solid life, and also my amazing baby daughter Lila who joined us in September, there are many things we’ll get to be thankful for, on Thanksgiving!What startup culture actually is2014-07-13T20:50:30+00:002014-07-13T20:50:30+00:00https://rudyonweb.net/what-startup-culture-actually-is<p>Many people like to think of “startups” as a culture trend before all, but it’s important to remember that technically, it is mostly an economical concept defining a certain type of businesses. However, the economical aspects of startups do imply some cultural similarities between one another, and actually probably more than in any other type of businesses. And I don’t know about you, but I happen to find those ties just fascinating.</p>
<p>First, let’s put a definition to the word “startup”: <strong>a startup is simply a business that is <a href="http://www.paulgraham.com/growth.html" target="_blank">designed for growth</a>, and needs growth to ensure its survival</strong>.</p>
<p>Most often, it will need it because:</p>
<ul>
<li>it hasn’t yet found its business model (it doesn’t yet know how it will make money), and needs to grow to find out what kind of traction works on the business idea before monetizing it;</li>
<li>it has a business model in mind, but it requires a critical mass for it to work, which it doesn’t have yet (and therefore is not profitable yet).</li>
</ul>
<p>I’m not saying that it is a business that <em>seeks</em> growth (all businesses seek growth!), but that it is <em>designed</em> for growth as a survival need, which changes a lot about what those kinds of workplaces usually are made of.<span id="more-803"></span></p>
<p><em>Note: startup and tech are not directly related. Startups existed before the tech sector existed; and many tech businesses get started today that are not startups. One thing tech changed, and in particular IT: things are able to get done faster, so extreme growth is “easier” to generate. Thanks to IT, startups tend to be able to start up faster nowadays.</em></p>
<h1>Cultural / organizational trends one typically meets in startups</h1>
<p>Note that most of them come from how, to ensure growth, startups are most often designed for efficiency and adaptability at all cost.</p>
<h3>A shared passion for the startup’s market and users</h3>
<p>Indeed, a startup is meant to change constantly, but this only works if it changes for the better. And for your efforts to better and better match the market and users, <strong>every single person on board needs to have a thorough understanding of them</strong>; and the better the understanding, the better your growth. This is why in financial startups, you will find way more loonies talking to you about finance for hours, than in actual banks.</p>
<p>Also, users are the people who feed a startup’s growth, so you will often hear conversations about “what users told us they need” over lunch. And what users need (while still being relevant!) ultimately has to become everyone’s constant obsession.</p>
<h3>Organizational ability to change everything very quickly</h3>
<p>Since your activity can change from one day to the next, and is likely to change at least a little bit weekly, your structure must be intensely fluid. In easier cases, this means the technical guy must sometimes do some marketing stuff, simply because he’s the best on board to do that one thing. But the same goes with management skills too, and businesses often have a harder time with that: the best guy on board to manage one iteration might not be the best guy on board to manage the next. And it takes some solid organizational fluidity to let managers accept to be replaced by one another for the good of the product.</p>
<p>I remember working in a multi-project startup-like company, and I was some other guy’s manager on a given project, while he was my manager for another simultaneous project. This wasn’t awkward one bit, as we both trusted that each of us was the best match to lead the project we each were responsible for.</p>
<p>This is why <strong>the “Everyone has a given role” approach that you find in regular businesses doesn’t work too well for startups</strong>; each person’s added value needs to be optimal at any given time, which implies that roles get constantly adapted depending on what’s going on.</p>
<h3>Cultural ability to change everything very quickly</h3>
<p>This means the startup not only needs to have a strong tolerance to surprises (good or bad!), but actually needs to actively seek them. Experienced startup managers know that uncontrollable growth can only happens when you let go of a lot of your control, and embrace unexpectedness to get unexpected results. As a result, this also allows them to spend less time on ensuring/enforcing their control, and more time on what actually grows the business.</p>
<p>I like to say that <strong>if you apply your plan strictly like your mind imagines it, then you will only get the growth that your mind can imagine</strong>.</p>
<h3>A shared passion for killing anything damaging growth</h3>
<p>I was talking with a tech startup entrepreneur with an early product very recently (let’s call him John), and we were talking about tech startups with known bugs in their products. For instance, wednesdays.com is an amazing concept, but their lingering bugs never cease to amaze me on each visit, so much that I got frustrated once, and now I don’t go there much any more. Here’s to your growth…</p>
<p>John was telling me that <strong>whenever he knew there was a known bug on his product that wasn’t fixed yet, he simply could not get any sleep that night, literally</strong>; and he was expecting for his team to be the same, each one of them at least a little. He just knows that details like these could kill his growth, and therefore his startup, and that he can’t allow his startup’s culture to tolerate them.</p>
<h3>KPI-maniacs all over the place</h3>
<p>Who says growth says growth rate says KPIs, and it is often expected from a CEO in a startup to define which are the metrics that will be closely followed to define if the growth rate of these metrics is satisfying (number of users, revenue, pageviews, transactions, …). This is why so many startup entrepreneurs spend hours frantically setting up dashboards to follow what’s up with their product, and why so many BI tools targeting startups are booming with scary pricings: <strong>following growth metrics closely is simply the only way a startup knows whether it’s doing good or bad</strong>.</p>
<p>I tend to like it a lot when startups display screens with real-time graphs and dashboards in the middle of their open-space, which is very common in many startups, big and small; recently, within the same day, I saw pretty much the same screens in <a href="http://www.slideshare.net/" target="_blank">SlideShare’s</a> offices, and then at an early-stage two-guys startup in a co-working space.</p>
<h3>Stellar business reactivity</h3>
<p>This is true for every kind of business, and I didn’t realize it existed until recently, but obviously, <strong>not reading or replying to your e-mails means some potential business is not happening right now, and probably won’t ever happen</strong>, and that some promising topics are potentially waiting for you. It’s already pretty bad in regular businesses, since this obviously damages all kinds of output; but it is simply lethal in a startup, as it simply sentences your growth to death. Kids, don’t do this at home.</p>
<h3>Processes to a bare minimum</h3>
<p>If you have never read the notorious “<a href="http://hbr.org/2014/01/how-netflix-reinvented-hr/ar/1" target="_blank">Netflix HR</a>” document, that shook the Silicon Valley in the 2000s, and defined much of what Silicon Valley businesses tend to be like today, you just <span style="text-decoration: underline;"><strong><em>need</em></strong></span> to find an hour in your schedule for it (it’s pretty long, and requires some attentive reading). Some of their approach is applicable to all kinds of businesses, some of their processes are downright stolen from startups; one of them being <strong>the necessary removal of all processes that are not absolutely necessary</strong>.</p>
<p>In their absolute commitment to that value, they reveal that Netflix employees have infinite vacations (because it removes the process of requesting / validating them), and full access to the company’s credit card (because it remove the process for expense accounts); of course, they’re all accesses that are based on a trust that you don’t want to abuse if you’re a Netflix employee. What is amazing is that we’re not talking about an early-phase startup struggling to set itself up, but about a multi-billion-dollar company with thousands of employees, that knows very well what it’s doing. Their point as a large business is that non-absolutely-necessary processes damage their growth.</p>
<p>Back to our topic: if Netflix found that those processes used to damage growth for them, then you can understand how they can kill a startup, that actually needs even less of them anyway.</p>
<h3>Accountability</h3>
<p>Well, this is an corollary of the two previous ones: since startup managers don’t want topics to be stuck somewhere because of them, and since they seek to keep their processes to a bare minimum, <strong>the “you should show this to the manager first” process is most often simply eradicated in startups</strong>. You can find it expressed on the career sections of startups with sentences such as “managers stay out of the way”, or “you must have bias for action” (as opposed to validation); I like to think that this is on career sections because it is the main reason why startup people want to work in startup-like environments.</p>
<p>As much as “managers who validate” are the signature / definition of pyramidal organizations, I like to think that startup people are simply people who don’t think pyramidal is optimal, and would rather be in an organization where they feel accountable and trusted.</p>
<h3>Rewards and compensations bound to growth</h3>
<p>Since people are expected to only breathe if growth happens, a very typical organizational scheme for startups is to attach all compensations to growth in some way, even for employees that are not in the main line of the business. Attaching compensation to growth (most often by giving equity) is <strong>the only certain way to have people on board that are here for the growth</strong>, and not only for the experience, or worse, the title (because, you may have noticed that many startups are not cheap on cool-sounding C-level titles).</p>
<p>Also, throwing a “hundred-thousandth-active-user party” or a “break-even fun crazy night” are not only cool startup-like events for team-building, they’re necessary to keep the growth in everyone’s mind and pleasure.</p>
<h1>Well, what to make of this?</h1>
<p>Even though what I call “startup culture” stems from certain companies’ economical constraints, what I find fascinating about it is that you can find it in pure forms in businesses that are not startups at all, or haven’t been startups anymore for a long time; and on the other hand, it is sometimes purely missing in businesses that actually define themselves as startups. What I find even more interesting, is that even though startup culture is an outcome by itself, “installing”/ensuring it in a company brings its own outcomes, even if the company is not a startup itself. This is why even larger companies tend to be interested in having their departments “work like startups”, and rightly so: extreme adaptability and accountability triggers spontaneous innovation within all “levels” of the organization, while the race for growth triggers… well, revenue.</p>
<p>I like startups, but not as much as I love what I call “startup culture”, which I described in this post; and I am a firm believer that <strong>all businesses that seek innovation, efficiency, and growth should be looking into this mindset to boost their output</strong>, and a firm supporter of businesses that do.</p>
<p><em>And you, what startup culture traits do you think come from their growth-oriented designs? What traits of startup culture have you witnessed before, in your company or in others’, whether they were startups or not at all?</em></p>Rudy RigotMany people like to think of “startups” as a culture trend before all, but it’s important to remember that technically, it is mostly an economical concept defining a certain type of businesses. However, the economical aspects of startups do imply some cultural similarities between one another, and actually probably more than in any other type of businesses. And I don’t know about you, but I happen to find those ties just fascinating. First, let’s put a definition to the word “startup”: a startup is simply a business that is designed for growth, and needs growth to ensure its survival. Most often, it will need it because: it hasn’t yet found its business model (it doesn’t yet know how it will make money), and needs to grow to find out what kind of traction works on the business idea before monetizing it; it has a business model in mind, but it requires a critical mass for it to work, which it doesn’t have yet (and therefore is not profitable yet). I’m not saying that it is a business that seeks growth (all businesses seek growth!), but that it is designed for growth as a survival need, which changes a lot about what those kinds of workplaces usually are made of. Note: startup and tech are not directly related. Startups existed before the tech sector existed; and many tech businesses get started today that are not startups. One thing tech changed, and in particular IT: things are able to get done faster, so extreme growth is “easier” to generate. Thanks to IT, startups tend to be able to start up faster nowadays. Cultural / organizational trends one typically meets in startups Note that most of them come from how, to ensure growth, startups are most often designed for efficiency and adaptability at all cost. A shared passion for the startup’s market and users Indeed, a startup is meant to change constantly, but this only works if it changes for the better. And for your efforts to better and better match the market and users, every single person on board needs to have a thorough understanding of them; and the better the understanding, the better your growth. This is why in financial startups, you will find way more loonies talking to you about finance for hours, than in actual banks. Also, users are the people who feed a startup’s growth, so you will often hear conversations about “what users told us they need” over lunch. And what users need (while still being relevant!) ultimately has to become everyone’s constant obsession. Organizational ability to change everything very quickly Since your activity can change from one day to the next, and is likely to change at least a little bit weekly, your structure must be intensely fluid. In easier cases, this means the technical guy must sometimes do some marketing stuff, simply because he’s the best on board to do that one thing. But the same goes with management skills too, and businesses often have a harder time with that: the best guy on board to manage one iteration might not be the best guy on board to manage the next. And it takes some solid organizational fluidity to let managers accept to be replaced by one another for the good of the product. I remember working in a multi-project startup-like company, and I was some other guy’s manager on a given project, while he was my manager for another simultaneous project. This wasn’t awkward one bit, as we both trusted that each of us was the best match to lead the project we each were responsible for. This is why the “Everyone has a given role” approach that you find in regular businesses doesn’t work too well for startups; each person’s added value needs to be optimal at any given time, which implies that roles get constantly adapted depending on what’s going on. Cultural ability to change everything very quickly This means the startup not only needs to have a strong tolerance to surprises (good or bad!), but actually needs to actively seek them. Experienced startup managers know that uncontrollable growth can only happens when you let go of a lot of your control, and embrace unexpectedness to get unexpected results. As a result, this also allows them to spend less time on ensuring/enforcing their control, and more time on what actually grows the business. I like to say that if you apply your plan strictly like your mind imagines it, then you will only get the growth that your mind can imagine. A shared passion for killing anything damaging growth I was talking with a tech startup entrepreneur with an early product very recently (let’s call him John), and we were talking about tech startups with known bugs in their products. For instance, wednesdays.com is an amazing concept, but their lingering bugs never cease to amaze me on each visit, so much that I got frustrated once, and now I don’t go there much any more. Here’s to your growth… John was telling me that whenever he knew there was a known bug on his product that wasn’t fixed yet, he simply could not get any sleep that night, literally; and he was expecting for his team to be the same, each one of them at least a little. He just knows that details like these could kill his growth, and therefore his startup, and that he can’t allow his startup’s culture to tolerate them. KPI-maniacs all over the place Who says growth says growth rate says KPIs, and it is often expected from a CEO in a startup to define which are the metrics that will be closely followed to define if the growth rate of these metrics is satisfying (number of users, revenue, pageviews, transactions, …). This is why so many startup entrepreneurs spend hours frantically setting up dashboards to follow what’s up with their product, and why so many BI tools targeting startups are booming with scary pricings: following growth metrics closely is simply the only way a startup knows whether it’s doing good or bad. I tend to like it a lot when startups display screens with real-time graphs and dashboards in the middle of their open-space, which is very common in many startups, big and small; recently, within the same day, I saw pretty much the same screens in SlideShare’s offices, and then at an early-stage two-guys startup in a co-working space. Stellar business reactivity This is true for every kind of business, and I didn’t realize it existed until recently, but obviously, not reading or replying to your e-mails means some potential business is not happening right now, and probably won’t ever happen, and that some promising topics are potentially waiting for you. It’s already pretty bad in regular businesses, since this obviously damages all kinds of output; but it is simply lethal in a startup, as it simply sentences your growth to death. Kids, don’t do this at home. Processes to a bare minimum If you have never read the notorious “Netflix HR” document, that shook the Silicon Valley in the 2000s, and defined much of what Silicon Valley businesses tend to be like today, you just need to find an hour in your schedule for it (it’s pretty long, and requires some attentive reading). Some of their approach is applicable to all kinds of businesses, some of their processes are downright stolen from startups; one of them being the necessary removal of all processes that are not absolutely necessary. In their absolute commitment to that value, they reveal that Netflix employees have infinite vacations (because it removes the process of requesting / validating them), and full access to the company’s credit card (because it remove the process for expense accounts); of course, they’re all accesses that are based on a trust that you don’t want to abuse if you’re a Netflix employee. What is amazing is that we’re not talking about an early-phase startup struggling to set itself up, but about a multi-billion-dollar company with thousands of employees, that knows very well what it’s doing. Their point as a large business is that non-absolutely-necessary processes damage their growth. Back to our topic: if Netflix found that those processes used to damage growth for them, then you can understand how they can kill a startup, that actually needs even less of them anyway. Accountability Well, this is an corollary of the two previous ones: since startup managers don’t want topics to be stuck somewhere because of them, and since they seek to keep their processes to a bare minimum, the “you should show this to the manager first” process is most often simply eradicated in startups. You can find it expressed on the career sections of startups with sentences such as “managers stay out of the way”, or “you must have bias for action” (as opposed to validation); I like to think that this is on career sections because it is the main reason why startup people want to work in startup-like environments. As much as “managers who validate” are the signature / definition of pyramidal organizations, I like to think that startup people are simply people who don’t think pyramidal is optimal, and would rather be in an organization where they feel accountable and trusted. Rewards and compensations bound to growth Since people are expected to only breathe if growth happens, a very typical organizational scheme for startups is to attach all compensations to growth in some way, even for employees that are not in the main line of the business. Attaching compensation to growth (most often by giving equity) is the only certain way to have people on board that are here for the growth, and not only for the experience, or worse, the title (because, you may have noticed that many startups are not cheap on cool-sounding C-level titles). Also, throwing a “hundred-thousandth-active-user party” or a “break-even fun crazy night” are not only cool startup-like events for team-building, they’re necessary to keep the growth in everyone’s mind and pleasure. Well, what to make of this? Even though what I call “startup culture” stems from certain companies’ economical constraints, what I find fascinating about it is that you can find it in pure forms in businesses that are not startups at all, or haven’t been startups anymore for a long time; and on the other hand, it is sometimes purely missing in businesses that actually define themselves as startups. What I find even more interesting, is that even though startup culture is an outcome by itself, “installing”/ensuring it in a company brings its own outcomes, even if the company is not a startup itself. This is why even larger companies tend to be interested in having their departments “work like startups”, and rightly so: extreme adaptability and accountability triggers spontaneous innovation within all “levels” of the organization, while the race for growth triggers… well, revenue. I like startups, but not as much as I love what I call “startup culture”, which I described in this post; and I am a firm believer that all businesses that seek innovation, efficiency, and growth should be looking into this mindset to boost their output, and a firm supporter of businesses that do. And you, what startup culture traits do you think come from their growth-oriented designs? What traits of startup culture have you witnessed before, in your company or in others’, whether they were startups or not at all?How Google is redefining web development (and Backbone.js is getting obsolete)2014-06-01T20:50:30+00:002014-06-01T20:50:30+00:00https://rudyonweb.net/google-redefines-web-development-backbone-obsolete<p>Very lately, Google made announcements that have rightfully excited the web developers’ community; but after talking around, I feel that not everyone realizes how those moves may entirely redefine how web development is done. So, I decided to summarize what’s going on in this post in a concise, straight-to-the-point way.</p>
<p>Note that this scenario depends on the popular adoption of what Google just announced, and of course, strictly represents my opinion only.<span id="more-772"></span></p>
<h2>Recent events</h2>
<ul>
<li>On May 20th, Google Chrome 35 got released with a fully working implementation of Object.observe (<a href="http://thenextweb.com/google/2014/05/20/chrome-35-launches-developer-control-touch-input-new-apis-javascript-features/" target="_blank">here is more information</a>).</li>
<li>On May 23rd, Google Search revealed that they’ve been interpreting JS during their crawling (<a href="http://googlewebmastercentral.blogspot.fr/2014/05/understanding-web-pages-better.html" target="_blank">here is the announcement</a>).</li>
</ul>
<h3>Explaining the Object.observe stuff</h3>
<p>In a nutshell, there are two approaches for how the model tier of front-end MVC frameworks work:</p>
<ul>
<li>Backbone and Ember require that you create a model by extending a model class they provide (<em>var Product = Backbone.Model.extend(); var product = new Product(); …</em>), and that you use <em>get()</em> and <em>set()</em> methods when you want to access and change stuff in your model. This allows for the <em>get()</em> and <em>set()</em> methods to not only change stuff, but also to let the view know about what changed when it does.</li>
<li>Angular allows to use plain old JavaScript objects (<em>var product = { name : “Chair”, price : 50 };</em>). When you change one of those model objects, your views “magically” update.</li>
</ul>
<p>Now, obviously most people would agree that Angular models are more efficient to develop, and more pleasant to work with, but this “magic” comes with a huge trade-off, which is called ” dirty checking”, and is indeed very dirty.<br>
Some people <a href="http://blog.bguiz.com/post/57373805814/accessors-vs-dirty-checking-in-javascript-frameworks" target="_blank">explain it at length</a> better than I would, but the idea is that plain old objects don’t have logic, and therefore can’t alert your views by themselves when they’re changing. So Angular needs to continuously check if something in there just changed, and compare the current state of all model objects to their previous states to find out what actually changed, one by one. Dirty checking is indeed dirty, and quite slow.</p>
<p>Detractors of Angular have been saying that Angular couldn’t be the way of the future, as dirty checking is indeed very dirty, and their opinion has been making sense. It turns out they were probably wrong after all, as Chrome now fully implements Object.observe, which means you don’t need dirty checking anymore to be alerted when something changes in a plain old JS object, and therefore you can use plain old objects as model objects with no trade-off.</p>
<p>Now, this is Chrome-only today, but if this gets implemented by other browsers and become fully usable in production, then Backbone.js and Ember.js model tiers as we know them today will simply be suddenly obsolete.</p>
<h3>Explaining JS interpretation during Google’s crawling</h3>
<p>The “front-end MVC” architecture has been coming with a major downside : Google didn’t interpret JS, and therefore those sites were very hard (if not impossible) to get indexed without having to create another, more “static” site. The issue in a nutshell is that a single-page app is most likely to be a blank page that gets modified by JS; so without the JS, Google sees the blank page only.</p>
<p>I’m aware of the other downsides, such as accessibility or performance, but I don’t consider them as major since I believe stuff can be done to make them better; also, there’s fault-tolerance, but I don’t believe it will be as hard a problem in the future (I’ll get back to that). All in all: with a single-page app website that was well-conceived, the only unavoidable dealbreaker was SEO, which made them suitable only for cases that don’t need SEO (authenticated apps, …).</p>
<p>Google’s announcement means that this is simply not a problem anymore for a website’s Google indexation, as their crawler knows how to execute JS, and to see pages just like you do, even front-end MVC architectures. And it won’t do it “tomorrow maybe”, it’s doing it today, actually has been doing it for a bit of time already. Dealbreaker gone.</p>
<h2>First, what this won’t change</h2>
<p>You will still need back-end stuff. As long as you need to persist data and perform data transactions that impact multiple users or devices, full-front-end is not an option.<br>
Performance is another downside of front-end apps today, and as much as we can still make this way better (more on this later), average front-end performance won’t be able to match average back-end performance. It certainly can get very, very close, but the JS code will always have to be sent and interpreted, no matter what (there are heuristics to make it a lot better in some cases, though).</p>
<h2>What this would change</h2>
<p>Front-end would have to handle more complexity, and I believe this is probably a good thing in the long run. I believe we’ve only been scratching the surface of what can be done with front-end MVC frameworks, and there’s still much to get done to make them better, and make them cover more use cases (more on this later).</p>
<p>Also, back-end would therefore get more simple, covering less of the business logic and general role of the application. My guess is that most back-end stuff would probably be made of 2 kinds of approaches:</p>
<ul>
<li>RESTful resource-based databases, and we already have many options among existing frameworks. Only last week, the awesome people at <a href="http://strongloop.com/" target="_blank">StrongLoop</a> released <a href="http://strongloop.com/mobile-application-development/loopback/" target="_blank">LoopBack</a>, a framework dedicated to doing just that in a very simple way, based on MongoDB and Node.js (which is always a good choice for stateless small transactions with not much business logic).</li>
<li>API cloud services that serve various simple purposes and can be integrated jointly for a given project, for instance: <a href="https://www.firebase.com/" target="_blank">Firebase</a> for real-time communication, <a href="https://parse.com/" target="_blank">Parse</a> for an advanced cloud database, <a href="https://molt.in/" target="_blank">Moltin</a> for e-commerce, or (full disclosure: that’s the product I work for) <a href="https://prismic.io/" target="_blank">prismic.io</a> for content management. This is a really, really exciting time to be working in API-based products.</li>
</ul>
<h2>What would have to get better</h2>
<p>There are some weaknesses in current front-end MVC frameworks to build complex apps, but I think that now that SEO is gone, all of them can be made way better. Remember that front-end MVC has been reserved for certain kinds of apps so far, but now that they are a thousand times more relevant, it will just make sense to better address the issues for complex apps. I’m pretty sure I don’t have all of them in mind, but here are at least my two personal favorites.</p>
<p><strong>Performance</strong> is king of issues today; for instance, to load one webpage, you will have to load the code for every controller in your website (this is true for Angular, and as far as I know, this is true for Backbone and Ember too); the bigger your application, the more this becomes a problem. Angular’s modular approach is pretty solid, but still requires the code for all modules to be available and loaded at all times. However, I don’t see what the problem would be if this approach was changed so that we can lazy-load the JS code of modules that may not be used right now. This way or another way, it’s safe to say that this can be made way better.</p>
<p><strong>Fault-tolerance</strong> is annoying with JavaScript, as, in real life, a single issue can make your whole JavaScript execution go to hell. Back when I was working with my friend <a href="http://jeremie.patonnier.net/" target="_blank">Jérémie Patonnier</a>, he would always say that you give too much trust to JS when you make it do something you could do in the back-end, because you never know where it’s gonna break. This is even more true when the application becomes more complex, and more bugs might happen. But the language already contains stuff that can be used to safeguard your JS execution; they’re just not very well used today, and today’s MVC frameworks don’t seem to be very focused on solving this. But it could definitely be made better, and JS can definitely be made more resilient with the right tools.</p>
<h2>Should we throw away Backbone and Ember right now? Is Angular the king and only winner?</h2>
<p>No, and no.</p>
<p>If Object.observe does become a thing, and other browsers implement it seriously, then Backbone and Ember’s approach to model won’t make sense anymore, alright. If this happens, then they both will obviously implement models with plain old objects at some point, and even though I don’t know the amount of work this represents to make it happen, I don’t see why they wouldn’t.</p>
<p><em><strong>EDIT</strong>: <a href="https://twitter.com/tchak13" target="_blank">Paul Chavard</a>, who contributes on Ember.js, got in touch with me on Twitter, to let me know that POJO are indeed on the table, but that something else is in the way: handling “unknownProperty” and easy inheritance / mixins. It looks like it will be solved by ES6 Proxies. (Tweets are <a href="https://twitter.com/tchak13/status/473364026224029696" target="_blank">here</a> and <a href="https://twitter.com/tchak13/status/473364654421712896" target="_blank">here</a>.)</em></p>
<p>Also, Angular comes with that approach for models already today, which does make them earlier than anyone to the game; but they also come with other concepts and values that one may see fit or not for their need (in the data binding, the modular approach, the dependency injection, etc.). To address the huge spectrum of needs, web developers will need choice, and I’m pretty sure in time we will have a lot of choices, whether from revised versions of existing frameworks, or from new ones that will happen over the next few months/years built from other concepts and values, or with specific use cases in mind.</p>
<h2>So, what now?</h2>
<p>My advice to be prepared: if you don’t know an MVC framework, learn AngularJS, or another MVC framework you see fit. With Angular in particular, I found that the learning curve seemed steep at first, but it becomes fun very quickly, and is really, utterly powerful.</p>
<p>Then, if you need to store data, look into <a href="http://strongloop.com/mobile-application-development/loopback/" target="_blank">LoopBack</a>, or <a href="https://parse.com/" target="_blank">Parse</a>, or how to make it happen with the back-end framework you know. If you need to have real-time communication (chat, whiteboard, …), look into <a href="https://www.firebase.com/" target="_blank">Firebase</a>. If you need e-commerce, look into <a href="https://molt.in/" target="_blank">Moltin</a>. And of course, if you need content, <a href="https://prismic.io/" target="_blank">create a prismic.io account today</a>!</p>Rudy RigotVery lately, Google made announcements that have rightfully excited the web developers’ community; but after talking around, I feel that not everyone realizes how those moves may entirely redefine how web development is done. So, I decided to summarize what’s going on in this post in a concise, straight-to-the-point way. Note that this scenario depends on the popular adoption of what Google just announced, and of course, strictly represents my opinion only. Recent events On May 20th, Google Chrome 35 got released with a fully working implementation of Object.observe (here is more information). On May 23rd, Google Search revealed that they’ve been interpreting JS during their crawling (here is the announcement). Explaining the Object.observe stuff In a nutshell, there are two approaches for how the model tier of front-end MVC frameworks work: Backbone and Ember require that you create a model by extending a model class they provide (var Product = Backbone.Model.extend(); var product = new Product(); …), and that you use get() and set() methods when you want to access and change stuff in your model. This allows for the get() and set() methods to not only change stuff, but also to let the view know about what changed when it does. Angular allows to use plain old JavaScript objects (var product = { name : “Chair”, price : 50 };). When you change one of those model objects, your views “magically” update. Now, obviously most people would agree that Angular models are more efficient to develop, and more pleasant to work with, but this “magic” comes with a huge trade-off, which is called ” dirty checking”, and is indeed very dirty. Some people explain it at length better than I would, but the idea is that plain old objects don’t have logic, and therefore can’t alert your views by themselves when they’re changing. So Angular needs to continuously check if something in there just changed, and compare the current state of all model objects to their previous states to find out what actually changed, one by one. Dirty checking is indeed dirty, and quite slow. Detractors of Angular have been saying that Angular couldn’t be the way of the future, as dirty checking is indeed very dirty, and their opinion has been making sense. It turns out they were probably wrong after all, as Chrome now fully implements Object.observe, which means you don’t need dirty checking anymore to be alerted when something changes in a plain old JS object, and therefore you can use plain old objects as model objects with no trade-off. Now, this is Chrome-only today, but if this gets implemented by other browsers and become fully usable in production, then Backbone.js and Ember.js model tiers as we know them today will simply be suddenly obsolete. Explaining JS interpretation during Google’s crawling The “front-end MVC” architecture has been coming with a major downside : Google didn’t interpret JS, and therefore those sites were very hard (if not impossible) to get indexed without having to create another, more “static” site. The issue in a nutshell is that a single-page app is most likely to be a blank page that gets modified by JS; so without the JS, Google sees the blank page only. I’m aware of the other downsides, such as accessibility or performance, but I don’t consider them as major since I believe stuff can be done to make them better; also, there’s fault-tolerance, but I don’t believe it will be as hard a problem in the future (I’ll get back to that). All in all: with a single-page app website that was well-conceived, the only unavoidable dealbreaker was SEO, which made them suitable only for cases that don’t need SEO (authenticated apps, …). Google’s announcement means that this is simply not a problem anymore for a website’s Google indexation, as their crawler knows how to execute JS, and to see pages just like you do, even front-end MVC architectures. And it won’t do it “tomorrow maybe”, it’s doing it today, actually has been doing it for a bit of time already. Dealbreaker gone. First, what this won’t change You will still need back-end stuff. As long as you need to persist data and perform data transactions that impact multiple users or devices, full-front-end is not an option. Performance is another downside of front-end apps today, and as much as we can still make this way better (more on this later), average front-end performance won’t be able to match average back-end performance. It certainly can get very, very close, but the JS code will always have to be sent and interpreted, no matter what (there are heuristics to make it a lot better in some cases, though). What this would change Front-end would have to handle more complexity, and I believe this is probably a good thing in the long run. I believe we’ve only been scratching the surface of what can be done with front-end MVC frameworks, and there’s still much to get done to make them better, and make them cover more use cases (more on this later). Also, back-end would therefore get more simple, covering less of the business logic and general role of the application. My guess is that most back-end stuff would probably be made of 2 kinds of approaches: RESTful resource-based databases, and we already have many options among existing frameworks. Only last week, the awesome people at StrongLoop released LoopBack, a framework dedicated to doing just that in a very simple way, based on MongoDB and Node.js (which is always a good choice for stateless small transactions with not much business logic). API cloud services that serve various simple purposes and can be integrated jointly for a given project, for instance: Firebase for real-time communication, Parse for an advanced cloud database, Moltin for e-commerce, or (full disclosure: that’s the product I work for) prismic.io for content management. This is a really, really exciting time to be working in API-based products. What would have to get better There are some weaknesses in current front-end MVC frameworks to build complex apps, but I think that now that SEO is gone, all of them can be made way better. Remember that front-end MVC has been reserved for certain kinds of apps so far, but now that they are a thousand times more relevant, it will just make sense to better address the issues for complex apps. I’m pretty sure I don’t have all of them in mind, but here are at least my two personal favorites. Performance is king of issues today; for instance, to load one webpage, you will have to load the code for every controller in your website (this is true for Angular, and as far as I know, this is true for Backbone and Ember too); the bigger your application, the more this becomes a problem. Angular’s modular approach is pretty solid, but still requires the code for all modules to be available and loaded at all times. However, I don’t see what the problem would be if this approach was changed so that we can lazy-load the JS code of modules that may not be used right now. This way or another way, it’s safe to say that this can be made way better. Fault-tolerance is annoying with JavaScript, as, in real life, a single issue can make your whole JavaScript execution go to hell. Back when I was working with my friend Jérémie Patonnier, he would always say that you give too much trust to JS when you make it do something you could do in the back-end, because you never know where it’s gonna break. This is even more true when the application becomes more complex, and more bugs might happen. But the language already contains stuff that can be used to safeguard your JS execution; they’re just not very well used today, and today’s MVC frameworks don’t seem to be very focused on solving this. But it could definitely be made better, and JS can definitely be made more resilient with the right tools. Should we throw away Backbone and Ember right now? Is Angular the king and only winner? No, and no. If Object.observe does become a thing, and other browsers implement it seriously, then Backbone and Ember’s approach to model won’t make sense anymore, alright. If this happens, then they both will obviously implement models with plain old objects at some point, and even though I don’t know the amount of work this represents to make it happen, I don’t see why they wouldn’t. EDIT: Paul Chavard, who contributes on Ember.js, got in touch with me on Twitter, to let me know that POJO are indeed on the table, but that something else is in the way: handling “unknownProperty” and easy inheritance / mixins. It looks like it will be solved by ES6 Proxies. (Tweets are here and here.) Also, Angular comes with that approach for models already today, which does make them earlier than anyone to the game; but they also come with other concepts and values that one may see fit or not for their need (in the data binding, the modular approach, the dependency injection, etc.). To address the huge spectrum of needs, web developers will need choice, and I’m pretty sure in time we will have a lot of choices, whether from revised versions of existing frameworks, or from new ones that will happen over the next few months/years built from other concepts and values, or with specific use cases in mind. So, what now? My advice to be prepared: if you don’t know an MVC framework, learn AngularJS, or another MVC framework you see fit. With Angular in particular, I found that the learning curve seemed steep at first, but it becomes fun very quickly, and is really, utterly powerful. Then, if you need to store data, look into LoopBack, or Parse, or how to make it happen with the back-end framework you know. If you need to have real-time communication (chat, whiteboard, …), look into Firebase. If you need e-commerce, look into Moltin. And of course, if you need content, create a prismic.io account today!One week into my “working on a Chromebook” experiment2013-06-27T20:50:30+00:002013-06-27T20:50:30+00:00https://rudyonweb.net/working-chromebook<p>So, I bought a Samsung Chromebook, exactly a week ago, because I was intrigued by it and felt compelled to find out more about this disruptive way to approach daily use of computers. Also, the Mac Book Air my employer is getting me is taking ages to get here, and I was annoyed to carry around my 15 inches MacBook everyday, so this was the perfect occasion.</p>
<p><img class="size-medium wp-image-703" src="https://rudyonweb.net/assets/images/large-1-300x187.jpg" alt="Samsung Chromebook"></p>
<p><small>This is what we’re talking about!</small></p>
<h2>The experiment</h2>
<p>The idea was to leave my temporary MacBook Pro at work, and to <strong>only open it when there’s something I can’t do with the Chromebook</strong> (spoiler: eventually, I didn’t open it at all, even though I was really close twice, but ended up finding an annoying way around my problem both times). My job is peculiar: I can work from home (I did, Monday and Tuesday), I sometimes take the train to see people (I did, yesterday). Also, <strong>my employer already works heavily with SaaS products</strong>: the EDM everyone uses is Google Drive, no one uses Office but the Google Docs only, all the code developed is pushed to our enterprise GitHub account, you can use the IDE you want and no one find it weird to use a cloud IDE like my good old Cloud9 … I can’t tell you much more about what I do, since the product I’m working on is in stealth mode; but I’ve been e-mailing a lot, feature designing prototypes a lot, working on spreadsheets/written docs/drawings a lot, and even did some front-end dev based on Twitter Bootstrap. <em>Update: my <a href="http://www.linkedin.com/in/rudyrigot" target="_blank">role</a> and <a href="http://prismic.io" target="_blank">employer</a> went public since.</em><span id="more-698"></span></p>
<h2>Strengths</h2>
<h3>Software UX paradigms</h3>
<p>The whole interface revolves around the window system built in Chrome, which <strong>works surprising well, even for advanced use cases</strong>. It’s not at all like MacOS or Windows handle their window systems, it’s a whole new thing entirely. For instance, the OS only shows one window at a time (you can minimize it, resize it, etc… but you won’t see the other windows when you see this one), which nicely helps you focus on that one task. Except for some minor apps (calculator, scratchpad), everything opens in Chrome (even the very limited terminal!), meaning that you eventually end up using your Chrome windows as virtual screens, just like in MacOS or Linux, and your Chrome tabs as apps on this screen. It’s really different, but <strong>since we’re all used to windows and tabs, it really works well</strong>!</p>
<h3>Physical experience</h3>
<p>I’m comparing to the Mac Book Air here, and I must say, even though the hardware is really low-cost, <strong>the physical experience with it</strong> (like, the typing, the mobility, the ligthness, the keyboard shortcuts, …) <strong>is very similar to a Mac Book Air’s</strong>. The only major difference is that the case is full plastic, which makes it look really, really cheap compared to a Mac Book Air’s aluminium case, but… eh, it’s indeed a cheap laptop! I was scared that it might be fragile or toy-looking, but it turns out it’s not at all fragile, and its plastic looks doesn’t bother me at all in the end (quite the opposite of shameful: when I took it off in my meeting with my client yesterday, they were rather impressed, since they had never heard of Chromebooks, and found it concept awesome). Last Friday, I showed up to an internal “apero” my company was having to talk about some internal stuff, and I took the computer on one hand as I was typing with the other. This is the kind of use case that you can easily have with a Mac Book Air, but that isn’t easy with a Mac Book Pro (even 13”). I love to consider my status as highly dynamic and mobile when I work, so it’s perfect for me! The only real physical downside compared to a MacBook Air is the non-backlit keyboard, which is indeed really useful. So far, I’ve been doing well without it, but yep, it’s a bit sad.</p>
<h3>Cost for quality</h3>
<p>I mean, come on! I thought about buying it used, but then I realized that it was cheaper than a smartphone anyway… Plus, I would get that 2-year-free 100GB plan on Google Drive. So I just went to a computer store and bought it. For a laptop, 300€ is not such a terrible investment… I like low cost for a lot of reasons, and not only the amount of money leaving my bank account when I pay for it. My best reason, is that my Mac Book Pro got stolen last year as I was in London, and although it technically was my employer’s, this really turned me paranoid about where I take my laptop. Now, I’m thinking, if someone steals my Chromebook, it would suck, but not that bad, and it relaxes me to think so, so I take it literally everywhere. (My father was a buddhism-enclined guy, so he taught me to appreciate this kind of things!)</p>
<h3>Battery life</h3>
<p>Yesterday, I woke up, took my Chromebook, worked in the train for 1h40, went to my client’s offices, we used my Chromebook to cover a lot of things for about 4 hours, I went back to the train station, missed my train, had to wait 30 minutes looking up stuff on my Chromebook, then took the train back, and used it for about 1 hour before it died. <strong>That’s about 7 hours of battery in intensive usage, which I find really impressive, considering the price of the beast!</strong> I guess the reason is that intensive usage for a Chromebook isn’t as intensive a usage as for other platforms… I’ll try watching movies some other time, to see how that one works out!</p>
<h2>Weaknesses</h2>
<h3>Hardware power</h3>
<p>Ok, I did choose to buy one of the cheap ones… but <strong>the hardware weakness did eventually get in the way of using it comfortably for everything</strong>. An example: the Google Presentation I’ve been working on is getting longer and longer, and the Chromebook is having a hard time remaining responsive when I work on it. Sometimes I click on something, and one full second happens before the UI reacts, which gets frustrating (this doesn’t happen for other apps but closing all the other windows but Presentation did not help at all) But the worst that happened: I wanted to show those slides to coworkers through a Hangout, and… never could! The Hangout + Presentation together totally froze the computer, and Chrome ended up launching exception after exception. I was at home, so I offered to hang up and connect back with my wife’s Mac Book (that was one of the two occasions where the Chromebook showed its limits), but one of my coworkers offered to display the slides himself on his Hangout’s shared screen, which solved the problem in a disappointing way.</p>
<h3>UX polish</h3>
<p>The general UX is awesome, but <strong>there are some details in the day-to-day usages that show that not many people gave their feedback yet, and that this is still quite young</strong>. For instance: customization is very, very limited, and there has been a couple of things that I wished to change to gain productivity, but couldn’t. Also: it’s easy to switch from a window to another (obviously), but there is no way to see what your currently opened windows are, so answering the question “so, overall, what am I doing again?” takes a lot of effort and brainpower. Also: the touchpad works perfectly, but the gestures are really limited, which is a shame (they’re so, so useful in MacOS). Also: everything is accessible with hotkeys, which is great as of productivity, but those system-level hotkeys conflict with app-level hotkeys; for instance, in Google Word, you’re supposed to use Ctrl+Shift+R to align to the right, and Ctrl+Shift+L to align to the left… but well, Ctrl+Shift+L also locks your screen! <em>Update: Google added some gestures since (like the long-awaited two-finger back gestures in the browser).</em></p>
<h3>Limited stuff you can do offline, of course</h3>
<p>Well, you know it when you buy it, and actually, I found it much more usable offline than I thought it’d be. However, the 3 hours in trains were perfect, because I exactly had to use Google Word and Google Draw for what I had to do; but if I had had more time, I don’t know what I would have done next in that train! Even to use Pocket, you need to be connected (I eventually finished my train time using it… on my smartphone!), and let’s not even mention development. If I had a plane to catch tomorrow, <strong>I don’t think the Chromebook would work a second time in a row</strong>, or for a longer travel time… <em>Update: Pocket now works offline.</em></p>
<h3>Limited stuff you can do online</h3>
<p>Well, this one is annoying. When there’s something you’ve got to do, and your Chromebook doesn’t do it even while online, how do you manage? <strong>These few things do stand in the way of making it a primary workstation</strong>. In my case, the things I found the most annoying were:</p>
<ul>
<li>image editing: sure, there are some online image editors (I use PixlEditor, which, ironically, is made in Flash!), but the offer is really poor. I had to work with open SVG cliparts… well, none of them seems to handle SVG! This is the second time I thought of reopening my MacBook, but eventually, I did the silliest thing: screen-captured my SVG displayed in Chrome, then removed the blank background in PixlEditor. Brr…</li>
<li>printing: I had to print something this morning. Maybe I should have read the documentation more, and tried harder, but this seemed like a lot of work to do to just accomodate the printer to one experimenting guy. Eventually, I passed the PDF over to a coworker, who printed it with her MacBook.</li>
<li>Dropbox: if the file explorer has a connector with Drive, there’s no technical reason for it not to work with Dropox. Oh, wait for it, actually, the file explorer doesn’t work offline! No kidding!! If you want to use your Google Drive while offline, you have to do it in the browser… So I don’t think we’ll see a functional Dropbox plug-in for Chromebook, before Dropbox has a functional offline web mode (which they don’t need, since they have native apps to do that in every significant platform)</li>
<li>Skype: I was supposed to have a Skype meeting yesterday, to which I finally couldn’t attend, for unrelated reasons. This was a headache-inducing problem, because the partner I was supposed to Skype with doesn’t use Google Hangout. I ended up finding a solution (before I had to cancel): I’d use Skype on my Android phone. Hem.</li>
</ul>
<p><em>Update: I believe the file explorer now works offline, but still doesn’t have an API for Dropbox or others.</em></p>
<h2>Conclusions</h2>
<p>For now, <strong>I’ll go on with it</strong>, because this way to work seems to accomodate the way I work these days. However, my role is going to become more mobile, and I don’t think the Chromebook will be mighty enough to cover the long plane hours I’ll have to spend. My employer will buy me a phone soon, and I was thinking of asking a Samsung Galaxy S4, which covers most of the lacking needs (Dropbox, Skype, …), even more so when you know that 4G LTE is massively arriving downtown San Francisco ; but what if I have to work on code, for instance? (I’ve never used Cloud9 offline, by the way, maybe I should start with trying that) I was thinking of reselling the Chromebook if the experience is disappointing; <strong>I decided I’d keep it</strong> after all (I can do without those 200 euros), but on the longer run, I’m sure it wouldn’t be enough as a primary workstation. Also, even though the cheapness of the hardware is the biggest problem, there’s one thing I wouldn’t do: upgrade! The downsides of the concept are endearing when you think of it as a cheap alternative, and I don’t regret my purchase for one second! But I can’t see one single use case where spending 1400€ for any kind of hardware based on ChromeOS makes sense, as ChromeOS is today. Overall, though, <strong>I give the experiment a 8/10 grade</strong>, the missing 2 points being mostly because of the hardware limitations. If you already work a lot with SaaS products like I did anyway, the switch will be really smooth; but I know this 8/10 grade might decrease as I use it more and more, and expect more and more from it…</p>
<p><em><strong>Full disclosure: the weaknesses eventually outgrew the strengths in my daily productivity a few days later, and I went back to a MacBook Pro (13′ retina). I still use my ChromeBook from time to time, mostly to test whether web-based stuff I think about works on it or not; but I find my time on it increasingly difficult, and I don’t think I’d ever use it again for work, or anything serious. I think I’m more and more switching from the notebook kind of guy to the tablet kind of guy for basic everyday tasks… It was a cool experiment, though!</strong></em></p>Rudy RigotSo, I bought a Samsung Chromebook, exactly a week ago, because I was intrigued by it and felt compelled to find out more about this disruptive way to approach daily use of computers. Also, the Mac Book Air my employer is getting me is taking ages to get here, and I was annoyed to carry around my 15 inches MacBook everyday, so this was the perfect occasion. This is what we’re talking about! The experiment The idea was to leave my temporary MacBook Pro at work, and to only open it when there’s something I can’t do with the Chromebook (spoiler: eventually, I didn’t open it at all, even though I was really close twice, but ended up finding an annoying way around my problem both times). My job is peculiar: I can work from home (I did, Monday and Tuesday), I sometimes take the train to see people (I did, yesterday). Also, my employer already works heavily with SaaS products: the EDM everyone uses is Google Drive, no one uses Office but the Google Docs only, all the code developed is pushed to our enterprise GitHub account, you can use the IDE you want and no one find it weird to use a cloud IDE like my good old Cloud9 … I can’t tell you much more about what I do, since the product I’m working on is in stealth mode; but I’ve been e-mailing a lot, feature designing prototypes a lot, working on spreadsheets/written docs/drawings a lot, and even did some front-end dev based on Twitter Bootstrap. Update: my role and employer went public since. Strengths Software UX paradigms The whole interface revolves around the window system built in Chrome, which works surprising well, even for advanced use cases. It’s not at all like MacOS or Windows handle their window systems, it’s a whole new thing entirely. For instance, the OS only shows one window at a time (you can minimize it, resize it, etc… but you won’t see the other windows when you see this one), which nicely helps you focus on that one task. Except for some minor apps (calculator, scratchpad), everything opens in Chrome (even the very limited terminal!), meaning that you eventually end up using your Chrome windows as virtual screens, just like in MacOS or Linux, and your Chrome tabs as apps on this screen. It’s really different, but since we’re all used to windows and tabs, it really works well! Physical experience I’m comparing to the Mac Book Air here, and I must say, even though the hardware is really low-cost, the physical experience with it (like, the typing, the mobility, the ligthness, the keyboard shortcuts, …) is very similar to a Mac Book Air’s. The only major difference is that the case is full plastic, which makes it look really, really cheap compared to a Mac Book Air’s aluminium case, but… eh, it’s indeed a cheap laptop! I was scared that it might be fragile or toy-looking, but it turns out it’s not at all fragile, and its plastic looks doesn’t bother me at all in the end (quite the opposite of shameful: when I took it off in my meeting with my client yesterday, they were rather impressed, since they had never heard of Chromebooks, and found it concept awesome). Last Friday, I showed up to an internal “apero” my company was having to talk about some internal stuff, and I took the computer on one hand as I was typing with the other. This is the kind of use case that you can easily have with a Mac Book Air, but that isn’t easy with a Mac Book Pro (even 13”). I love to consider my status as highly dynamic and mobile when I work, so it’s perfect for me! The only real physical downside compared to a MacBook Air is the non-backlit keyboard, which is indeed really useful. So far, I’ve been doing well without it, but yep, it’s a bit sad. Cost for quality I mean, come on! I thought about buying it used, but then I realized that it was cheaper than a smartphone anyway… Plus, I would get that 2-year-free 100GB plan on Google Drive. So I just went to a computer store and bought it. For a laptop, 300€ is not such a terrible investment… I like low cost for a lot of reasons, and not only the amount of money leaving my bank account when I pay for it. My best reason, is that my Mac Book Pro got stolen last year as I was in London, and although it technically was my employer’s, this really turned me paranoid about where I take my laptop. Now, I’m thinking, if someone steals my Chromebook, it would suck, but not that bad, and it relaxes me to think so, so I take it literally everywhere. (My father was a buddhism-enclined guy, so he taught me to appreciate this kind of things!) Battery life Yesterday, I woke up, took my Chromebook, worked in the train for 1h40, went to my client’s offices, we used my Chromebook to cover a lot of things for about 4 hours, I went back to the train station, missed my train, had to wait 30 minutes looking up stuff on my Chromebook, then took the train back, and used it for about 1 hour before it died. That’s about 7 hours of battery in intensive usage, which I find really impressive, considering the price of the beast! I guess the reason is that intensive usage for a Chromebook isn’t as intensive a usage as for other platforms… I’ll try watching movies some other time, to see how that one works out! Weaknesses Hardware power Ok, I did choose to buy one of the cheap ones… but the hardware weakness did eventually get in the way of using it comfortably for everything. An example: the Google Presentation I’ve been working on is getting longer and longer, and the Chromebook is having a hard time remaining responsive when I work on it. Sometimes I click on something, and one full second happens before the UI reacts, which gets frustrating (this doesn’t happen for other apps but closing all the other windows but Presentation did not help at all) But the worst that happened: I wanted to show those slides to coworkers through a Hangout, and… never could! The Hangout + Presentation together totally froze the computer, and Chrome ended up launching exception after exception. I was at home, so I offered to hang up and connect back with my wife’s Mac Book (that was one of the two occasions where the Chromebook showed its limits), but one of my coworkers offered to display the slides himself on his Hangout’s shared screen, which solved the problem in a disappointing way. UX polish The general UX is awesome, but there are some details in the day-to-day usages that show that not many people gave their feedback yet, and that this is still quite young. For instance: customization is very, very limited, and there has been a couple of things that I wished to change to gain productivity, but couldn’t. Also: it’s easy to switch from a window to another (obviously), but there is no way to see what your currently opened windows are, so answering the question “so, overall, what am I doing again?” takes a lot of effort and brainpower. Also: the touchpad works perfectly, but the gestures are really limited, which is a shame (they’re so, so useful in MacOS). Also: everything is accessible with hotkeys, which is great as of productivity, but those system-level hotkeys conflict with app-level hotkeys; for instance, in Google Word, you’re supposed to use Ctrl+Shift+R to align to the right, and Ctrl+Shift+L to align to the left… but well, Ctrl+Shift+L also locks your screen! Update: Google added some gestures since (like the long-awaited two-finger back gestures in the browser). Limited stuff you can do offline, of course Well, you know it when you buy it, and actually, I found it much more usable offline than I thought it’d be. However, the 3 hours in trains were perfect, because I exactly had to use Google Word and Google Draw for what I had to do; but if I had had more time, I don’t know what I would have done next in that train! Even to use Pocket, you need to be connected (I eventually finished my train time using it… on my smartphone!), and let’s not even mention development. If I had a plane to catch tomorrow, I don’t think the Chromebook would work a second time in a row, or for a longer travel time… Update: Pocket now works offline. Limited stuff you can do online Well, this one is annoying. When there’s something you’ve got to do, and your Chromebook doesn’t do it even while online, how do you manage? These few things do stand in the way of making it a primary workstation. In my case, the things I found the most annoying were: image editing: sure, there are some online image editors (I use PixlEditor, which, ironically, is made in Flash!), but the offer is really poor. I had to work with open SVG cliparts… well, none of them seems to handle SVG! This is the second time I thought of reopening my MacBook, but eventually, I did the silliest thing: screen-captured my SVG displayed in Chrome, then removed the blank background in PixlEditor. Brr… printing: I had to print something this morning. Maybe I should have read the documentation more, and tried harder, but this seemed like a lot of work to do to just accomodate the printer to one experimenting guy. Eventually, I passed the PDF over to a coworker, who printed it with her MacBook. Dropbox: if the file explorer has a connector with Drive, there’s no technical reason for it not to work with Dropox. Oh, wait for it, actually, the file explorer doesn’t work offline! No kidding!! If you want to use your Google Drive while offline, you have to do it in the browser… So I don’t think we’ll see a functional Dropbox plug-in for Chromebook, before Dropbox has a functional offline web mode (which they don’t need, since they have native apps to do that in every significant platform) Skype: I was supposed to have a Skype meeting yesterday, to which I finally couldn’t attend, for unrelated reasons. This was a headache-inducing problem, because the partner I was supposed to Skype with doesn’t use Google Hangout. I ended up finding a solution (before I had to cancel): I’d use Skype on my Android phone. Hem. Update: I believe the file explorer now works offline, but still doesn’t have an API for Dropbox or others. Conclusions For now, I’ll go on with it, because this way to work seems to accomodate the way I work these days. However, my role is going to become more mobile, and I don’t think the Chromebook will be mighty enough to cover the long plane hours I’ll have to spend. My employer will buy me a phone soon, and I was thinking of asking a Samsung Galaxy S4, which covers most of the lacking needs (Dropbox, Skype, …), even more so when you know that 4G LTE is massively arriving downtown San Francisco ; but what if I have to work on code, for instance? (I’ve never used Cloud9 offline, by the way, maybe I should start with trying that) I was thinking of reselling the Chromebook if the experience is disappointing; I decided I’d keep it after all (I can do without those 200 euros), but on the longer run, I’m sure it wouldn’t be enough as a primary workstation. Also, even though the cheapness of the hardware is the biggest problem, there’s one thing I wouldn’t do: upgrade! The downsides of the concept are endearing when you think of it as a cheap alternative, and I don’t regret my purchase for one second! But I can’t see one single use case where spending 1400€ for any kind of hardware based on ChromeOS makes sense, as ChromeOS is today. Overall, though, I give the experiment a 8/10 grade, the missing 2 points being mostly because of the hardware limitations. If you already work a lot with SaaS products like I did anyway, the switch will be really smooth; but I know this 8/10 grade might decrease as I use it more and more, and expect more and more from it… Full disclosure: the weaknesses eventually outgrew the strengths in my daily productivity a few days later, and I went back to a MacBook Pro (13′ retina). I still use my ChromeBook from time to time, mostly to test whether web-based stuff I think about works on it or not; but I find my time on it increasingly difficult, and I don’t think I’d ever use it again for work, or anything serious. I think I’m more and more switching from the notebook kind of guy to the tablet kind of guy for basic everyday tasks… It was a cool experiment, though!