Blog

  • What Would Really Get Me To Join Your Startup

    Full Disclosure: I’m happy where I’m at because I’m getting all my needs met right now.

    I’m a pretty darned good coder. I’m not the best but I’m not the worst either. I’ve taken a few apps from the small stage to the big stage when it was hard to do so. Now 10 million users is the new million. If you give me a bug list of 200 or so bugs, I am pretty sure I can bring down that list to zero in 2 to 3 months. If you have features to build, you can be sure that they will be BDD’d / TDD’d if you’re willing to work with me on that.

    I’m not the best, but definitely good enough to get 100 calls a day if I were to announce my availability.

    Also, right now, I’m focused more on my photography and helping out hackathons by mentoring new coders and telling them about how different tools and APIs can help them.

    What do *you* need to do to get me to join your startup?

    First off, I’m INFP and there were many times where I could have made money but passed on it simply because the technology wasn’t cool enough. You can quote me a number that’s high, but it isn’t worth it if the technology isn’t cool.

    Ok, enough talk. Here’s the list:

    1. I’ve seen your team hanging out either partying or doing group activities together. If you can keep a crew of people together for what seems like 24/7, I’m down. It also means that there’s more than just money going on.

    2. Money is not important but showing that you aren’t cheap and take payday seriously is. I’m surprised that there are still companies with millions in the bank that pay their employees late or nickle and dime them. Great companies have policy of the 1st or the Friday before the 1st if it falls on the weekend, and the 15th or the Friday before the 15th.

    3. Career pathing – this might seem like a ploy when hands change so fast in the tech industry, but I would rather work with a company with a clear idea of what my success will look like than not. Most folks manage by sink or swim, or micro-managing. Career pathing when done right is the middle road of these.

    That’s pretty much it, and if you look at the companies that have lured talent away, they hold out the promise of one of these things.

  • What the Next Rails Will Look Like

    History repeats itself, yet it is obscure to the very people making it: innovators and inventors. Ruby on Rails was an invention that hit the scene in July of 2004 as a revelation. There was a video that promised that you could make a blog in less than 15 minutes that left many speechless.

    When Rails hit the seen, my reaction was:

    1. This is something that we should have been doing all along.

    Books like The Pragmatic Programmer had been preaching what Rails was doing since the 1990s. Software engineers would half-heartedly code the “Rails ways” but never got around to building something like Rails.

    2. I need less people on my web team.

    It seemed that you could work with just a designer and get lots done. I didn’t have to go to IT as much as database issues. I could use generators and save hours of time.

    3. That startup that seemed impossible now seems within reach.

    I remember a young Chris Wanstrath at a Ruby meetup I hosted saying with a tired look in his face that he wished he was working in Ruby. He was at CNET / CBS Interactive at the time. He’s built the best tool for developers out there and I use github.com every day.

    That’s the past, now what’s the future?

    The tough question to ask is, “What should we, as an industry, be doing that we are not?” The Rails philosophy was loudly yelling, “We aren’t doing DRY.”

    It seems that there are 4 things that need to be done in the “next” Rails:

    1. Mobile ready out of the box.

    We should all be using CSS media queries and have the ability to support the mobile web. There are so many missed opportunities to retain users simply because mobile is still shockingly ignored. Mobile databases can even be integrated for a better application experience; visit Couchbase for more information and options.

    2. Social Sharing out of the box.

    This basically means that there has to be a standard for creating an API for APIs.

    3. The backend will just look like an API.

    Say good bye to complex SQL joins.

    4. Designing tools with deep integration into the cloud.

    Languages have been designed for CPUs in non-networked environments. This means that at a core-level, the next Rails will be SSL capable, e-commerce capable and ready to scale out of the box.  Hints of this can be seen in Erlang.

  • The Worst Excuse For Not Iterating Quickly: It will break production

    I’ve got news for you. Production is already broken. There are already 300 bugs and 100,000 or so users with a shitty experience that are considered “edge cases.”

    By not allowing me root access, or the complete access I need to get stuff done;
    by putting in a process that is merely there for the comfort of managers;
    by not understanding that I’m trading code quality for quality UX;
    you’ve doomed our project to mediocrity.

    Ya, you insist that we have to have a process in place because we can’t afford to “break things” anymore. Has it occurred to you that we can’t can’t afford to break things so that we can learn and work faster and better?

    When you make us work long weekends and put us through death marches, you are merely reducing developer productivity.

  • A week without coffee and Facebook

    I’ve quit 2 things that I really love, coffee and Facebook.

    I thought about my life and how much my imagination outstrips my pocketbook. What I’ve found is that I’ve gotta stop giving Mark my data.

    Here’s what I learned about quitting Facebook, and coffee.

    • There’s a bit of a hangover the first few days.
    • On Facebook some folks thought I killed myself or was in jail.
    • Unlike coffee, Facebook has ever more subtle ways of tempting you back.

    Here’s how Facebook tempts you back:

    • E-mails saying that your friends miss you. And they highlight “friends” you only met once at a conference in 2006.
    • If you subscribed to mobile updates, you are not unsubscribed. You still get status updates. You have to shut this off.
    • In real life, very few friends will tolerate having to send you a “special invite,” to events.

    The last bit is the real temptation here, and the real crux of the matter. Do you really want to not get invited to parties anymore. If you are a 23 year old partier who gets 20 to 30 invites per week, this is an issue. If you are wanting to purify yourself in a spiritual wilderness called an urban city of 1.2 million; ya – just cut the facebook.

    Personally, I’ve found the benefits to be:

    • Better and stable mood. I don’t get trolled in IRL as much as in Facebook.
    • I don’t have to see what I don’t have all the time.
    • I use the app called “Phone” on my smartphone more.
    • I don’t worry about having to get my next fix.
  • Check Out My New Video Project: GeekySF.com

    Hey Folks,

    Please check out my new video project called “GeekySF.” I highlight cool events to check out for geeks.

    Episode 1 is available exclusively on Via.me.

    Cheers, Barce

  • In Twitter No One Can Hear You Scream

    I’ve been wondering if Twitter is useful for mainstream people now that it has gone mainstream.

    I used bufferapp on Friday and as an experiment posted a 2 pleas for help. Bufferapp calculates the most opportune times for sending tweets.

    It’s been great for driving traffic to my blog but not so great with actual engagement.

    Here are the results:

    0 Retweets
    0 Replies
    24 clicks

    The tagline for the scifi film, Aliens, was “In Space No One Can Hear You Scream.” Twitter is very much like space.

  • 3 Signs That Your Job Is Going To Be Outsourced

    Is my job going to be outsourced?

    1. Your job is something that the cool kids aren’t doing.

    It’s no longer important to just keep your skills up to date. You actually have to be innovative and one step or 2 ahead of the curve.

    Basically the curve looks like this: fortune 500 companies are 5 – 10 years behind; companies of 100 – 1000 people are 2 – 3 years behind; and small startups that fail lots and have few successes are pushing the envelope. If your job isn’t something that startups are doing, there’s a good chance they’ll outsource it – the more global the company, the better chances.

    2. It’s getting automated or easy for non-experts to do.

    This is nuts but sometimes it’s cheaper for a company to hire labor across the seas, such as through Agence d’Intérim Européenne, than to spend money on automation.

    A good example of this is folks who use Mechanical Turk. Also, Ruby on Rails is getting easier to do so you’ve got more folks just outsourcing it.

    I predict that most technologies will move away from MVC as a design pattern and just focus on the Model (big data), or just Views (jquery). The controller will be supplanted by APIs and will involving nothing more than cobbling different APIs together. If there’s any “controller” work left, it will be cheaply outsourced.

    3. You get a promotion to manage a team offshore.

    You get a promotion. There’s a bump in pay, or maybe they just give you a new title. Day after day the team takes on more and more of your former responsibilities. Eventually you give them access to servers you used to control. Then one day you are locked out and shown the door.

    Don’t let these good economic times for techies fool you. The cold hard logic of Capitalism hasn’t disappeared just because you are making more money than you’ve imagined. A serious correction is headed our way. When? I’m guessing 4 years after the Facebook IPO.

    To prepare for it think of things you possibly wouldn’t want to outsource: data mining of sensitve information (financials, hospital records), design where only the minimal art direction can be given, sales engineering.

    “Winter is coming.”

  • Building PHP with nginx, and fast-cgi on EC2

    Here’s my quick and dirty guide to building PHP with nginx and fast-cgi on EC2:

    yum install mysqld
    yum install mysql
    yum install mysql-server
    yum install mysql-devel
    service mysqld start
    /usr/bin/mysqladmin -u root password 'your_password'
    /usr/bin/mysqld_safe &
    
    yum install php-fpm php-cli php-mysql php-gd php-imap php-ldap php-odbc php-pear
     php-xml php-xmlrpc php-eaccelerator php-magickwand php-magpierss php-mbstring p
    hp-mcrypt php-mssql php-shout php-snmp php-soap php-tidy
    
    yum install spawn-fcgi
    # Next, download spawn-fcgi init.d shell script:
    wget http://bash.cyberciti.biz/dl/419.sh.zip
    unzip 419.sh.zip
    mv 419.sh /etc/init.d/php_cgi
    chmod +x /etc/init.d/php_cgi
    # Start php app server, enter:
    /etc/init.d/php_cgi start
    
    # check to see if it's running
    netstat -tulpn | grep :9000
    

    Your /etc/nginx/nginx.conf file should look like this:
    https://gist.github.com/1961501

  • Rails on Nginx with Passenger on Mac OS X Lion

    This is a quick and dirty guide to getting Ruby on Rails working on Nginx with Passenger on Mac OS X Lion:

    brew install nginx
    gem install passenger
    cd ~/Library/Caches/Homebrew/
    tar zxvf nginx-*.tar.gz 
    cd nginx-*
    passenger-install-nginx-module 
    

    Now you to edit this file:

    /usr/local/Cellar/nginx/1.0.11/conf/nginx.conf
    

    Make sure there’s something like the stuff below:

      server {
            listen       8080;
            server_name  localhost;
    
            root /Users/me/repos/my_awesome_rails_app/public
    
            rails_env development;
            passenger_enabled on;
    
            charset utf-8;
      }
    
    
    nginx
    lynx http://localhost:8080
    

    Guides Online:

    http://mrjaba.posterous.com/rails-31-asset-pipeline-with-nginx-and-passen

    http://samsoff.es/posts/running-rails-local-development-with-nginx-postgres-and-passenger-with-homebrew

  • What it’s like to sign up for Twitter in 2012?

    I just signed up for a twitter account that I am going to use for giving bits of Buddhist wisdom for coders. The twitter account is @BuddhaCoder.

    2007 was the year that Twitter made a huge splash at SxSW. It was the year that Facebook threw an awesome party.

    I thought Twitter was so cool when when Karina Longworth followed me. Here’s a smart, geeky, beautiful film critic following me on Twitter and it was so awesome to meet her at that SxSW in 2007.

    It’s now 2012. I’m in LA moving out of my apartment. I’ve wondered about how life was feeling stale. Where could I find and give inspiration? I created BuddhaCoder on Twitter, and when you sign up for Twitter this is what happens:

    1. Sign-up is optimized with just name, email and password.
    2. You are asked to follow a bunch of celebrities in different categories.
    3. You are asked to have Twitter search through your contacts to find friends, but we know what that really means. *cough* Path

    Once this is all done you see the tweets of folks you’ve followed.

    Who follows you back or @ replies you?

    Spammers.

    The magic of meeting a Karina is gone.

    Here is how I’d fix it:
    1. Create Twitter ambassadors who reach out to folks as they join. Someone like Calvin Lee (@mayhemstudios) would be great for this, or Sarah Austin of @pop17. 3000 or so ambassadors that get special badges would be more than enough to handle the onslaught of 300k new users per day.

    2. Pool anything spammy into a job queue for approval if it is directed at a new user. This will require something extensive in the Natural Language Processing realm that Jacob Perkins of Stream Hacker would know about.