The First Day
Over six months ago, I joined InsightSquared as a co-op on the Foxtrot (front-end) team. When I came into my first day of work, I had very little idea of what to expect. Our application is built on the Django framework, and I’d only ever used Python for personal projects; in fact, my only professional development experience had been in the C#/.NET world. I had never even developed entirely via the command line before.
At my previous employer, it took me nearly a week to get acclimated enough to produce my first useful code. Instead, by 1:30 on my first day, I had pushed my first bug fix live to production.
Zero to 60 in Under Five Days
In my first week, I picked up a challenging and consequential task: to develop an entirely new report in our application. Almost to my amazement, I completed it (with some guidance of course) just two days later.
The ease with which I was able to get up to speed and deliver a major new feature is a testament to the engineering prowess at InsightSquared. Specifically, the well-designed, modular architecture allows for such rapid development: all screens are independent, meaning that modifications to one screen do not change others. In addition, our codebase is structured so that all of the code required for each screen is contained in a single file, and these screen files are laid out in a well-designed directory hierarchy. This allowed me to easily find and fix my first bug; in contrast, as a newcomer on previous projects, I had to search for hours just to determine where the code responsible was located.
Interesting engineering work aside, what has made working at InsightSquared so rewarding and enjoyable for me is the atmosphere of trust and collaboration. I always felt confident tackling larger projects, knowing that if I got too stuck, I could ask any of my fellow team members for a hand. If I didn’t understand exactly what a particular project entailed, I could just turn around and ask our product manager for details. InsightSquared isn’t an office where people go to work by themselves from nine to five; it’s a place where we build, collaborate, and learn from each other. And engineers do much more than just code: we present our ideas, discuss solutions to problems, estimate the difficulty of projects, and show off our work to the company on a regular basis. If you’d like more insight into how we develop, see The IS² Process: How We Get Sh*t Done.
This atmosphere of collaboration isn’t just limited to the engineering team: the whole company has a welcoming culture fostered by transparency and responsive leadership. During my time as a co-op, I never felt that I was anything but a full-fledged engineer. At regular all-hands meetings, I gained valuable insight into our mission, goals, and progress. There’s no leadership from an on-high here: I never felt uncomfortable asking questions, or giving opinions, that I thought would be valuable. This organizational informality has results, too: when we spend less time in rigid, formal meetings and more time working together, we get more done!
Another reason I’ve loved working at InsightSquared is that we learn quickly and by doing. We don’t shy away from putting ourselves in new situations. Case in point: I became familiar with SCRUM and agile development just by participating in our regular stand-ups and estimation meetings. This also applies to the technical side of our work: I learned Django, good Python practices, SQL, and even command line tools (development *) simply by working on our product.
With this fast-paced learning, unfortunately, sometimes come mistakes. At InsightSquared, we do code reviews for every change, no matter how minor, and we have developed an extensive suite of in-house testing tools to catch errors before they reach production. Before a build is released, our automated build machine checks every screen, flagging everything from syntax errors to subtle unintended data changes. We even have a tool that compares screens to verify that the displayed metrics correspond, or foot, with each other. Displaying accurate information to our customers is InsightSquared’s highest priority – our rigorous testing allows us to try out new ideas and innovate rapidly without compromising the quality of our product.
The Fun Stuff: Bikes, Beer, & More
No discussion of my InsightSquared experience would be complete without some words on its awesome and energetic culture. The team has created a company that lets us all explore our passions – beer, ping-pong, mountain climbing, board games, cooking – and each of us, whether we’re full-time, co-op, or intern, has the opportunity to leave his or her mark on the company. One of our summer interns, Ben Shulman-Reed, put in an extra effort to finally get recycling bins and pickup at the office; I’ve personally enjoyed promoting bicycling by compiling a list of tools, encouraging our addition of bicycle parking racks, and helping coworkers with any and all bike issues. Ingrained in our company mission is our goal to “build a place where we’d rather be than anywhere else,” and so the office has become much more than place to do work: it’s where we play games, drink beer, share music, and have a good time! We have a ping-pong table, a kegerator with two beers on tap at all times, a regular weekly board game night, two Xbox 360s, and even a home-built arcade cabinet full of classic games. On Fridays, it’s not unusual to stay until eight or nine, simply enjoying everything that this atmosphere has to offer.
Looking back on my six months, I cannot imagine having a broader, more fulfilling, or more educational co-op experience. I’ve contributed to a company I love, I’ve learned an incredible amount, and I enjoyed every day that I spent at the office. I strongly encourage anyone seeking a dynamic and fast-paced co-op to consider InsightSquared. If this place we’ve built sounds like somewhere you’d like to work, please come speak to us!
Co-Op vs. Cofounder