Ad

Wednesday, July 31, 2013

Culture Note : Eventbrite Part 1 | Product + UX + Development, an engineering culture with traditional clients

Foreword: the Culture Note series covers startup cultures and life in the Silicon Valley, a main theme of this blog. I had the fortune to visit many startups as a part of Stanford education and being the Valley when the beginner coder movement is at its max. I would like to share my observations and analysis. This content may be useful if you are researching companies, for employment, interviews, studying, research / essay, or articles. Let me know how you use it.

ad : gifts for startups programmers and geeky employees >_>

The Bay Area Geek Girl Dinner partnered with the Eventbrite team for an evening of career sessions and presentation for female developers. It was organized, funny, and packed with great content, the time was perfectly scheduled and utilized.


Eventbrite co-founder Julia Hartz delivered the opening talk about the challenges of startup growth pain. The company strived to keep the team small but stellar to battling the loss of startup culture over size. She constantly kept the culture factors in check.



Julia Hartz talks about Eventbrite Culture
Genuine is the first trait listed in the slide above. She talked a lot about empowering, and also implied that the employees are well selected, and do a lot more than just their position titles can imply. A remarkable 2% low attrition rate is unheard of in the startup sector, yet Eventbrite has achieved so far. Julia attributes it to extreme focus on features and performance when growth pain bites. The employee mosaic is an interesting visual representation of just how important the individual tile is for Eventbrite and how carefully selected, proudly displayed these core hearts of Eventbrite are.


Julia Hartz co-founder at Eventbrite proudly displays the employee mosaic at Bay Area Geek Girl Dinner
[End of part 1. Later parts will cover, product, UX, product management, engineering, client account management at eventbrite.]




Wednesday, July 24, 2013

Review - Web Development Bootcamp part 3: Hack Reactor - curriculum and student projects

Curriculum

A long title indeed, let's talk about what is worthy at Hack Reactor. Not the curriculum, and not the student projects, I thought initially! Because the curriculum across the board is generally live instruction  + video cast instructions, sort of like the online learning shops, but with a few live teachers that can answer your questions.

The instructors at Hack Reactor turned out to be very prominent and effective. I have since then met many who are passionate about their work at the extraordinary bootcamp. Then I wrote about the miscellaneous at the bootcamp including job prospects, which end up exceeding expectation. But a fair warning indeed, we all have to take stats with a grain of salt. Stats can lie and but misleading. Until, we are on the pirate ship, we really won't know what it will be like.

I wrote Hack Reactor multiple times urging them to make curriculum screenshots public, at least one or two pieces of those screenshots. I seriously thought it was one of the highlights! One sentence conclusion: Hack Reactor curriculum / courses are build by developers for future developers!

These are not read the usual suspect: Michael Hartl's Rails or Eloquent JavaScript, but go to Github, Git Clone, do some pull requests and push some real changes to the repository and receive real feedback on the git issues like real developers would. Using Git in realistic situations, check. Using Git to collaborate, check.

The exercises are game-like, challenging and non-trivial. Each exercise is like a mini project that teaches a core concept. And the programmer will complete this slightly challenging exercise and then submit the challenges for a pull request review.

What do I mean by they are build for developers by developers? I have seen the live private demo of one exercise by the co-founder Tony, who showed me that the exercise was like a puzzle built for browsers. Students clone the codes, open them in the browser, and interact with the Google Developer Tool - the development console, to excavate clues and hints leading to the next step - puzzles was the word that immediately jumped to my mind.

I hope i have a screenshot here soon because I really love what I saw! It was a marriage of the not-yet-interactive Codecademy lesson with very good developer logic build in. But similarly to Codecademy, they use the local dev console very well. 


Student Projects

In the bay area, the undeniable prestigious bootcamp house that is filled up for the next few months is the early-comer : Dev Bootcamp. It is one of the first of the Bay Area, and surely has ridden the early-comer advantage along with the popularity of Rails. But if you have signed up for the Hack Reactor newsletter you will realize that Hack Reactor has made news often in Wired, TechCrunch and beyond.

Here's the recent project covering Reddit Insights http://www.redditinsight.com/ . And its honorable mention in the press TechCrunch. Did you know that it isn't easy to get TechCrunch coverage? As a part of the Y Combinator benefit is an guaranteed press article in TechCrunch. And they are very proud of the thousands of unique visitors obtained.

And if TechCrunch coverage is no specialty, as I am not a complete techie and have been covered before : P, maybe Wired Magazine's world record setting move is convincing enough?

