What the Hack! Hardware hackathon discussion with Jeremy Foster

Thanks so much to Jeremy Foster from Microsoft for spending an hour with Intel to discuss the topic of hardware hackathons. We had a great exchange of ideas about the future of Internet of Things and the importance of DX for hardware and software developers!

Is React Native Cross-Platform Snake-Oil?

Cross platform native UI, you say?

I watched the video on React Native which hit the front page of Hacker News the other day and remain pretty skeptical about the promises being made.

Having built both native iOS and Android experiences (as well as cross-platform applications in Cordova / Phone Gap and Flex 4), I am not sold that the key problems preventing developers from producing a truly unified codebase are likely to ever be solved completely in a “Learn Once, Deploy Anywhere” manner…There will nearly always be some level of customization required, Developers and designers will nearly always need to have direct knowledge of each platform target.

The obsession with attempting to streamline native mobile development is well-placed…I fully understand the pain involved in trying to manage Android and iOS development simultaneously…However, it is unlikely that React Native is going to be a “magic bullet.”
[Read more…]

Programming Interview Mental Gym

This is the second part of my old study guide for programming interviews.

Programming interviews have two components. There is a “memorization of trivia from your first semester of Computer Science which you forgot about 4 years ago” component and then there is a mental exercise (white boarding) component which is basically about how efficiently your brain can solve problems with someone breathing down your neck judging your every move and clicking their pen the whole time.

The mental exercise preparation component involves sitting down 30 minutes a day with a pad of paper and writing out solutions to problems without the help of a compiler. You can basically watch tv and do it, it isn’t too bad. I have found, historically, I can go from incompetent to passable at the white boarding thing by spending about 3-5 days working through a few of these problems on a daily basis. For the record I am not all that talented at this but this practice works for me. Too hard? Do an easier one. Trust your brain to get “in shape” when you do these…it happens when you sleep, the next day you will be 20% smarter each time.

These interviews are about efficiency. The more you practice + sleep, the more efficient your brain gets. If you are going through an all day interview, if you are not efficient you will get tired and make mistakes towards the end.

[Read more…]

Programming Interview Study Guide (iOS, Android, Design Patterns, Algorithms)

This is the study guide I built myself over the course of interviewing for iOS and Android development roles over the years. Being a software developer, I figured “If I have to do this more than once, why not just write the guide once and never bother having to track this junk down ever again?” So I did. If you are actively interviewing, I recommend you create your own guide like this (using your own metaphors and wordings)…it will save you a lot of time over the years. Make sure to have sections on common trivia + sections on your domain + common whiteboard problems to practice.

A huge amount of disparate information about software development interviews is spread across multiple books and websites and that it’s purest form is a simple bulleted list which compresses all the most important information into 1/100th of the space. This is my attempt at arriving at that. When I was in full “interview mode,”  I had 100% of this in my head. Getting to that state takes weeks of preparation.

Studying is the act of compressing disparate information to make it more efficient to consume.

I especially like the code samples for tree traversals which I got from a YouTube video linked at the top. These are the most understandable algorithms and pretty easy to remember. A simple rearrangement of the internal methods switch from per-order to pre-order to post-order.

The most important thing you will ever do is to reword these (and other difficult) concepts in your own language using your own metaphors in your own voice. These are written in mine! No other technique has helped me memorize these concepts quite as effectively.
[Read more…]

How To Travel Like An Evangelist


Evangelist Lyfe

After joining Intel last April as a Developer Evangelist for the “Internet of Things,” I have done more cool stuff, been to more places and met more people  than I have in the last three years combined.

Mashery-style evangelism (heavy on collegiate hackathons via our product Hacker League) is a physical endeavor. We don’t stand around at tables…we circulate throughout large events, constantly helping students with technical problems. A casual measurement via FitBit indicated that I might average up to 20,000 steps per day when in “action travel mode.” Thus the need for a strategic approach to travel…

First things first: Laptop stickers


For evangelists, laptop stickers are a form of passport stamp e.g. “Oh, you were at MHacks too?”
[Read more…]