1515-07-23

23 amazing lessons learned from interviewing the world’s top developers

developer lessons learned

Three months ago – on Thursday, April 16th – we launched bugtrackers.io as a new platform showing the life of people in web development.

I expected it to be super fun. And of course, I expected it to be successful. After all, we showcased the life of famous, successful or extraordinary tech people, like CTOs, developers, web designers or product people.

But I didn’t expect it to have such an impact on me personally.

Today, I’m sharing the top takeaways for me and for us as a company. Yours might be different, which is why I encourage you reading all of the interviews in their entirety.

I hope they’re as valuable for you as they’ve been for us.

Morten Primdahl, CTO and Co-Founder at Zendesk

lessons learned morten primdahl zendesk

1. Scaling your tech is a challenge. Just do it.

We went from a scrappy start-up of 3 guys with everything in their heads to a big organization that can take on scalability, operations, databases and product development. If you really get passionate about business in your life, that’s where you need to go.

When you grow from a couple of dozen guys in 2009 to the size we have today, the company changes a lot all the time, and you need to adapt to that. The challenges are both technical and organizational. Scaling your business means growing fast and hiring engineers. And that’s a big global challenge. To put it that way: It’s just hard.

2. Follow your passion

Do what you like. Do what you’re passionate about. Don’t do whatever anyone else thinks. Figure out how to be yourself, and beat your own path. It’s going to be all right.

3. Face time is essential for remote teams

We use a lot of travelling to bring people together because face-to-face time is really valuable. Even though we have Skype and Google Hangouts and Flowdock, we try to bring people together a few time a year. When you join the company, you spend two weeks in San Francisco and meet the team, and get to understand the experience.

Sunil Sadasivan, CTO at Buffer

sunil sadasivan, cto at buffer

4. Roles are more important than job titles

In an unnatural hierarchy my role is considered to be the CTO. But in a natural hierarchy, someone can take on some of the roles that I have that if they feel fulfilled in that way.

Therefore at Buffer, job titles have started to feel quite odd – since most of us take on quite a few different roles.

5. Invest in yourself

Mark Cuban says “The best investment you can make is in yourself,” and it’s compounding really.

Even though it didn’t work out with my previous startup, it was probably the best thing that I had ever done because it was an investment.

I invested that time to focus on myself.

6. 100% test coverage isn’t that important

We’re not too concerned with 100% test coverage.

It’s more about using your best judgment on what’s really critical and what will break, and then add testing to it on that way.

PJ Hagerty, Team Lead at Engine Yard

pj hagerty engineyard inteview and lessons learned

7. Challenge yourself in boot camp and free online courses

There’s a huge shift going on about technology education. Technology is moving so fast as it is, and more and more people are realizing that we need to get a grip on it.

So I’ve always been an advocate of going to do the weekend rails bridge course just to challenge yourself and see if its something you’re interested in. It’s much better than spending forty grand and finding out that you didn’t really like it.

8. Test first, release often.

One of the things that we are very espoused to is the idea of testing first. There is very little that goes into our products that go public without a high standard of testing.

I don’t think there is any way to make everything a hundred percent bug proof.

Rani Angel, Head of Web development at Infragistics

rani angel infragistics lessons learned bugtrackers

9. Managing remote workers is a challenge.

The biggest challenge is definitely working on a globally dispersed team. It is a huge challenge. One of the biggest struggles is when the overlap between the times the two teams are both working is only a few hours.

The challenge is how to make sure that as a manager you are going to keep on top of everything. Plus, you want to make sure that your team is shielded from the the pain of not being in the same location.

10. Explore various industries

I would have loved to have different opportunities while I was growing up, like being able to do an internship, do some marketing, do a little bit of sales to be able to understand the areas a little better instead of having to wait so long.

Having experience at a younger age would have changed my perspective a lot more and would have made me more comfortable as I moved into the workforce.

Thomas Schranz, CEO at Blossom

thomas schranz blossom lessons learned

11. Learn how to code no matter how old you are.

I thought: “Yeah, I can’t program, and learning to program is really complicated.” I already knew back then that there are children being younger than me but already started with programming, and I thought: “Yeah, I’m already late.” And then, just by accident, I learnt it.

I would recommend to anyone, literally anyone, in any age group to at least just start programming.

12. Learn how to say “No”

Sometimes saying “no” is harder than actually doing this thing.

I think one recurring challenge is saying “no” to requirements. If it’s from a customer, if it’s from your own team, if it’s from yourself.

Saying “no” to an idea doesn’t mean that the idea has to be bad. Saying “no” is the more taxing thing. We would have to explain it to everyone involved, convince them and then basically leave the meeting with low motivation for everyone. And just building the thing, even knowing it isn’t the right thing, is the easier thing to do.

