Edina, Minn. is home. I live in New York, N.Y.
Prior to New York, I lived in Spain from 2009 through 2012. While there, I became a fluent Spanish speaker, traveled a lot and became a web programmer.
Although nothing tops a long meal with good friends, I enjoy rock concerts and traveling.
Improving my tennis game is a priority.
Kirby Puckett's performance in Game 6 of the 1991 World Series is my standard of excellence.
Today was Nodebots Day all over the world.
After getting our feet wet, we aimed at a crude implementation of the classic game Bop It.
This was roughly the end result.
And here we are working with hardware — imagine, not just code, but stuff you can touch!
I primarily attended Nodebots Day because I like the Node community. Knowing that Rick Waldron, the author of the Johnny Five library, would be in attendance was important. Rick is extremely helpful and his attitude towards hardware hacking is first-rate.
NYC has a nice hub of Node developers and Nodebots Day was great to work through hardware hacking within a community I admire.
Admittedly, implementing a Bop It clone isn’t high on my to-do. Most of Arduino’s base capabilities seem very boring at surface level.
I went to Nodebots Day to improve my attitude about hardware hacking. I knew I couldn’t motivate myself in isolation to make little LEDs blink on and off.
It was fun.
It was productive.
And most importantly, I’m actually really energized about the really cool stuff that’s possible once diving into those little blinking lights.
I will continue hacking on hardware.
This weekend I was invited to Madrid to give a talk at Spain.js.
Thanks to all of the organizers for putting on a great conference at Spain.js 2013.
People are often what inspires us to be better.
The side conversations and relationships I’ve made at conferences have usually been some of the most eye-opening and important of my career.
Learning about other conferences, tips & tricks and more about speaking from Jakob — I hope we run into each other very soon.
Catching up with Israel and Enrique, two of the main organizers of the event. We met at LXJS 2012 in Lisbon. Undoubtedly that relationship is partially responsible for getting me out to Madrid in the first place — thanks buddies!!
Looking forward to seeing all these great people soon.
Thinking in terms of web services is interesting.
Web services allow me to think about using neat technology and solving problems usefully.
Contrast web services with web applications. For me, an application often ends up boiling down to a CRUD app and this is limiting. It’s limiting because web frameworks are so damn good at solving cruddy problems. While you can most absolutely innovate within these frameworks (that’s very fun), trying to re-implement base framework functionality feels like a poor use of time.
But with web services, the barebones is often all you need to build something truly useful. And then you can cherry-pick interesting technologies to create an interesting stack.
A simple service I’m thinking of right this very moment has me chomping at the bit to do some coding.
Today at Hacker School I had the privilege of spending an hour with AWS engineers; DevOps stuff is very intriguing to me.
Afterwards, I started thinking about a RESTful service, let’s call it Amerigo. Amerigo could receive commands via HTTP and then issue deploys, patches — really anything — to manage a product.
This is cool because it really simplifies deployment for an engineering team.
But it gets cooler when thinking about non-engineers. Imagine QA or Product people having a web interface that could hit Amerigo and manage deploys, toggle branches, etc. That’d be awesome for workflow!
Taking it to the radical next level: if Amerigo had some SMTP love baked in, we could deploy via email from our phones. Whoa!
Amerigo could be any tech stack you desired. It wouldn’t be doing anything intense by any means and could sit on a Small instance or (or Micro if you really wanted).
Since Amerigo is a pure service and not a CRUD app — we can also think about its data persistence in interesting ways. I’ve been dying to rationalize using LevelDB as the entire datastore for a project. It seems perfect here for logging what’s happening in the system and playing it back*, for instance.
Grouping a bunch of services together to create the “application” — in place of creating a single application — comes with operational and maintenance overhead, certainly.
However, services open up some really cool opportunities to do some interesting development.
And I like that.
*LevelDB is cooler than that use case, but it helps to have an idea that doesn’t get me thinking about whether or not the datastore is “right”.
This weekend I was in Atlanta with friends and family realizing it is hard to explain what I’m doing this summer.
Is it intensive coursework aimed at becoming a superior programmer? Is it a class after which I’ll have achieved some new skill?
I find my explanations leave me wondering: “Am I getting the most out of Hacker School?” I often answer that question pessimistically.
The thing is — at Hacker School, it’s much more open ended than any explanation can truly do it justice. This allows doubt and fear to creep in: if I can’t concisely boil down what I’m doing, I must be doing it wrong, right?!
This week Mel Chua is in residency. She’s arrived right on time. She’s here to talk about programming and how we learn to program. It’s refreshing.
She’s been pretty inspiring in the two talks I’ve attended, but my biggest takeaway is that my learning most probably won’t happen linearly.
My goal for the first third of Hacker School — the month of June — is to read, write and talk about C programming better than I could at the start of Hacker School. In two-and-a-half weeks I’ve built a web server and a key-value store.
But of course it doesn’t work that way! Those are projects written by savage programmers. These dinky little programs were written by me.
If I keep working hard, all of this stuff will keep adding up and at some undefined point in the future, I’ll hit my Eureka! moment. Ideally, it’ll be a better understanding of awesome projects like libuv and LevelDB. Not to write them myself.
I’m uncomfortable. I’m challenged. I’m right where I oughta be.
A side component of this first week at Hacker School has been feeling the need to read and write C code better.
Today we implemented the worst web server ever in C. There’s more to do with properly implementing select and other goodies, but it was a nice day’s worth of progress.
With the first week in the books, it’s exciting to feel like I am on the course towards achieving my goals for the summer.