My focus in an engineering org is to increase the quality and health of the codebase. Nobody wants to work in a code base infested by monolithic legacy files. In my time working with enterprise services I have experienced many different stages of code health. At their biggest, companies suffer from code rot severe enough to drive engineers out of their jobs. Code rot can be caused by multiple factors, but more often than not it is an effect of technical debt.

The first question I get from management is, what is technical debt? Do you mean bugs?


Ok… do you mean an unfinished feature?


Is it what made the government shut down?

No.. wait, what?

To be honest, there are as many definitions of technical debt as there are engineers in the world. I’ll present a few from the more prolific coders.

From Martin Fowler:

To summarize, it is a debt that you incur everytime you avoid doing the right thing (like refactoring, removing duplication/redundancy) letting the code quality deteriorate over time. As with financial debt, it is the easy thing to do in the short term.. however over time, the interest you pay on this debt is humongous – the code quality deteriorates over time to a point where a rewrite of the app is more feasible than maintaining or changing it. (So the question is whether you want to pay a little now (fixing the tiny issues) or pay lots more after N months (by which time the code has turned into Jurassic Park II).

From Robert C. Martin:

…the engineering trade-off’s that software developers and business stakeholders must often make in order to meet schedules and customer expectations. In short, you may need to use suboptimal designs in the short term, because the schedule does not allow longer term designs to be used.

And from the alleged inventor of the term, Ward Cunningham:

Shipping first-time code is like going into debt. A little debt speeds development so long as it is paid back promptly with a rewrite. Objects make the cost of this transaction tolerable. The danger occurs when the debt is not repaid. Every minute spent on not-quite-right code counts as interest on that debt. Entire engineering organizations can be brought to a stand-still under the debt load of an unconsolidated implementation, object-oriented or otherwise.

So you can think of technical debt as a response to business pressures, or you can think of technical debt as a sign of lazy coders. But whatever you label it as, technical debt has the ability to cripple a company.

How do I find my debt?

Often times the engineer dealing with technical debt isn’t the one who created it. If they were, they would know where it is. That being said, there are two ways to find technical debt: look for it, or wait until it smacks you in the face.

Looking for technical debt begins with getting to know the code base and those who work on it. When I started on the Platform API team at Box, I had 1:1s with every engineer, and I asked them what their pain points were. I found out what areas of code were untested, what areas were due for refactoring, and what areas were suffering from being tightly coupled with other components.

If you don’t find technical debt, don’t worry. It’ll make sure you know it’s there. It will probably wait until 4am on a Wednesday when all of your users are locked out of their accounts, or while onboarding a new client your friendly technical debt will say “Hello!” with a constant stream of 500 error codes.

That being said, another logical place to look for technical debt is in the past. Seeing as how your team has been disciplined in its use of bug tracking and postmortem reporting, you should have plenty of data to look through. Root cause, ask the five why’s, and find where in the code the issues originated, and what about your processes prevented you from detecting it early on. This is the difference between putting a band-aid on a problem, and cauterizing the wound.

That’s nice and all but I don’t really have time for that

Of course, business needs are important. Without a finished product, there’s no way to keep the kool-aid kegerator in the break room on. Finding a way to integrate the cataloguing and eventual fixing of technical debt is more of an art than a science. Just remember that technical debt is a loan, and it gets worse with time. The worst feeling is when you realize that a project came in two months after the deadline because nobody was picking up the proverbial “garbage on the ground”.

If you can successfully balance your technical debt, the long term effects will be very fortunate for your engineering org. And you can brag that unlike the federal government, you were able to keep the lights on in the office.

Sorry for the delay, but as promised, I have returned! Julie and I have settled in nicely in San Francisco, living downtown for a while as we decide on a more permanent locale.

Pocket FMA for Android:

If you remember my post from last Boston Music Hack Day, my good friend Jeremy Sawruk and I wrote a streaming radio web app for the Free Music Archive. The FMA is close to me as I’m a firm believer in the copyleft movement, and even better, it’s in my home state of New Jersey.

Well I had a blast working on the app for them, but neither Jeremy nor I had the time to continue development on the project. My senior year was in full swing, and his work stack wasn’t shrinking. I had a blast working on the app with the help of Jason Sigal, FMA Host and Directing Manager, and wanted to keep the project alive.

Over the past few months I’ve been working on learning new technologies that I haven’t worked with before. Being a new college graduate I find it is important to experience a little bit of everything before settling into a long term position. I’ve taken quite a liking to Android development after writing a simple calculator app. At the point it hit me- let’s bring the FMA to your phone.

The idea is this- I will open source the app as soon as I have a working prototype (which I’m working on as I write this post). It will be a web radio app with an emphasis on music discovery. It will be written in Java on the Android SDK, using the FMA and EchoNest API’s. This project is currently unofficial, but I plan on working closely with Jason to make sure it conforms to the FMA’s needs.

What Else:

Seeing as how I can never only have one thing going on at the same time, I’ll be updating this website along with my portfolio materials to include some new projects and older ones that slipped through the cracks. I’ll also be gearing up for another year of Together fest- really exciting things in store!

Check back soon for more updates. If you’re interested in working on the FMA radio app drop a line in the comments!

Officially my all-time favorite picture of myself. Ever.

Dear Friends,

As I wrote in my 2011 recap post, 2012 is going to be a big year for me- and it’s off to a magnificent start. The past few months have been full of friends, adventures, music, achievements, projects, stress, work, ideas, struggles, and completely void of sleep. Luckily I have a reason to celebrate (still no time to do it though). Tomorrow I’ll be graduating from Northeastern with a dual BS in Computer Science and Music Technology, and exactly one month later I’ll start working at Pioneers of The Inevitable (makers of Songbird) in San Francisco. Everything is going to change very, very fast, so sorry if you don’t hear from me for a little while. I promise I’ll be back soon with something even better🙂



As Daytime Coordinator, I’ve dedicated the past 6 months of my life to Together Boston, New Englands largest Art, Music, and Technology festival. I was able to have a huge impact on the festival experience, and with the help from the steering committee, promo team, and various volunteers, we’ve paved the way for amazing things to come. Since this festival has kept me too busy to update this blog, I feel that I owe my readers a recap of what I’ve been up to. Without any further ado…

Together 2012: 7 Days of Art, Music, and Technology

Sunday/Monday: The Hack Together

This year, Together hosted the first ever Hack Together at Artisan’s Asylum in Somerville. Having participated in numerous coding hack days, I thought an installation building event would be a new take on a classic event. We were able to tie the three themes of art, music, and technology together with this event. Participants were given 24 hours to build an installation that would then be placed in various venues throughout the week. The winner, Kedaar Kumar, built a Metatron’s cube out of balsa wood and EL wire that lit up in reaction to music.

Photo Credit Nick Minieri

Kedaar’s work was shown at Feed Me, WHIRL, the Get Together, and it sat next to Photek in the DJ booth at Machine. I had a great time with this event, and it will surely be a staple at the next Together festival. I know we’ll be looking into holding this event more than just once a year, so stay tuned!


Dig Boston Preview

Shutter Story Event Coverage

Tuesday: Fun With Music Data

Paul Lamere, of the Echo Nest, kicked off the daytime events by giving a talk on music analytics at the Together Center. Many of the festival participants are quite knowledgable about music, but few know about the new technologies regarding Music Information Retrieval. Paul’s talk gave an interesting and amusing look into the power of MIR and analytics, by comparing  dedication levels in fan bases and determining degrees of separation between artists. In addition to being entertaining and educational, Paul’s talk demonstrated the level of innovation going on in our local communities, a presence of technological advances in boston/cambridge that will further cement the cities as a world center of art, music, and technology.


Dig Boston Preview

Wednesday: Technology Panels

Wednesday saw the first round of panels. In the morning, we had the Patently Stupid discussion on copyright/patent law. The panelists included James O’Keefe of the MA Pirate Party, David Herlihy of Northeastern University, Mike Weakley of Discmakers, Adam Jackson of Red Hat, and was moderated by Andy Sellars of the Citizen Media Law Project and the Berkman Center. The debate on the future of intellectual property law was intense, and everyone brought a unique view to the discussion. It pleased me to have the panels start off with a highly intellectual conversation. While much of Together involves letting loose and enjoying ones self, we are here to provide a forward thinking environment looking to positively impact the entertainment industry through conversation about hotbed issues.

Speaking of debates, the afternoon panel, titled Needles Vs. Buttons, brought together some of the top regional DJ’s hailing from NY, MA, and VT to discuss the ongoing war between digital and analogue performance mediums. Joe Nice, Bamboora, Geoff White, Nick Concklin and Dev/Null participated in the debate moderated by Together’s Creative Director, David Day. It was awesome to see such a legendary lineup of musicians all on the same stage, and to hear their perspectives on the subject.

Needles Vs. Buttons Panel

Thursday: Art Panels

Thursday saw two panels focusing on digital art mediums and the life of a starving artist, titled The New Canvas and Beyond Ramen, respectively. The first panel featured Nick Gillian and Ben Houge of the MIT Media Lab, Matt Boch of Harmonix, Dennis Miller and Terrence Masson of Northeastern University, and local artist Joey Asal. George Fifield of Boston CyberArts moderated the discussion, which covered topics including ways that music and animation can be composed in parallel and how the recent developments in firmware allow for more advanced multi-sensory experiences.

The second panel, Beyond Ramen, discussed ways to thrive as an artist. The discussion was moderated by Together’s Art Advisor Adrienne Debigare, and included Brian Kane, Ben CantilNick Colangelo and Maria Rice.

I think the art panels were an excellent addition to this years festival, and I look forward to seeing what new topics we come up with for next year.

Friday: Music Panels

The Friday panels were a crazy, eclectic display of Together’s true reach. The morning started with the Boston EDM discussion, with Cambridge City Councillor Ken Reeves, Travis Mcready of the Kendall Square Association, Anna Carver of Celebrate the Startup, Erin Anderson of Go Local Boston, Together’s own David Day, and local celebrity Akrobatik. Malia Lazu, Director of the Future Boston Alliance, led the discussion about how Boston can embrace electronic music, digital art, and technology startups to further cement the city as a world center of modern culture. Many good points came out of the discussion, and we hope it will not only make way for bigger and better opportunities for the Together Festival, but for the city as a whole.

Photo Credit Nick Minieri

The afternoon panel featured local startup owners and employees giving advice to those who are looking to work at our start their own business. War Stories from the Startup Front was moderated by my friend Brian Whitman of the Echo Nest, and featured Damien Smith of Yelp, Nooka Jones of Percussion Lab, Nadeem Mazen of Danger!Awesome, Trish Fontanilla of Vsnap, Scott Bailey of MassChallenge and Jay Neely of Barcamp Boston. It was wonderful having such a diverse group of professionals on the same panel, and I look forward to finding more ways to incorporate small businesses in future Together events.

The third and final panel, titled Investigating the “Post-Geographic”,  discussed music without borders. DJ’s Ripley, Poirier and Chief Boima joined Jesse Kaminsky of WMBR and Max Pearl of Cluster Mag to discuss global bass music, and the politics surrounding it. The discussion was moderated by Wayne Marshall, and was organized by our good friends at Pico Picante.

All in all, the panels this year were a huge success. Last year, they weren’t well thought out, and were poorly attended. I want to thank the Together 2012 steering committee for all the help they provided, and the promo team for really getting the word out. I’m proud of the work we did, and very grateful to all the panelists who shared their time and views with us on topics that are very important to our community. I’ve already got a bunch of ideas swimming in my head for next year, and if you have any thoughts feel free to leave them in the comments below.

Saturday: Joe Paradiso and WHIRL

On Saturday, Together teamed up with the MIT Museum to put a spotlight on the amazing work of Joe Paradiso. A local tech hero, Joe’s work with the Media Lab has had a lasting impact on the world of physical computing through multi-sensory networks. Recently, Joe installed a massive modular synthesizer that he built between 1975-85. The synth plays itself, and is being streamed online. The museum was packed with attendees, eager to hear about Joe’s experience and to see his creation. This was a great experience to bring a crowd of people to Together who haven’t been involved in previous years. It also opened the eyes of many of our fans to how electronic music is made. I look forward to seeing what comes of our relationship with MIT in future years.

Photo credit Nick Minieri

After leaving the MIT Museum and stopping by the Get Together to pick up a few records, I headed over to Machine to help set up WHIRL. Curated by my good friends Kawan Virdee and Joey Asal, WHIRL is a party like none other. It begins by perusing through the many installations put together by local artists- lights that react to music, a digital etch-a-sketch, laser harp, film art, even a real life android! As the night progresses, Kawan and Joey- also known as PC//MM- weave mystical sounds throughout the room, generated by their massive array of samplers, synths, and processing units. WHIRL was amazing, and keep your eyes open for the next one- it will be soon.

Photo credit Nick Minieri


HOLY CRAP I NEED SLEEP. But really, I had an amazing time this year working with the Together family. They’ll never know the impact this event had on me, as someone who is more used to working in small groups on non-mainstream projects. The daytime events went off without a hitch, and again I would like to thank everyone who made this possible. Next year will be big, and if you want to get involved or just keep an eye on what’s going on, check out Together on facebook and twitter, or at

But really, I need sleep. I won’t get any, of course, because I’ll be heading out to CA in a few days for a week of interviews. Now that Together is over, real life is back on. The next blog post will most likely reveal where I will be after I graduate from Northeastern next month! But regardless of where I live, I will remain a part of the Together family. 2013 is going to be a huge year for the festival, so get ready!

Special Thanks Section::

Thank you to: Alex Maniatis, David Day, Gareth Middlebrook, Cole Goughary, Polina Volchek, Joe Grafton, Koren Bernardi, Dan Hogan, Julie Vera, Charles Mazzola, Joanna Di Tullio, Corina Hernandez, Commandah Panda, Jonny Baruc, Vicky Cai, Angela Bray, Adrienne Debigare, Artisan’s Asylum, all the panelists, speakers, artists, DJs, movers and shakers that were involved in these events, and the rest of the Together 2012 family. Also, thanks Mom and Dad, sorry about being MIA the past six months, I’ll call you soon!

L-R: Angela Bray, Julie Vera, Me, Commanda Panda. Photo credit Nick Minieri.

❤ Together!

The Toscanini Gestural Control Interface was a big project for me, and involved a lot of heavy coding in Max/MSP. At the time user experience was important, but still secondary to working algorithms. At this time my partner (Kyle Montag) and I are beginning a user experience overhaul, which will include the following steps:

  1. Improve the UI.
    The minimalist modular UI is useful for MSP hackers, but inefficient for musicians who are unfamiliar with MSP programming. We aim to enhance the UI by adding a better control system and a more user friendly control flow.
  2. Expand the documentation.
    The documentation for Toscanini is severely lacking. This is ok for experienced users, but we want to make the initial user experience easier to get into. Improved documentation will help highlight the more subtle uses of the interface.
  3. Broaden the target audience.
    The following two steps will make Toscanini more acceptable to a wider range of users. From amateur DSP hackers to experienced interactive musicians, my interface is abstract enough at its core to  appeal to a large audience, but not without a better UX and documentation.

Our process will follow a two prong approach. The first course of action is to collect data on usage from multiple subjects with varying of degrees of experience in audio software. We will accomplish this through video taped sessions in which the user will be walked through actions and will asked to complete tasks un-aided. After the session has concluded, we will collect more data via a questionnaire to be completed by the subject. We will also evaluate the video taped sessions. This is our data collection phase.

The information gained from the data collection phase will fuel our UX overhaul. As we reach milestones we will bring the subjects back in for further evaluation. This iterative process will result in a wealth of information that will assist in finalizing the new and improved UI/UX.

At the conclusion of our process, we will have a new user interface for the core Toscanini application which will be available from the git repository, along with improved documentation. If there are any users who would like to be involved in this process, feel free to contact me to express interest.


[Edit: For the record, this post isn’t to complain or claim that I am entitled to a job. I would just like to offer some insight for students and others who will soon be in the situation I am now in.] 


“You’ll be fine, you have an amazing resume, and marketable skills.”

“This is a niche industry, and you have the experience and attitude. You’ll find something”

Thanks Mom, Dad, Professor, Friend, Girlfriend, and Classmate. The words of comfort has been great, but as I approach the halfway point in my final semester of college, I’m faced with the same nightmare that hundreds of thousands of soon-to-be grads are having: graduating without a plan.

So far 2/4 graduate programs have rejected me. I’m not too surprised, as most PhD programs prefer applications with more publications (I have none) and a terminal masters (nope). And thus began the great job search of 2012.

My current position at the MIT Humans and Automation Lab is as fulfilling a job can be, without having the presence of media technology that I crave. I have learned and accomplished more in this position than anywhere else, but unfortunately once the project I am on ends next fall, my time there will run out.

I’ve also joined the ranks of Together Boston 2012, New England’s premier Music/Art/Technology festival. My role as Technology Director has me planning, scheduling, and booking participants for daytime panels and events. I wish this were my day job, but unfortunately it’s not a viable full time position (and I work as a volunteer, so that’s out).

That’s two jobs, 5 classes, and a nationwide job search. When they said music technology was a niche industry, they were right- and there are no “How To” guides for working in it. So here’s my 2 cents.

How To: Get a Job in the Music Technology Industry

Are you the right person?

So far I have gather that there is no ‘right’ way to get into this field. You may be a musician with hax0r skillz, or a developer who moonlights in a band. But what really is important is to understand the cross section of music and technology, and where you fit in.

When I toured at Stanford and met Chris Chafe, director of CCRMA, he was impressed that I had an idea of how I can improve the world of computer music. Sit down and ask yourself: “Why does the music tech industry need me?”

For me it was a long and arduous trek to realize my goal: I want to make an impact on how music is created and consumed using technology. Whether I’m designing a new music interface, creating a music programming language or working on a music recommendation algorithm, I want to be a part of the new wave of audio tools, not just another rehashing of the same tired paradigms. What do you want to do?

Do I have the experience/skills?

That’s a tough question. My resume (linked over here), which has gone through at least 50 different major edits, is almost always described as impressive. I have had multiple phone interviewers who thought I had made a mistake by putting my graduation date in the future. This is because I have spent my summers working up to three simultaneous jobs, took a six month full time paid internship, and always kept busy with my own projects. I have accrued well over 2 years industry experience as an undergraduate. Employers want to hear that you work to relax, as it shows you’re serious. Everyone who asks “how do I get experience when all jobs require experience?” needs to examine what they’re looking for. Maybe a full time job is your end goal, but in the mean time you have to spend 6 months interning or in an apprenticeship. If you were too busy partying in college to rack up real world experience, you’ll be paying when the parties end.

As for skill sets, it is important to know the job description you want. I’ve spent hours researching development positions, learning the expected skill sets and inherited responsibilities. The secret, as I have found, is to have a wide range of skills within a specific job description. A hiring manager sees hundreds of applications for experts with language X, but developers are expected to know more than just a specific language. Source control tools, development patterns, and domain knowledge are all key. However, being a musician with some coding skills won’t cut it. Certain skills are primary, and others are secondary, and it is essential to realize which fall into each category.

What types of jobs are out there?

If you’re a web developer who knows HTML5/CSS/JavaScript, you can get a job. If you also know Python, you’re solid. However if you’re a software developer, there’s a tougher path ahead.

I’ll break this up into two categories:


Start-ups are everywhere, and are constantly hiring. They do not pay as much as corporate positions, but with the latest trends in venture capitalism and angel investing it isn’t hard to find a decent salary. Most are looking for experts in scripting languages such as Python and Ruby, or most commonly C/C++. Interviewers also like to hear that you have experience with SVN, Git, Perforce or another source control tool, and most require experience with DB tools such as MySQL and NoSQL. Right out of college you can expect a Jr. Developer position, or an internship which could very well lead to full time employment.

Start-ups want to see your side projects, and will ask you countless questions about every minute detail. These jobs are for jack-of-all-trades, and they want to know that you can keep up. The ability to demonstrate an understanding of the Model-View-Controller paradigm, agile development, and user experience is preferred. Remember that not everything is about being able to code. Feel free to be yourself, start-ups want to hire people who can easily assimilate into a relaxed culture. List your hobbies and interests, and make sure they come up in conversation during an interview.


Fresh out of college? Start climbing the ladder! Corporations are snatching up computer science graduates left and right. But putting a resume in the pool can feel like throwing it in the garbage. How do you get noticed?

Most corporations use software that detects buzzwords in resumes. Make sure nothing is misspelled, or you could be thrown out immediately. List all your languages, tools, and experiences, and hope for the best. OR, be strategic: contact your local recruiter from the company, go to a career fair they’ll be presenting at, or try to use your LinkedIn network. LinkedIn is the new standard by which tech companies judge applicants. In fact, referrals have a 7x more likely chance to get hired at tech companies (Forrester Research, March 2013, Study of 58,000 consumers across EU and US).

When applying for a corporate job it is important to show that you are the #1 expert on whatever they’re looking for. Looking to design UI’s? Better have taken courses in HCI, Human Factors, Psychology, etc. Want to step into a Jr. Developer position at a Python shop? A small project for a class isn’t enough, they expect that you’ve been using Python exclusively for years.

Working at a corporation means you will have to work your way up to the desired role in most positions. If you haven’t spent time fixing and regressing bugs, apply for a QA job. It isn’t unheard of to cross the thin line between code maintenance and development. Just know that this field is full of people who are like you in some way, and want the same job as you. If you are willing to work your way towards your goal, it’s more likely a company will put the time and money into training you.

If you’re such an expert, why don’t you have a job?

I have learned a lot in my experiences, both as a student, employee and job applicant. In the 3.75 years I’ve been coding, I have completed a lot, but I am up against people who have been at it their whole life. The transition left me with a sparse composition portfolio, and a lot of work to do in my computer science classes. I realized that my greatest fault is that while I know a lot of things, I don’t have the experience to back all of them up.

I have spent years studying programming languages and the means by which they make the computer complete tasks. While I know the principles behind C++ and its crazy pointer and memory systems, I don’t have any completed projects in C++ to show this. I spent a semester learning database tools like JDBC, JQuery, and general SQL querying, but don’t utilize databases in my personal projects. Knowledge is nothing without implementation, and while I have scripts and experiments, I have nothing that can prove the extent of my abilities in these areas. Grades are awesome, and a good GPA has granted me respect from potential employers, but they only go so far.

Also, as someone who composes music in addition to code, I find it difficult to build two healthy portfolios showcasing the two fields I study in. It is important to figure out how important your exploits are, and to budget time accordingly.


I’m still sending my resume out to as many places as I can, and keeping my fingers crossed as I wait to hear back from the other graduate programs. In the end, I have a lot more work to do, and I don’t expect the perfect job out of the gate. I just wish that I knew what I know now to better prepare myself. The real world is a scary place, and it can be daunting to think that the training wheels are off in just a few months. Regardless, I’ll keep blogging. That’s all for now.