Leif Singer, Head of Product at iDoneThis

leif singer idonethis lessons learned

13. Follow other developer’s practices

I think the main thing there is just to use it – to practice and to get better at it, and to follow not so much the technologies but the practices that people are exploring. Staying on top of current practices at this point is really more important for us than technology.

14. Don’t be afraid to remove features of your product

We also remove features from time to time because we realize nobody uses them or not enough people use them.

Removing the technical cruft that isn’t used anymore then is a kind of an issue because it’s not really refining the product but it’s a task. And this task goes into Asana.

Eric Elliott, Founder of Fight Poverty with Code

eric elliott fight poverty with code

15. Choose your programming language wisely

JavaScript has the potential to help a lot of more people, because it’s the most popular language in the world. If you write a library for JavaScript, it’s going to help a lot more people.

16. Real-time features will be a huge (and complicated) thing for developers

We’ve got a lot more real time and collaborative features. Multiple people manipulating the state of the app at the same time is enormously complex.

I worked on the Creative Cloud team at Adobe. Creative Cloud is all about collaborating with people on creative projects. I got to see firsthand how complex managing that collaboration can be and how hard it is to make a really good user workflow for interacting with other users without stepping on each other’s toes.

Johannes Nagl, CTO at Swat.io

johannes nagl swat io lessons learned

17. Standardize coding styles

When migrating developers from creating short-lived marketing campaigns to long-lasting, always-on SAAS-solutions, it’s a big challenge to implement a complete new mindset regarding architecture, code and sustainability.

The agency projects where often one-man-shows, where different coding styles were applied. Standardising these styles was one of the first efforts which paid out very quickly. Using tools like vagrant or continuous integration helped to focus on the product even more.

18. Developers need to internalize testing

In web development, as it’s not really a rocket science like managing a nuclear plant, I deeply believe in testing as “yet another discipline, every developer has to know and has to integrate in his/her workflow”.

So, dedicated resources are a good way to maintain an already well-established testing environment. But it’s more important that every developer has internalized testing in his/her mindset before.

Florian Motlik, CTO at Codeship

florian motlik interview on codeship for bugtrackers

19. There’s no common understanding of the role of a CTO

The problem with the CTO role is there’s like a million books about CEOs. There’s not a lot of books about being a CTO, because it’s also so different in different companies. I’m a very external facing CTO. I don’t manage a team.

I’ve never really managed a team internally. Once we really grew, where we really needed more management, we got a VP of Engineering.

20. Infrastructure as a service will become a huge thing

The cloud is still a collection of services, and a collection of services is still something you have to manage, which I don’t like to do. What we should have is a service for that.

21. There’s a great trade-off between complexity of testing and speed of testing

One of the biggest trade-offs that we see is the trade-off between the complexity of test and the speed that you want to have.

Best case, you want to test everything in every browser to make sure it work everywhere, and run the whole suite through everything. But that takes forever.

That’s a very big trade-off to do and you have to find the right balance.

Christian Braun, VP of Engineering at PAYMILL

christian braun paymill interview

22. Hiring great developers is a challenge.

Of course, you have different challenges as an engineering department. One major challenge is the question of how to hire good developers, because everybody wants them and so many of them have outstanding resumes. You also have a challenge that you have enough developers in order to work on a lot of product improvements. Whether you’re hiring or applying for a job, preparation is key. Researching programmer analyst interview questions, for this particular niche role, would allow you to conduct a better interview and, in the end, hire the best candidate.

23. Make communication plain & clear

We estimate change requests with t-shirt sizes. Then the management can get a clear overview about costs and priorities.

Way more learnings

Well, besides these 23 valuable lessons, there are literally hundreds more which we’ve gathered from these outstanding interviews.

Besides the mentioned interviews, there are also way more on bugtrackers.io and I’d recommend to give them a read. We’ve gotten some great feedback on that interview series and I’m thrilled about further interview partners we keep adding to the site. Personally, I’ve gotten a huge return from these insights. And if you’ve been following bugtrackers.io, I hope you’ve also learned a lot.

So, I’m pretty curious. What’s your biggest takeaway? Let us know in the comments or on twitter.

This article was brought to you by Usersnap – a visual bug tracking and user feedback tool for every web project.

Capture user feedback easily. Get more insights and make confident product decisions.

Microsurveys by Usersnap

Getting feedback has never been easier and we hope you’ve realized that after reading this article. Let us know what you think, your feedback is important.

And if you’re ready to try out a customer feedback software, Usersnap offers a free trial. Sign up today or book a demo with our feedback specialists.