Whether you’re just starting out as a developer or managing the tech stack for a rapidly-scaling startup, it can be hard to decide which tools, services and technologies are right for the job.
Thinkful is chatting with some of the brightest developers in the tech industry to learn about their favorite tools and how they keep their projects running smoothly.
First up: Benny Wong, Founder and CTO of Timehop:
Hi, Benny–tell us a little about Timehop.
Timehop is your personal time capsule–as an app. We take your tweets, Facebook posts, photos, check-ins and other social info and deliver you a daily reminder of what you posted on this day in history. Think of it as a Mario Kart ghost for the real world.
What are the dev tools that Timehop can’t live without?
The most important tools for Timehop are New Relic and Loggly. Without them, we’d be blind to a lot of what’s going on with our site and apps. Our users come to rely upon their daily morning time capsules, so we have to make sure to avoid downtime at all costs.
New Relic helps us monitor our app performance. It’s geared toward Ruby on Rails, and analyzes everything about what’s going on in your app–how many calls it makes, how much time it spends in particular part of codebase, which URLs are taking the longest to load, etc.
We used it at Gilt to help optimize our performance and avoid technical bottlenecks, and it’s been crucial in scaling Timehop. Without it, we’d have no idea how well they’re doing in terms of average performance or number of requests per minute–it would make for a lot of guess-work.
Loggly takes all of your logs from your web servers, background workers and databases and stores it in a searchable record so you can keep track of what’s happening on the back-end.
While it’s cool just to have your logs stored somewhere, it’s really, really helpful when you’re debugging. If an error occurs, you can look at the stack traces– the particular code path of the error–to help understand and correct things quickly. Loggly also lets you set up alerts for key events, such as tracking URLs that are timing out, so that gives you a better sense of how your back-end is performing.
What one tool do you find most useful in your own dev work?
Vim–a text editor. It’s been around for more than 20 years and it’s still much better than many of the other editors I’ve tried. Unfortunately, there’s a steep learning curve, but the speed with which I can produce code with Vim vastly outweighs the upfront costs. It helps me get whatever is in my head onto a computer more efficiently than anything else I’ve used.
What kind of engineering culture are you building at TImehop?
First and foremost, we want a team that can really dive in and be proud of the work that they do from day one. It’s important for our team members to take responsibility and own their projects, as we’re still fairly small. We need intellectually curious people who are willing to learn new languages and frameworks to get the job done. None of us had developed for iOS before we built our app, for example, but we learned a ton in the process.
What advice would you give to aspiring developers who are just diving into coding?
Avoid perfectionism. This is one thing a lot of people get hung up on when starting out. Once you learn a little, you want to do everything “right.” But that mentality can really get in the way of getting things done. The gap between building something and getting feedback is shrinking rapidly, so take advantage of the increasing ease of development and ship something as soon as you can–you can always improve on it.
Don’t be afraid of writing terrible code–we’ve all done it :)
Have a company to recommend for our next installment of Thinkful’s Dev Toolkit? Email firstname.lastname@example.org