Again the usual selection bias warning here from the walks of Economics and Statistics : these are clearly extreme examples and by nature tend not to happen to everyone. Nevertheless, something of note: some bling is better than nothing. It can be you, too! Just watch out plenty of times, it's still another guy/girl in a magazine and not you... not yet.


reddit insight student project at Hack Reactor
The creators explain how this app works.

In fact, Hack Reactor's student projects have caught my attention early, way before I was shown these projects. My favorite one was the Logic Mason's Github project . Unfortunately the project is no longer visible. But it was a beautiful group project that uses Github's API to analyze in real time the geolocation of commits, allowing a D3 JavaScript library visualization of dev team commits. Imagine if you are a CTO showing off your global dev team? Or rapid deployment, rapid prototyping? Loved that the D3 library also allowed me to pull apart the graph. The 404 error shows the backend is Node.js  : )

Github API use student project at Hack Reactor


My Economics buddy at our rivalry school - Berkeley, Bianca was a student and TA at Hack Reactor



Attendees having food with Tony the co-founder and CEO

Tuesday, July 23, 2013

Learning Style - Grit, Resilience, Compulsion and Learning

Too long to read? I understand, I am no fast reader. If you have Mac, select the paragraph of texts and right click, select speech and start speaking. Not the best narrator, but it's free and build in. Saves your eye sight.

Learning style is a natural topic of interest for my blog, which focuses on covering resources for people in the technology and coding communities, especially beginners that are joining this community. Why has Codecademy worked for millions of users, when some clearly don't like the site for lacking of one important teaching element:  answers! Codecademy is a collection of interactive tests without answers, yet it works why? Sometimes, I will recommend Treehouse for my beginner coders, sometimes Code School. They are very different indeed.

Today I want to cover an important "learning style" and "skill" - GRIT and Resilience - (style and skill in quotes because grit and resilience are really personalty traits). A dear friend in college +Adriana Miu once taught me something about psychology and education. She took time to teach and learn clinical psychology upon graduating from Stanford. She explained to me that she's fascinated by resilience. When she worked with at-risk children, she learnt that some of the best performers among this group are actually kids that have gone through traumatizing events. Events that are so dire, even just one, or a part of it can reasonably destroy a person without doubt. Yet these kids survived and excelled. They may not grow up to be presidents and hedge fund managers, but they surely show us why we should be proud to be human, and what humans are capable of handling.

