Started the final day at DBC with a bang. We have group check-ins every Friday. The idea behind these check-ins is to let other people know how you are doing. You get two minutes of full attention from a group of 12 or so people. Great chance to share a part of yourself in a totally safe setting. I felt cheated after the last two sessions. Too many people talking about programming and not about themselves. I started the session this morning by putting everyone on the spot and challenging them to share something real. The group responded and the check in turned into an amazing moment. Four people cried. That was not the goal mind you, just giving an idea of the level of emotional investment people brought today.
The hiring day event was intense. Two and a half with employers rotating every eight minutes was exhausting. Thought the format worked well - you can learn enough during eight minutes to know if you want to continue the conversation.
Day ended with a short graduation ceremony followed by merriment at Murphy’s Pub. Last time with all of us in a room together. Hard to think about that right now. Early in phase 1, Eno said Dev Bootcamp felt like the only life he’d ever known and I shared his sentiment. Now, this singular, all consuming experience is over. What next, other than the obvious?
I can’t wait to learn more things. It’s who I am and it’s what I do. Looking forward to reading Jesse Storimer’s Working With Unix Processes and Working With TCP Sockets, starting the Land of Lisp, and picking up a client side MVC frame work or three. I haven’t knocked out a problem on Project Euler in over two months! Also going to dig in to a few side projects. Will necessarily get some rest and cut back on the intensity.
I will continue to blog, but if you are looking for another 62 days in a row (counting from zero!), you may come away disappointed :’).
Hope you enjoyed the ride.
Not sure how much more dynamic one can look whilst discussing algorithms :)
We presented our final project, What’s the Plan?, this afternoon in front of the other boots. We got a round of applause afterwards and, for whatever reason, I allowed myself to enjoy it. I typically refrained from enjoying wins or taking much satisfaction in my work for fear it would breed complacency, but that’s no way to live. I choose to believe it is possible to be proud of your work, yet always hunger to improve yourself.
About the app - What’s The Plan? is a day planning app. It uses the Yelp API and Google Maps to help you find activities. Then it takes those activities, and it runs some crazy algorithms to figure our which ones group well together to cut down on your travel time. Finally, you get a map with your itinerary. I think it’s kind of useful! Alas, we are bit too late to apply for YC’s summer cohort :).
I should probably be exhausted right now, but I feel weightless and even radiant. Good place to be with hiring day tomorrow.
We made it. The final product looks great and does something useful. Will follow up with more details after we present tomorrow. It is my no means perfect, but I am damn proud of what we accomplished in a week. In light of where we were nine weeks ago, it seems impossible.
Excited about the future. The learning curve went vertical over the past couple of weeks. God willing, I’ll keep it that way.
“Let’s argue about whether Haskell or Clojure is better while somebody else ships products using PHP and duct tape.” —@agentdero
We ship tomorrow evening.
Struggling to find something positive to say right now. Dev Bootcamp is, at a fundamental level, about trading time for health. Mentally exhausted to the point where it is almost impossible to work. The only thing that will solve this is the one thing I can’t get right now - rest.
With the MVP in the bag, Nigel and I set about using Sidekiq to add asynchronous background processing to our app. We targeted two areas for background processing:
1. Calls to the Geocoder API
2. The route optimization algorithm
Some really interesting issues came up. Making route optimization alone asynchronous was borderline trivial. The trick comes in when moving the Geocoder API calls to the background. Sidekiq workers create new threads. Combine this with the fact that everything runs asynchronously, and you have a problem.
All of the calls to the Geocoder API effectively happen in parallel. Sounds neat in theory, but in practice, the API chokes on simultaneous requests and some of the jobs end up failing. Route optimization effectively happened in parallel with the API calls, so this also bombed looking for fields not yet populated in the database. It appears we actually need synchronous background processing, but only within the scope of a single form submission. What an interesting problem! Areas we are exploring:
Friday fast approaches.
This program only works because people have no concept of what they are signing up for when they apply. Not sure what to make of the overall experience, but when I figure it out, I’ll let you know. Will try to keep it under 50,000 words.
Spent the day working with Justin to specialize our TSP implementation. Very interesting work! Thinking through and testing all of the edge cases was exhausting, but I am confident this will pay dividends the moment we start refactoring or extending functionality.
On deck: Background processing and front end work. Love how things are coming together. Rock on.
Hell of a day here at DBC. We started out by pitching ideas for group projects then voting for them in near-real time. Getting up in front of the room to pitch an idea was a great experience independent of the outcome (thumbs down in this case). Wound up on my first choice of projects and it’s something I am really excited about. Only thing I will reveal: It involves an unusual implementation of the traveling salesman problem.
Towards the end of lunchtime, I found it it would be the last day for my wife’s old poodle. Talking to her, feeling what she was going through, and at the same time not being able to be there for her was absolutely brutal. Probably sobbed for 10 minutes in the hallway before I could compose myself, then somehow jumped right back into an extremely productive four hour coding session. Nothing could be more quintessentially Dev Bootcamp.
This evening featured an excellent talk from the founders of Thunderbolt Labs. They made a compelling case for working at a consultancy if you can swing it. I am rather torn on the idea of working for a consultancy after I finish DBC. I’ve heard many people say it’s the best way to learn quickly, and if there is one thing I love (other than my wife), it’s learning tons of stuff. At the same time, I have a very negative view of consultancies based on my time working for Booz and IBM. The ThoughBots and Pivotals also seem to hire into apprenticeships instead of roles in the regular staff. These apprenticeships pay almost nothing in the most expensive housing market in the country and come with no promise of a job. The risk compared to just going to work seems sort of insane. Perhaps it is just the ego of someone 10 years removed from grad school balking at the idea of being an intern. But I don’t think so.