That's when I started to think a lot about resilience. In Chinese, there's an idiom and a fable that talks about 江郎才尽 Jiang Lang Cai Jin (Jiang Lang running out of talent). A prodigy losing his talents over the years was a fable aimed to teach Einstein's famous saying: success is more about hard work than raw talent. Malcolm Gladwell also wrote about how success is somewhat predictable by statistics in his famous book Outliers. The way we name our kids actually matter (a minority name, and a girl's name may not fair well in many prestigious positions, unfortunately), the time we enlist our children in junior leagues matter, and the amount of time we spend on each subject can actually predict the outcome. One sentence conclusion: raw talent surely helps but raw talent most often do not predict success. And that just makes sense, the more we try, the more opportunities for us to win that lottery and get that impossible outcome (scientists don't believe lottery is a good gamble game to play, but without playing at all, surely the desired outcome to win will never be reached, naturally, just by pure setup).

My engineering friends from Stanford and local startups often believe that coding should not be taught. They had to learn it by reading and tinkering on their own (that's why documentations are highly valued), and they believe that's the best way to learn for future comers too. I believe that, the engineering experts know what is the best for their ecosphere, so I am not to judge, but what if we need to teach coding, what do we have to do?

I am a firm believer that coding is the new literacy. It soon will be an integral part of all education, as much as reading and writing! So yes, I would like to entertain with the idea what if we HAVE to teach it?

This blog post is about no matter how great the teaching materials, one single factor may trump all factors, especially in the realm of beginner coding : grit.

Angela Lee explains grit's role in education in a wonderful short Ted Talk: grit can be measured, can be thought of as a growth mindset (Stanford idea), and that it may be a better predictor of future success, long term success than IQ or raw talent. It's the mindset of marathon runners not sprint.




The grittiest beginner coders that I have met? People who went through Michael Hartl's Rails tutorial 3 times. First time for an intro to Rails, second time including Git to learn version control, 3rd time to reinforce Rails concepts and learn how to test with Rspec, Capybara.

The best Codecademy folks did all the exercises, practice outside and asked tons of questions, why? Why this, why that? Actually more insightful than an actual engineer. The naive engineering mind is unhinged when asking questions.

One good friend +Sandra Chiu  actually went through tutorials not glamorous like Treehouse and Code School but more like Lynda to learn all the nitty-gritty details of the codes that she was spoon-fed elsewhere. She downloaded the files and tinkered, all the time, even when I gave her the answers right away and told her to not sweat the details, so to save her frustration times. But for her debugging time was a part of the learning. Even if it takes forever. Gritty learners like she are not afraid of failure. They are clever, they try really hard, and they keep trying until they find a satisfying solution. That is to say their solutions are somewhat optimized.

I am a slow learner but I grasp things deep and fast once I get pass the initial plateau. The ability to make lots of connections is a blessing and curse. The blessing: I can learn Ruby, Rails, JavaScript, Backbone, PHP in one go. The curse? I likely don't want to spend too much time getting to ground zero in any of those. So how did I know that I can code? What made me believe that I am gritty enough to go pass the beginner coder stage and become a prototyper (my goal is not to be a full time dev)? It is compulsion to learn.

My personality trait that helps me is my crazy ability to compulsively learn. Some recent examples are reading 49 pages on Cucumber and Rspec testing in a single morning Caltrain ride to Palo Alto (note it's also impressive because i am not a morning person). When I apply to a company, I am fully immersed about this company's future, vision and operations, I will emerge from even unsuccessful interviews as a SME of this company's PR. I also used to stay hours on Codecademy, even on Friday and Saturday nights. I would stay up all night till I am stamp the bug. Also that I am writing this learning article at 3:39AM.

A high school friend who is dyslexic reminds me of the most excruciating pain when I watch him write. I who can talk none stop end up being a sloppy writer and talks an equal amount of non-sense and insights. His writing on the other hand is crystalized, though painfully so. I would qualify him as a true writer, and I who did not grit my teeth through words will not be qualified. He also made the most beautiful stain glass art project of rising sun on Santa Cruz surf. Some of us can see the devil in the details: the ocean is really 5 vertical "waves", each with a strong carving of curve, each a different subtle gradient of shades of blue, each with a unique gradient of texture that resembles the real waves. The painstakingly made tiles of dark blue waves always remind me of the struggle of compulsion, grit and success.

Besides all the other scientific findings that explain why our efforts matter more than raw talent, I think I have seen some one off non-scientific examples why it matters in coding. At hackathons, when time limit is a factor, experienced developers i.e. also people who spend a lot of time "grinding" at computers can recognize JavaScript error messages from experience and debug exponentially faster than I can. In development, one of the most time-draining tasks is config. Any person who will resolve the last line of brew doctor errors and read Stack Overflow with lunch can tell you what it means to be gritty as a coder. The learn The Hard Way (TTW) series including Learn Python the Hard Way is a live example of being extra gritty helps beginners learn Python. Having grit  really pays off in learning to code and in many fields that require intensive learning, for example, the modern society as a whole...

http://teamtreehouse.com/

Monday, July 22, 2013

Codesum Twitter Bootstrap Fest : 2 videos + 1 article

codediv_twitter_bootstrap
CodeDiv Twitter Bootstrap by Dilys
Recently, we covered Twitter Bootstrap quite a bit, now it's time to put it all together into our own Bootstrap Fest. Below we link to two older demo videos showing Twitter Bootstrap in action. Then a link to our own blog post, professionally written and more of a contextual and philosophical intro to Twitter Bootstrap. All resources are designed to make Twitter Bootstrap more tangible and useful for newly minted front-end developers, especially designers turned developers and entrepreneurial thought founders. 

Our blog post about Twitter Bootstrap curious to hear reader feedback on which resource should be used first: the video or the write up?

The Magic of Twitter Bootstrap Explained in 5 Minutes


Join Amazon Prime - Watch Over 40,000 Movies

Twitter Bootstrap Styling with Bootstrap.

Saturday, July 20, 2013

Rich Man's Race, Power Trip and Armored Soldiers - Bloomberg's Coverage on the America's Cup



Growing up in San Francisco and used to live in Cow Hollow, Fleet Week was quite the spectacle with the city flooded with sailors. On a given day, we will hear the Blue Angels and be able to see them on our deck multiple times a week. Great if you are a tourist, locals in actual houses, actually felt a bit of nervous.

The America's Cup is the Super Bowl for sailors, and this year, it is dubbed the Louis Vuitton for obvious ease of obtaining sponsor ship. Nevertheless, it is hardly a thing that we locals talk about, except if you are already a sailor and a fan of the local Yacht Club. For local schools, sailing class is actually a real possibility as are kayaking thanks to the SF Bay.

But many say it is not an easy race. The waters here are not easy to navigate. I don't know the details, so I shall not comment. I am not into sailing, and hence I wasn't into the Cup.

Yet, Bloomberg's article has completely changed my view: mentioning of sudden death from accidents, cutting edge technologies sponsored by Tech tycoons, teams that are in intense practice, potential for broadcasting spectacle that is at the level of F1 racing. Suddenly, this is a Silicon Valley lifestyle and business event, making it the right content for this blog.

Oracle's Ellison won't be the last Tech tycoon / founder to dabble in this power trip. Lipton, the tea tycoon and Vanderbilt's descendants have all being "guilty" of building powerful man toys and exhibiting their showmanship by exerting millions of dollars - even a chunk o their fortune. In return, they get racing that is so fast and dangerous that the thrills will spill to those who aren't always interested in sailing. They get armored soldiers, oops I meant sailors, who get to watch their training again and again with high tech filming and get their results analyzed by the top talents.

Races are the modern warfares without smokes but not without injuries and deaths. And the rich and powerful cannot help but be mesmerized by the routes to glory, the pursuit of top speed and the crown as its byproduct. #richmanstoy

Thursday, July 18, 2013

Reaction | Opinion: You the new spider-chameleon-career-man climbing career ladder the Silicon Valley

agama mwanzae a perfect representation of the new spider-chameleon-career-human
employers demanding all skills present prior to employment

I found the perfect image for this!

TWEET #spiderchameleoncareer

Driving down San Francisco, my friend and I started to chat about being a "spider". She applied for tons of jobs and hate the fact that every job post wants her to be everything. Some of the things she can do like Quality Assurance and Quality Control but also a million other things like Excel, lab assistant, medical manufacturing.... and in addition consulting style business skills.

She the spider will have to spider around at work.

I mentioned the word chameleon, reading that recent employers want chameleons, adaptive, agile (as in the development cycle), learn the environment fast, and obviously changes colors right away. On the development side, we will need to know Rails, Rspec, JavaScript, Backbone.js, Phantom.js, Express.js, may be Ember.js or Angular.js undecided.

Wait, but I am a junior developer?!

Back in the consulting old days, you can see the job description there: 10 years of product management, 10 years of IT intelligence, and 5 years of Sales, 5 years of Marketing, best college like Stanford, PhD is a plus, knowing development is a plus...

wait a second, that's an 100 years old monster alien from outer space.

My favorite was a job post looking for Rails developer with 12 years of experience. One problem : the technology Rails isn't around for 12 years !!

This morning I read on Fast Company how to always enjoy being a beginner : Why Being an Eternal Newbie Leads to Awesome Work . And the older article Beginner's Mind. I love the idea i am a big learning freak: going from Beverage to Law to Stanford Economics to Consulting, and now coding... even wrote a blog post on learning Cucumber in a day. I have a whole system of rapid prototyping and rapid learning. But is this fair for many others?

I have noticed that students paying $5000 and UP for bootcamps, even some $15K +, and joining Code School for $25, Treehouse for $20, and ThoughtBot workshop on Rspec for $1000+.... Before they even get the job, they have to pay so much education out of the pocket. A behavior precisely irony in the age of free education like Coursera.

Why are they so desperate?  It's precisely because many interviewers are saying show me what you can do before you apply. Frequently Product Management jobs will ask me show me what you can do before you apply. So learning on the job is entirely out of the window? Even if you do have a Fast Company Beginner's Mind!

That's to say be a super man women, have everything ready, be ready to learn more, be a super star, spend all your time at the company, and join all the hackathons, and spend zero time outside your life doing arts and reading, maybe you can join a team of shiny startup with great perks!

And as an everyday behavior economist, I'd like to point out that: we have forgotten that these employers and interviewers WERE NEVER EVALUATED under the same criteria! I'd like for every top ladder guy and girl to introspect would they ever have gotten the job if they apply now?

We had this dilemma at Stanford before. The new class of freshman often has a 0.1% lower acceptance rate than the previous class. That's a lot! That means the application has to be a whole lot stronger. People forgot that they started with nothing once, and forgotten to provide the mentorship that they once received.

Success in the Valley is organizational skills, business acumen, a lot of money, and opportunities, i.e. chance and luck! No one can read the entire Twitter history and recreate the success for their own company. Back in the old days, scientists have shown us that just because they invented something, and were smart, doesn't mean they can capitalize on their inventions.

Success is much more accidental than we would like it to be on news channels and sensational article coverages.

I say the employees figure out rapid and productive learning and the employers start to mentor and be more patient and forgiving. 

And employers to stop using recruiting networks and recruiting sites, and build their own recruiting team that ask for reasonable criteria.  I cannot like sites like Jobvite, because it builds a glass wall from applicants and the company. Both are spending enormous energy hiring and apply, yet applicants cannot even get to the real recruiters's actual inbox. How can you build a relationship, if the real email address isn't even exchanged? And emails are already so easy!

A concluding story is a story that I like to share. At the local Women Who Codes group, Beth of Zoosk shared a recruiting story with us, when she used the word "expertise" "mastery" for a designer position and requires years of experiences, and tough skills, she wasn't getting any women applicants. And that just cannot be right, considering how many women are in design. Yet men, who clearly don't match the descriptions will continue to apply. Very much a  women not Leaning In issue.

She twigged the words to experiment and found that soon as she removed all these crazy criteria, she was getting super qualified women, who were previously deterred by the recruiting messages. If Zoosk has outsourced this recruiting process, they would never found out about these capable talents. Thank goodness, someone like Beth noticed and watched out for women!

Put on my everyday Economist hat, I will say that it is very clear why companies ask for all these skills. It's their own wish list, and they are not afraid of deterring away extreme talents, as long as they get a good proportion of cookie cutter capable but just not that creative and hard-to-evaluate candidates. They'd rather settle with that, than taking too much time looking and evaluating what is hard to evaluate : creative talents. 

This is hard to understand for candidates. Often fine capable talents are deterred by sheer landslide rejection, and after a while it is not possible to build the confidence! For women, I will definitely say, read Lean In by Shery Sandberg.  For employer, I will repeat : be open-mind and actually recruit and meet people, give them a real deserving chance.


Wednesday, July 17, 2013

Hello Cucumber: An Introduction to Behavior Driven Development BDD with Cucumber

Background: I am no Cucumber expert, but had to learn it really insanely fast for a startup work, and understand the concepts. I thought I will give an overview, in case you land in my shoes and don't know where to begin.


  • Cucumber is a tool for Behavior Driven Development, commonly known as BDD
  • Cucumber has been popularly used in Rails as a testing Gem
  • It uses Rspec to run Test Driven Development, commonly known as TDD
  • Rspec is a popular Rails testing tool
  • You can run Cucumber and Rspec in command line, when developing a Rails app
  • Cucumber focuses on the features for example
    • Given I am on the homepage
    • And I am a login user
    • When I click on the signout button
    • Then I should be signed out successfully
  • Rspec is used more as a unit test, lower level more focused on the components like Controller / Model and the methods of controllers and models than features
    • it may test that the bank_sum method successfully display bank account total
    • or the controller will lead us to the right URL
  • But it's very important to use Rspec with Cucumber
  • Cucumber's features are linked to tests as well, with a little bit of regex, which stands for Regular Expression, so it will be really good to know it soon!
    • <#TODO Dilys to post an example here soon>
  • In Rails Cucumber can be used in conjunction with Factory Girl and Faker (which help you build dummy data sets called fixtures) to be feed into the controllers and models, methods that you have created. Guard,  another gem is also used sometimes. Michael Hartl's famous Rails tutorials covers Guard a bit. One of its functionality| is to do real time testing as the developer is changing the codes.

This should save you quite some reading time to know how Cucumber fits in the world! Hopefully it helps when you frantically start your career as a junior developer. 

Good ways to learn Cucumber as a beginner:
  • read the pre-written codes in your company's project if any exists. They will be in the features folder. The Cucumber gem has to be installed. Note: most testing files should exist in spec
  • read the books I am recommending below, depends on how much time you have
  • search the internet for examples, and watch demos, and actually note down the examples. Take notes, may be with Evernote:
    • Test for button clicking feature
    • Cucumber: Given.... And... When... Then... And...
    • Follow button method
    • Rspec : should have_link(....)
  • Otherwise, it will be tough to remember hybrid English and code syntax of both Rspec and Cucumber.
If you haven't gotten to know Rspec, I recommend you starting with this, and kill two builds with one stone! In fact it will teach you Behavior Driven Development and Test Driven Development too! Highly recommend!


Then you can start with recipes and examples. Examples are easy fast ways to learn. Especially as a developer


Or you can always start with the actual Cucumber book

React UI, UI UX, Reactstrap React Bootstrap

React UI MATERIAL  Install yarn add @material-ui/icons Reactstrap FORMS. Controlled Forms. Uncontrolled Forms.  Columns, grid