Newer posts are loading.
You are at the newest post.
Click here to check if anything new just came in.

January 31 2014

12:19

Interview With Designer Anthony Burrill: “Work Hard And Be Nice To People”


  

Anthony Burrill is one of the most distinctive voices in contemporary graphic design, known for his thought-provoking posters, printed traditionally in letterpress. He has never worked for another design firm, and his first studio was at home — at his kitchen table.

Upon graduating in 1991, he has worked independently in loose collaboration with friends, designers, artists and a number of institutions such as the Design Museum. Some of his most famous work is self-published making graphic design, a standalone discipline in itself.

Anthony BurrillI first came across Anthony’s work in the early 2000s, traveling by the London Underground, and I was impressed by the timeless quality of those posters, projecting a sophisticated approach to travel safety. Those posters made a strong impact and had almost grim undertones that made them very memorable.

Anthony’s work echoes Bauhaus: simple compositions of type, primary colors and geometric shapes that convey a message in a very direct way. In the following interview, conducted at a Typo London conference, Anthony speaks about the integrity of making work by hand and the importance of reaching out to people.


Anthony Burrill at Typo London in 2012. (Image credit: Gerhard Kassner)

Q: It’s been 20 years that you’ve been working in graphic design. Do you remember what art college was like for you?

I suppose it was quite traditional back then. Although, in the degree course I was in, the borders were quite blurred between printmaking, illustration, graphic design and typography. You could do anything really. And then I got to the Royal College, and that was more about ideas and more about the context than the craft.

Q: Was there a big difference between undergrad and grad school?

Yes, I think so, because for post-graduate you had to be more determined and able to write your own brief. And actually the postgraduate encouraged me to go off and do it on my own really.

Q: Your education was in the pre-digital era; so, not many computers involved.

Analog, yeah, definitely.

Q: Did you intentionally carry that aesthetic on?

Because I am traditionally trained to make camera-ready artwork and to produce work using a photocopy machine, that [aesthetic] is very much hand-crafted. So, when computers came along, I kind of resisted them for a while; I thought I could carry on doing it the traditional way. It took a long time for me to embrace the technology. But now I still use technology with that analogue mindset. I like things that are physically produced.

Q: Did you ever think, when computers came along and you could do things so much more easily — was that a barrier or did it feel strange in a way?

In the early days, computers were hard to use. There weren’t the easier programs like now. I think computers are incredible tools, but they don’t have the soul, that quality, that human quality.

Q: Nowadays, I suppose you split your work between analogue and digital?

It depends on the situation, because I spend a lot of time setting type, making very traditional posters. But there is also technology like Instagram and Twitter. I think it’s about using the best things from each medium really.


A series of simple geometric drawings of some of Anthony’s favorite things, inspired by a technical drawing manual. (Self-published as limited-edition giclée prints, 2004)

Q: Sounds like you’re quite comfortable with digital then.

Yes, it depends on how it gets used in the end. Whether it’s a print or a film, you can do things now that were impossible twenty years ago, definitely. Well, it affects the work, but I think I am always looking for that thing that’s got soul.

Q: Could you tell me the story about the lady at Sainsbury’s who inspired your poster, “Work hard and be nice to people”? How did you come up with this poster?

I was just in the supermarket where I always go, and that lady was in the queue and said the secret to a happy life: Work hard and be nice to people. And it was just one of those phrases. You know, I try to remember things that people say that have a nice ring to them, nice honesty, really. It was one of the things that, at the time, I didn’t realize would be that popular.

Q: Was that a highlight for your studio?

Yes, I think so. It’s the thing that people know me for best. And that’s fine by me, because it’s positive. After that, I thought I could carry on doing more work like this.

Q: Seems like you’ve become a curator of phrases in a way.

Yes, it’s almost like the graphic design becomes less and less important. Like, I feel now that I am going beyond graphic design, because I’ve been doing it for twenty years. Now it’s more about reaching out to people, communicating. It’s about being social, as we all are.


Possibly one of the breakthrough posters of Anthony Burrill, a simple message he heard from a lady in a supermarket queue. The poster was produced using traditional woodblock techniques. It is part of an ongoing poster series and was self-published (2004 – 2011).

Q: What’s the part of the process you enjoy the most?

It’s when you pick up on something that you think other people will pick up on. It’s almost like finding something that everyone gets, at a certain time.

Q: Do you have an example that hasn’t worked for people?

I made that poster that said, “It’s OK for me to have everything I want,” and I thought it was an interesting phrase. But I put it out there and I saw people started saying, “Yeah, I can have everything I want.” But that not what I meant! There was a twist to it, so I stopped doing it. You realize you have to be careful about the phrases you use and consider the way people can read them.

Q: Does it depend on the context?

I think so. When you’re talking to the designers, they appreciate the typography, letterpress, things like that. But to the broader range of people, you have to realize that people can read things in ways you wouldn’t expect really. Definitely, you have to think about it.

Q: Speaking of posters, how do you see the future of the poster?

I think the poster will always be powerful, but it has to exist in the world that we’re in, whether that’s through social media or other means. If the statement and the tension are strong enough, then it is still going to be relevant. Good design is about understanding and it is about the people. It is not about throwing things out there to see what happens. Design is about having integrity. People will always respond to those things.

Q: Are you optimistic about the poster?

I think it’s always about the message, and the way that that is communicated is irrelevant sometimes. People also always like to have objects, to give things to each other, to their children, and these have more of a longevity. Who knows where we’re going to be in twenty years — things are changing so rapidly — but I think there’s always a place if something has integrity and value.


Ten-day studio residency, including graphic art workshops and daily collaborations with fellow designers, musicians and photographers. (Pick Me Up Contemporary Graphic Art Fair at Somerset House, 2011)

Q: Do you think there’s a comeback to basic tactile things?

Things are much more connected now. There’s a kind of shared humanity, and I think people want authenticity, they want things that are real. There is so much stuff that isn’t real and that’s just irrelevant. The real things are human relationships.

Q: You have moved out of London, living in the country. How do you find the move from the big town out to the fields?

I think it gives you a broader understanding and also, being close to nature, in a very rural place, gives you a kind of grounding. As you get older, you want things at a slower pace.

Q: Where do you find inspiration in a place where design talk isn’t an everyday thing? Is it good or bad that you don’t have daily chats with peers?

I think that’s a good thing! Events like today (at Typo London) are fantastic. You get to meet people and see interesting things. But I like to have time for reflection, to not be constantly bombarded. So, living down in Kent, I can switch the computer off, not look at it all weekend.

Q: Your posters are quite typographic. What’s the relationship between the type and the meaning.

The wood type that I use is always especially bold, and it fits. I mean what I’m saying, and I want it to be pretty strong, simple and non-designed, really. Because, the way it works with the letterpress printers, we work together. It’s as much their work as it is mine.

Q: So, in selecting the appropriate type, is it about the selection or about type as a found object?

Yes, it is like a found object, because it already has a weight to it, because it’s made physically. So, it’s almost that you can pretty much say anything and print it beautifully. But people do that and it doesn’t work, because you‘ve got to mean it. People do know when you don’t mean it.

Q: Getting back to the idea of curating words and letters…

Because I am always qing my design technique and skills, I like to use pre-existing things. If I’ve only got a blank page, there’s no reference, no starting point, nothing to hang anything onto. But when you find things that exist already or a system or a nice piece of wood type, there’s already something that you can work on.


A series of public safety posters commissioned by the London Underground (2001 – 2002)

This reminds me that graphic design is about the editing process, about selecting and putting things next to each other — because nothing is created in a vacuum. There’re always reference points, always things you want to draw into. Whether that’s history, tips that are repeated then technology pacman things that people instantly understand.

Q: I suppose your inspiration doesn’t come from the [design] discipline itself.

Yes, it’s from the real world, being a human in the world. Everyone’s an individual; we have our own way of doing things, our own history and perception of how the world is. It’s about reaching those things that are universal.

Related Resources

(al, il, ea)


© Spyros Zevelakis for Smashing Magazine, 2014.

January 17 2014

12:34

Interview: How I Work: Meetup’s Andres Glusman On The Power Of UX And Lean Startup Methods


  

Welcome to another interview in the “How I Work” series. These interviews reveal how leading thinkers and creators on the Web design, code and create. The goal is not to get into the nuances of their craft (that information exists elsewhere online), but rather to step back and learn a bit about their habits, philosophies and workflow for producing great work.

This time, we’re speaking with Andres Glusman, of Meetup, a company that uses the efficiency of the Internet to conveniently connect people offline. Andres works as the VP of Strategy, Product and Community in Meetup’s New York City office. In this piece, he shares with us how the company uses User Experience (UX), Lean Startup methods and innovative ways of organizing interdisciplinary teams to fuel the company’s consistent growth.

Andres-Glusman-opt_mini
Andres Glusman loves meeting users and hearing them say, “Meetup changed my life.”

Q: How did you first get into the Web?

Andres: I got into the Web in the mid-’90s. I was in strategy at Boeing and got excited about the future of how people would find things online. I discovered this company called i-traffic. It was one of the world’s first interactive agencies. I was inspired by its approach, so I packed up, moved cross-country and took an entry-level job. I worked my tail off and got the opportunity to eventually lead a division. A few years later, when i-traffic’s CEO moved on to start Meetup, he called me up to invite me to be a cofounder. I had just gotten into Wharton, so I said “Thanks, but no thanks.”

I did do a little consulting before heading back to school. In fact, I made our first $14 of revenue. After business school I got sucked back in and have been at Meetup for nine years now. I currently oversee three teams: Product, Strategy and Community.

Q: Because you manage product, strategy and community, how do you impart a user-first approach?

Andres: It’s easy to be member-centric at a mission-driven organization. Meetups change lives in profound ways, and people who work here are passionate about the impact we can have on the world by sparking meetups everywhere. In that context, experience is everything.

It also helps that the way we work actively exposes us to how people actually use the stuff we build. That keeps us pretty centered. We start with a vision and often a make simple prototype of the experience we want to foster. We run it through our in-house usability lab and iterate rapidly until we’ve got something we like. Then, we carve it up into experiments that we run on the live site.

meetup-hq-opt_mini
A sneak peek inside the Meetup headquarters.

The people who work here love the fact that they can get super-fast feedback from members. We do 400+ tests a year. So, folks on our team can get feedback often within an hour or two.

Q: Can you walk us through how Meetup iterates on the product?

Andres: Sure. Why don’t I tell you the story of how we revamped an important experience on Meetup, to illustrate how we work? We used to have a Meetup Group creation experience that had all the charm and excitement of a tax form. We looked at data to see where people fell off and did usability tests to understand how people experienced it and why they struggled.

One night, we had an informal brainstorm about what the experience could be like. The product designer involved went home, got inspired and came in the next day with a prototype of a radically different experience he’d hacked. It looked like this. It was completely divorced from our code base, and it was really fun. We had someone coming in for usability an hour later. So, we dropped it into testing, watched from our desks and quickly learned two things. One, we heard things like “Oooh,” “Ahhh” and “That’s cool.” So, we knew we were onto something.

But they were also thoroughly confused by the flow of the experience. So, we scrapped 90% of the prototype, kept the interaction piece and iterated on it daily for a week or so until we got to something that worked well. It looked like this. We then carved it into a series of experiments, which we rolled out to the live site. In the process, we validated our assumptions, discovered which parts made a difference and, ultimately, saw a nice boost in results. The final product can be found online:


After days of analysing user data and testing, Meetup.com finally got a fresh new look that folks out there found friendly and easy to use.

Not every project follows that workflow, but we’ve tried to replicate it as much as possible. That’s why designers are such an important part of our team now. We’ve since grown to three product designers, and building out the design team is our top priority.

Q: How does Meetup organize teams and ship?

Andres: We organize ourselves into small cross-functional teams that each addresses a high-priority user experience. For example, there is a team for onboarding new members, called “First Five Minutes.” They look at how the experience should unfold for new members. How do we set up new members to have a great experience? How do we make the experience feel fun and rewarding.

The teams consist of a product manager, front- and back-end developers, QA, and a community manager to represent what we’re seeing in support. Designers play a key role as well, but they work across teams. Designers are super-involved up front in working with teams to shape a vision. They then stay involved to help teams nail the important details. This is having a profound impact on what we build. We’ve still got a lot we want to do, but you can get a glimpse of it in our discovery experience.

Find Your People
Meetup lets you find “your” people, i.e. meeting people with common interests.

We have teams focused on lanes like “First Five Minutes,” “Discovery,” “Before/During/After the Meetup” and “Meetup Organizers.” They craft a series of visions that they want to pursue. Then, they carve those visions up into these experiments and start working towards a vision of the product that they are all excited to work on. So, these teams essentially function as startups within the company.

In terms of building, we’re agile but not rigidly agile. We don’t have the Scrum masters and the burn boxes thing going on, but we do work iteratively and push code multiple times a day. There are opportunities to iterate on things every day.

Q: Can employees switch teams?

Andres: Absolutely, and it doesn’t have to be a permanent switch either. There are times when certain teams have more demand or slack, so people can bounce between teams. And there are times when someone’s interests change. Our team is growing pretty quickly right now, so it’s really not hard for someone to switch teams.

Q: As VP of Strategy (and other things), how do you define and set a strategy?

Andres: I like how Michael Porter defines it:

“Strategy is what you don’t do.”

There are so many things we want to work on and explore. Our challenge is to say “No” to most things, so that we can say “Yes” to the few that are most important. Right now, we’re focused on building out a beautiful mobile experience and using that as inspiration to transform the desktop experience. We’ve got a pretty ambitious list that we want to get done for the end of the year.

While that’s all going on, I’m starting to think about what 2014 and 2015 will look like. We want to make sure we’re planning ahead and hiring the right kind of people now to pursue these really big ideas next year.

Q: What’s your take on network effects and user experience?

Andres: Network effects are one of the most powerful dynamics in our industry. You will generally find that, where network effects exist, the more people are using a platform, the more valuable it is to everyone. There are multiple kinds of networks. There are two-sided marketplaces, like a Craigslist or eBay, with buyers and sellers. There are one-sided networks, like a fax machine, where everyone can interact with everyone.

But the value of Craigslist is obviously the network. It’s not the most elegant-looking platform, but it delivers you the person who wants to buy your couch in under 45 minutes better than anything else out there. Many people have created clones that are prettier, but without the network, they are nothing. Obviously, strong network effects and delivering a magical user experience win.

Q: Can you talk a bit about acquiring users in this context, as it relates to Meetup?

Andres: Meetup is a two-sided network. Meetups on the network attract members. Members on the network also attract organizers to start new meetups. That, in turn, attracts more members, which attract more meetups. And so on and so on. It’s a virtuous cycle that we call the Meetup flywheel.

Q: And what have you observed firsthand as a result?

Andres: Well, what is interesting about us is that one of the biggest byproducts of our network effects is a phenomenon we call “spawning,” whereby, as groups grow larger and larger, they then spawn similar but slightly different groups. For example, a motorcycle Meetup group will start in a city. They eventually might spawn a women’s motorcycle rider Meetup. They then might spawn a women’s motorcycle Meetup group for women who work in tech.

So, we’ve discovered that there’s a massive long tail that arises in Meetup communities. If you look at the tech Meetup groups here in New York, there is an unbelievable amount of diverse Meetups around different tech areas. This happens because we’re a network.

Q: How do you manage your day-to-day work?

Andres: My job is completely exhilarating because I get to tackle a huge variety of problems. However, the constant sudden shifts between different areas can be a little exhausting. In the morning, I put my daughter on the school bus, then spend 15 minutes outlining priorities for the day. I have an hour commute, so I’ll dedicate that time to working on something very creative, when I tend to have a lot of energy.

Then, I come into work and try to be a sounding board or coach with the different teams (strategy, product and community). I usually don’t hit my email till 5:00 at night. But every so often, I try to block a four-hour chunk of time and sneak off to a conference room somewhere and work on some heavy lifting for creative or analytical projects.

Q: What’s the best part?

Andres: The two best parts are working with designers and watching usability tests. When I work with a designer, I catch a vision of Meetup’s future. That’s super-inspiring. On the flip side, when I watch a usability test, I get grounded in reality and am surprised by how humans actually behave (as opposed to how I wish they’d behave).

meetup-quiet-opt_mini
More than 400 usability tests are run through Meetup’s in-house usability lab every year.

Watching usability tests is just such a joy for me, and I don’t get to do it as much as I would like anymore. But when I do get to watch usability testing and see somebody go through an experience, it causes me to look at our experience through fresh eyes. I love putting myself in the user’s shoes and riffing on their experience. I find that so energizing.

Q: What excites you most about the Web today?

Andres: The biggest thing is that I don’t feel like we have found the answer to the right way of doing things across this entire industry. Everything could be done better. However, I feel like we’re hitting upon a pretty good way of working at Meetup, which is producing some good results. But in terms of how people come together and build a successful product for the Web or mobile, I think that’s a pretty tough riddle and also a pretty exciting challenge.

Q: And what’s been the best part of Meetup so far?

Andres: I love meeting our users and hearing them say, “Meetup changed my life.” Every time I go to a conference, somebody will come up to me and say “Meetup changed my life.” They say things like, ”I got into iPhone development because I went to a Meetup,” or something like that. So, the work itself is rewarding, and the problems we get to solve are pretty significant.

Scott (the founder) always says:

“You haven’t met all of the most important people in your life yet.”

Hopefully, we can help make that happen.


Watch a video of Andres discussing User Testing from Meetup’s HQ. (Source: YouTube)

Thank you for sharing inspiring insights into your work with us, Andres! We sincerely appreciate it.

(al, il, ea)


© Jacob Cook for Smashing Magazine, 2014.

December 13 2013

14:35

Interview With Designer Jan Martin: “Be Careful: Trends Come And Go”


  

As one of the top designers on Dribbble, Jan Martin attracts many followers with his visual design skills. Unlike many designers, Jan is incredibly humble about what he has achieved. “Stop following what the visionary designers think,” he says. “There is no wrong or right way. We need to create our own things and always design with our heart.”

Jan grew up in the small city of Brandenburg, about 70 kilometers south of Berlin. After graduating from the Berlin Design Academy with a degree in Communication Design, he cofounded 6Wunderkinder (literally, “6 wonder kids”) back in 2010. Since then, he has been the company’s lead designer, responsible for the visual design of the popular Wunderlist and the company’s website, blog, social-network sites and branding.

6Wunderkinder’s current headquarters are located on the top floor of a “Berliner Hinterhof” (a Berlin courtyard), with extensive views of the city. The building is one of many coworking spaces that host an array of up-and-coming startups in the “Mitte.” Despite its German roots, 6Wunderkinder has a diverse team of employees coming from over 15 countries.

Q: So Jan, how was 6Wunderkinder brought to life?

The original three founders — Christian, Robert and I — have been good friends since we were in school. Prior to starting 6Wunderkinder, we founded a Web design agency called Innovatics. This is how we met the other founders, Charlette, Daniel and Sebastian. Christian is the CEO who runs the company. Charlette is our finance lady who takes care of all our salaries and operations. Robert was the marketing and PR guy. And Sebastian is the designer behind the entire first version of Wunderlist and Wunderkit.

Jan
Jan on the patio of 6Wunderkinder’s headquarters. (Image credit: Leona Hu)

Wunderlist is an idea we had long ago. We have always wanted to create something to aid people’s productivity with a delightful interface. I still vividly remember the day when I received my diploma from Design Akademie Berlin. It was the same day we founded 6Wunderkinder.

Q: How does the design team at 6Wunderkinder work?

Collaboration is the most important thing. We give each other feedback on a daily basis. All designers on the team constantly publish work and give critiques to each other. We are extremely honest when we give feedback. If a couple of pixels are not positioned correctly, we will point it out immediately. We even use a real magnifier to examine the design quality on device screens.

magnifier
The magnifying glass that the team at 6Wunderkinder uses. (Image credit: Leona Hu)

I work with a team of the best designers in the field, and every day they offer so much that I can learn from. For example, our product lead, Benedikt, oversees all of our marketing and product design. He writes often to give good advice. Recently, the flat UI style has become increasingly popular, and many designers have started to adopt this style. Ben encourages us not to follow these trends mindlessly. He thinks designers should focus on their own creation, rather than looking at what others do.

Sebastian Scheerer, Timothy Amchuba and Julius Schäper work closely with the engineers to deliver quality products for different platforms. Sebastian is in charge of the Android, desktop and Web apps; Tim works with the iOS team; Julius creates beautiful icons and images for all the products. We all work on different tasks but are interconnected at the same time. “Be a pixel perfectionist” is our slogan. We also have great relationships with the engineering teams and often get help from them. Tim was interested in coding HTML and CSS, and one of our Web developers taught him the skills.

design team
6Wunderkinder’s design team. From left to right: Jan Martin, Sebastian Scheerer, Timothy Achumba and Julius Schäper. (Image credit: Leona Hu)

At 6Wunderkinder, we are not only colleagues but also a big family. We stay up late at night in the office together for releases, and we take vacations together. We have a annual company retreat called “WunderCamp,” where we go on a trip with everyone in the office.

Q: What is the design aesthetic at 6Wunderkinder?

At 6Wunderkinder, we pursue quintessential design and engineering. Each employee here is very attentive and diligent on things that we work on. Our CEO and company founder Christian Reber comes from an engineering and business background, but he is always interested in participating in our design discussions. Christian and our product lead, Benedikt, often give the designers valuable input. We encourage everyone in the company to be involved in our design critiques. This interactivity allows us quickly realize what we need to improve.

Q: How important is the work space to your creativity?

The work space is indeed crucial for us. We all have our own individual spaces, but we are also grouped as teams in different rooms. In our office, we have a lounge that we use for communal activities, such as weekly reviews, celebrations and product releases. We have a relaxed environment, but everyone works hard.

main lounge
The lounge in 6Wunderkinder’s office. (Image credit: Leona Hu)

We stay on top of communication with each other, even when someone needs to work remotely. Soon, we will move to The Factory, a newly constructed campus where we’ll get to share space with many other startups and tech companies, such as Zendesk, SoundCloud and Mozilla.

Q: What is your typical design process?

I always start with pen and paper. I use a brainstorming strategy that I call The Simpsons (yes, like the TV show). I call it The Simpsons because I try to produce strange ideas, just like the crazy cartoon does. Also, I never pick the first idea. For example, when the character Homer walks past a banana, most of the audience would think he will slip and fall. But the creators of The Simpsons always make him do something unexpected.

I sketch some of the developed ideas on paper, then scan these drawings to the computer. During my design process, I also look at many photography libraries for reference. Usually, I’ll create multiple versions for one project. After collecting feedback from my colleagues, I’ll keep refining the one that has gotten the best feedback until the final delivery.

In terms of digital tools, Photoshop is my favorite. I use Illustrator to draw complex shapes, too. And Keynote is the tool I use for constructing wireframes.

Q: What inspires you outside of work?

Berlin. The city is full of talented creatives. Because of the inexpensive cost of living, many young artists and designers can do what they love here without concern for money. During my free time, I like to explore the city. Berlin has so efficient an infrastructure that I can easily travel across the city. Currently, I live in the neighborhood Welding. It is not as popular as Mitte or Kreuzberg because it is still under development. But that’s why I like to discover new things happening here.

The Roof Top
The rooftop patio at 6Wunderkinder’s office. (Image credit: Leona Hu)

I also watch many documentary films to get inspired. My favorite one is Objectified by Gary Hustwit. Recently, I watched a documentary called Jiro Dreams of Sushi. Chef Jiro Ono’s wisdom about perfect sushi-making in the film particularly inspires me in design.

Q: What have been the most unique challenges that you’ve discovered in your work at 6Wunderkinder? What are the most interesting problems you’ve had to solve, and how did you solve them?

One big challenge was to start as rookies but provide a high-quality app that does what other big players already offer. Our numbers grew incredibly fast, and so did the demands of our users, which we had to grow with very quickly. Good is not good enough, even if your app is free.

Another challenge was how to handle press. Press buzz and hype can help you to develop a strong brand and gain attention in the beginning, but there is a big difference between publishers and readers. It’s easy to get in touch with publishers, but it’s hard to talk directly with your audience. Even if you are an early-stage startup, invest as soon as possible in an experienced head of press.

Sometimes it can be really seducing to get a bit more buzz. For most people, more users equals more money equals more success. But sometimes it doesn’t. Take a step back and consider which news and which announcements are really helpful to you. Not only in design does “less is more” count.

Let me quote my good friend and CEO Christian Reber on the most important challenge: “Prepare to fail.” If you want to read about insights into failing and learning, you should read his startup lessons featured on The Next Web.

Q: How do you feel about growing a company in Berlin? Did conversations with people in Berlin (at meetups, etc.) inspire you to create your product? Do you seek inspiration in coffee shops or when walking, hiking, etc.? Have you had a chance to see what the community is like outside of Berlin, perhaps in other countries?

It was one of our best decisions to found and start our company in Berlin. The city is vibrant and filled with clever, creative and hardworking people from all over the globe. You have so many freedoms that you would not find in other cities. It’s this mixture that makes the city so interesting, confident and unique. But creating a startup is just one small step.

design office
6Wunderkinder’s design team. (Image credit: Leona Hu)

I met some designers in June in San Diego at a design conference called Valio Con. Most of them were from San Francisco. Some of them worked in big and well-known startups. I think there is a difference between talking to people who have the same problems you are facing and talking to people people who had the same problems. Which means Berlin is not the right place right now to learn from other companies if you want to become more than a startup. There are not really many startups in Berlin that have made a profit or an IPO, and not many startups will.

operation office
A corner of 6Wunderkinder’s office. (Image credit: Leona Hu)

In general, I try to avoid startup meetups and parties. Instead, I sit with my colleagues and work on our product. We made a big promise to our users and investors, so why should we waste our time just talking to others on the scene?!

Q: Because Berlin is so big, do you find the city at times too competitive, with too many design agencies fighting for attention?

I can’t tell you anything about the design agency scene, just about the startup scene. But in the case of startups, I don’t think it’s too competitive. There are enough users with many and varying needs out there. It could be competitive regarding investors; but since I’ve been on the scene, there hasn’t been a startup with a good product that hasn’t found an investor. If you don’t find any investors, you should rethink your product.

Q: What lessons have you learned in your career? And how have they changed the way you approach design today?

One of my best learnings is to be careful with trends. Trends come and go. Some are good and will return, and some will leave you feeling embarrassed in the future. I’m trying to focus on the fundamentals, which will always work, allowing me to interpret current trends but not rely on them.

For instance, I’ve stopped using Dribbble. If you design for yourself or your own company, you should always strive for unique design and visual communication. But if you look like anyone else, you will lose an important advantage. Don’t implement anything you see on Dribbble into your work. It might work for that designer, but maybe not for your product. In the end, it will help you more if you find your own solutions. If you need inspiration, go to a museum; there is a reason why those works are in a museum.

Thank you for sharing inspiring insights into your work with us, Jan! Please feel free to follow Jan Martin on Twitter and check out his portfolio.

(al, ea, il)


© Leona Hu for Smashing Magazine, 2013.

December 06 2013

14:24

Interview With Designer Benjamin Dauer: “Be Humble, Be Honest, Don’t Be Afraid To Fail”


  

Influenced by his father, an architect, Benjamin Dauer had an early fascination with design, which came first from watching his father draw by hand and then connecting these drawings to physical space. When his father began using digital programs like AutoCAD, Benjamin became equally inspired, seeing it as a way for static design to achieve dimension.

Unlike many designers, Benjamin never formally trained at a design school. Instead, he learned his skills through observation, self-directed study and work experience. He currently is senior product designer at National Public Radio (NPR). Prior to that, he was lead product designer at SoundCloud, a position that took him and his wife to Berlin, where he helped to shape the audio service across multiple platforms. Away from his desk, he is an experimental musician and composer.

I met Benjamin in a Berlin bookstore and cafe called Shakespeare & Sons, during his transition from SoundCloud to NPR. He used to come here often to read, drink coffee and eat fresh bagels. Shakespeare & Sons is located in Prenzlauer Berg near Helmholtzplatz Park. The area is known for its young families. During our conversation, we paused many times for the adorable toddlers passing by. Benjamin spoke about his passion for music and how he enjoyed being involved in the design and music communities, sharing his creative skills for good causes. He was named a “SoundCloud Hero” for raising awareness of white nose syndrome and colony collapse disorder, two diseases that affect bat and bee populations in the US.


Benjamin’s neighborhood, Prenzlauer Berg. (Image source: Benjamin Dauer)

Q: What had made you decide to move to Berlin and join SoundCloud?

Benjamin DauerWhen I discovered SoundCloud nearly six years ago, it became the perfect platform to share my music with many communities. Over time, I became actively involved in projects such as the Disquiet Junto. After a while, and after being named a SoundCloud Hero, I was approached by them about a design role here in Berlin. I decided that working at SoundCloud would be the perfect marriage of design and music, and it involved living abroad, so I took the job.

And, of course, Berlin is such an exciting, youthful city. Moving here with my wife has definitely been a new adventure for us. Who knows what the future will bring. But for now, Berlin is our home. It was not easy for us to settle for the first few months. For instance, Germany has a very complicated rental process. But overall, we are having a great time here.

Q: How do the design teams work at SoundCloud and NPR?

The team at SoundCloud is a fairly small design team, but it is continually expanding. At the moment, about eight people are on the design team working here at the Berlin headquarters. The team consists of Web and mobile designers, prototypers, and researchers. We also closely collaborate with project managers, as well as with the engineering, insights, search, and brand communications teams.

sound-cloud-office-opt


SoundCloud’s current office. (Image: Wechsellook)

I think that a design team should be compact and focused on specific projects and goals. Bigger teams can inhibit quick decision-making. I promote the agile methodology in my design process. We have daily stand-up meetings for better communication between colleagues. This transparency is also key to working collaboratively across teams. Every small change we make will impact tens of millions of users.

The team at NPR is very clear about its priorities. Its focus is on usability more than anything else. This philosophy also applies to the team here at SoundCloud. Going from a non-profit organization to a truly international startup was quite an insane transition for me. People working here stay highly engaged, and we all have crazy enthusiasm about our product.

Benjamin Dauer’s design of the NPR Music app won the Communication Arts’ Interactive Competition award.

Designers are experience creators, and being a good listener is very important. As designers, we solve problems with our creative thinking. By asking the right qs, we can quickly address problems. We need to have specific reasons for every step moving forward — for example, why the drop shadow is necessary in a certain case, or why we use a particular color or typeface or interaction or animation. Many companies use data analysis to define design, to determine what the users want. I think designers should be willing to take risks and trust their intuitions.

Q: What is your reaction to the current trend of flat design?

The trends of visual design in the tech industry change rapidly. From skeuomorphic to flat design, what really matters is contextually applying the right design. Ultimately, these styles are just tools to enhance the user’s experience. Usability of the app should be the focus.

Q: Where do you seek inspiration?

I am inspired by many things. This comes from my everyday observation of architecture, objects, street scenes and even small details like the shadows of the city. I also like to read. I encourage designers to read not only design-related books, magazine and articles, but also books from other genres. For example, I am very interested in philosophy. It is a great way to improve critical- and conceptual-thinking skills. Reading books on diverse topics helps designers to look at the world, including design, from a variety of angles.

Q: From your time living in Berlin, how do you see the design and development community in Germany? Was it what you expected? Berlin being so huge, did you have opportunities to network?

Berlin + design = legendary. I had high expectations and was not disappointed. Even the concert bills that get posted on every street corner, sometimes layered up to 12 inches thick, are all lovely, grid-based and typography-driven. Whether visiting a specialty design or zine bookshop, attending a startup mixer or SoundCloud-hosted masterclass, or overhearing a conversation at a coffee shop — it is clear that there is a real sense of camaraderie and support when it comes to design and development and no shortage of opportunities to network. Additionally, in the future, SoundCloud will have its headquarters in a new building dubbed simply “The Factory,” which will play host to some of Berlin’s technology startup darlings.

As an aside, while living in Berlin, I found it extremely comforting that I did not have to explain “what I do” as often. People just understood.

Q: What were the most unique challenges you faced in your work at SoundCloud? What were the most interesting problems you had to solve, and how did you solve them?

As you might expect, much of the work I was doing is considered confidential until it ships. More broadly speaking, I would say that one of the most unique challenges we faced at SoundCloud was how to transition a creator platform into a consumer brand and, thereby, a mature and stable business. By this, I mean, are these two audiences, the creators and consumers, mutually exclusive or can they share some or all of the same user experience? How can we craft products that speak directly to someone who uses our service to share field recordings of space as well as someone who is looking for the latest single by Kanye and a long-form listening experience?

By and large, when talking about how we solve problems, it involves asking a lot of “Why” qs, a lot of collaborative discussions, research, user testing and iteration.

Sorry to be so evasive, but let’s just say we continue to attempt to answer these qs and cannot wait to share with everyone what we’ve been up to: all new iOS app, new embeddable widgets, partner tools and more.




The SoundCloud app by Benjamin Dauer’s design team.

Q: What tools did you use in SoundCloud, and how did you coordinate tasks?

Post-Its. Neon-colored Post-Its. Lots of them. And bright orange pens. And whiteboards. Keep things visible!

But seriously, each department (engineering, discovery, marketing, etc.) has its own set of specific tools. Generally speaking, SoundCloud is a Google house when it comes to things like email, docs, spreadsheets and presentations. As for the design team, everyone is on Adobe Creative Cloud, and it supplements as necessary with other tools, such as Trello for task management, Dropbox for file syncing and storage, Pixelapse for versioning and comment-tracking, Photoshop with Skala Preview and Sketch with Sketch Mirror for mobile work, and many others — too many to list.

From an organizational standpoint, SoundCloud is becoming more agile, so much of the coordination of tasks gets handled naturally (with help from the project managers) through the product road map and each individual cycle and sprint.

Q: What lessons have you learned in your career? And how have they changed the way you approach design today?

Here are a few, in no particular order:

  • Be an active listener.
    When asking qs, try to thoughtfully engage your audience. Don’t just listen for what you want to hear.
  • Remove yourself from the equation.
    More often than not, the work you are doing is not about you. It is about your audience.
  • Avoid the vacuum.
    Whenever possible, don’t work alone. Talk with people, whether they are your teammates or guerrilla testers in a cafe. Solicit input and feedback as often as possible, and remember your audience.
  • Be humble.
    Know when you’re right, and know when you’re wrong.
  • Be honest.
    Be honest with yourself, with your team and with your time.
  • Pay respect.
    We’re all in this together, and we all have people to thank.
  • Don’t be afraid to fail.
    Challenge yourself at all times, and learn from every experience — good and bad.
  • Learn to say no.
    This can be the hardest lesson to learn, but also one of the most important.
  • Laugh.
    We all want to live longer, right? Enjoy what you do.

Q: What is the weirdest design project you’ve worked on in your career?

This is a very interesting q. I think it all depends on how you define “weird.” For me, in the context of design, weird simply means unusual or outside my “normal.”

With that said, one project in particular comes to mind. While working at the National Science Foundation, I had the distinct pleasure of designing an exhibition brochure for American photographer and artist Jill Greenberg. The name of the show was “Monkey Portraits.” So, as you can imagine, this was indeed outside of my normal when it comes to design work.

As humans, we love to consider ourselves distant or, at the very least, different from our genetic cousins. While working with Jill’s hyper-real photographs, I couldn’t help but feel connected to these subjects. They appeared almost human — expressing emotions often associated with people.

From this “weird” design project, I was reminded of the importance of empathy — empathize with your subject, empathize with your audience. Your work will be better for it.

Q: Could you lead us through your design process?

For me, context is very important, so there will always be some variation in how I approach a particular design problem. Different contexts require different solutions. Overall, I think it would be safe to say that my process involves some or all of these elements:

  • Frame the problem.
  • Ask the right qs.
  • Challenge assumptions.
  • Research (markets, competition, patterns, etc.).
  • Sketch and prototype with ink and paper.
  • Design and prototype.
  • Test and learn.
  • Iterate, iterate, iterate.

Thank you for sharing inspiring insights into your work with us, Benjamin! The passion for design can take us on a fascinating journey — a journey that can start with the very first moment we see something take shape on paper and feel a hunger awakened in us to create. This creative force takes us to totally new places and environments. It pulls us to places where we need to be because there is inspiration, challenges and people waiting there for us. It could be Berlin, it could be anywhere else. Design asks us to step out of our cocoons and into the midst of people, so we can ask and listen, and eventually create great experiences for them.

Please feel free to follow Benjamin Dauer and check out his portfolio.

(al, il, ea)


© Leona Hu for Smashing Magazine, 2013.

November 29 2013

19:34

Interview With Jonathan Snook

I've met many web developers over the years and the common theme is that they tend to specialize in a specific aspect of web development. They're either designers, JavaScript coders, server-side experts or perhaps a tiny bit of all of them. Rarely do I meet someone who is incredibly well-versed in the full-stack having an amazing design acumen and being able to take a vision and bring it to life, front to back.

Jonathan Snook is one of those rare breeds and also an influencer in the web development world. His skills have made him a sought after speaker and writer and afforded great opportunities at companies like Yahoo! and Shopify. He's now venturing into product management and we catch up with him to see how that's going and his advice for anyone looking to jump into that role.


Q Let's start with the usual. Could you give us a quick intro about yourself?

Sure thing. My name is Jonathan Snook and I'm a web developer based in Ottawa, Canada. I've been developing on the web since before Netscape hit 1.0. I've had the pleasure of working on hundreds of projects both professionally and personally. I also speak at conferences and put on workshops and have authored or co-authored three books to date, the most recent of which is Scalable and Modular Architecture for CSS (or SMACSS for short). These days, I'm a product manager at Shopify based here in Ottawa.


Q You've transitioned to a product management role recently. What prompted the switch?

Opportunity and misunderstanding! Until earlier this year, Shopify never had a product team. I was working on the design team focused on our core product. As a company, we have traditionally had a very egalitarian approach that allowed anybody to work on an idea. Shopify was growing quickly and really needed product ownership to keep the team and product focused. A product team was being assembled. If you're picturing it being like the Justice League, it's just like that.

The role, as it was described to me, sounded much like the work I was doing as a designer. Talk to customers, the support team, and other stakeholders to evaluate which problems we should be solving and testing our work to ensure that we were solving our problems well. This sounded fantastic and I jumped at the opportunity. I misunderstood just how much work it really was to define a solid product direction and be able to communicate that effectively both within the company and out. As a result, I've not done nearly as much hands-on development as I expected I'd be able to continue to do.


Q How has the new role affected your skillset? Are you still coding or are you losing your edge?

Shifting into product management has meant learning new skills. I've been doing a lot of reading. I've been researching what makes a good product manager. I've been researching what needs to happen for a team (or multiple teams, really) to build a good product. It's been a great opportunity for me to grow and has been very exciting.

I'm still coding when I can but not nearly as much as I used to. However, I still read the blogs and twitter posts. I try to stay on top of the industry, and I still get to speak and attend great conferences where I can expand my knowledge. I still participate on pull requests and technical discussions. I still feel like I've "got it", at least from a technical conceptual level. Actually spending a day writing code, on the other hand, might prove a little harder. Just don't tell anybody that!


Q Has the new role changed the way you work with your development team now that you're on the other side of the equation? If so, what are the good and bad parts of the interactions?

I've been fortunate to have a well-rounded career having done design, front-end development, and back-end development. One of the advantages to having this breadth of skills is the ability to deeply understand the requirements at all levels. I'd be lost without the ability to understand the design and technical hurdles. I wouldn't be able to engage my co-workers on the same level. They're very smart people that can code circles around me but at least I can understand what they're doing and why they're doing it the way they are. I think this is very helpful.

On the bad side, it's not anything you don't see come out of any team. People have different ideas of what we should be focusing on. Sometimes I don't communicate the vision and direction well enough and that can create confusion and conflict. Those are skills I'm working to improve upon.


Q How do you balance out the desire of developers to implement the new shiny features or technologies versus managing the realistic goals the product?

At Shopify, we're dealing with a 7 year old codebase. The team often wants to work on refactoring things instead of the shiny new features. I'm the one who wants to implement the new shiny features.

Of course, with all things, balance is key. One of the things that I liked when I worked on the design team at Yahoo! was the regular maintenance cycle that was built into their process. Clean up files, fix naming, get rid of cruft. As Shopify grows, we know we need to continue to keep this balance. I think we're on the right track, even if sometimes we disagree when we should be doing feature development or should be doing refactoring and maintenance.


Q I know a lot of devs that would eventually like to shift to product management. Could you tell us about your transition and the things you feel would help others transition successfully?

Even though we had product managers at Yahoo!, I rarely interacted with them. The role was largely foreign to me until I decided to jump in head first.

If you want to be a good product manager for a technology company then I think a well-rounded background is good to have. Then again, I think that for nearly any role you might take. (And I believe that working for a web agency is a great way to gain that experience. Although, I'm probably biased since that is the path I took.) A good product manager needs to be able to communicate well. A good product manager needs to have empathy. At Shopify, for example, I run a store. In fact, I sell my book, SMACSS, on Shopify. This helps me understand some of the problems that our customers face every day. I don't think I could manage a product I didn't believe in.

For those looking to transition from development to product management, having that passion for the product is going to be key. For me, it was an opportunity to have a bigger picture of the entire ecosystem and to have more sway on the direction across the entire system. I wanted this because I want Shopify to be amazing. I want it to be something that people enjoy using every day.

If you want to become a product manager, don't let the word "manager" scare you. Don't worry about losing your skills. The industry changes fast but not that fast. It just feels like it does. If I decide that I want to leave product management and get back into coding full-time, I feel confident that it would be a reasonable easy transition back in. (Then again, it's only been 6 months. We'll see if I think the same thing in 2 years.)


Q SMACSS is your baby. What is it trying to solve that CSS frameworks don't already do?

Frameworks don't code your entire site. Take any framework and you still have to add your code on top of it. This was the problem I was trying to solve. What problems are the frameworks trying to solve and how is the code you're writing going to fit in with everything else.

That's why SMACSS is written the way it is: it's not a framework. It's meant to describe a process. It describes a way of architecting a site. It's a documentation of the learning process I went through in building large projects with large teams.


Q In terms of real-world development, how does SMACSS adopt to the dynamic needs of UI & UX development?

SMACSS came out of real-world development. It's not pie-in-the-sky thinking and it's not a lone wolf approach. It's an amalgamation of many ideas that were already floating around.

As an industry, we've been seeing more and more designers and developers approach site design as a modular system instead of as a series of brochure-style pages that don't change. The modular approach means that parts can be moved around. The more autonomous the parts, the easier it is to move them and add new ones or remove others.

SMACSS, being a scalable and modular architecture for CSS, is catered to the dynamic needs of UI and UX development.


Q Since SMACSS outlines a guideline for structuring your CSS, how viable is it for projects that are already in progress? At what point in the development process is SMACSS viable?

Of course, it's always easier to be able to write everything from scratch but that doesn't always happen. I had that privilege at Yahoo!. But coming into Shopify, I was contributing to an existing project that had already been under development for some time. "If it ain't broke, don't fix it" is a familiar mantra but refactoring should be something that projects make time for. Refactoring removes the technical debt that has built up allowing for faster development for new features. As they say, "there's no time like the present" to begin implementing a modular approach to a project. Just do it one piece at a time. That's the approach we took at Shopify and one we continue to take.


Q Other CSS frameworks tend to specify their own way of doing things. Is SMACSS workable in a scenario where existing frameworks are dictating process?

It depends on the process! When I wrote SMACSS, I wanted to present a number of concepts that could be taken in part or as a whole since that's the way I am when it comes to development. I'm unlikely to take someone else's project wholesale. I'm going to take the pieces that work for me and leave the rest.


Q Last question, what the heck happened to the Snitter Twitter Client?!?

Have you seen the Twitter client ecosystem?! Yeah, I think I'm okay having let it die. I'm happy with the small success it had (which wasn't really that much to begin with) and enjoyed the process of building the app. Alas, my time was better focused on other projects.


Thank You Jonathan

Jonathan, thank you for taking the time to chat with us and for your great advice on transitioning to product management. If you'd like to learn more about Jonathan be sure to visit his blog and follow him on Twitter. You can also find out more about SMACSS at the project site.

November 14 2013

16:16

Interview With Eric Bowman of Gilt.com

While most of us have built really cool websites, realistically speaking, few developers have had to worry about the complexities of managing and scaling incredibly large websites. One thing is putting up a site for a small company to ensure they have a great presence and another is trying to figure out how to scale your site so it won't buckle under the load of thousands of users.

I was fortunate enough to chat with the folks a flash-sale site Gilt.com which has received quite a bit of press over the years and seen tremendous growth. It's opportunities like these that allow us to probe the team that manages these sites and learn how they handle their day-to-day business and technology.

In this interview, Eric Bowman, Chief Architect and VP of Platform Engineering at Gilt Groupe takes us through some of the background behind the site and the technology decisions behind keeping the service running smoothly.


Q Could you give us a quick intro about yourself?

I’m incredibly proud of what the team has accomplished.

I’ve been with Gilt since August 2011, and became VP/head of architecture and platform engineering in December 2011. During my time here, we’ve transitioned from Java to Scala, adopted Gerrit for code review, implemented a continuous delivery system we call Ion Cannon, introduced a typesafe client and microservice architecture, rolled out Play 2 for our frontend, created a public API, and rolled out platform engineering as an organizational architecture. I’m incredibly proud of what the team has accomplished. Before Gilt I was an architect at TomTom in Amsterdam and was responsible for their online map, search and traffic APIs, and products. Prior to that I was an architect working on service delivery for 3′s global 3G launch offering, and a long time ago my first “real” job was building The Sims 1.0.


Q Could you set an expectation for our readers of the scale/size of Gilt.com so they get a better feel for the breadth of effort needed to build a large-scale site?

The flash sales model presents a unique technical challenge because so much of the traffic comes in these incredible pulses as new sales go live. Over the course of a few seconds, our traffic can increase by as much as 100x, which really puts stress on every part of the system, all at once. Essentially, we need to have the eCommerce infrastructure almost at Amazon scale for at least 15 minutes every day. Most days this happens exactly at noon EST, and until a couple of years ago, noon was a stressful time every day. Nowadays it’s usually a non-event–in part because our software is great, and in other part due to better visibility into system performance and behavior.

In order to accommodate the pulse, we tend to over-provision on the hardware side. Our customer-facing production environment at the moment consists of about 40 physical servers running a couple hundred micro-services and a few dozen user-facing applications. On top of that we have about another 100 servers for development, testing, data warehousing, analytics and development infrastructure.


Q When it comes to large web properties, most developers are curious about the technology that runs under the hood. Could you share what you’re using and what prompted some of the technology choices you’ve made?

On the database side, we depend heavily on PostgreSQL, MongoDB and Voldemort.

Gilt was originally a Ruby on Rails application with a PostgreSQL backend. We had serious problems scaling Rails to handle the noon pulse, and the core customer-facing systems were ported very quickly to Java and a coarse-grained, services-oriented architecture starting in 2009. We kept the Java extremely low-tech: JDBC, hashmaps and JSP.

The performance and scalability of low-tech tools on the JVM is astonishing. As we grew the tech organization in Gilt, though, it became increasingly hard for teams to contribute code. A downside of the low-tech approach was that the contracts between systems were not well defined, and the most critical code bases grew monolithic over time. We gradually transitioned away from a pure servlet-based service implementation towards JAX-RS, and in parallel increasingly toward Scala. Our service stack is similar to Dropwizard, which came a few years after we built our internal platform, built on Jersey and Jackson 2. We like Dropwizard, but found that the way apps are configured–at runtime, in particular–wasn’t very compatible with our infrastructure, which uses ZooKeeper for discovery and per-environment configuration.

We’ve also moved from Ant to sbt over the last year. At TomTom I grew fond of Maven, and spent some time trying to introduce it at Gilt. At the point everything was falling into place, I had a change of heart and did some experiments with sbt. We found that sbt provides a fantastic developer experience and has an incredibly powerful extension model. Switching to sbt has enabled a degree of tooling customization that previously seemed impossible, and a lot of great features have fallen out of the sbt adoption, such as deep integration with our continuous delivery system and automatic dependency upgrading–things we couldn’t even imagine with tools like Ant or Maven. It was an interesting case where the limitations of the tools limited our imagination, and an important lesson for me personally in how to recognize and avoid that antipattern.

On the database side, we depend heavily on PostgreSQL, MongoDB and Voldemort. PostgreSQL has been part of the Gilt stack from the beginning, and has been amazing. We were one of the sponsors supporting the development of hot standby, a key feature in PostgreSQL 9.0 that enables true replication. We run it on Fusion-io cards, and the performance has been phenomenal. Our CTO, Michael Bryzek (also a Gilt cofounder), recently released a really nice open source schema upgrade mechanism for PostgreSQL. In general we’ve been moving away from a monolithic database application towards individual private databases per service. PostgreSQL is really nice for this, and its stable, predictable performance makes it straightforward to predict system behavior and to provision smartly.

Both MongoDB and Voldemort have become increasingly important in the last year or so. Voldemort has been part of Gilt’s stack for some time, though usage of Voldemort didn’t grow at all until this year. Despite less momentum than some other NoSQL solutions, we find Voldemort to be incredibly reliable and straightforward to reason about, and gradually we’ve introduced it in a few more places. We’ve wrapped it and incorporated it into our core platform, which makes it straightforward to use in new services; it’s easily embeddable, leading to almost no additional infrastructure needed to run a reliable Dynamo-style key-value store. We’ve also looked at a number of other solutions in the space, including Riak, and we’re pretty excited by all the activity in the field–particularly around multi master databases with strong semantics on conflict resolution.

MongoDB has also become increasingly important at Gilt over the past couple years. Today we run our core user and authentication services on MongoDB–absolutely critical data with very high throughput and low latency requirements–and it has been running now for a long time and very smoothly. MongoDB gets a hard time in the community sometimes, but we’ve found it to be astonishingly fast when run on high-spec hardware, and we’ve been reluctant to consider other options because of its raw performance in our use case.


Q Focusing on scalability specifically, what were your expectations when Gilt was launched and how did you prepare for launch traffic and post-launch growth?

Gilt grew faster than anyone could have imagined, and everyone was caught off guard by how difficult it was to scale the Rails stack. Like any successful startup, Gilt was assembled just-in-time, and the bulk of the effort was spent trying to react to what the market fed back in the face of so much public interest in what Gilt was trying to do. Startups in this situation have to maneuver a knife-edge of “just enough” architecture. If you overthink or over-engineer too much or too soon, it’s impossible to move fast enough to capture the market you are going after. But if you don’t architect enough, you can’t actually adapt once you’ve got something running. Gilt’s core tech stack has always embraced simplicity as a key feature, and maintaining that over time has been a worthy challenge.


Q Post-launch and obviously using hindsight, which decisions do you feel were spot on and which do you wish you could have a do-over on?

The decision to use PostgreSQL was spot-on. Despite the scaling issues with Rails, it’s an amazing framework for moving fast–until you need to scale. So that wasn’t necessarily a wrong decision, and a lot of Gilt’s internal systems today are written in Rails. If we were starting over today, we’d probably build on top of Play 2.


Q Of the technologies you’ve leveraged, which specifically helped in terms of scalability?

In terms of technology, we’ve found the JVM to be very scalable. Over time a number of tools have come into play to make scaling easier. Scala, ZooKeeper, RabbitMQ, Apache Camel and Kafka come to mind as important for scalability.

However, scalability at Gilt has had less to do with specific technologies, and more to do with architecture and approach. We’ve never been afraid to rethink things almost from the ground up, and scaling is a multidimensional problem that covers technology, infrastructure, architecture, and organizational structure. We’ve iterated along all four of those axes.


Q Being a commerce-oriented company, safeguarding customer data I’m sure is priority #1. From a security perspective, how have you had to adapt your infrastructure to adjust to the constantly changing security landscape?

We take security and our customers’ privacy very seriously, obviously. I don’t want to go into too much detail here, but a few things stand out. We take PCI compliance extremely seriously, and everyone participates on some level in the PCI review process. We’ve architected our systems using a bulkhead approach to PCI compliance, which physically limits what needs to be PCI-compliant, and also reduces risk in the event of a number of possible breach scenarios we model. We’ve found a micro-services architecture, and continuous delivery make it relatively inexpensive for us to stay cutting-edge in terms of security-related best practices, and so we try hard to do so.


Q Along those lines, what has been the most challenging aspect of security to manage?

The biggest challenge by far is coming up with a realistic model of what the risks really are, and then making the right decisions to mitigate those risks. Despite lip service about how security is everyone’s problem, in practice it’s hard for developers to keep security in mind all the time. We’ve focused more on an architecture that is forgiving and partitioned so that we don’t compromise security, and we reduce the scope of any particular potential mistake.


Q How has open-source software played a role at Gilt, both from a technology and financial perspective?

From a financial perspective, open source has helped us keep our costs down, and also helped us move faster.

Gilt is built almost entirely using open-source software. We actively encourage our engineering teams to use and contribute back to open source, and we have really low-friction guidelines for how to contribute back to open source. We have a number of open source projects we host on our GitHub repo, and we constantly feed pull requests upstream to some of the most important open source projects we use. We also actively support open source efforts, from funding feature development in PostgreSQL, to sponsoring Scala conferences like Scala Days.

From a financial perspective, open source has helped us keep our costs down, and also helped us move faster. Besides the obvious benefit of not paying licensing costs, open source provides a more subtle advantage, in that when you run into an issue, whether a trivial one or a catastrophic one, you can both look at the source code and potentially fix the problem. I started developing in a closed-source environment, and I do not miss those days where everything was a black box, and licenses were enormously restrictive in terms of what you could do with–or, in some cases, even say about–commercial software.


Q When you looked at a specific OSS-based technology, what was your decision-making process for determining it’s viability, applicability to your needs and the longer-term management of the technology?

We try to actively follow the latest developments across a number of open source projects, and read blogs, and generally we all love technology and tend to get excited. So sometimes it’s hard to avoid the irrational exuberance that can follow if you read too many blog posts and believe all the hype. We have an internal peer-review system that encourages a lightweight planning and architecture discipline, which works pretty well. We also use things like the ThoughtWorks Tech Radar to help temper over-exuberance, and also to gain insight via another lens of what’s working well across the industry.

Our approach also depends on how critical the software is. At Gilt we talk a lot about “Voluntary Adoption,” which actively encourages our developers to adopt the best tools for the job. In practice this means that individual teams have a lot of leeway in terms of leveraging whatever open source libraries they want, and when this goes well, it helps to keep things simple–and also helps us move faster. Usually the benefits of these libraries are clear; we tend to leave it up to individual teams to do the right level of analysis around the tradeoffs and costs of a particular solution. It is a struggle to avoid too much fragmentation across the organization, and we actively work to understand when teams have needed to use fairly exotic libraries, and incorporate them into the core platform in a way that tries to minimize upgrade pain and “dependency hell.”

For more critical shared components and systems we tend to use a combination of consensus, peer review, and stress testing to make decisions. Sometimes we look at a system and it’s so obviously superior to the other options that consensus is easy and we move quickly to adopt. ZooKeeper is an example of this. In other cases when the choice is less clear, we tend to just spin up the various alternatives and run them until they break, and try to understand why they failed, if they failed. For example, when evaluating messaging systems, we found that pumping a billion messages as fast as possible through several contenders was a pretty good way to eliminate poor choices via a “last man standing” criterion.

For now our approach is fairly lightweight and agile, and we hope to keep it that way. Microservices and a unique approach to deployment make it straightforward for us to try things out in production to see how they work, without much risk. Ultimately how a system works in production is the most important criterion, and not one you can divine through documents and meetings. We try stuff and use what works.


Q OSS relies heavily on community contributions. How does Gilt give back to the OSS community?

On the JavaScript and Ruby side of things, we’ve open sourced a number of libraries.

On the Java and Scala side, we’ve not contributed as much or as quickly as we’d like, due to some specifics of how our build works that makes it hard to build some of our most core software outside Gilt’s infrastructure. We are actively working on improving this, and we have a backlog of Java and Scala software we look forward to open sourcing in the next half year or so.

On the JavaScript and Ruby side of things, we’ve open sourced a number of libraries, most of which are visible on our GitHub page.

We’ve also funded specific features in PostgreSQL, for example, and we regularly sponsor conferences around open source topics–primarily Scala in the recent past. We also are large supporters of the technology groups where we have our main engineering centers (New York and Dublin)–opening up our offices to host local meetups, gatherings of technology groups, and even free all-day free courses.

We also include open source in our hiring process, in that we tend to prefer developers who are or have been involved in open source. In general we see it as a great sign that a developer is used to code that gets read, and also has priorities aligned with how we try to develop at Gilt.


In Closing

Eric, I'd like to thank you for taking the time to talk with us about Gilt. We appreciate the transparency and comfort you having in sharing many of the architectural underpinnings of such a highly-trafficked property. The complexity and diversity of the technologies you use shows that scaling a site requires more than just choosing a stack and running with it. It also demonstrates that it's important to objectively look at all of the options available and choose (sometimes adapt) to other products that can help your business be successful.

November 06 2013

17:44

Interview With Jeffrey Way

If you’ve been reading this site for awhile, then you know who Jeffrey Way is. He’s the man, the myth and the legend behind the stellar growth of Nettuts+ and an influential voice in the web development community. And now he’s tackling online education full steam via Tuts+.

We wanted to catchup with Jeffrey to see how his next great adventure is going. Let’s check it out.


Q Readers want to know, “Where in the world is Jeffrey Way?”

In the last year, much of my energy has been put into the Tuts+ Premium program, and I’m really proud of what we’ve achieved.

I’m still around! I simply decided to adjust my priorities a bit. After building up and maintaining Nettuts+ for five years, I realized that I’d reached the limits of what I was capable of learning in that job. Staying anywhere too long is rarely a good thing, so I chose to step down as editor, and instead focus my attention on other projects.

In the last year, much of my energy has been put into the Tuts+ Premium program, and I’m really proud of what we’ve achieved. Though it’s been tough, we’re now at a point where we’re publishing well over 25 new courses every single month. We’ve released courses on everything from modern WordPress development, to Yeoman, to Ember, to Laravel testing. As I sometimes tease: if you enjoy Dreamweaver, then Lynda.com is a great choice. Otherwise, to instead learn the technologies that working pros use every day, Tuts+ Premium is a really fantastic resource. :)


Q You have one of the biggest fan bases, built on your stellar work on Nettuts+. What prompted the change to Tuts+?

Like I said above, mostly it came down to a personal decision. Life is too short to not experiment with new ideas and roles. So, having managed the site for over five years, the time was right to move on. You have to be careful about falling into a rut, sometimes.

Also, with you and Andrew at the helm, I felt that the site was in perfect hands to reach the next level.


Q The focus of Tuts+ is squarely online courses. How do you see online education complementing and/or disrupting the traditional mediums for education?

The best education on the planet in this sphere is not exclusive to a cold brick building.

What’s particularly nice about online education is that it can be anything you want it to be. While traditional schooling has a tendency to force lesson plans (which I’ve never been a fan of, considering the price tag), when it comes to the online world, you’re in charge. You choose the path.

Do platforms like Tuts+ disrupt the traditional medium? I’d say the answer is a big fat yes. As I tweeted not too long ago, at this point, I can’t imagine an environment where I’d find myself recommending to my future child that he or she should attend university. Perhaps there are merits to the social aspect of college (questionable, though), but, beyond that, I see it as little more than an excellent way to start your life with masses of debt.

If your goal, specifically, is to develop for the web, then the answer is even more obvious. The best education on the planet in this sphere is not exclusive to a cold brick building. It’s widely accessible for free around the web. We’re very fortunate that our community (web development) is so incredibly open about documenting their trials and experiments.


Q I’ve read viewpoints where people, on many occasions, recommend forgoing formal education altogether and encouraging developers to leverage the Internet as their educational resource. Is online education at a point where bypassing a degree in, say, Computer Science is actually viable?

I think we passed that point long ago. Outside of the incredible price tag, the problem with university is the same problem with all forms of traditional schooling: it mandates a “one size fits all” approach to learning. Maybe every eighteen year old doesn’t learn best by waking up at eight in the morning, sitting in a 200+ auditorium for ninety minutes, and then taking multiple choice tests. Gasp – maybe there are ways to learn that don’t fit some college’s rigid curriculum. You are not a bad person if you don’t fit this mold.

Really, though, it all comes down to what type of person you are. I was not a fan of my university experience; however, my personality type virtually guaranteed the experience I had. You might be different. If that’s the case, and you can afford the price tag of admission, then certainly nothing bad could come from it! In those cases, have at it, and use platforms like Tuts+ as a supplement.


Q There’s been some criticism about online education (some valid, some FUD). How do you ensure that the courses you’re providing offer real-world knowledge and value to people who take the courses?

Honestly, it can sometimes be a struggle. The key for me has been to leverage the community that I’ve personally submerged myself in. Twitter is amazing for this. By reaching for the leaders in the community, I can rest assured that they’ll bring their experience to the courses and material that I might not personally be as well-versed in.

In terms of choosing which courses to publish and what constitutes “real-world knowledge,” well that simply comes down to experience, I think. Generally speaking, I can often refer to the technologies that I, myself, am interested in learning more about. This includes everything from Ember to AngularJS (yes, both), to architecture, and everything in between. At that point, it simply translates to a process of choosing which developer is most qualified to teach those subjects.


Q I recently wrote on the challenges of staying up-to-date with technology. What are your thoughts on how developers can manage the fast and constant changes for the evolving web development space?

Ahh, yes, I’ve written about these challenges myself many times, as well. There’s no denying that ours is an incredibly difficult industry. I’ve often noted that, if I knew how deep the rabbit hole went at the beginning of my development career, I’m not sure that I would do it again. I guess, from that perspective, my naivety was absolutely working in my favor back then!

I certainly don’t want to dissuade the newcomers in the audience. Instead, I’d simply recommend that they be prepared for the long-haul. Development isn’t something that you knuckle down and learn in six months (despite what some infomercials may say). It’s a non-stop battle, not too dissimilar from an RPG. Little by little, your skills level-up. But it’s a slow process. The key is to love it, and to never stop…even when you’re overwhelmed with frustration and confusion.


Q You’ve become one of the biggest advocates for Laravel. What makes Laravel so special to invoke such a passionate dedication to the framework?

If you want to talk about sheer joy of development, I’ll happily put Laravel up against any framework.

Because Laravel makes PHP development fun! There was a period of time, not too long ago, when PHP and its community were, for lack of better words, hated. Seemingly, the headline joke of every day was one that related to how terrible PHP was. Let’s see, what new PHP-slamming blog article will be posted today? While some of these complaints are certainly valid, the truth of the matter is that much of what people hate about PHP has little effect on your average developer’s day-to-day workflow. In fact, most of that vitriol is rooted in the days of PHP 4. The language and community have come so far since then. It’s unfair to continue painting it with that brush.

If you want to talk about sheer joy of development, I’ll happily put Laravel up against any framework. Rails, Django, Express, you name it. Laravel has it all, too. Migrations, Active-Record implementation, clean syntax, testing facilities, elegant routing, etc. Every Laravel developer knows that feeling of realizing that a seemingly difficult task has been reduced to a single method call.

Need to cache a database query to improve performance? You can do that in one line of code. Want to work with queues, without the hassle of a background daemon? Laravel hooks up flawlessly with Iron.io’s push queues. No framework in existence makes it easier. What about things like writing a console command to deploy your application? Yep, with Laravel, we can arrange that in seconds, using custom Artisan commands and the remote component.

The reason why I’m such a cheerleader of Laravel is because I’m continually impressed by its capabilities. It never fails.


Q It seems like Laravel and Symfony have taken the PHP world by storm. How does this impact existing applications based on other frameworks like CodeIgniter? Will we be seeing a developer knowledge gap soon?

I suppose one argument is that it doesn’t affect those applications at all. Projects built upon CodeIgniter may freely stay that way. There’s no mandate that all applications must be upgraded to their nearest modern framework base! But, naturally, we’ll continue to see the decline of CodeIgniter. This is a certainty, and is specifically why I’ve stopped commissioning new CI courses for Tuts+ Premium. We’re interested in modern development; not technologies of 2008. While CodeIgniter was fantastic in its own right, the simple truth is that its time has come to an end.

Symfony and Laravel are the PHP frameworks of the new generation.


Q Along those same lines, how does PHP fit into the picture when so many web developers are preaching the virtues of Node.js, Ruby on Rails and Python with Django? Is PHP adapting to modern needs?

Pick one that feels right to you, and start building things. That’s all that matters.

Perhaps the question could instead be phrased, like so: “Despite the fact that many developers champion newer languages and frameworks, why does PHP continue to dominate, to the point of 80% market share?” Certainly, something must have been done right, yes?

What this all boils down to is that PHP has been around for a long time. It’s not “the new hotness.” It’s not overly sexy. But we get stuff done. I’ve never been more excited for what’s in store for the community and language than today.

But, sure, those other technologies are excellent, too. Pick one that feels right to you, and start building things. That’s all that matters. People focus too much on “us vs. them.”


Q Last question. What would you like to tell your many fans that miss your presence on Nettuts+?

I’m still here! Let’s stay in touch on Twitter. My username is @jeffrey_way.


In Conclusion

Thank you very much Jeffrey, for taking time to do this interview.

October 28 2013

15:42

Interview With Brian Leroux of Adobe’s PhoneGap Team

Mobile web development is tough especially when you're trying to offer native-like experiences to users. Several years ago, a small company called Nitobi took on the effort of simplifying building native mobile apps using traditional web development skills. Ambitious and sometimes controversial, the effort known as PhoneGap grew out of this need and one converts left and right.

One of the main masterminds behind the framework is Brian Leroux who apart from being well-respected for his development skills and incredibly likeable personality is also one of the savviest mobile developers around. Considering the number of mobile devices PhoneGap targets, you have to be pretty well-versed in a variety of devices and OSs.

Nitobi has since been acquired by Adobe and the PhoneGap codebase donated to the Apache Software Foundation to continue its development as the Apache Cordova project. Brian moved over to Adobe and continues to steward the codebase. In this interview, we'll chat with Brian about how PhoneGap came about and what the future of mobile web holds.


Q Let's start with the usual. Could you give us a quick intro about yourself?

Hello, I'm Brian. I work on Apache Cordova, PhoneGap, and a new css library called Topcoat at Adobe. In my spare time I created a code joke site called http://wtfjs.com which kind of follows me around.


Q You were one of the creators of PhoneGap. How did Nitobi decide to build such an ambitious framework?

I've definitely been one of the stewards of PhoneGap but it is very important for me to say that MANY people of contributed to the creation and growth of it. No one person really decided to do anything it was a lot of forces coming together at once. PhoneGap was an outcome of the primordial soup that was the new Github model for open source, nascent mobile web browsers, and new generation smartphones. We started hacking, and did the whole thing in the open, and eventually more people subscribed to the project philosophy and utility. It grew from there.


Q Now that Adobe has acquired Nitobi, what's the future of PhoneGap?

Adobe acquired Nitobi in 2011! It is a little hard to believe that was close to two years ago already. Since our acquisition we donated the source of PhoneGap to Apache which is now known as Cordova. We are constantly improving project, adding features, polish, performance improvements, new tooling, and recently we shipped a vastly improved plugin architecture. PhoneGap has become as much about tooling and extension as it is a fancy embedded web browser for building apps.

We're also working closely with a new team at Adobe on a CSS library called Topcoat that is designed for building fast and clean apps. Of course, everything in Adobe Edge is growing mobile consciousness as a part of our focus on web technologies. Brackets is great for authoring web centric code. Reflow and Inspect are great new tools helping tame responsive design. We'll see more and deeper integrations between these tools and PhoneGap in the future.


Q There's a lot of confusion about PhoneGap and Cordova. Can you clear things up?

Adobe PhoneGap is a downstream distribution of Apache Cordova. It is the same as the relationship of Safari to WebKit. When Adobe acquired Nitobi the original source of PhoneGap was donated to Apache to continue its open development, and encourage contribution from the wider developer community. It has been really great, and the community has grown exponentially since joining Apache. It was a great move for the project and has really matured the development.

Author Note: Brian goes into more detail about this in this blog post.


Q There have been a number of other similar projects but PhoneGap's received the bulk of the attention. What can you attribute to its popularity?

I think our popularity is owed, in part, to very clearly defined principles and goals. We want the web to be a first class platform and we often state a purpose of the project is to cease to exist. It's a powerful acknowledgement of our intention to get back to web development. This resonates with the web community.

PhoneGap is also just a really good name that clearly communicates the project succinctly. We got lucky there. I'm not sure if it was Brock Whitten or Andre Charland whom coined it. Rob Ellis was there but I doubt he'd remember either. I hated it at first but after five years of working on the thing I'm sort of used to it!

The adoption of PhoneGap was probably a little bit of dumb luck too. I'd like to think we made some of that luck with a regular release cadence and a strong testing philosophy. We rarely have regressions, and we ship quality releases continuously. That healthy activity has helped to build the confidence of our developer community, and the businesses and organizations that are using PhoneGap today.


Q In terms of mobile, how easy or challenging has it been to use web technologies like HTML & JavaScript to create a platform that builds native apps for mobile devices?

Well, on one hand it is super easy to get started building a web app. On the other hand, web apps can grow complex quickly, and the devices we're talking about don't have a whole lot of horsepower to begin with. Software development is a balancing act. We're balancing all sorts of forces. Skill and code reuse. Adding more features or working on performance.


Q Did you find mobile OS vendors receptive to PhoneGap? What challenges did you have to overcome?

Most mobile operating system vendors are contributing directly to Cordova!

We have friends from Google bringing Chrome Packaged Apps to the fray. Mozilla is ramping up Firefox OS with us. Canonical has hackers working on Ubuntu Phone. Blackberry has a bunch of devs bringing us the Blackberry Webworks perspective. Intel and Samsung representing Tizen.

Early in the PhoneGap project, before all this glamorous Apache business <g>, we were temporarily blocked from the App Store by Apple. It was the best thing ever. It brought a tonne of attention the project. After much kerfuffle, Apple reviewed our code to our mutual satisfaction that we were not in violation of any of the App Store policies and PhoneGap apps have been shipping there ever since.


Q What are the practical use cases for using PhoneGap and at which point should developers consider going totally native?

Well if you have an existing investment in web content or web developers then PhoneGap is worth looking at. If you are looking for portability then web technologies are obviously useful, and this can even mean on a single platform, but able to automatically target handset and tablet form factors with a single codebase.

I used to say that web technology isn't really the best choice for games. But this depends on the type of game. Mobile games in particular tend to be more puzzles, card, or two dimensional sorting things that do not require immersive graphics. Web technology is surprisingly good for these types of games. Until we get better support for WebGL I think going native is still compelling. The W3C and browser vendors are very aware of this shortcoming and it is only a matter of time before the Game Controller, Orientation Lock, Fullscreen API, and the Audio API are fully realized. The console will move into the browser and monetization will move towards a service model as a result.


Q When should developers look at native versus going pure browser-based for mobile apps?

Well, if you have the time to invest in a particular platform (sometimes proprietary too) then going native is a fine, if costly, route to invest in.

It is easy to write a crummy native app as it is with web tech but it is even easier to debug these things using the native platform tooling. That tooling integration makes most development environments very comfortable, with great documentation, and distribution is kind of built in. (You get these advantages with PhoneGap too as that we do not hide these details.) I encourage developers to always be learning as much you can and native mobile development is super fun stuff to learn.

That said, I'm not as convinced about the business benefits of going native. You inherit a reliance on (often) proprietary tooling and distribution channels which is inherently risky. When the vendor makes a change so do you. If they chose to shut down, deprecate, or otherwise abandon infrastructure you rely on for revenue you will have no say or recourse. I personally would not build a business in that way, but I can also respect that some do, and either way you can use PhoneGap to mitigate that risk.


Q Is browser-based mobile web ready for primetime? If not, what's missing?

Offline is still messy, we have App Cache but it is really complex and creates a janky user experience. When a new version is available you have to prompt the user to reload. But I have high hopes for the Navigation Controller effort to fix it.

Push notifications are another thing the web needs to get right. Notifications are crucial for user engagement. Those standards and support are starting emerge in desktop web browsers but we need those capabilities to rise up into the mobile web browsers.

The security models for packaged apps is in need of refinement. But that is happening. As a result we will win more and better device APIs. Firefox OS and Chrome OS are going to point the way. We're going to do everything we can to help by providing a quick prototyping surface for browsers.

Developer tooling experience needs love. It is getting pretty good and there is a real healthy competition between Firefox, Chrome, Opera and to a lesser extent IE and Safari. Performance instrumentation for monitoring and especially post deployment crash reporting would be particularly nice.


Thank you Brian

I want to thank Brian for taking the time to provide us with the history of PhoneGap and his insights into mobile web. If you're interested in building mobile applications using your web development skills, be sure to check out Apache Cordova and Adobe PhoneGap.

October 18 2013

14:00

Interview With Bruce Lawson of Opera

There’s a perception that being in developer relations for a browser maker is all glamor and glitz involving lots of jet setting and rockstar-like experiences. So far I haven’t personally found that to be the case but in looking at the life of Opera evangelist Bruce Lawson, I think he may be fitting that description.

Helping fight the good fight for standards, Bruce is constantly on the move either updating his awesome book Introducing HTML5 (which is regarded as one of the best HTML5 books out) or attending developer conferences to read the pulse of the community.

With Opera’s recent shift to the Blink rendering engine, I managed to snag some of Bruce’s time to ask him how the shift will change the Opera browser.


Q Let’s start with the usual. Could you give us a quick intro about yourself?

I co-authored the first book on HTML5, "Introducing HTML5" (New Riders). I’m one of the founders of HTML5Doctor.com, and was a member of W3C's Mobile Web Best Practices Working Group. I evangelise open web standards for Opera, the oldest browser manufacturer whose mobile, desktop, TV and embedded browsers are used by 300 million people across the world.


Q In spite of traditionally having excellent standards and feature support, the Opera browser has struggled with desktop marketshare and ensuring developers properly test for it on their sites. Why should developers consider the Opera browser and what do you think will be the impetus for them to do so?

Developers should find that Opera behaves as Chrome does.

Well, it would be nice if it went without saying that web developers should develop for the web and not individual browsers, and these days all browsers have great standards support. However, one of the problems that we had is that developers didn't test on Opera properly – because many devs are in the USA, and our desktop browser has a high market share in countries outside the US. So we've recently changed the rendering engine inside Opera Desktop and Opera Mobile to the Blink rendering engine that Google Chrome uses (we're the first to ship Blink-based browsers). Developers should find that Opera behaves as Chrome does. Because of greater compatibility with mass-market sites, and a more visually appealing UI, and some unique features, we're aiming to grow the user base more in the USA and Western Europe.


Q With Opera’s move to base its browser off of Chromium, how will it distinguish itself in a fairly busy and crowded browser market?

We have some unique features in both desktop and Android. One is off-road mode, which saves bandwidth and makes sites render faster. Another is Discover, which is visually appealing, curated content which can be customised to show certain languages and categories. Then, on Desktop, there's Stash – a place where you can save web pages for viewing later with a visual snapshot of the site and its text saved in the browser for later full-text searching.

We've long been known for innovating in browser UI (tabbed browsing, Speed Dial etc) and by using Chromium, we're able to get our developers making new, innovative interfaces rather than solely focussing on making our own rendering engine


Q When Opera was based on the Presto rendering engine, it was considered as part of the W3C’s “two interoperable implementations” requirement for a spec to be considered for candidate recommendation status. Now that it’s based off of Chromium, how has that affected this?

When Opera Mobile and Desktop were based on Presto, there were four rendering engines on the market: Presto, WebKit, Gecko and Trident. Now there are four: WebKit, Gecko, Trident and Blink – and the same engineers who developed Presto are actively enhancing web standards support in Blink – enhancements that can be used by anyone.


Q Opera has traditionally been very strong in mobile. How does the move to Chromium improve Opera’s browser position on smartphones and what’s the impact on the non-smartphone market where Opera is the clear leader?

Moving to Chromium gives Opera Mobile greater compatibility with sites that were coded with only Android and iPhone in mind, so serves our customers better – but working with the Chromium team helps break the incorrect perception that "only WebKit matters".

Our Opera Mini product has traditionally been the market leader on feature phones, as it does the heavy lifting on our servers, so it allows people with very low-powered phones to use the Web. It's used on over 3000 different devices world-wide – many of which we've never heard of – and is often the only way that people can join the Web in some emerging economies. But it's not just a featurephone product: compression and speeding up rendering is just as important on smartphones. We've seen the share of Opera Mini smartphone users in Asia Pacific countries increase from 9% to 32% (see opera.com/smw for monthly insight into worldwide mobile web use).


Q A lot of debate has been happening about HTML5 vs. Native apps. Is it practical to believe that HTML5-based web apps will match the UX of native apps, especially on mobile devices?

It's harder for developers to get paid when there isn't an installable product.

I think we need to understand why the web is great. Noone complained that a website didn't match the UI of the Linux box it was being viewed on, or the browser that displayed it. In fact, designers have always been adamant that they should be able to style native UI element such as form fields away from browser defaults. As JavaScript gets closer to native performance, and more and more integrated with device capabilities (File API, WebRTC, Pointer Events, etc) we'll see fewer and fewer reasons for developers to make native apps. The reasons to still make them aren't technological, it's social (apps are curated by App Stores) and economic. It's harder for developers to get paid when there isn't an installable product. I'm confident that we'll plug those gaps, but it will take time; there are many business interests here.

Also, browsers can help make HTML5 sites feel more app-like. Watch Opera for an interesting product that does just this.


Q You’re a leader in the HTML5 world publishing, along with Remy Sharp, one of the best HTML5 references out. Tell us what you think about the current state of HTML5 and related features.

I think the web stack is in pretty good shape these days. There’s work to be done making sure that sites can work offline (Appcache-done-right, in whatever guise it comes back) and with web payments. The lack of any useful way for developers to deal with responsive images is a problem, 18 months after it was flagged up.

My biggest worry isn’t the pace of standards development so much as lack of browser choice. Paradoxically, we have the most powerful and interoperable browsers that we’ve ever had, yet many platforms don’t allow the users to choose their browser.


Q I think there’s a lot of confusion about the role of the WHATWG and how it pertains to HTML5 and the W3C. Where do you see the intersection between the work that the WHATWG does versus what the W3C manages and provides?

Confusion is the word, indeed. I like the fact that the WHATWG keeps a living standard, that’s always up-to-date. But it means that lots of the stuff in there is really experimental, and not implemented anywhere (or even ready to be implemented, in some cases). It’s also really useful to have just one spec containing all the things.

However, it’s a shame that there are discrepancies between W3C and WHATWG specs. For example, the main element is really well specified in W3C spec, but badly specced in WHATWG. I’d advise developers looking to see what they can use now to look at the W3C version.


Q Last question. What’s up with the naughty bunny at the bottom of your blog?

It’s a mash-up of memes from 2003, when I first (and last) redesigned my blog. It’s a combo of oolong the rabbit that balanced things on its head (http://en.wikipedia.org/wiki/Oolong_(rabbit)) and goatse, which isn’t a goat. Look it up. Or rather, don’t.


In Conclusion

We’d like to give a big thank you to Bruce for taking part in this interview.

Editor’s Note: Bruce mentioned during the interview that a new, interesting product would be released by Opera. Between the time the interview was conducted and published, Opera released Coast by Opera for iPad, that make HTML5 sites feel more app-like. Be sure to check it out.

September 18 2013

14:03

Land Your Next Web Development Job: The Interview Process


  

During my career as a software developer and manager, I have been involved in many interviews. Whether the interviewer or interviewee, I have always paid special attention to the interview process.

In my current role, I spend a lot of time interviewing potential employees, so I’ve seen my fair share of good and bad interviews. Some candidates stand out from the crowd immediately, while others are just another face in a million. In this article, I’ll give you a few tips and a head start on your next interview. Whether your next interview is your first or twenty-first, hopefully these tips will help you along the way.

Interviews can be scary, especially when you attend your first few or haven’t attended any for a while. Preparation is the key to success and can take the stress out of the dreaded process. You can do a few things before even walking through the door. If you are prepared and your mind is ready, then the whole process should be a breeze. I like to break the interview process into three steps: preparation, interview and post-interview.

Preparation

This is the most important stage in the process and could determine whether you appeal to the recruiter. A CV won’t even make it past the review stage if it doesn’t meet certain criteria, but by preparing beforehand, you can maximize your chances of making it to the interview stage.

Update Your CV

Spend time creating a great CV. Some great templates are on Guardian Jobs. If you have never created a CV, try to mirror the layouts of some of the people who inspire you. I drew some inspiration from both Scott Hanselman and Paul Irish. For example, Paul’s CV contains testimonials from other popular developers in the community, and Scott’s CV contains highlights from his presentations, qualifications and open-source contributions. You might not have the same experience or work history as the people who inspire you, but you can always get new ideas from their CVs. Who are the leaders in your field?

I follow a few rules when creating a CV:

  • Don’t lie.
    Never claim anything on your CV that you can’t do, because if an employer questions you and you don’t have the answers, you could lose the job and look like a fool in the process.
  • Steer clear of buzzwords.
    I have noticed a trend of candidates adding a load of buzzwords to their CVs to help recruitment agents find them. Only add a skill if you have used it before and feel competent enough to answer questions about it. Also, steer clear of buzzwords such as “dynamic,” “synergy” and “creative.”
  • Have your CV reviewed.
    Get your mother, sibling or friend to review your CV before submitting it. The extra pair of eyes might spot a few areas for improvement and help you finely hone the document into the perfect CV. Remember that your CV is the first point of contact before you walk in the door. You may be the greatest programmer in the world, but if your CV isn’t up to snuff, no one will want to interview you!
  • Spellcheck.
    And then spellcheck again!

Put Your CV Online

If you haven’t done so, create a LinkedIn profile. It’s a great way to get your profile out there and to get potential employers looking at your CV. Simply upload a copy of the CV that you created earlier, and, with a little tweaking, LinkedIn will format it for you. I often use LinkedIn to see whether a candidate knows someone I know or have worked with in the past. Professional connections are a good indication of a person’s working background. You might have a friend who works at the company — a referral always helps.

Another great website for developers is StackOverflow’s Careers 2.0.

StackOverflow Careers 2.0

Much like LinkedIn, Careers 2.0 lets you post your CV, but it is more developer-focused, allowing you to link to your open-source projects and any technical books you may be reading. Once you have created your online profile, both LinkedIn and StackOverflow will let you export a PDF of your profile, which could serve as a CV. So, if you like the format and layout, simply download and use it for your next job application.

Get Some Code Out There

If you are a Web developer or designer, then an online presence is vital. If you have any side projects or even snippets of code, get them onto a social collaboration platform, such as GitHub. Seeing that a candidate builds things in their spare time or even contributes to open-source projects instantly piques my interest. It’s a great indicator that they are passionate about what they do. Include your highest-quality work in your online portfolio. Tinkering with projects in your spare time also helps you to learn and grow, and hopefully you will be able to bring that knowledge into the company.

Github

A few great code-hosting services are GitHub, Bitbucket and CodePlex. Once you have uploaded your code, put it on your CV! It could help you to stand out from the crowd.

If working on an open-source project isn’t for you, then you could always contribute on StackOverflow. The community is great, and the more questions you answer, the higher your score, or “reputation.” While this doesn’t necessarily indicate that a candidate is qualified, it does show that they have an active interest in the community and are willing to learn.

Get a Blog Up and Running

If you have the time, writing a blog can be a rewarding experience. It will teach you the ins and outs of SEO, website deployment and social promotion. You could go down the route of writing your own blog engine (which would give you something to deploy on GitHub!), or you could use one of the awesome blog engines out there that are ready to roll. I quite like Tumblr, SquareSpace and even WordPress.

Tumblr

Again, don’t forget to add the blog’s URL to your CV! Blogging isn’t for everyone, and it takes time, so if you feel you might not be able to commit or update it regularly, get yourself onto Twitter and start following people who inspire you. As an employer, I always like to see what a candidate is interested in, talking about, etc.

Do Your Homework

Before going to the interview, learn as much about the company as you can. How long has it been operating? What products does it sell? What is its culture like? Think about the challenges it faces and how you can use your experiences and know-how to help it build great tools. Nothing is worse than interviewing someone who has no idea about our company or what we do. You don’t need to spend hours learning the history of the company, but a basic understanding of what it does and its ethos is important. If you haven’t done your research, then an automatic “No” is almost guaranteed!

Technical Test

If the job entails writing code, then certain companies will require you to complete a technical test. It could be a simple exercise that you complete at home, or it could be a test that you come into the office and complete then and there. If you are asked to complete the test at home, put as much effort into it as possible. I have received many tests from candidates that have a lot of JavaScript errors or that don’t compile. Make sure yours has no errors and that it works on platforms other than the one you develop on! If you get the chance, review the code briefly with someone you know. You might just find a few areas to improve on.

Site44 dropbox websites

Another great idea is to deploy the test to a live server. You can sign up for a free starter plan on Site44, which enables you to create and deploy HTML websites from your Dropbox account for free. Both Amazon EC2 and Windows Azure let you set up free cloud websites in a matter of minutes and delete them when completed.

By deploying your application and showing a working version, you demonstrate an understanding of how to deploy software, which could give you an advantage over other candidates. In fact, I hire most developers who show me a live, deployed, working version of their code!

Technical Test

By taking that extra time to make sure your technical test is outstanding, you give yourself a clear advantage over other candidates.

The Interview

If you’ve made it this far, congratulate yourself. Your hard work and preparation have secured an interview, and the employer thinks you might be the right candidate. It’s time to nail the interview and finish the whole process in style.

Questions

Before going into the office for the interview, write down a few of your own questions about the position. This is your chance to learn as much about the role as possible. Having learned a little more about the company, you might even find that it’s not the place for you!

Ask about the working environment, the development stack you will be working on, and anything else related to the job. Interviewers love to answer questions, and it shows you have taken the time to think about the position. Going into an interview without any of your own questions is a bad thing! Remember that you are also interviewing the employer in this stage!

Don’ts

There are a few definite no-no’s in the interview process. Follow these simple rules to avoid any awkward moments:

  • Don’t ask about the salary.
    Bringing this up during the interview is not the best timing. Other members of the staff will often sit in on the interview, and your potential salary might not be intended for their ears. If you do need to ask at this point, do it privately with the hiring manager.
  • Don’t ask how you did.
    This is important because the people in the room will be discussing you after the interview. Other candidates might be interviewing before or after you, and the team will need a chance to compare you to them.
  • Don’t badmouth your former employer.
    No matter how mistreated you feel or how bad the job was, keep your thoughts about your former employer to yourself. Be as diplomatic as possible, because disparaging other people won’t win you points with the interviewer. Your attitude towards and description of your former employer is a good indication of the kind of employee you will be. If asked about your last position and why you left, explain the situation but save the ranting — you would only make yourself look bad!
  • Don’t lie.
    If you don’t know the answer to a question, just say so! The interviewer will respect you for answering honestly and will understand that you don’t know the answer to every question.

Last-Minute Details

Whether you are applying for the job directly or through an agency, check a few last things before going to the office for the interview:

  • What is the dress code?
  • What will the format of the interview be?
  • How long will the interview last?
  • When and where will the interview be held?
  • Who will be present in the interview?

Find out the address and time of the interview, and arrive at least 15 minutes early. This will give you a chance to relax and to avoid the stress of rushing about. By arriving early, you will also observe the staff coming and going through the reception area. Those 15 minutes could give you a good feel for the company.

Finding out these simple things before going for the interview takes some of the stress out of the situation. Preparation is the key to success!

Relax

The interview process is as much about you finding out whether the job and company are right for you. Feeling nervous is natural, but try to relax and enjoy the process. If you are relaxed, you will interview that much better and will come across as more confident. You’ve done all the hard work to get through the door — now, just keep up the good work.

Post-Interview

The interview is over, and you are eagerly awaiting the result. Depending on the company, it could take a few days to a week to get back to you. Rest easy, knowing that you have done all the hard work and given it your best shot.

If you wind up not being chosen, don’t be disheartened. The timing might not have been right, or you might need to brush up on a few areas. There could be any number of reasons why you weren’t offered the position, many being outside of your control. Interviewers will often give you feedback on the process and your performance; if you would like more detail, don’t be afraid to ask. Whenever I have been turned down for a position, I have asked the interviewer for areas to improve upon. It is an opportunity to learn and grow. Practice makes perfect, and the more you interview, the better you will become at the process. Once a few interviews are under your belt, it starts to become a piece of cake.

If you do get the job, well done! You’ve nailed your first interview and are on your way to starting the new job. You should be extremely proud of your achievement.

Remember

Interviewing is difficult! No matter how hard you try, you will not always be successful, and sometimes it just doesn’t work out. By following the steps in this article, hopefully you will become more effective at the process and seem a more attractive candidate. Finally, remember that the interview process is as much about you learning about the employer as it is about them learning about you!

(al, il)


© Dean Hume for Smashing Magazine, 2013.

September 11 2013

15:14

What Are You Using? – Nettuts+ Authors Edition

I previously asked several top developers the following four simple questions:

  1. What’s your primary development focus?
  2. What hardware are you using for development?
  3. Which editor or IDE do you use?
  4. What software can you not live without on a daily basis?

The article generated a lot of interest and discussion about the tools the community is using which was really great! We love to motivate discussions with our topics. Well, this also motivated us to ask the question, "Why don't we post about what we, the Nettuts+ authors use every day?"

So we did just that. We chose ten Nettuts+ authors and asked them the same four questions. And like before, you’ll find the answers they gave below and hopefully discover some tools that could make your development much easier.


Csaba Patkos

csaba

Bio: I had my first contact with computers in the mid-80s when I visited my father at work. That was an important moment for what I am doing now. I am a proud member of an agile team working for a company called Syneto. Through my carrier, I programmed in several languages and I had the chance to learn and use daily all the major Agile techniques from Scrum to Lean and from TDD to DDD. Since August 2012, I am sharing my knowledge with the Nettuts+ readers by articles, tutorials and premium courses, all about programming.

Connect with Csaba on Twitter and on his blog.


Q What’s your primary development focus?

I am mainly a back-end programmer and mostly program in PHP but I continuously try new languages. I am most focused on general software design and architecture. The programming language I use is just a tool to achieve that.


Q What hardware are you using for development?

Well, at work we have Mac Minis but I am not a fan of Apple. So, at home I have an HP desktop with 27" Samsung monitor running my favorite Linux distribution, Sabayon.


Q Which editor or IDE do you use?

NetBeans, definitely. Even though it has its limits, I find it the best IDE when it comes to multiple languages. Its Java part is just superb and from all the free IDEs it has the best PHP support.


Q What software can you not live without on a daily basis?

I spend a lot of my time in the web browser and email client; Opera. It would be hard to live without it. And of course NetBeans.


Krasimir Tsonev

krasimir

Bio: Krasimir Tsonev is a coder with over ten years of experience in web development. With a strong focus on quality and usability, he is interested in delivering cutting edge applications. Currently, with the rise of the mobile development, Krasimir is enthusiastic to work on responsive applications targeted to various devices. Living and working in Bulgaria, he graduated at the Technical University of Varna with a bachelor’s and master’s degree in computer science.

Connect with Krasimir on Twitter: @KrasimirTsonev and on his blog.


Q What’s your primary development focus?

I'm usually working with PHP, JavaScript(NodeJS), HTML/CSS and sometimes Flex/AS3. In some of the projects I'm a front-end developer, in some others I'm the back-end guy. Generally I'm interested in making the things in the right way. I love KIS (keep it simple) and DRY (don't repeat yourself) principles and I'm trying to follow them all the time. Very often I develop tools which help other programmers work faster and efficiently. When I don't code, I normally blog, which is kinda a passion of mine.


Q What hardware are you using for development?

I have Dell Vostro 3560 connected to an external monitor Dell 23". I'm a Windows user, but also have Ubuntu running in a VirtualBox VM.


Q Which editor or IDE do you use?

I'm a big fan of Sublime Text 2. Most of the time I'm switching between three windows – Sublime Text 2, Chrome and PowerShell (+ posh-git installed). A couple of years when I worked mainly on Flash-based project, I used FlashDevelop. Even for PHP or JavaScript it was a good choice.


Q What software can you not live without on a daily basis?

That's my favorite browser – Google Chrome. It's not just a program for visiting the web. It's actually a great tool for development and even for design.


Pavan Podila

pavan

Bio: I am a Financial technologist specializing in front-ends, mostly for Trading and Analytics applications. I have worked on a wide variety of UI technologies in the past, ranging from Java Swing, Eclipse SWT, Nokia Qt to Cocoa on OSX/iOS, .Net WPF, and HTML5. I am also a published author for “WPF Control Development Unleashed” with Addison/Wesley-SAMS. When I am not programming, I like to play Table Tennis, Badminton or paint using my Wacom Tablet with Photoshop or SketchBook Pro.

Connect with Pavan on Twitter: @pavanpodila and on his blog.


Q What’s your primary development focus?

I am a Front-end consultant in the financial services sector of New York. Most of the apps I develop/maintain are trading apps, visualizations, portfolio management tools, etc. These apps run on a mixture of desktop, mobile and web platforms. For desktop I've mostly use .NET/C#/WPF. On the web its been a combination of the standard JS technologies/frameworks with Node.js, Java or Rails backends. On the mobile side, its primarily iOS. I like to learn new things all the time and always looking out for exciting ways to bend the mind! The part that I like the most about being a consultant is the opportunity to explore new platforms, technologies, languages which I would never venture into voluntarily.


Q What hardware are you using for development?

MacBook Air 13" with a 24" monitor.


Q Which editor or IDE do you use?

RubyMine, Sublime Text, Visual Studio 2012 and XCode.


Q What software can you not live without on a daily basis?

Git, Sublime Text, Zsh, RubyMine, Final Cut Pro (for all my video editing), Dash, Google Chrome, Keynote (for all my diagrams)


Aurelio De Rosa

aurelio

Bio: I’m a web and app developer with more than 5 years’ experience programming for the web using HTML5, CSS3, JavaScript and PHP. I mainly use the LAMP stack and frameworks like jQuery, jQuery Mobile, and Cordova (PhoneGap). My interests also include web security, web accessibility, SEO and WordPress.

Currently I’m self-employed working with the cited technologies. I’m also a regular blogger for several networks (SitePoint, Tuts+ and FlippinAwesome) where I write articles about the topics I usually work with and more.

Connect with Aurelio on Twitter and on his blog.


Q What’s your primary development focus?

I'm a full stack web developer working with the LAMP) stack. Apart for PHP for the server side, I use JavaScript with jQuery for the client side, and a lot of HTML5 and CSS. Besides, I reuse my web knowledge to build mobile apps with the help of frameworks like jQuery Mobile and Cordova (PhoneGap). My interests also include web security, web accessibility, SEO and WordPress. Currently I'm self-employed working with the cited technologies. I'm also a regular blogger for several networks where I write articles about the topics I usually work with and more.


Q What hardware are you using for development?

A PC with an i3 processor with 4Gb of RAM plus a 24'' monitor. While I deploy on Linux, both my PC and 13'' notebook run Windows 7.


Q Which editor or IDE do you use?

It depends on the projects I'm working on or the code I have to write in the moment I sit in front of the desk. For a small changes I usually just open the file using Notepad++. As an IDE, I used to develop with NetBeans but some months ago I tried PHPStorm and from that moment, I felt in love. It's really a complete, stable, and complete IDE.


Q What software can you not live without on a daily basis?

Based on what I said so far, it should be clear that I cannot live without browsers. My favorite one is Chrome, but for work reasons that you may easily guess, my PCs have all the major browsers installed. In addition, I must mention Composer, Git, FireFTP, Poedit, Google, StackOverflow, and Twitter . Oh…and YouTube and Spotify! Who the hell can code without music?


Jeremy McPeak

jeremy

Bio: Hi! I’m Jeremy McPeak, and I’m an author and a software developer. I’ve written a few books, articles, and courses at Tuts+. I specialize in my two favorite languages: JavaScript and C#, but I’ve been known to delve into other languages like PHP and Java when needed. When I’m not working, I’m spending time with my family, playing guitar or piano, gaming, or reading.

Connect with Jeremy on Twitter: @jwmcpeakand and on his blog.


Q What’s your primary development focus?

These days, I spend the majority of my time with C# and .NET for both desktop and web applications. I got into this industry as a client-side developer, and I’m continually trying to fit more client-side work into my daily work flow. JavaScript is my first love, after all.


Q What hardware are you using for development?

There are three computers I use for development, all of which run Windows 8 Pro. For development on-the-go, I use a Dell XPS 14 Ultrabook with 8GB of RAM, and it will soon sport a SSD. My workstation at the office is an Ivy Bridge-based Xeon with 32GB RAM and dual nVidia Quatro cards for powering four displays. For development (and other things) at home, I built a Haswell-based computer: i7-4770 CPU, 32GB RAM, two Samsung 840 Pro 256GB SSDs, a ton of conventional storage, nVidia 660 GTX, and three Dell U2410 displays.


Q Which editor or IDE do you use?

I primarily use Visual Studio Professional 2008 and 2012 with Resharper and NCrunch for web and desktop development. I also use WebMatrix if I need to quickly prototype something, and Sublime Text and Notepad2 get notable usage when I don’t need Visual Studio.


Q What software can you not live without on a daily basis?

I must have Resharper and NCrunch. Visual Studio is a top-notch development environment, but the Resharper and NCrunch plug-ins make it the absolute best environment on the planet. I also need VMWare Workstation. I do a lot with virtual machines, and VMWare’s Workstation is currently the best client-based VM software available.


Nikko Bautista

nikko

Bio: I’m Nikko Bautista. By day, I work as a Software Engineer at Bright.com, where we make hiring smarter, faster, and cheaper. By night, I develop web applications and write tutorials for Nettuts+. I specialize in PHP and PHP frameworks. I have experience with Symfony, Zend Framework, CodeIgniter, FuelPHP, and Laravel. I like creating and maintaining developer-friendly APIs. I also have expertise in third-party APIs from Facebook, Twitter, Google, and other platforms. I often explore new technologies, frameworks, and web services by building web applications that use them. Nettuts+ allows me to share what I’ve learned with the world.

Connect with Nikko on Twitter: @nikkobautista and on his blog.


Q What’s your primary development focus?

I'm a web application developer, using PHP as my main language. I also dabble with other languages like Ruby and Python, but not as much as I'd like. Together with this, I use jQuery and Ember for the client-side. I currently build applications for Bright.com, where we help people score their next job.


Q What hardware are you using for development?

At work, I use a MBP 15" with a 23" secondary screen. Before I started working at my current job, I used to be a Windows fanatic. I've always hated how OSX had different conventions than Windows. I decided to give it a fighting chance when I started work at Bright, and I couldn't be happier that I did. At home, I have a triple 27" monitor set up, connected to a small mATX PC. The PC has a quad-core i5, 8GBs of RAM, and 7TBs of hard disk space all packaged in a Lian-li V350B. For work on the go, I have a 11" MBA that I bring around with me almost all the time since it's so light you barely even notice it's there. Additionally, I use my trusty Logitech K350 Keyboard and Logitech M705 Marathon Mouse (for both my work setup and home setup).


Q Which editor or IDE do you use?

Like many, I mainly use Sublime Text for my everyday coding. It's fast, reliable and extensible, although I sometimes miss the features only full IDEs can provide. When mucking around in servers though, I use Vim. In the future, I'd love to be able to work more efficiently using Vim, and use it as my main editor, but for now, I can't live without my cmd+p to open files in Sublime.


Q What software can you not live without on a daily basis?

Google Chrome is definitely on the top of my list, working is just so much faster if I use it. Fantastical on OSX (and just plain Google Calendar on Windows) is a great way to keep track of stuff on my calendar and add new tasks/events.


Stephen Radford

stephen

Bio: I’m Stephen Radford, a web designer and developer from Leicester, UK. Working with stuff like Laravel, Backbone and AngularJS.

Connect with Stephen on Twitter and on his blog.


Q What’s your primary development focus?

I'm primarily a PHP working on web applications, with my go-to framework being Laravel 4. On the frontend side of things I'm working with AngularJS for the most part, as well as maintaining some applications built with Backbone.


Q What hardware are you using for development?

During my day job I'm using a 21" iMac as well as a cheap, secondary display which usually is littered with terminal windows. When working on my side-projects, I'm using my 13" MacBook Air which is perfect to be able to chuck in my bag and work somewhere else should I need to. Though most of my work is done from the sofa.


Q Which editor or IDE do you use?

Un-surprisingly, I'm a big Sublime Text 2 fan. The huge repository of plugins (mainly accessible thanks to the fantastic Package Control and unique features like multiple cursors and distraction free mode just make a joy to use.


Q What software can you not live without on a daily basis?

I probably wouldn't be as productive without CodeKit, iTerm, ColorSnapper or Base. Kickoff allows me to manage a collaborative to-do list, FileShuttle lets me easily share screenshots or files, and I certainly couldn't work without the constant stream of music delivered by Spotify.


Adam Conrad

adam

Bio: I’m Adam Conrad the VP of Product for fantasy sports startup @starstreet, DJ as @deejayacon, and a front-end developer. I lift things up and put them down, too.

Connect with Adam on twitter.


Q What’s your primary development focus?

I work on the front-end – HTML/CSS/JS, but we're a Rails shop so I do that too. Straight JS/jQuery for most of our work, but we're investigating AngularJS at the moment as a way to wrap a framework around the front-end.


Q What hardware are you using for development?

MacBook Air 13'' from 2011 – 4GB RAM, 1.7 GHz Intel i5…I could use a bit more RAM especially if I wanted to do some work with VMs but it gets the job done. I used to use an additional external monitor (24'' Asus HDMI screen) but the color profile discrepancies between the two screens were annoying enough as a front-end guy that I abandoned it altogether in favor of one single screen. For our responsive work, I'm constantly cycling between an iPhone 5, Nexus 4, iPad 3, iPad Mini and Nexus 7. And of course, no hardware setup can be complete without some gnarly headphones. I rock the Audio Technica ATH-M50s because they had the highest ratings on Amazon for pretty much any product and man do they deliver.


Q Which editor or IDE do you use?

Back in my .NET days I was a Visual Studio guy, then I moved to Vim when I switched to Ruby on Rails, but then I saw the light that was Sublime Text 2 and life is golden. I have a host of packages installed for pretty much anything you could possibly need for Ruby, Rails, jQuery, JavaScript, HTML and CSS. Can't say I've used them all, but they're slowly creeping into my development workflow.


Q What software can you not live without on a daily basis?

My IDE (obviously), Chrome DevTools and my feed reader to provide me an endless stream of great new music.


Hendrik Maus

hendrik

Bio: Hendrik is a Web Application Developer based in Cologne. He is working with SAE Global/European IT and Navitas Ltd., mostly on large scale database driven PHP applications using Zend Framework, MS SQL and some pretty exciting cutting edge stuff. Always happy to branch out and experience related fields.

“Trying to become a renaissance developer seems to be the ultimate goal for me. Being able to pick any right technology for the job, adapt and use it quickly.”

Connect with Hendrik on Twitter and on his blog.


Q What’s your primary development focus?

My current daily business is developing database-driven web applications based on object-oriented PHP for educational businesses. I most frequently use custom PHP, Zend Framework (Delivery and DB manipulation), MSSQL, MySQL, and Javascript (mostly native + jQuery for DOM & Ajax stuff). Besides work, I am digging into Sencha Touch, Node and Angular JS.


Q What hardware are you using for development?

I use a 13" MacBook Air as a portable server (with both Mac OS & Windows) as I constantly change workspaces and cannot rely on the cloud for a major part of my work. I usually connect the server to the local networks at home or in my office. At home, the desk is powered with a Mac Pro connected to a 30" display which is quite a pleasure to work with. At the office I use a 2012 Mac Mini i7 with two displays – 27" and 19". Both of them are SSD powered as you must admit that you never want to miss it again once you've tried it. ;) I fly over to our headquarters in Berlin on quite a regular schedule where I work directly on the MacBook. This setup has proven to be very flexible and fits my needs in any situation.


Q Which editor or IDE do you use?

I have been using PhpStorm as IDE from the minute it came out. Seriously, this is one of the most incredible pieces of software ever made for really powerful web development. For quick editing I am a fan of Sublime Text 2 as it is incredibly lightweight and even comes powerful features you'd much more likely expect from a full blown IDE. On the command line I tend to stick with nano or vim if I'm forced to. I must admit that Microsoft did a pretty good job on the SQL Server Management Studio; fun to write SQL with it.


Q What software can you not live without on a daily basis?

Here is my dock from left to right: Skype, Spotify, Chrome (love the Dev tools), VMware Fusion, PhpStorm, SourceTree (for Git), iTerm 2 (for SSH, Tunnels, Git and the usual stuff), Sublime Text 2, Navicat Essentials and Sequel Pro. The list of little helpers is omitted ;)


Jonathan Creamer

jonathan

Bio: I’m a web developer focusing mostly on JavaScript, ASP.NET MVC, jQuery, and C#. I believe that you cannot ever stop learning which is why I stay active in the development world attending user groups like NashJS, ID of Nashville, andNashDotNet, blogging for FreshBrewedCode.com,JCreamerLive, Net Tuts, and Tech.pro and scouring Twitter and the interwebs for as much knowledge I can squeeze into my brain. I work as a JavaScript Engineer appendTo and am having a great time developing front end applications in JavaScript and jQuery. I am also an IE userAgent Please feel free to contact me, I love meeting other devs who are passionate about what they do.

Connect with Jonathan on Twitter: @jcreamer898 and on his blog.


Q What’s your primary development focus?

My primary focus is front end development using JavaScript, and jQuery. I love using Backbone.js or Knockout.js to build applications, and I frequently use postal.js, machina.js, mockjax, and several others. Typically I build my apps using AMD with Require.js as I feel it gives me the best development experience. I also write ASP.NET MVC, and actually got my start writing ColdFusion primarily focused around the ColdBox MVC framework.


Q What hardware are you using for development?

Currently I'm on a custom built AMD Athlon X4 Phenom II with 16 GB of RAM, 2TB of HDD, and a GTX 250. I also have an ASUS U56E laptop with an I5 and 8GB of RAM. Windows is my primary OS with a Linux VM as needed.


Q Which editor or IDE do you use?

I use SublimeText 2 for the most part. I love the speed and extensibility of it. I've also been beta testing version 3 which is blazingly fast, however the plugin support is still a work in progress for this version.


Q What software can you not live without on a daily basis?

I'm a big Evernote fan. It's got a nice screen capture experience. I use the Chrome extension for it as well to clip pages or urls. Most of my needs are met in the browser with things like TweetDeck, Bit.ly, and Simple Time Track. I also use a lot of Node.js tools such as Grunt and simple-http-server by Andrew Thorp. I also use Notepad++ for super fast code edits. Spotify makes my day go by faster. Fiddler2 is a great tool for watching HTTP traffic. One of my favorite Git tools is TortoiseGit as well as Posh-Git for Poweshell.


Great Stuff!

It's great to be able to peak behind the curtains of other developers and see how they do the magic they do. And from what you can see, the tools and technologies they use are all easily available, and in many cases for free. I'd like to thank the Nettuts+ authors for sharing this information.

September 02 2013

18:55

Interview With Lea Verou of the W3C

There's so much goodness happening on the web and as it continues to evolve, it's important that talented individuals step up into leadership roles to help shape the future of web development. And doing this isn't an easy task. Not only do you need to have the technical chops to help define new techniques and paradigms or create the next great technology, it's equally important to be able to effectively convey your message in a passionate and credible fashion so that your peers respect your direction.

Lea Verou is one of these new breed of leaders who is helping to push the web forward through her technical savvy and profound love for web standards. She's developed quite a following and her live coding sessions at major conferences are a thing of legend.

We had an opportunity to find out more about her in this Q&A.


Q Let’s start with the usual. Could you give us a quick intro about yourself?

I’m Lea Verou and I’m a web designer/developer and web standards geek (sounds like an AA introduction, doesn’t it?). I’ve created several open source projects such as Prism, a syntax highlighter used in A List Apart, Smashing Magazine, WebPlatform.org, MDN and other big websites, Dabblet, an interactive code playground, or -prefix-free, a JavaScript library that lets authors forget about vendor prefixes and code to the future standards. I’ve also come up with and published several CSS techniques, such as using CSS gradients to create patterns. I’m currently employed by W3C, although I’ve announced that I’m leaving at the end of July to pursue other challenges, such as writing and designing my first book.


Q You’ve risen quickly to be one of the most recognized and respected web developers around. Has that changed the way that you view yourself within the community and the responsibilities you may (or may not) have in promoting best practices and specific technologies?

Not really, to be honest. I still do my thing, make stuff and put it out there in the hopes they will be useful for someone. I still speak my mind about the technologies and best practices I like and those that I don’t. Whoever wants to listen to me, it’s their call. I’m not going to censor myself because of the number of people who are following me. That would be counter-intuitive, since being myself made these people follow me in the first place.


Q You’ve been very vocal about the problem with vendor prefixes. Do you think that’s been solved?

I think both browser makers and the WG (working group) have realized that vendor prefixes, although good in theory, do not work in practice. So, the way to go right now seems to be browsers implementing experimental features under a setting instead of behind a prefix. That way, developers will not start using it in production, forcing the WG to get stuck in early iterations, as was the case with vendor prefixes.


Q Along those same lines, how much responsibility did the W3C, the CSS WG and WebKit teams have in perpetuating what became an incredible hindrance to cross-browser development (especially mobile)?

There’s no single cause, but I believe a big part of the blame lies with developers. Although we’ve endured the pains of a browser mono-culture before, we did not learn much. IE6 used to be really cool stuff 12 years ago you know, just like WebKit is today. I can see the CSS WG being at fault too, for not realizing the issues with vendor prefixes early on, which turned web development into a popularity contest. Last but not least, the WebKit team shares some part of the blame, as they shouldn’t have implemented non-standard CSS features to get ahead in the browser game.


Q Developers want more modern features and they want them now. Is the pace of the standards bodies keeping up with the needs and wants of the developer community? If not, what needs to happen to change that?

I’m sure you are aware of the old project management triangle paradigm: Something cannot be fast, high quality and cheap, you need to pick two. I believe this applies to designing APIs as well. Budget is limited, as there are very few people paid to work on standards. So, basically, designing new features can either be fast or high quality, but not both. We can see the former when browsers decide to innovate: Usually, even when the original ideas are good, they are poorly thought out, since they were designed in the vacuum of a single company (examples: Drag and Drop API, -webkit-gradient()).

When the standardization process is followed through, features can be very high quality in the end, at the cost of taking a long time to be finished. Several parties with different interests need to reach consensus, a full test-suite needs to be written, it needs experimental implementations and several iterations based on implementor feedback. All of this takes time, but keep in mind that once a feature enters the open web platform, we’re stuck with it for years, if not decades. Therefore, it pays off to invest that kind of resources in to it, and to be patient. Short-term pain for long-term gain ;)


Q You recently announced your departure from the W3C. How will that affect your involvement in the standards process?

I will still be involved in the CSS WG as an Invited Expert. The WG voted on it in a recent telcon and I was happy to see several people in support and nobody against it. :) In fact, I will be able to devote more time to it now, since I expect to have more free time in general, and having worked at W3C gives me a unique perspective and insight into the standards process.


Q You’re renowned for your live coding demos, flooring conference attendees during your presentations. Aren’t you concerned about messing up and affecting your flow? How do you even prep for something like that?

I have several safeguards preventing me from messing up. I keep my code examples concise, showing only what’s needed. This also helps the audience understand, as the code is small enough for them to process. I believe that as the number of lines in a code sample grows linearly, understanding decreases exponentially. Most importantly, I practice a lot. I might not practice the delivery of the talk, but I always practice the live coding several times, even when I’ve given the talk before. Also, even if I mess up, which has happened a couple times, the audience is so glad to see the result gradually build up in front of them instead of being presented with a screenshot, that they can be incredibly forgiving of missteps. If something does not work, I will spend a few seconds trying to fix it and if I can’t, I will explain what was supposed to happen and move on.

I often see people ruining live coding presentations by showing too much code, with too many distractions (e.g. a full IDE around it and having to switch windows to see the result) and long delays trying to debug their code when something goes awry. All three are very effective in getting the audience to lose focus. However, done right, live coding can be a great teaching aid and make a talk more engaging and fun.


Q A lot of devs long to be as multi-faceted as you. Most seem to be good in either JS or CSS but usually not both. What are the techniques or resources that have allowed you to become as proficient in both to where you can do live coding demos near flawlessly?

My two biggest interests since my preteens were design and programming. So, when I started making websites, I was studying the languages involved, as much as studying graphic design principles. I fell in love with CSS because it felt like a bridge between the two, which is why I specialized in it.

Regarding resources, I was always the type of person that learned through reading and practicing (in that order). I would read an entire book and then build something that helps me put what I learned into practice to create something that I wasn’t able to before. I don’t learn easily from lectures, and I even glided through university (Computer Science) studying on my own, rarely attending any lectures. However, this greatly depends on the person, I know some amazingly skilled folks who absolutely hate studying on their own without anyone teaching them. I think that’s why I tried to take a different approach in my own talks, because I find conventional lectures so damn boring and hard to follow, except for the rare case where the speaker is as funny as a stand-up comedian (and while I like to think I have a good sense of humor, I’m by no means on that level).


More About Lea

Thank you Lea for taking the time to chat with us. To get to know more about Lea and her work on standards and web development, be sure to visit her website and follow her on Twitter. Also, if you have an opportunity to see her speak in person, definitely jump on it. Her list of past and future events can be found on Lanyrd which also link to videos of her previous presentations.

September 01 2013

13:00

20 Hot Female Web Designers That Will Take Your Breath Away

Sizzling hot designs from hot female web designers will prove that, though web design industry has always been viewed as a world fully packed with men, the best stuff doesn’t always come from them!

Female web designers constantly battle to acquire the top spot in web design industry. Though we cannot speak in numbers, recent blog listing posts is clear evidence of the huge difference in the head count of males and females in this industry. The great thing about knowing this statistic is that, though females are considered extinct in web designing, still most of them are reputable.

Female web designers put their heart and soul on their designs. They even reflect themselves on their works. If there is a saying that you are what you eat; in web designing, we can translate that as “You are what you design!” Having said that, what should we expect from these hot female web designers??

But first let me ask you to hold your breath. To escape from the wrath of the male hot web designers and being accused of being a sexist, let me remind you that this article is made to uplift the spirits of young female web designers. This is to show the little girls out there that web designing is not just a man’s world. To prove that 1stwebdesigner is equal in promoting both sexes in web design, feel free to read this post: 15 Most Influential People in Web Design.

Hot Female Web Designers

1. Rina Miele – @honeydesign

A full-time freelance creative director, designer, providing: web, UI, logo + identity, and typography design.

A lady with a humorous thought. Stalking her Twitter account and an excerpt from one of her interview proved she really is a fun gal, “I make designs and it’s fun and I’ve been doing it practically my entire life and I like colors and when I grow up I wanna be a supermodel and music is awesome and I love watching anything in HD and I love video games, vinyl toys and Lego™ and this sentence is ridiculous” (Rina Miele Interview).

More than ever, her being part of the small population of female web designers made her sizzling hot! Savor sweet designs Honey Designs.

Hot female designer 05

2. Meagan Fisher – @owltastic

This part of the article will leave you wishing you were an owl! Can we state the obvious? Well, she is the Owl Lover. Imagine what would you feel if you were an owl and this charming lady will stick with you forever!

Meagan is a nocturnal web designer who’s obsessed with typography and textures. You can view her latest works at her dribble account Owltastic.

Hot female designer 02

3. Kate Hatchett – @katerbca

A young talented designer at hedgehog lab.

More than anything else a female’s intelligence outshines all! Still a student, Kate was invited to join hedgehog lab because of her amazing design talent. Watch Kate Hatchett change the world through her designs.

Hot female designer 11

4. Rita DeRaedt – @ritaderaedt

A pixel enthusiast,  her first copy of Photoshop during her freshman high school year had lead her way to web designing. Why a pixel enthusiast, you say? She has keen eye for details! She is always at her best when designing; that made her a finalist in the .net Awards. Check out Rita’s works.

Hot female designer 18

5. Janna Hagan – @_jannalynn

The worthy winner of .net young designer of the year 2011. She is the creator of A Student’s Guide to Web design. She believes that real-life skills are the most important abilities to acquire if one wants to a web designer. Her stand and action for what she believes in makes her more desirable.

Hot female designer 07

6. Siska Flaurensia – @SiskaFlaurensia

The Pixel Princess. Founder of the Squeeze of Lime Studio. She originally came from the marketing and sales industry. Her solid experience in that field made her more viable in branding, digital design, E-commerce and SEO, web development and hosting. Getting personal, she’s a pretty girl who loves to travel, sing in the car and eat red velvet cupcakes. Siska’s lovely works.

Hot female designer 20

7. Milica Sekulic

The CSS Princess. I salute Milica for believing in girl power. She launched the website CSSPrincess to support women who wish to pursue a web designing career. Let’s know more about Milica.

Hot female designer 14

8. Janelle Hitz – @silkychicken

If we had an owl lover, this one is a unique chicken lover! I didn’t have time to contact her and ask if she loves eating chicken or having them as pets. This is an honest curiosity of mine.

And yes, even her website has a chicken on its name; ChickenPaper.com. Check out her cool stuffs!

Hot female designer 09

9. Hillary Hopper – @HillaryHopper

Hillary was one of the nominees of Top 50 designers on Design Shack. She is a user interface designer for mobile games and applications. View Hillary’s portfolio to be inspired.

Hot female designer 04

10. Renee Rist – @RibbonsofRed

Renee Rist is a recipient of an American design award; “Killed Ideas” People Choice Award and Ohio Country Park Website award.Visit her website and learn the deep meaning of Ribbons of Red – her portfolio and blog in one.

Hot female designer 17

11. Irene Demetri – @youandigraphics

Winner of CSS Design Awards December 2010 and on 2012, the tables were turned and she became one of the jury of the said design awards body. She now run Youand I Graphics and also travels across the globe; it is evident on her website that she loves to travel.

Hot female designer 06

12. Hannah Donovan – @han

A music lover! For five years she led Last.fm and now she is a part of This is my Jam. She continues her league to improve music on the Web. We can say that her designs are rocking, literally!

Hot female designer 03

13. Jessica Hische – @jessicahische

A little girl from Pennsylvania raised by two noncreative people and pursued her dreams of becoming an artist. Jessica proved that we make our own destiny. What we are right now might have been a result of 10% influence and 90% firm decision. Also she is an over-sharer who thought that more than cons, sharing online has more pros.

If you are starting web design career, I would suggest you contact Jessica Hische for sure she will share her professional views.

Hot female designer 10

14. Antonea Nabors – @antonea

For her, a good design will be great if it has a functional aesthetics; we cannot agree more with this! Antonea is a typography lover, iPhone fantatic and a surfer!

Check out her colony at VelvetAnt.com.

Hot female designer 16

15. Liz Andrade – @lizandrade

The Internet nerd and crazy cat lady! And to put two obsession into one she named her cat, Computer!She manages CMDShift Design – a one woman studio specializing in creating complete design solutions.

Hot female designer 13

So far we have an owl lover, a chicken liker and a cat obsessed female web designer. I suggest you start thinking of involving a pet into your web designing career. Studies shows that pets can improve your health – and for web designers who always seat in front of a computer, some might have stress that pets can help relieve.

16. Mindy Wagner – @graphicsgirl

Mindy is really holding her top seat on the male dominated web design industry. On one of her interviews,  she gave advice to our young designers: “You want to find someone who will tell you what’s wrong with your design and encourage you to dig deeper” This is the product of practicing what she preached – Mindy Wagner works.

Hot female designer 15

17. Eva-Lotta Lamm – @evalottchen

I frequently hear someone dreaming of working on Google! Imagine their extremely awesooommmee office and the fame you will get from becoming a part of the most famous search engine! Well, at some point we envy designers like Eva for experiencing that.Hey young girl, you can also experience sliding at Google’s office! View her works and be inspired!

Hot female designer 01

18. Jan Cavan – @jancavan

Oh my glab! She is being followed by Britney Spears on Twitter! How cool is that???

According to what her About page says, she seemed more busy when not designing. Away from design, she spends her time reading, playing arcade basketball, and hiking, volunteering, working on personal projects or random road trips. She also love performing arts, the movies, music, dance, singing, musicals, collecting Happy Meal Toys, DIY furniture and trying to be a badass ukelele player.

Are you surprise on what she does? Not your ordinary girl right? Well, this one will blow your mind. She’s also a break dancer wanna be! Before we can see her successfully break dancing on the floor, we can indulge to Jan’s successful web designs for now.

Hot female designer 08

19. Sarah Parmenter

If you are a young lady aspiring to be a hot female web designer someday, you should know and learn from Sarah Parmenter!

Sarah Parmenter keeps on raising the female’s flag of female web designers. She is the founder of YouKnowWhoDesign.com – a design studio based in Europe since 2003, which specializesin attractive and intuitive interfaces for iOS and the Web. Also, she had been a speaker of many web design seminars and learning sessions.

Hot female designer 19

20. Larissa Meek – @larissameek

An artist, a web designer, host and bikini.com supermodel!!!

More than a beautiful physique and face, her being an outstanding web designer made her more attractive. Not to mention her care for newbies in this industry. Larissa passionately answers queries from seasoned web designers to beginners as we can read on her website.

Please tell me again why these web designers are hot!

Hot female designer 12

Bonus: Interview with Lea Alcantara

lea-alcantara-web-designer

Lea Alcantara is a web designer who runs her own business at  Lealea Design. She was listed as one of the 50 best female web designers in the world. Her article series on The Art of Self-Branding  got a lot of recognition from web designers world-wide.  She also gives occasional talks on branding.

To Conclude

I dug the Internet to find these hot female web designers. I know there are more out there that are waiting to be discovered or were already discovered but I missed, I apologize in advance. If you think you are one of these hot female web designers and you deserve to be mentioned, please comment and let us know how hot you are! We surely will create part two or even three of this article should there be more to include!

August 20 2013

00:10

Interview With Nicholas Zakas of Box

Having people you can learn from is an essential part of being a successful developer. No amount of reading will ever fully prepare you for the ever-changing web landscape, so being able to look to seasoned and experienced mentors is vital. Nicholas Zakas is one of those people that you can look to.

A leader in the JavaScript world and incredibly savvy in scalability and performance, Nicholas is one of those that helps define best practices through his vast experiences at companies like Yahoo! and Box. One of his most amazing attributes are his approachability and his desire to genuinely help push the web forward.

Let's get into our Q&A so you can learn a little more about this great developer.


Q Let's start with the usual. Could you give us a quick intro about yourself?

Certainly. I'm a software engineer who focuses on front-end web development. I love the web and knew very early on that I wanted to make that my career. That love has led me in many directions, including writing and speaking. At the moment I'm working at Box, taking on the challenge of helping the company scale.


Q You were a principal front-end engineer at Yahoo!. I think for most of us, it's hard to comprehend working at that scale. Can you tell us about the challenges you saw at Y! and how it has shaped your thinking since you've left?

Yahoo! was the most impactful professional experience of my life. Prior to that, I was a big fish in a small pond, and day one I realized I was now in an ocean. Solving problems normally and solving problems at scale require two different ways of thinking. At scale, there's never just "one more" thing. I remember one conversation in particular where someone wanted to make an extra Ajax request and I said no. His response was, "what's the big deal, it's just one more request?" I had to explain that one more request per user when there are millions of users means a dramatic increase in server load that we need to capacity plan for. I chuckled at that, because I was on the other side of that conversation when I first arrived at Yahoo!.

Everything I do has been affected by my experience at Yahoo!. I'm obsessed with scalability and the problems associated with it, and most of my work since then, both at Box and while consulting, has been in helping companies scale their web applications. My experience at Yahoo! made it so that I understand these issues from many angles, not just technical but also personnel-wise and organization-wise.


Q When I read your writings, you focus heavily on computer science principles. It's only in the last couple of years where I've seen an up-tick in that. Where do you see the bulk of the current generation of front-end developers heading in terms of embracing formalized CS principles in their work? Are they still lagging?

I think front-end developers are still lagging in having a solid amount of computer science knowledge. It's true that having a CS degree alone does not guarantee success as a front-end developer, but it certainly helps. I know several excellent FEs that are now going back and either taking computer science courses formally or trying to pick up more CS knowledge through reading and other means.

Web applications are so much more complicated than they were before, and understanding design patterns, abstraction, and architectural principles is becoming more and more important. Those who come into the industry without a good CS background will either be limited in their professional growth or will start picking up these CS principles some other way. I firmly believe that the best and the brightest are the ones who can bring CS principles back into the front-end. Whether that's through formal training or not, that knowledge becomes important to furthering your career.


Q Along those same lines, where do you see front-end devs lacking from a skills perspective? What are the things that they should be up on but aren't?

The biggest issue I see is lack of code organization. Part of the problem is that web technologies like CSS and JavaScript are mostly without built-in form. Whereas Java has packages and C++ has includes, web technologies don't give you a formal way of organizing your code. That leads to poor code organization and then poor architecture, because there are also not any built-in patterns.

Learning about design patterns, code organization, and architectural principles would benefit front-end engineers tremendously. Not just for their FE code, but also for the ability to participate meaningfully in conversations about other parts of their technology stack.


Q I've overheard conversations where the ECMAScript standards body is getting push back from a very vocal group which call themselves "practitioners" of the JavaScript language and are driving for more practical, real-world updates to JavaScript. Have you heard of this and if so, what's your take on this and the interaction between the traditional maintainers of JS and this new group?

Yes, there's definitely been an influx of practitioners getting involved in the standards committee. There's Rick Waldron and Yehuda Katz from the jQuery Foundation and Eric Ferraiuolo from the YUI team on TC39, people with real-world experience creating web applications and JavaScript libraries. There are also a lot of vocal people who participate on the es-discuss list regularly and who represent the practitioner view. Even I chime in from time to time when I feel like reality isn't quite intersecting with plans.

This communication between practitioners and those deciding the future direction of the technologies we use is imperative. Via es-discuss, TC39 members are generally responsive. I look at this relationship as being similar to the one between citizens and elected officials. If the citizens aren't telling the officials what's important to them, it's hard for the officials to know. Random people complaining about something here or there doesn't make someone think of it as important – it's when a critical mass all reach out and say, "yes, this is important" that change happens.


Q It seems that some of this may be founded considering the adoption of such DSLs as CoffeeScript, TypeScript and Dart which seem to bring flexibility and power to front-end devs. Is it a language issue or a developer expertise issue?

I feel like it's a developer expertise issue. What I see most frequently is people without much web development experience deciding that it's easy, so they're just going to hack something together. After all, JavaScript looks like many of the other C-based languages, and so they start writing it as if it were C or C++ or Java – then they get frustrated because the functionality they're used to doesn't exist…then they turn to things like CoffeeScript or Dart because it gives them back what they perceive to have lost.

If you flip the script a bit, if people actually took a little bit of time to learn JavaScript before diving in, I'd hope there would be a greater appreciation for what a unique and dynamic language it is. Unfortunately, the "agile" and "rapid" development processes tend to encourage people not to stop and learn about what they're trying to do, but just get stuff done so as to keep up their velocity and deliver. When that happens, finding something that looks familiar makes far more sense than using something completely new.


Q One thing you really harp on is performance and trying to educate developers on optimizing their code. Alex Sexton wrote a great article that's along these lines, elaborating on roles that specifically target optimization. Is this the optimal route for companies to take or should every developer be as versed in the nuances of performance?

To me, this is too specific a specialization. As a front-end engineer, your job is to cross-cut concerns, including performance, maintainability, internationalization, accessibility, and more. To put it another way: if front-end engineers are not thinking about these things, then I'm not sure what they're thinking about. In my experience, the more you split off specializations, the harder it is to convince everyone that it's their responsibility as well. "Oh, the performance team will take care of that." "That? The accessibility team will worry about it." This isn't to say that you don't have people who happen to be more in tune with certain concerns, but I believe that you want everyone on the team to be thinking about all of these issues all the time.


Q You always seem to be on top of the cutting edge stuff, especially in terms of JavaScript. What's your process for staying in the loop on all the changes?

I do a lot of reading. My Twitter feed is made up primarily of human news aggregators that let me stay up-to-date with what's going on. I also do a lot of writing, which I find leads me to research areas I might not normally look at in an effort to explain things better. Lastly, I'm constantly experimenting, both on my own and at work, and looking at the real-world problems people are having to see if I can come up solutions.


Q Last question. If you had to list the top five things front-end developers should be in tune with, what would they be?

  1. The changing API landscape – make sure you know what's possible
  2. How to effectively use the ever-evolving development tools
  3. Standards efforts – understanding what's coming, what's not, and why
  4. Browser feedback channels – you should be using them
  5. Code organization and design patterns

Closing

Thank you Nicholas for taking the time to offer up this insight.

I urge our readers to follow Nicholas on Twitter and also check out his blog, where he posts some of the most frequently referenced articles in web development.

August 13 2013

08:00

Drilling Into Lean UX

Overall I found Lean UX to be an incredibly insightful and helpful compilation of principles and suggestions for practice/improving process and collaboration as outlined in my review of the book. As I was reading, though, I had some questions come up that I felt weren’t answered–or maybe I missed the answer. Since others may have these same questions, we appreciate Jeff Gothelf agreeing to answer them for Boxes and Arrows.

Ambrose: In a couple places, you mention the value of keeping your teams small. I’m sure you are quite aware that there are some pretty large software projects out there, though.

Do you have any ideas/recommendations for those in that kind of situation? Are there ways of, for instance, breaking into smaller teams for Lean UX while still tackling larger solutions that you have seen work well?

Jeff: As team sizes grow, communication suffers. As communication suffers, the team increasingly relies on documentation to ensure nothing is missed. This increases the workload on the team, focusing them on tasks that add little value to the project and taking them away from tasks that move the team forward.

In these situations, look for logical ways to break the larger team up into smaller, more nimble groups. Keep those groups as cross-functional as you can and provide regular opportunities for them to coordinate with each other, such as daily standups, scrum of scrums, and the like.

Ambrose: In Chapter 3, one of the early activities you describe is “feature brainstorming.” I have seen a tension between thinking about features and thinking in terms of user stories. It is similar to problem vs. solution, and my experience has been that it is way too easy for team members to jump to solutions, often bypassing taking time to really understand contexts of use, actual users, and their desires. It felt like this was being short-circuited in favor of a focus on features.

Maybe it’s a terminology issue, but do you see value in capturing and starting from stories and/or storyboards rather than from features?

Jeff: The main focus of the team should be the outcomes the project or product is trying to achieve. These can initially be captured as user outcomes but should ultimately be translated up into business outcomes. Using our desired outcomes as a filter we can prioritize features more objectively–whatever technique gets you to the point where you have an objectively prioritized list of hypotheses fastest is the one you should use.

I’ve been in situations where bringing in some visualization artifacts has moved the process along faster. The goal is not to present them as “done deals” but more of conversation starters for the rest of the team to take inspiration from and to drive discussion.

Ambrose: One of the things that I loved was your treatment of MVPs as prototypes. “P” is for both Product and Prototype, right? I also liked thinking about MVPs as more of an MVF—Minimum Viable Feature, if you will.

I think the concept of Minimum Viable Product is challenging for new and potentially innovative products.There is the concern about competitors poaching ideas before you can get your full value into the market, but maybe more so there is the concern of being too minimal—not having enough value or just missing too much, and so exposing yourself to the potential for being prejudged by the market/users.

Do you have any advice for figuring out the Viable part?

Jeff: In our work, we define MVP as the smallest thing you can do or make to test your hypotheses. Sometimes that’s a workflow and sometimes that’s a feature. The scope of the experiments you run to test your MVP’s doesn’t have to yield statistical significance– just enough direction to let you know if you should continue exploring this path. This will inevitably require you to expose your work to your market.

Is there risk of having your idea poached? Sure, but it’s small. And even if it is stolen, that’s simply further validation that you’re on to something.

Ambrose: You advocate for involving the whole cross-functional team in research instead of having a dedicated team focused on research. When do you see this approach not working for product teams, and do you have any suggestions for maybe meeting halfway?

Jeff: The fastest way to gain insight from customers AND to build team-wide shared understanding of the customer and their needs is through collaborative discovery. That being said, there will come a time in the project where people must return to their core competencies at which time, reducing the number of people actively running the research is fine.

This does not, however, excuse the rest of the team from ignoring the findings of the ongoing research activities, nor should it keep them from being invited to continually participate.

Ambrose: In Chapter 7, you say, if “you work on packaged software, or embedded software, or deliver software to an environment in which continuous deployment is difficult or impossible, Lean UX may not be a great fit for your team.” As someone who has worked in such environments, I don’t like this answer.

Have you thought any more and/or discovered ways to bridge the gap to a more Lean UX approach for those sorts of environments?

Jeff: The concern here is that you don’t get to continuously improve the product. You get, for example, an annual release to correct and improve the experience. Of course you can still use many of the Lean UX techniques to build shared understanding and to inform the existing release cycle and plan and nudge the product in a more accurate direction, but until you can launch actual software into the market, the quantitative side of the puzzle will be missing.

Ambrose: In Chapter 8, you say:

“For some designers, Lean UX threatens what they see as their collective body of work, their portfolio, and perhaps even their future employability. These emotions are based on what many hiring managers have valued to date—sexy deliverables. Rough sketches, ‘version one’ of a project, and other low-fidelity artifacts are not the makings of a ‘killer portfolio,’ but all of that is now changing.”

What is the evidence you see for that changing?

Jeff: For better or worse, you’re seeing job descriptions now for “lean ux designers.” I know from our hiring experience what we’re interested in is the story a candidate can tell about their contribution to a project and how they solved challenging problems.

Other evidence has been largely anecdotal from conversations with hiring managers who are not impressed by a wireframe deck. They want to know the thinking behind the straight lines and drop shadows. That’s where the real insight lies.

Ambrose: What are you working on now that you feel is important to advancing the practice of Lean UX?

Jeff: The most recent thing that I’ve been working on and pretty pumped about is Lean Day: West (www.leandaywest.com). Would love for your readers to know about it and attend if they can!

Ambrose: Lastly, if there was one thing that didn’t make it into the book but that you have learned since and would now add, what is it?

Jeff: One thing we focus on a lot these days is transparency. Working in a lean way is new to many organizations as well as the managers in those companies. Change is always scary especially when other bosses are asking the same questions they always have.

If you’re trying these new methods and want to do as much as you can to clear the path ahead of you, be transparent. Make sure your colleagues and your managers know what you’re doing, what’s going well, what’s not, what you’re learning and what you’re planning on doing next. Make it public. Use monitors or printouts all over the office. Hold demo days and invite everyone (free food helps).

The more people know what you’re up to, the more interested they’ll be. In addition, the more informed your managers will be–which gives them comfort–which keeps them out of your way.

Tags: Interviews

July 30 2013

02:36

Interview With Chris Williams

When you think about people who have made an impact in the JavaScript community, I think most people would immediately think of Brendan Eich, Douglas Crockford or John Resig. And rightfully so, as their contributions have unquestionably impacted JavaScript as we know it.

There's another person who I feel has made a profound difference in the way that JavaScript is viewed and has done as much as anyone to bring organization and structure to the JS community. And that's Chris Williams, the founder and organizer of JSConf. I think we tend to underestimate how important a community is to the vitality of a technology and Chris has worked hard to cultivate the JS community through his outstanding conference, making it one of the most sought-after events for web developers. It has been so successful that it has spawned off sister events worldwide, all with the sole focus of improving the community.

It's not to say that everything is always rosy but Chris is undeniably passionate about JavaScript (and now robots) so I wanted to ask him a few questions about his conference, the state of the community and what's the big deal about robots anyways.

Q Let's start off with the usual. What do you do and why do people love you so much?

It was the first time that a technology conference focused on the deep technical perspective of JS.

Well first off, hello everyone! I am a bit of a jack-of-all-trades these days. I am the Vice President of Product Development and co-founder of a senior safety monitoring company called SaferAging. As part of my work there, I created node-serialport, which is the package through which JS developers are able to control and manipulate objects in the real world through devices like Arduinos and Raspberry Pis (among others). The project has evolved into a larger idea called NodeBots which basically lays the groundwork for making hardware hacking accessible, easy, and understandable to any web or high level language developer. Watching the world wake up to the exciting world of hardware has been amazing, it is why we are starting RobotsConf in order to help more people experience this energy and happiness.

Alongside these efforts, and possibly where most people know of me (not entirely sure about love, but possibly), my wife and I started the JSConf technical conference in 2009. It was the first time that a technology conference focused on the deep technical perspective of JS. We did it with a strong focus on not just technical lectures, but on fostering a strong, social community, something that has continually grown year over year. We have worked to engender a strong sense of mission to the community whether it be through various charitable donation drives, constantly encouraging and supporting new conferences and community leaders, or using the platform we have built to fix the issues in our community.

Q JSConf is one of the most sought after conference tickets. Why not just open it up to a bigger audience?

By distributing the events around the world, we allow more people many more opportunities to participate in our community instead of allowing a small group have a chokehold on speaking slots and defining our community.

We do get this question a lot and it normally involves a long, philosophical dialog which ends roughly the same way every time. The original JSConf worked, because of its very intimate nature and that is something we have always tried to retain. By creating an intimate event, everyone at the event feels like they are part of something instead of feeling lost in the crowd. I have been to many conferences over many years and the ones that stick out the most in my experience were the ones where I felt like I could connect with everyone and left feeling part of something bigger.

All too often, the crowd demands "just add more seats" without understanding that by doing that you drastically affect the overall experience, the cost structure (conference costs do not scale linearly with attendee count), and, in my opinion, it yields an overall degraded experience for attendees. My proposed solution, largely influenced from a wonderful talk by Jason Fried at the SEED conference, is to make or help make many smaller, regional events that are finely tuned to and help reinforce the local community. By distributing the events around the world, we allow more people many more opportunities to participate in our community instead of allowing a small group have a chokehold on speaking slots and defining our community. The talk I referenced provided me with this great tidbit I have never forgotten and has been very shaping on my vision of how events should be, "I would rather sell cookbooks that help others make their own masterpieces than to be the greatest chef in the world".

I believe a lot of the argument rests on the assumption that a technology conference should just automatically accommodate everyone, which is impossible. JSConf US is organized entirely by the Williams family; yes, even the two year old and two month old helped out with this year's event as did our extended family. Trying to balance everything and maintain our family life and responsibilities, while still focusing on the conference, curation of experience, and quality of talks has already been almost impossible to accomplish. In the end, the size and style of the conference we organize is up to us and only us – we do appreciate the feedback, but for now we are going to continue as we see fit – for better or worse.

Q I find JSConf special because it's more than a technical conference. It's about friends and families which I love. I heard some people aren't thrilled with that and want more tech. What are your thoughts on that?

I have heard similar and when I pressed people that made this statement, what I eventually found out was that the issue was more about unmatched expectation, commonly due to the deep philosophical and very risky nature of talks we spotlight at JSConf. We want to spotlight people doing crazy things; things that might not be usable this week or month, but have a good possibility of changing the world. Things like:

  • Phonegap
  • Appcelerator
  • CoffeeScript
  • Cappuccino
  • Node.js
  • Gordon
  • PDF.js
  • Cloud9
  • Firefox OS

Some attend a tech conference with the assumption that they will be shown some tutorials, possibly a "big name" or two will present a replayed keynote, and be able to say they "learned something". JSConf is intentionally not that kind of event, which is exactly why it sells out so quickly. That said, we finally came up with a solution to handle these mismatched expectations with our new Training Track, which was always full and a huge success. In the end, there is always a grain of benefit from any complaint – you just have to refine it to something usable.

Q There have been a number of dust-ups at JSConf about speaker diversity, Brendan's political views and even the "significant others" track got attacked. How'd you feel about being placed in those situations?

My personal philosophy is that mistakes happen, don't judge people on them – judge people on their reactions to the mistakes and their actions to remedy the situation (if any).

Great question, awkward, but great. I take many things personally, arguably too personally, but if I can take the issues in and make something better for it, well then in my mind it’s a net win. Sure we have had "dust-ups", but I would expect nothing less from a conference that brings together some of the best technology people and puts them on the edge of the world to see what comes out. We didn't build JSConf to be risk-free, if anything it is almost the exact opposite. I view it like a bootstrapped startup – sure sometimes we misstep, sometimes we mess up huge, but that is part of the adventure and what SHOULD matter is how we react to the issues, not necessarily the issue themselves.

This is actually something I think the larger technology community needs to come to terms with, we are all too quick to vilify people without giving them 1) a proper trial and 2) a chance of redemption and thus we continue to perpetuate the bad behavior. In all the efforts I have seen, they almost always involve quick decisions, made unilaterally, with no recourse or review later. My personal philosophy is that mistakes happen, don't judge people on them – judge people on their reactions to the mistakes and their actions to remedy the situation (if any). With respect to my personal event, it is a private event in the end – my family has assumed all of the risk and I don't see anyone else willing to take on that risk, so for now I am going to continue forward.

In general, if you aren't making someone angry, you probably are not pushing hard enough.

Q In terms of speaker diversity, some argue that there should be steps taken by organizers to ensure an equitable distribution of male to female speakers. Is that the right approach or should organizers go for the best speakers possible regardless of gender?

The problem with the diversity in computing is that it is a systemic issue and therefore the answer must be one that immediately addresses this systemic nature.

This is a very touchy subject and one that many witch hunts have already been set out for. I have a different view in that I believe gender and racial diversity is not something that can be fixed in a generation, but something we must start now and fix upstream and continue to improve over time. There isn't a quick fix that will magically solve it. The problem with the diversity in computing is that it is a systemic issue and therefore the answer must be one that immediately addresses this systemic nature. Force adding female speakers to meet some unknown magic percentage, while a step in the right direction is by no means approaching a final solution.

From a historical perspective, conferences get better exposure (and yes it is negative exposure) by not having speaker diversity than those that do. Think back about "stand out conferences" and I can guarantee you that the names of "bad actors" stick out far more than "good actors", so we are inadvertently reinforcing bad behavior. This year at JSConf US we had an unprecedented 35% of our speakers AND trainers were female – we got zero community acknowledgement of it. With our attendees and our sponsors, we donated $10,000USD towards actively improving gender diversity in computing – it got less community acknowledgement than if we had something "bad" happen. This has to change, we have to start promoting the positive efforts alongside the constant, angry/frustrated negative rallies. Going beyond this, conferences and conference organizers cannot be the only line of defense pushing the change – we have thus far focused far too much on just one aspect — the raw count of "diverse individuals" present in a speaker roster. I believe this is misguided and a focus on short term gains at the loss of long term goals.

I and a friend, Matt Podwysocki, have been working behind the scenes on a different strategy for improving gender and racial diversity. We have been visiting middle to high school age groups, be at their place of education or through groups like DigiGirlz Day, introducing and exciting them about things in computing – giving them a better, brighter, and bigger picture of the world that helps them see it positively. Most women and minorities drop out of computing classes around middle and high school, one way to stop this is to offer mentoring or glimpses into how exciting of a profession it really can be. The presentations we have conducted are easily as fulfilling for myself as it is for the individuals present, I wish more of the community would do similar actions. I do firmly believe that setting up a strong mentoring or apprenticeship program is a vital and under served component of our industry, until we start trying to fix the diversity ratios in the next generation, it will continually get worse.

Q There's a tremendous amount of effort that goes into putting on JSConf. Have you felt that you've gotten a decent return on investment (whether it's relationship, financial rewards, or other)?

There really is a tremendous amount of effort that goes in and countless hours and incredible risk to run a conference the size and scope of JSConf. We are the only major conference for a major programming language that is run by a single family and as such sometimes it feels like we are on a reality TV show (or should be). Defining return on investment is a complex beast because when executing a conference like JSConf where basically everything is on the line and you just hope it all works out like the spreadsheet says it might is almost impossible. I wrestle often with this question because it is a huge strain on my personal life, my family, my work, and my personal code and hardware projects.

I would like to think if I ever needed a job, I could rely on my sponsors as a first line of request, but I don't want to be in a position to test this. I would like to think I am a leader in, at minimum, the JS community, but most people who could identify Alex Sexton, John David-Dalton, or Paul Irish do not have a clue who I am. I do know that among conference organizers, established and aspiring, I am well known which is incredible just to be counted among that crowd.

It is a strange world I live in where I have built a platform by which the JS community rallies together, some become incredibly famous, and yet I have been able to stay very much out of the limelight.

Some nights, I am greatly appreciative and happy of that resultant – others I wrestle with it. I have personal demons that I am slowly coming to terms with – we all want to be known and loved; and sometimes we lose sight of the context within which those goals apply. Sometimes I lose sight of that context and those moments drive me to either change my existence or change my perspective.

One day, that may mean JSConf just ends because family, friends, or work will take a larger importance in my life, many might complain or be angry or write hurtful blog posts, but in the end it is something that is just part of my life, not encompassing of my life, and there are many parts of my life that constantly require juggling, much like I am sure there are for you.

Q I've spoken to some developers who thought you ran all of the various JSConf events but that's not the way it works. This is a great opportunity to explain how the JSConf circuit works and what your grand vision is.

From the very beginning of JSConf, we always had a perspective for growth, mainly because we never wanted to limit the size of the event strictly based on our ability. Furthermore, we didn't want JSConf to be a "just US thing" as it is a global language with each region using it in a different, varied, and exciting manner. One thing I saw all too often from other larger conference organizers was the belief that if an event worked in San Francisco, it should work exactly the same way in Europe or Asia or Africa and to me, something is seriously wrong with that model. Stamping out the same event over and over again regardless of location misses the entire point of having a regional event.

For JSConf, we decided to set up a model similar to a restaurant franchise model where local groups or individuals, after attending an established JSConf, take on the risk and create the event in their own voice. This has yielded events that not only represent JS perfectly but also presents the local culture, leaders, and vibe, because they live in that environment day in and day out. They see the local rising stars long before anyone else does. They meet with the local companies that just need a little limelight to amaze the world. They are from the audience that would attend the very event they are trying to create and that is how they create such an amazing event. This was admittedly an accidental occurrence, but one we would never change as it has made the scope of JSConf so much broader while still making it so specific to the local event. I honestly believe it to be one of the most beautiful and unique aspects of the JSConf series because it is that loose federation that allows it to continually grow, expand, and stay fresh and exciting.

That said, much like a franchise model, we do have some structure to ensure that the event retains the same general ethos and we, established organizers, do have veto/oversight ability to ensure nothing goes too crazy, but otherwise it is a blank canvas for the regional organizer. So from a certain perspective, I do still have influence over all of the JSConf events, but I do not (nor could I possibly) personally execute each event. One thing that I do assert, at the end of every single JSConf event a family picture is taken and posted – to me this is the most important moment of the entire JSConf experience as it represents that you are not attending a single event in time, but becoming part of a broader family and at its core, that is what JSConf is really all about.

Q Has Fluent Conf motivated any changes in the way that JSConf is organized and run?

I have worked to be as transparent as possible with JSConf and things like this actually help inspire new ways to provide others with the information, data, and workflows for creating great events.

Last year, 2012, was the first year of Fluent Conf, something I had seen would eventually happen and mentioned in my closing keynote of JSConf EU 2010 – so at a base level it wasn't too much of a surprise. Over that year, various things happened as the big machine of a publishing company moved in, got settled and began implementing the same time tested methods and marketing that is employed for any large event. None of this was unexpected, but what was unexpected for me was the reactions from the community both for and vehemently against Fluent Conf. I, admittedly, had grievances with the way they propositioned the event as the first and only JS event for developers, but over time came to realize that was just standard marketing copy for any event. Others had issue with the way they handle speaker incentivization (travel, lodging, ticket reimbursement). Eventually this culminated in a rather unfortunate situation, the resultant of which left me with a self-imposed block on all things Fluent Conf, this allowed me to come to terms with the situation before new "information" clouded the picture, thinking slowly about the overall aspects instead of thinking fast in a reactionary response.

In the end, I came to the realization that it doesn't at all matter. The sheer size of the JS developer community is so massive that we could support many Fluent Confs without it affecting the various JSConf events around the world. Furthermore, JSConf is not impacted by Fluent Conf, because they target two very different markets with JSConf addressing the visionary/strategic leading edge market and Fluent (and others) addressing the tactical market and as such they are actually somewhat supportive of each other. As 2013 rolled around, we made decisions on the timing and placement of JSConf US based on one major factor, the impending birth of our son and the ability for us, all four of us, to be able to organize and attend the event. We scheduled the event roughly two months after the birth and picked the specific date based on the best pricing at the venue, unfortunately that is a similar selection process for Fluent Conf (minus the birthing aspect, of course). As such, this year we had a collision of dates which some heralded as a huge issue and representative of attacking between the two events.

This actually couldn't be farther from the truth, Gina Blaber and I corresponded over phone and email to identify how we could work together and created one of the greatest gender diversity fundraising drives ever by a technical conference. We started the #15ForAda campaign for the Ada Initiative and they, Fluent Conf, started a similar donation drive for Girls Who Code, both of which were largely successful and positive events. I am incredibly proud of this outcome and happy with the working relationship between the two events – for next year, we already have coordinated dates so individuals can attend both. One of the things attendees rarely see is how long out you have to lock in dates and put down payments and commit to insane contacts all before even announcing the event.

One of the outcomes from the date conflict this year is I decided to set up a backchannel for all JS events just to provide a space for any JS event organizers to provide early notice, ask for assistance, and offer to help promote each others events. I have worked to be as transparent as possible with JSConf and things like this actually help inspire new ways to provide others with the information, data, and workflows for creating great events. That is something I am confident will yield better events and collaboration that will in turn help foster a better community worldwide.

Q I remember you dropping off of Twitter entirely because of the drama on it. Do you still feel the same or will you be back on Twitter on a regular basis?

One thing I have quickly noticed is we are all focused on the wrong problems of society.

At the end of JSConf US 2012, there was a very angry and direct attack levied against JSConf and specifically myself about the perceived culture we purportedly foster at the event. The worst part of the event was witnessing all of the so-called friends quickly tuck tail and support this new trend despite being completely in opposite. The level of hypocrisy, witch hunting, and willingness to assume guilt without even so much as discussion affected me tremendously. Worse was seeing my wife, who had just dumped heart and soul into tireless nights putting together and putting on JSConf US 2012, read these callous and careless attacks against the event and our efforts. The individual in question, without any fact checking or prior outreach, levied some very exaggerated and aggressive claims against us as organizers that attacked our very spirit, ethos, and destroyed my personal willingness to do any of this "for the community" work again. It was at this point, I burned the very vehicle that allowed this to exist and perpetuate, cutting out twitter and all of its vapid so-called discussions.

The gang mob mentality has won Twitter and it grows worse every day. When you step away from the constant stream and "jump in" encouragement, you quickly start to see it for what it has become. The medium has become ideal for drive-by experts to sling their attacks-veiled-as-opinion in the most attention getting envelope – an envelope stewed in negativity. I am done watching people bicker and have it propped up and encouraged by the angry mob all in the search of blood, regardless of fact or consequence. I am tired of watching people just waiting to tear down anything that contradicts, but doesn't block, their opinion. I am too old and have too much already to deal with to also worry about the constant river that might include some semi-anonymous person that seeks to utilize my efforts, my sweat, and my work as their soapbox to fame.

I have since come back to post a couple bits of information, but for the most part – Twitter is no longer a valid communication channel for me. It holds no sway over my time, my mindshare, or my soul and I encourage you, the reader, to take a similar break – if just to realize how addicted to the constant stream of so-called real-time new you have become. I have taken the rare opportunities I get to present a similar position and one of the items I advocate for is not just disconnecting, but disconnecting with the intent to see reality for what it really is, instead of what we are told to see it as. We are told that we, as developers, must constantly be on the edge of technology and we must be constantly connected in order to stay on that edge – this couldn't be further from the truth. One thing I have quickly noticed is we are all focused on the wrong problems of society. We don't need yet another, faster, more pervasive video distribution network with commenting — we need a cure for cancer, obesity, HIV/AIDS, heart disease, and every other ill that has affected mankind. We need our brightest minds not focusing on scaling social networks but on solving the problem of cheap, renewable energy and widely available clean, fresh water. We need to start focusing on the right problems and putting the right time and effort on them instead of posting more vitriol on Twitter, Reddit, Hacker News, and the like.

If you don't want to spend time doing those things, then at least dedicate the time you might look at one of those outlets to mentoring or teaching computing to the next generation. Trust me, it is a billion times more fulfilling and more impactful than slinging 140 characters. Try it and see for yourself.

Q You've now spun off a new event called RobotsConf. That's a huge shift from JavaScript to robotics. What should attendees expect from this event?

RobotsConf is a chance for software and web developers who are normally confined by fear and learning curves higher up in the stack.

RobotsConf is more than just a new event, it is the dawn of something incredible and arguably something that isn't as much of a huge shift as it might seem at first blush. As mentioned in the beginning of this interview, I am the author and maintainer of the node-serialport project which is one of the main gateways for almost every single Arduino, Raspberry Pi, and other crazy hardware project. Due to this I have had the great pleasure and advantage of watching all of the wonderful things people have done on top of and as a derivative of my project including Johnny-Five, xbee radios, and even educational projects that have been presented to the President of the United States.

Hardware hacking has rekindled my excitement and love for computer programming, my basement has become a robotics lab with everything from a 3D printer to multiple drones to a full workbench with at least a dozen projects in process at any given moment. I am using hardware and things like nodebots and Johnny-five to teach my three year old daughter how to program in a manner that results in a physical outcome (robot, rocket, etc) and pure geek bonding. The beauty of hardware is that it operates in the physical world and just the easy win of getting an LED to blink is so fulfilling and so easy. From soldering to drones to 3D printing, everything I am working on, my daughter is almost always (unless after bedtime) right next to me helping out. So to say RobotsConf is just a spin off is grossly understating its value at a minimum to me.

RobotsConf is a chance for software and web developers who are normally confined by fear and learning curves higher up in the stack. We as developers build abstractions on top of abstractions such that we forget the ground upon which all of it stands and at some point that is detrimental AND becomes its very own prison. I have run several training courses for hardware hacking and the first question I ask is "We are working with USB ports, so how many of you think there is a risk of you getting electrocuted here today," to which most raise their hands. Learning the basics of hardware is not as easy as learning a new programming language, it is a drastically different and scary thing, but once you get the gist, the blend of high level software knowledge combined with low level prototype building capability becomes a very powerful combination.

I am fully aware of events like Maker Faire and others and they do a fantastic job of addressing their market which is mainly people who have worked with hardware and prototyping and fabrication for most of their life (or at least for a fairly longer period than never). To those just getting into the waters, it can be a very daunting uphill challenge made worse by all of the people "doing it so amazingly well", it would be like starting out JS programming by attending JSConf — it doesn't end well, you get frustrated and you never look back. That is not what I want for the rising hardware hacking software developers. RobotsConf is creating that perfect bridge point between high level software developers (JS, Ruby, Python, .NET, Java, etc) and the entire breadth of the maker movement in a non-confrontational, relaxed, social environment of friends.

At RobotsConf, we have the attendees participate in all the workshops from 3D printing to electronic fundamentals to interaction interfaces to robotics so they get a holistic picture of the world, then allowing them to specialize and dive deep into the areas they find most exciting. This is happening all with the guidance of the local, high level language experts (to speak your native programming language and translate to hardware easily) and domain experts (to provide insight into the low level and its use cases). We cap the workshops and build time with some of the best and brightest makers in the world to show the forest of capability and where things are heading. In total, it is a wholly different style event than has ever been attempted and we are supremely excited with how it is shaping up. The main goal is to take someone that writes software, day-in, day-out give them 48 hours of the most exciting and energetic guided hardware hacking so they can know where to go from that point, hence our tag line:

Where Makers Are Made.

When you look at all of the higher level development arena, getting back to hardware development is a massively rising trend. This is exemplified with the increase of dead simple libraries like Johnny-Five for Node.js and Artoo for Ruby and through the creation and expansion of events like Nodecopter, NodeBots and International NodeBots Day. There is clearly a need and a draw for returning to computing basics and the physical world, the combination of which allows a developer to start creating more than just digital items (sites, apps, etc.), but also changing their very own world in the manner we only saw in great 1980s movies. It truly empowers developers in a manner that I would argue few other technologies or technology shifts ever have. This is why I am excited for it and RobotsConf.

What we did for the JS community with JSConf, we are starting all over with RobotsConf, this time, hopefully, a little wiser and for the entire software development community. I am constantly asked by my Ruby, Python, and .NET friends to start something similar to JSConf for them – this is that event. It will be social, it will feature some of the most cutting edge technologies, and unlikely JSConf ever could be, it will be almost entirely hands on.

So the final question, Rey (and readers), why are you attending RobotsConf?


Thanks Chris

To answer your question Chris, while I'd love to attend RobotsConf, especially at Amelia Island, my schedule is really packed so I'll have to miss it this year. Maybe next year!

More importantly, thank you for taking the time to give our readers a peak at your thoughts.

July 17 2013

18:42

Interview With Elijah Manor

It's truly a unique and interesting experience to watch someone transcend from one community to another with little to no issues. In this case, we're talking about Elijah Manor who successfully worked to build his reputation in the open source community while still maintaining his strong presence in the Microsoft world. He has the best of both communities at his disposal, now able to leverage his cross-platform expertise into a new life-changing role with Pluralsight.

We managed to snag some of Elijah's time amidst the many projects he has going on to learn about his new direction and how Microsoft has impacted his development views.


Q You left a pretty comfy role at appendTo. What are some of the challenges you're finding now as a freelancer?

I used to tell myself I'd never start my own business, but it came to a point where going out on my own just made sense.

The time I worked at appendTo was great. I learned a lot and was privileged to work with a great and talented group of developers. While I was there, I participated in several consulting projects, architectural reviews, worked closely with Microsoft on some interesting projects, and led several front-end web development training classes.

I left appendTo to try to focus my time primarily on the training, since that is what I've become passionate about over the years. I enjoy blogging, teaching, writing, and speaking and I wanted to try to find a way that I could do those full time. I used to tell myself I'd never start my own business, but it came to a point where going out on my own just made sense.

I've actually only been on my own for about 3 months at this point. I am currently working with Pluralsight to author several front-end web development courses until the end of the year. I've finished two courses so far entitled Front-End First: Testing and Prototyping JavaScript Apps and Fixing Common jQuery Bugs. I'm also in the final stages of releasing another course in the next week or so called "jQuery Tips & Tricks" that will be available from my Pluralsight profile.

Some of the main challenges I've faced thus far are trying to figure out how to start a business, how I go about paying business taxes, getting personal health insurance and dental coverage, and things like that. I've always relied on an existing company to provide or do many of those things for me. This is a brand new world that I'm slowly trying to figure out. Thankfully, I have a great financial counselor, lawyer, and CPA to help me navigate these uncharted waters.


Q Focusing almost exclusively on Pluralsight is a gutsy move, especially since its author income model seems to be a long-tail revenue play. How do you envision turning your courses into a sustainable revenue stream and how long will that take?

I have a wonderful wife and three lovely children and it's a huge priority for me to make sure I can provide for them, so before leaving appendTo I wanted to make sure we could handle this transition. It is true that Pluralsight pays royalties to their authors for how much of their courses' have been viewed, however, they also pay the author a completion fee at the point when their course is published.

I've agreed to do at least 6 courses for Pluralsight which should get me close to the end of the year. After I finish the 6 courses my hope is that there will be a steady stream of royalties, but there is a risk on exactly how that will turn out. I will then reevaluate where I need to focus. I would like to continue making courses for Pluralsight, although I will most definitely need to slow down the pace some. I'd like to eventually start focusing on making my own content for on-site and remote trainings, but I'm not quite sure how that will play out. If I'm not making traction with any of these ventures, then I may start doing hourly work with a consulting company to help provide some consistency and stability.


Q Your "Angry Birds of JavaScript" blog series seemed to be a hit. Have you received any feedback that this method of topic presentation resonates better with devs versus more straight up posts?

I wasn't sure how the series would go over when I first thought of the idea. I liked the idea and this is my type of whimsical humor. Up until recently many of my blog posts and talks haven't shown my personality and I wanted to try and switch things up a bit.

The blog series was really an attempt for me to make a new talk at a steady pace. Usually when I make a new talk I invest a lot of time working many nights right up until I present the session for the first time. Instead, I wanted to have a blog series that I could continue steadily and then string them together to make a new talk. The nice thing about this approach when speaking is that I can also add, remove, or swap items from the blog series depending on my audience and the amount of time I have to present.

Generally, I have gotten positive feedback on this particular series in that it was clever, easy to search for on the Internet, and that there was a lot of helpful information. I've also received some negative feedback in that I was stretching the analogy a little too far, but that is totally understandable and I can see that viewpoint. My main goal was to create a semi-interesting storyline that might be memorable, fun, and informative at the same time.


Q We first met during the early jQuery days and I've since seen you take a sharper interest in plain JavaScript. Where does jQuery fit into your workflow nowadays and what are the development decisions that are driving you to choose plain ole JS versus any library (not just jQuery)?

If you look closely, you'll also see an interesting trend among front-end web developers to move away from jQuery altogether and to instead start using modern browser APIs.

Over time I've continued to narrow my focus to what interests me at the time. I mainly picked up jQuery because I started to learn ASP.NET MVC before its official 1.0 release. I would read Phil Haack's blog and notice that he used jQuery to help with his Views. It was then that I started to learn about the ins and outs of the library and is when I began to engage with the community.

Once I started working at appendTo, I was placed on several projects that challenged us on how to structure and architect large applications. jQuery was still a large part of our project, but in order for us to address the needs of the project, we needed other constructs and patterns to assist us as well. At first we came up with our own organizational techniques, but when we eventually moved towards making jQuery UI Widgets and then picking up Backbone.js and RequireJS to aid our development.

If you look closely, you'll also see an interesting trend among front-end web developers to move away from jQuery altogether and to instead start using modern browser APIs. Although this is doable with modern browsers, I don't see the vast amount of developers going this route, at least not anytime soon. However, what I am seeing is a lot of developers moving to adopt AngularJS, which natively doesn't depend on jQuery, or other MV* frameworks. If this trend continues, then I do see the overall usage of jQuery decreasing over time, but it is hard to gauge how quickly and over what duration.

With that said, I still think jQuery is important and that developers should know how to use the library and to understand what is really going on, which is why I've worked on two jQuery specific courses for Pluralsight entitled Fixing Common jQuery Bugs and soon to be published "jQuery Tips and Tricks" co-authored with Dan Wahlin, which will be listed on my Pluralsight profile once it's live.

I briefly touched on this, but I do encourage you to pick up other tools for your toolbelt. For example, pick any of the MV* frameworks and invest some time learning one of them, whether it be Backbone.js, AngularJS, Ember.js, etc…


Q You're a bit of a cross-over star in that you've bridged between your Microsoft .NET background into the OSS-based web development community. How has your experience with the Microsoft stack affected your development when shifting to OSS tools?

Well, I'm just this guy who likes to learn and to share that with others. I started using ASP.NET WebForms many years ago when I worked at Acxiom in Arkansas and then I eventually moved to Nashville, TN to continue to work with .NET technologies. As I mentioned previously, jQuery only came to my attention when I started to use ASP.NET MVC. At that point, I was slowly introduced to the broader non-Microsoft community. In some ways it was a shock, but in other ways it was not. I was used to pretty good documentation by Microsoft and that their tools and libraries just worked well together. However, documentation can be lacking in many OSS projects and it can sometimes be hit or miss whether an OSS project will "play nicely" with another project. These are over generalizations and there are numerous exceptions to both of these statements. What I'm actually seeing is that both worlds are starting to meet in the middle, which is great for all!


Q In some circles, building off a Microsoft stack is looked down on, which I think is a load of crap. If you could chat with a non-MS web developer, what would you tell them about your experiences with the MS stack compared to OSS stacks?

The thing that I like about the MS stack is how much effort Microsoft puts into making them work well together. There are exceptions of course, but it's in their best interest that they work together and you can tell a lot of effort has been invested in that. What has most encouraged me about Microsoft in the last five years is the amount of focus they have put into OSS and how transparent they have been on many projects and tools. In addition, many of the new services and frameworks they are making provide extension and integration points, allowing developers to tie into well known non-Microsoft technologies such as Git and Node.js for example.


Q You've recently become an "IE userAgent" which is similar to many MVP-style programs. Can you tell us what this about?

The IE userAgent program is a new program that was started several months ago. The agents are a group of developers who love web standards and are passionate about web technologies. You will probably see us around in various developer communities across the web trying to promote cross-browser coding best practices and encourage and assist developers as they run into issues or roadblocks.

Much of the negativity towards IE is usually targeted towards oldIE (IE6/7/8). IE9, IE10, and especially IE11 have really done a much better job on focusing on web standards and in many cases, as long as you follow many of the best practices, IE9/10/11 will just work. There are gaps in functionality as you can see from Can I Use, but for many of those you can utilize Modernizr and use a Polyfill or Shim to bridge that gap.

I would say that IE userAgents aren't sold out for IE. Many of us actively use other browsers as well. We, as a group, want to see IE continue to move forward, we want to see websites work everywhere, and we want to make it easier for developers to do their job. Modern.ie is a great initiative, that the IE userAgents stands behind, and provides tools for developers to make it easier to test and debug their applications in oldIE as well as provide a nice tool to analyze your site for common coding problems.


Q The "IE userAgent" program is obviously focused on Internet Explorer. How has this affected your usage with competing browsers like Chrome or Firefox?

As a developer, I enjoy the Chrome DevTools a lot.

Being an IE userAgent has encouraged me to use IE10 more than I did otherwise, which is great, because I've been able to provide feedback to Microsoft about the things I like and also areas where I would like to see improvement.

You might find this strange, but I personally use Google Chrome as my primary browser. At the same time, I want Internet Explorer to succeed and I think it's important that developers don't code themselves to only one browser or rendering engine.

As a developer, I enjoy the Chrome DevTools a lot. They move very quickly and I use the Canary build because I want the latest stuff now. With that said, I've been very impressed to see all the great work that Microsoft has put into the recently announced IE11 Developer Tools.aspx) and I look forward to watching those tools get even better. It's in my best interest to have multiple browsers on my machine and to be able to use them to their fullest as I develop applications and teach others how to do so as well.


Q Where do you feel Microsoft is really doing well and what are the things you feel they could improve on?

I have really enjoyed the transparency of the Visual Studio and ASP.NET teams in how they progress and communicate, not only in the public, but also among the Microsoft MVP and ASPInsider programs. Over the last several years I have participated in those programs, they have been very open about our feedback, have included us in their direction, and have enabled us to feel as we are guiding the future of those tools and libraries.

However, with regards to Internet Explorer, I would say that transparency is also an area where Microsoft could improve. IE has thankfully changed a lot in terms of adopting web standards, having a renewed focus on performance, and pushing the web forward. The area that seems opaque is what features might come out in the next release of Internet Explorer and when those features might be released. This is easier to track with other browsers since they have weekly, daily, and nightly builds accessible to developers. Developers expect a new release of Internet Explorer at best only once a year. Those are some of the frustrations that I see in the developer community. I understand that Microsoft's model is different from their competitors and I imagine that comes into play with many of these decisions. I don't know the answer to this riddle, but the great and encouraging news is that with the introduction of the IE userAgent program, I have seen topics like these being seriously discussed and I have seen progress being made.


Q I've always wondered this. You tweet at all hours of the day, so obviously you're buffering tweets (or you're a vampire). How do you decide what you want to send to your followers and what are the tools you're using to manage this?

There have been several times where I've said that I would stop tech tweeting for one reason or another, but in the end I keep coming back.

Yeah, I am not physically tweeting all the time. If that were the case, then I wouldn't be able to get anything done. I first started tweeting tech related articles because I was already scouring the web for new tech news and thought I'd start sharing those on twitter. I did most of my research in the early morning and then I'd tweet them all out, but soon found that was annoying some of my followers. So then I wrote a desktop program to schedule my tweets so that I could make the information more digestible. Since then, I've used other online systems to schedule my tweets and I currently use Buffer which works really well for my needs.

When I first started sharing tech tweets the quality wasn't as high as they are now, but unfortunately, I didn't realize that at the time. I was pushing out numerous "Top 10 jQuery Plugins" types of posts, that tended to be popular, but really didn't have much substance to them. In addition, the more I've learned about front-end web technology, I've been able to better identify what is valuable and high quality.

There have been several times where I've said that I would stop tech tweeting for one reason or another, but in the end I keep coming back. It really has become a part of who I am and what I do. I enjoy knowing the latest and greatest tools, tips, and technologies in our field and I also enjoy sharing those with developers that are interested. So, tech tweets are a natural extension of what I am already doing and is a way I can be involved with our community. There are many other avenues to get this information. A great list of resources of how you can keep up to date with various front-end technologies can be found at the Front-End Rescue.


Thanks Elijah

So now that we know that you're actually human and not a non-stop tweeting robot, we want to thank you for sharing this great info and wish you great success with your new endeavor!

July 04 2013

20:48

Interview With Dan Croak of Thoughtbot

Dan Croak is the Chief Marketing Officer of the prominent development shop thoughtbot. Before he moved to San Francisco to start thoughtbot’s west coast branch, Dan was a friend of mine in Boston who helped me learn the ins and outs of Ruby on Rails.

Dan’s a good guy to know because he and his shop have authored everything from core Rails commits to numerous gems and plugins (such as Capybara Webkit and Bourbon) that are known throughout the web community. I wanted to sit down with him and talk about Rails, its evolution, and how his company has built such a following around Ruby on Rails.

dan-croak-1

Q How did you get started with thoughtbot?

I hired thoughtbot in 2006 to complete a side project. I was writing ASP.NET web applications by day. I wanted to learn about open source, Ruby on Rails, Test-Driven Development, Unix, version control, etc.

After they completed the project, I did some Rails freelancing, then applied for a job at thoughtbot and they hired me. I’ve now been at the company for more than five years.


Q How did your firm settle on Ruby on Rails?

Rails struck them as something that would be great.

In 2005 Jon and Chad had been doing consulting projects in different languages, such as Perl and Java. After they did a couple of projects in Ruby on Rails, they felt it was state of the art and that they could be reliably productive with it.

As a team, they needed to pick one language/framework and specialize in it. Rails struck them as something that would be great. The community surrounding the language were the kind of people that they would want to work with. They were one of the first consultancies to announce that Rails was their specialty.

That was the turning point – they could have been a shop that split technologies but by picking one, especially an up-and-coming one like Rails, they were able to attract great people like Tammer Saleh, Jared Carroll, Eric Mill, and others.


Q What role does Ruby on Rails play in your business?

In total, our team currently spends about 2,000 hours/week interacting with Rails and its ecosystem. It is the main medium from which we work with our customers. It’s the environment we feel most efficient, and most able to create software with a solid test suite.

dan-croak-2

Q What’s your favorite part of Ruby/Rails?

I’m currently in a role where I’m reviewing a lot of code – reading thousands of lines of diffs a day – and it’s nice to have a language that doesn’t have a lot of ceremony or extra tokens. In the last year, we’ve developed a style guide that makes it even easier and more pleasant to review lots of code.

There is always some shortcut in Rails to clean up a view by letting it render partials polymorphically, based on its type and based on conventional directory structures. Things like HAML and CoffeeScript further reduce clutter and help simplify the code to focus exactly on your ideas and how to express them in a web app.

The community is a huge benefit, too. Ruby is a very stable, 20-year old language with a gigantic community. Libraries for dependency management (Bundler), testing (RSpec), authenticating users via OAuth (Omniauth), are in a great state. Rubygems.org is a tremendously useful community effort. There are thousands of Rubyists with GitHub accounts contributing to gems. Ruby is the second-most represented language on GitHub.


Q What role has thoughtbot played in the development of Ruby on Rails?

Once GitHub came out, it became obvious that Git and GitHub were the superior way to share code.

Prem and Arun show up on the Rails contributed list.

Paperclip and Shoulda were early libraries that became pretty popular in the community. Both were continuations of testing and file uploading that we did before. Paperclip was inspired by file_column and attachment_fu. Shoulda was built atop Test::Unit – similar to how Sass was built atop CSS. That process of improvement is never ending in the community. Other great efforts in the file attachment tradition continue today with CarrierWave and Filepicker.io.

I remember coming to Rails and learning a ton by going to technoweenie’s Subversion account. Paperclip and Shoulda were open sourced on a custom Subversion instance at svn.thoughtbot.com.

Once GitHub came out, it became obvious that Git and GitHub were the superior way to share code. We moved our older libraries over to GitHub and have continued to chip in on other projects and some of our own. Shoulda has evolved into a library that works beautifully with RSpec. Factory Girl was written to replace fixtures.

We added test spies to a fork of Mocha, then a standalone library called Bourne that extended Mocha, and more recently added spies to RSpec Mocks. We didn’t invent the test spy technique (we recommend everyone reads xUnit Test Patterns), but we worked hard to bring them into our workflow and add them to the existing tools in the community, evolving as those tools have gotten better and gained community support.

We wrote Clearance (which I personally maintain) after writing email-and-password-based authentication a few times by hand. We wrapped it in a library with a great automated test suite. It’s now a battle-tested, four year old library. Things like that we’re always trying to tweak and improve, as well as blog about it to keep the community informed and see how we’re evolving our practices.


Q What is your development process for a web application? How has it evolved since you started using Rails?

We’ve described our development process in our playbook and guides.

I’ve taken better advantage of my shell (zsh) and editor (vim). I’ve tightened my feedback loops, particularly when writing tests. I’ve gotten more consistent and disciplined about style and Git flow. I understand and use object-oriented techniques better.

dan-croak-3

Q What do you think about the new Ruby 2 and Rails 4 releases?

I think they’re great! I’m most looking forward to the speed improvement and named parameters in Ruby. I’m most looking forward to the additional Postgres integrations in Rails 4, like hstore and database array types.

We don’t have any major projects in production on Rails 4 or Ruby 2 yet. Looking at the history of past releases, we tend to be careful not to jump the gun. We’ve been testing our open source libraries against both versions for awhile and reporting any issues back upstream, fixing what we can, but for the sake of our clients, we’re a bit more conservative to adopt the newest technology.


Q How do you want to see Ruby on Rails evolve in the future?

For a long time, I’ve been wrapping my head around some of the base choices you need to make as a developer. We’ve had a less-than-a-hundred-line shell script called Laptop for a couple of years to help us set up new machines while documenting the current best practice we know of. I still think there’s lots of room for improvement here, though.

Let’s say you’re using OS X. You probably want to use Homebrew but it’s not the standard package manager for the operating system. I’d like to see Apple make that the standard. In the same way, Ruby installers, Ruby switchers, Bundler’s binstubs, the .ruby-version file community convention, and rbenv’s shims continue to evolve to manage different versions of libraries that you want to use on different projects.


Q Will thoughtbot always be a Ruby on Rails shop?

It’s unlikely we would make a primary replacement for Ruby as our server-side language.

I don’t know! In the near future, definitely – there’s a lot we can accomplish with Ruby, SQL, and JavaScript. It’s unlikely we would make a primary replacement for Ruby as our server-side language. It’s more likely we’d work on projects that use service-oriented architectures and the various services start to use alternative frameworks and languages such as Go.

I’d expect us to be more polyglot as opposed to replacing Ruby. We’ve used lots of databases in the past few years, although, Redis and Postgres can currently handle 99% of our use cases.

I’d also like to try doing something like the Barack Obama 2012 campaign’s architecture, which was static HTML/CSS/JS served by Akamai and S3, with hundreds of backend APIs.


Q Any final advice for people just getting started with Ruby on Rails?

We’ve worked really hard for years to put our best advice on Learn Rails. We have a “trail map” specifically for learning Rails and we’ve curated it from across the web and in our own shop. Go in there and you can see which resources we recommend going through in which order. There’s an iPhone app that helps you self-assess your own abilities and keep track of your progress along the Rails, Git, Postgres, JavaScript trails, and other trails.


In Conclusion

Thank you Dan for taking the time to do this interview, we really appreciate it.

June 19 2013

18:39

Interview With David Walsh

Have you ever meet a brash punk kid that annoys you to no end but he's so damn talented that you can't help but want to work with him? That's how I felt when I first met David Walsh several years ago. Since then, I've seen him mature into a respected and often quoted software developer and most recently, a new dad. He hasn't lost his snark and feistiness and he continues to hone his skills daily, often sharing his best tips on his awesome namesake blog.

It's time to get a little more info on what makes David tick and I had the opportunity to hit him with some tough questions.


Q Silly question, but why did you go with a ".name" domain for your blog?

My blog's domain was originally "bludice.com", but I decided to brand the blog after myself since BluDice doesn't mean anything and it certainly wouldn't help me in my career path. All of the relevant .com's were taken and since I wanted to brand my blog after myself, .name just seemed to fit. In hindsight, I should have tried harder to find a .com. I bought "david-walsh.com" a few years ago, so maybe I'll migrate to that some day.


Q When we first met, you were a big proponent of MooTools. Are you still involved with the project?

I'm not involved in the project anywhere near as much as I used to be and not as much as I would like to be. Job circumstances (working at SitePen for two years, which is a Dojo shop) took my attention away from MooTools. I'm still in the MooTools development IRC channel each day and still keep up with where the next version of MooTools is at, so I'm involved enough to know what's going on at all times. I also hope to make it to the next MooTools Hackathon in London.


Q It's safe to say that jQuery won the hearts of most web developers. How did that affect the roadmap for MooTools?

MooTools was created to provide a modular, compact, Class-based JavaScript utility, which was different than jQuery's goal at the time. jQuery's popularity didn't affect the MooTools roadmap at all. MooTools' goals and mission never changed beyond what we set for ourselves. Developers believe there is a competition or hatred between the JavaScript frameworks, and it simply doesn't exist, nor did it ever.


Q There was always this "thing" between the jQuery & MooTools teams (I like to call it hyper-competitiveness). It seemed like both should've been able to co-exist but it didn't quite always work out that way. From the MooTools perspective, what were the underlying issues you saw?

Creating crap code is possible with any framework…

I can't answer this for the MooTools team, so my answer strictly represents my own thoughts. The tension between jQuery and MooTools was built up by members of the community, not necessarily the team members themselves. Maybe there was more on the jQuery side, but I know that we didn't give jQuery much thought.

The main issue that jQuery has fought, from the perspective of other JavaScript framework users (not just MooTools), is that the low barrier of entry enables "n00b" developers to create a lot of unoptimized, crap code. Creating crap code is possible with any framework, but the other frameworks required more JavaScript knowledge and thus were more able to avoid this problem, to a degree.

I also get the feeling that other framework users get hung up on jQuery's popularity and seeing it as an inferior toolkit; i.e. the "McDonald's" analogy that they're super popular but that doesn't make them good. Unfortunately in my experience in having worked within a whole bunch of different JS toolkit communities, jQuery seems to get the brunt of negative comments.

I've been long accused of being a "jQuery hater", and while I'll admit that jQuery isn't my cup of tea and I don't choose to use it on my personal projects, I far from hate jQuery. It's a tool, like any other, it has been hugely helpful to millions of developers around the world, and that's something you must respect.


Q Even while on the MooTools team, you created quite a bit of jQuery content. How did that go over with the rest of the Moo team?

Aside from the locker room ribbing that I'm sure comes with being a part of any group, no one said anything, and why should they? In reality, creating mirroring tutorials and demos with both jQuery and MooTools helped to bridge the perceived code gap between the two frameworks, and hopefully got users of each framework to try the other. I learned a lot from the experience and hopefully others did too!


Q I think people take for granted how hard it is to manage an OSS community. What were the challenges you faced as one of the more active team members?

There are a number of challenges that come with being an active member of an open source community. Organization is incredibly difficult because you must deal with language barriers, cultural differences, time zone differences, and interesting personalities. You also need to keep in mind that OSS work usually isn't a developer's primary job (thus they aren't getting paid for the OSS work) and that they also have a family to spend time with. And of course, most OSS devs just want to develop and not promote or formally release work in a timely manner.

To succeed in open source communities, it's important to be understanding, patient, and willing to work with different types of people. Everyone has a good heart, and everyone wants to succeed, but each brilliant dev has their own route of getting there. Once you learn to manage your contributors, your project will succeed and more contributors and users will flock to you!


Q There's a big push in the industry away from libraries and frameworks, instead focusing more on pure JavaScript. How do you see the two blending? It seems they should be complementary, not one or the other.

In a perfect world, JavaScript framework users would use the modules they needed and would avoid massive load.

They should be complimentary, yes, but there are a few problems that we've seen since the explosion of framework usage. The first problem is that developers will include an entire framework (animates, AJAX, etc.) just to solve one problem, and thus bloat their website tremendously when a microframework or a few lines of pure JavaScript should do the trick. Another problem is that relying on frameworks and their abstractions prevent the developer from truly increasing their JavaScript skills.

In a perfect world, JavaScript framework users would use the modules they needed and would avoid massive load; unfortunately that isn't a common enough practice today. More and more developers are adopting this practice though, so I'm hoping this won't be such a debate in the future.


Q How do you see the new features of ES6 affecting the functionality of existing libraries? Will we see them become more specialized?

They'll have to become more specialized and evolve or they'll find themselves irrelevant. Of course, we all know how long it takes for browsers to implement these types of new features, so we're assuming the same JavaScript frameworks will be there at that time. The main thing we can count on, however, is that evolving is the only way for any project to survive.


Q Your work at SitePen allowed you to dig deep into the Dojo framework. What do you think is the reason that it didn't pick up the level of traction of other projects like jQuery, Prototype and MooTools, especially since many of the features we promote today were in Dojo for some time?

Some JavaScript frameworks are heavy into promotion and some aren't. Dojo developers definitely aren't. Dojo also had a stigma of not having good documentation, which may have turned people away. I would also argue that Dojo's always been more focused on building feature-rich "web apps" rather than basic websites. Dojo's documentation has gotten much better and they continue to push the client side boundaries more than most JS toolkits, so I would really encourage developers to give Dojo a shot!


Q Now that you're at Mozilla, have you seen any major changes in the way you structure your development considering you're working on a large web property and you're remote?

Being a remote developer doesn't play as large of a role as most would think.

Going from creating private, internal web applications to working on an important website that gets millions of views each month forces you to reevaluate your development process. The MDN (Mozilla Developer Network) team has adopted a frequent release cycle, pushing code updates many times a day. Spot checking and unit tests become increasingly important as we add features. Localization plays a massive part in MDN development too. Each piece of code requires a lot of thought, so we do code reviews before merging any changes.

Being a remote developer doesn't play as large of a role as most would think. Our QA engineers and IT team are always there to lend a hand. Mozilla has made remote development a breeze.


Q How does the dev team at Mozilla collaborate so well, especially with many being remote?

Mozilla does well in recruitment so I work with dozens of brilliant, dedicated, and responsive developers. Most communication is done via IRC and Bugzilla tickets, and we're never shy about jumping on Vidyo or Skype to get some face-to-face time. Remote employees have weekly 1:1 meetings with managers to ensure everything is going smoothly. Most teams have a bi-monthly meeting where the team can discuss what progress has been made and what goals should be tackled next. Mozilla provides the perfect balance of freedom and structure, which is the main reason I'm so happy to be a Mozillian.


Q How has Mozilla's mission and altruistic nature affected the way that you look at software and contributions to the community?

Mozilla's support of open source and going the extra mile to improve the web have changed my thoughts on OSS development immensely. My colleagues are an inspiration and that energy is infectious. Most of my colleagues have popular open source projects and are happy to jump in and help when needed. A majority of Mozilla websites and back-end apps are hosted on GitHub, even sites like the Firefox Marketplace and Mozilla Developer Network, so basically everything is available to the community. When I got to Mozilla, I was surprised at how many contributors there were to the Mozilla family of websites. I loved the Open Source community and my experience has taken that love to the next level; I cannot imagine working on proprietary programming ever again.


Q You had a recent addition (congrats!). How have your work/life balance considerations changed now that you're a new dad?

Having a child puts life in perspective. Most nights over the past five years I would get done with work and then spend the rest of the night on my computer writing blog posts. I got a lot out of doing that, but I would frequently get burnt out. With Jack around, I'm happy to not spend so much free time on the computer, and instead opt to take him on walks, take him to visit his grandparents, and generally just get out of the house. Seeing your kid smile makes you realize there's more out there than loop optimization and dealing with negative tweets.


Q How do you detach from work considering that you're a remote employee?

Working from home is sweet; I get to save money on gas and food, take a walk when I get frustrated, avoid distractions from coworkers, set my own work schedule, etc. The biggest drawback is working too much, which is something I've been guilty of for years now. Just like moderating anything else, however, you need to get into a routine and cut yourself off at a given time. You should also cut yourself off when you feel the icy glare of your spouse… :)


Q Do you see yourself pushing your son into programming? Why or why not?

Let’s be honest, we have a pretty good gig.

If he has interest in development as he grows up, I certainly won't push him away from that career path. Let’s be honest, we have a pretty good gig. We can (sometimes) work from home, make good pay/benefits, travel around the world, make extra money consulting from home, and generally won't have a problem finding a job. Tech jobs come with all of those benefits.

Of course programming comes with its drawbacks. There's a lot of negativity in the JS community, remote collaboration can be a nightmare in some situations, and clients oftentimes don't understand the work that goes into creating a solid site/app, so justifying price becomes difficult.

In the end, if it's what he wants, I'm happy to help him along the way.


Q You've managed to successfully monetize your blog. Are there any secrets or tips you'd care to share for those looking to do the same?

My advice is two-fold. First, choose sponsors which are good matches for the main topics of your blog. Second, don't overdo ad placement, remember that ease of consumption is still the most important thing. Writers should also avoid animated GIF ads, text link ads, and auto-playing videos. As your site continues to be usable and you put up content regularly, the income will arrive.


Q Some people discourage bloggers from posting advertising. How do you rationalize placing ads on your site and how do you determine if a specific ad campaign is something your readers would even want?

I get incredibly annoyed with people who assert that a blog shouldn't have advertisements and for so many reasons that I could go on for hours, but a few brief points are:

  • Criticizing someone else for how they make their money (assuming it's legal) is a really embarrassing thing to do.
  • Developers that spend hours writing tutorials, providing bug solutions, and providing code inspiration should be rewarded in some way, it's essentially another job.
  • The alternative is not blogging and instead doing freelance work, which helps only the client. Blogging ideas and solutions helps thousands of people and at no direct cost to them.
  • If I were to ask my wife and newborn what they thought about "@somedude on Twitter in godknowswhere" criticizing me for having ads, they'd laugh. They want to be financially supported, they don't care what a stranger thinks about it.
  • Too many people confuse open source with "free"; i.e. the code is free, everything else should be free. That's way off base.

Picking a campaign is usually the easy part. You accept adverts from businesses you've used, believe in, and are reputable. Stick to those rules and you're bound to do OK.

In the end I don't understand people who feel the need to comment on how others make a living; it's petty, rude, and again, embarrassing.


Q You recently added forums to your website. Forums management takes a lot of work. Why would you take that on when there are so many established support forums available?

I created a forum section for a few reasons. The first reason is that since the official MooTools-hosted forums were taken down, and the "unofficial hosted forums" were taken down, there's been no central place for MooTools users to get support. I also want to establish a more community feel to my site. Lastly, I get probably a dozen emails per day asking for help with a jQuery snippet, PHP problem, or follow up to a specific blog post. I'd much prefer those questions be posted to the forums so that (1) another user can help out if I can't and (2) I can avoid receiving and sending the same emails. It seems like a win-win all around.


In Closing

Thank you David, for participating in this interview. We really appreciate it.

To connect with and learn more about David, be sure to check out his website.

13:00

Living a Full Life as a Freelance Web Designer with Brian Hoff

There are many people out there who want to become freelance web designers. However, freelancing is not all rainbows and unicorns, since you have to promote yourself, get clients, manage those clients, and, of course, get things done.

That’s not even mentioning more subtle issues, such as finding the right life/work balance, which can be very tough when you work from home.

In this interview, Brian Hoff, an experienced freelance designer, will share his thoughts on the topic.

In this interview:

  • Why did Brian quit his job at Apple to start his own business?
  • How did he build a popular web design blog that brought him loads of clients?
  • How does Brian makes sure that he is getting things done as well as spending enough time with his family?
  • How does he handle the lack of financial stability that is an inevitable part of being a freelance web designer?
  • What is his advice one piece of advice for those who of you who want to become freelance web designers?

Please introduce yourself to our readers.

brian-hoff

My name is Brian Hoff. I’m a professional web and interaction designer. Over the years, my work transitioned from logo design to web design to interaction design. I’ve always enjoyed various elements of design, not to mention I get bored easily, so this transition comes as no surprise to me. These days I mostly work on interaction design (iOS, web apps) though.

I also write for my blog, The Design Cubicle and work on my own products (I have two ideas in the works at the moment) when I can find the time.


IxD: what interaction design is all about?

Here’s how the Interaction Design Association(IxDA) describes it:

Interaction designers strive to create useful and usable products and services. Following the fundamental tenets of user-centered design, the practice of interaction design is grounded in an understanding of real users—their goals, tasks, experiences, needs, and wants. Approaching design from a user-centered perspective, while endeavoring to balance users’ needs with business goals and technological capabilities, interaction designers provide solutions to complex design challenges, and define new and evolving interactive products and services.

Here are few of the key concepts that drive IxD:

  • Goal-oriented design. User usually have a specific goal in mind when using an application. This means that an application should be able to do that one thing really well. Conducting an extensive user research helps interaction designers to create the right balance between form and function.
  • Usability of the design. Applications must be easy to use in order for people to want to use them. Interaction designers aim to create interfaces that makes the underlying systems easy to understand.
  • Affordances. Many things are designed in a way that they are easy to understand even for someone who has never encountered them before. Say, you would probably be able to figure out how to use scissors, even if you would be seeing them for the first time in your life. Interaction designers aim for this same effect in their work.

Interaction designers stay involved throughout the whole development process: they form a design strategy, identify and wireframe key interactions, and then prototype interactions.

According to Andrew Maier, on whose article this short summary of interaction design is based on, one of the hardest part of being a practicing interaction designer is the speed at which the industry change.

You can read more about interaction design here:

You can also check out these books on Amazon:

  • “About Face 3: The Essentials of Interaction Design”
  • “Designing Interactions” by Bill Moggridge
  • Paper Prototyping: The Fast and Easy Way To Design And Refine User Experience” by Carolyn Snyder.

Still aren’t sure that you understood what it’s all about?

Take a look at interaction design section at Behance!


How did you get into design in the first place?

I took the traditional route. I went to school. Majored in Graphics and Interactive Design. Got my BFA. I’ve always been very intrigued and lured into design, though. While I did go to school for it, I consider myself self-taught for a large majority of it.

Starting my own business was another story though. I initially never planned on doing my own thing. At the time of graduation, the economy in the States was on a steady decline and there weren’t many jobs available, since companies were being more cautious I guess. The places I wanted to work weren’t hiring. There were opportunities for me in the big industries that were still doing well (pharmaceutical, etc.), but that wasn’t my thing. Pharmaceuticals? Me? I just couldn’t do it, so I slowly built up my business and reputation and jumped ship to a world of independence. Haven’t looked back since.

What is your professional experience prior to becoming a freelance designer?

I worked at Apple as a software and hardware trainer. I didn’t know it at the time, but the knowledge of how users interact with websites made me a better designer. It helped me approach situations differently. After a few years at Apple I found myself increasingly unhappy. After a year and some odd months of tinkering with the idea of starting my own business I put in my two weeks notice. It was at a time when my blog, The Design Cubicle, really took off and was gaining a lot of exposure. This made the transition much easier.

At one point, you were working 9-5 at Apple, freelancing on the side, and blogging on The Design Cubicle. How did you find time and energy to juggle a full-time job, client work, and a blog? What would you advise to people who would like to start freelancing on the side, but struggle to find time, energy, and motivation to do it?

Yeah, it was tough, but honestly, I just love design. And that’s all I needed. I mean, the people who I was working with at Apple were great, but I just wasn’t happy, because I wasn’t doing what I love to do. That’s why I was really excited to come home and work on a design project that I scooped up through my blog. That was what kept me going. Love brings out the best of people [laughing].

You had a stable job at Apple as software/hardware trainer, yet you decided to quit in order to become a full-time freelance designer. What were the reasons behind this decision? Wasn’t it scary to take a leap from a secure job at a big company to uncertainty of freelancing? How did you prepare for this transition? What would you advise to those who are thinking about becoming full-time freelancers?

The main reason was that I needed to design. It wasn’t even that I wanted to design, I needed it. I know, sounds like a typical artist’s statement, but it’s true. It’s my outlet. The itch that needs scratching.

Also, at that time, I wasn’t married, I didn’t have kids, so the risk for me was relatively low. Obviously, there was the risk of not making any money and being kicked out of my apartment, but I knew that in the worst case I could always go do something else. Plus, I made sure that I have enough money for a couple of months in case things are slow.

Keep in mind that it takes a lot of discipline to run your own business. Some folks are people who need to be managed, and some people are the ones who can do the managing. Everyone likes to think “Oh, I can do this by myself, I can be a freelancer!”, but you really have to think what kind of person you are. Are you able to juggle all these different tasks? Are you good at talking to clients? Are you good at managing clients and managing your own time? There’s a lot somebody needs to think about besides “I’m a good designer. There’s much more to freelancing than design.

One of the biggest challenges that freelance designers have to face is that constant need to get clients. What do you do to ensure that you have enough work every month? What would you advise to freelancers who would like to get more clients, but aren’t quite sure how to go about it?

I’m in a fortunate spot where clients come to me because of the popularity of my blog and other outlets (Behance, Dribbble).

Also, do good work. Always try to do your best at each project and then some. Goes without saying but doing good work and putting it out there gets more good work.

However, context is important, and a simple online portfolio doesn’t have enough context. I once had a portfolio that was basically a bunch of screen-shots and didn’t show who I was as a person. That’s why I started documenting the process of creating a particular design on my blog. This way, clients can see how I run my business, how I work, and so on.

That comes over time, I promise.

Nowadays I can tell how the client is going to react throughout the entire process. For example, there are clients that need to have their hand held, meanwhile other clients are very hands off. You can really get a feel for that just from talking to them.

Before I start working with any new client, I have them fill out a worksheet. It’s amazing how simply reading responses to the worksheet tells me. One example would be clients that give a one word answer to every question. Basically they are telling me ‘I don’t care about the project’. That’s just not the type of person that I want to work with. If they want me to care about the project, I feel that they should care at least as much, if not more.

There are still times when I find myself working with “bad” clients. However, I mostly find it’s the designers fault. I’m the one that needs to be managing the clients, managing their expectations, so it’s usually the result of me not doing something correctly. They choose to work with me not only based on my portfolio, but also my creative process and business process.

That’s why it’s important to be vocal. I’m not afraid to tell a client “Your idea won’t work and here’s why..”. The aesthetics of design can often be subjective so I don’t tell people “it’s crap because it’s crap”, but if I truly believe that it’s a terrible idea, the client is going to hear it in a way that has value.

And in regards to them being stingy with money.. Well, the way I see it, I have my price and I’m upfront about it. I base it on a set of deliverables. I don’t do hourly rates. I quote a project for deliverables over a time frame (like, you need these 6 pages over 6 weeks, here’s the price). Design is an investment of time and end value. My price is my price.

I feel like you have to have your minimum rate and a rate that you want, so if a client can’t afford the rate that you want, you can knock it down to your minimum rate if you really need the job. However, when you go below your minimum rate you are only hurting yourself, because in my experience, working on crap projects just brings more crap projects. It’s weird how it works like that, but it just does: bad clients breed more bad clients, bad works breed more bad work.

Also, hiring a designer for a very low rate is a bad investment for a client, which they need to understand. I’ve knocked down a price significantly few times, and I’ve realized that it just ruins my motivation, because I don’t feel that I’m being fairly compensated for my work. It kills the momentum and enthusiasm from the start. Good results don’t come from lack of enthusiasm.

People often don’t realize how hard it can be to have a right work-life balance when you are self-employed. Maybe you can tell us how does your day look like? What do you do in order to stay productive while still having a life? What would you advise to freelancers who struggle with getting things done?

work-life-balance

by Werkplay

  1. Well, to get work done, you just need to be a good manager, you have to say “These are my work hours” and stick to it.
  2. That’s exactly what I did when I started working as a full-time freelancer. My day starts around 6AM. I don’t work past 6PM (technically, my day ends at 4PM, but if I really need to I can extend it until 6PM). I also don’t work weekends. This leaves me plenty of time to go outside and do something outside (which I really enjoy). It’s good because it allows me to get my work done and then take a break by spending the rest of the day with my family. Breaks are good for creativity.
  3. It’s hard though. I have an almost two-year-old, and my wife is home with our son, so if I don’t have my headphones on I can hear them downstairs, and it’s hard not to go downstairs and spend time with them. I do that sometimes, but I make sure that if I go downstairs to see what’s up, I spend no more than 10 minutes on that. I see it as basically an equivalent of chatting with a co-worker next to a water cooler in the office [laughing].
  4. It takes discipline. You need to set your work hours at the very beginnings. I know some guys who work at night, who work weekends, and so on. I don’t know how they do it, especially if they have families. That’s just a way to burn out in my opinion.

One of the main disadvantages of being a freelancer is lack of financial security, you never know how much you’re going to earn, clients disappear, then your car breaks. What do you do in order to make yourself as financially secure as possible? What would you advise to people who want to become full-time freelancers, but are worried that it might lead to a financial disaster?

Many people think that when they have a job at some company they are financially stable, and that couldn’t be further from the truth. They can get fired at any time. Longevity is not in your hands. There’s nothing more or less financially stable in working for yourself vs. working for somebody else if you have a dependable business plan.

Also, when you work for a company, you get the same salary every month. It’s true that as a freelancer, you can end up making very little money on some months, but you can also make double or triple your usually monthly income on others. I think that’s what’s fun about running your own business. It pushes you to work little bit harder to make that extra money.

I’m a small corporation. That’s why, as weird as it’s sounds, I pay myself a salary. Me and my wife sit down together and see how much we need to cover our bills and have a little bit extra money left every month. That’s what I take out as a salary.

I also take out additional bonuses which is our savings. When you need only 10 000$ a year to survive, and you end up making 50 000$ instead of 10 000$, it’s easy to want to go party and spend it [laughing]. However, you need to be smart about it. We always make sure that we have money put aside for those rainy months.

You have experience of being employed by a big company and being self-employed. What are the advantages and disadvantages of both? Why did you decide to stay self-employed? What would you advise to our readers who are not quite sure which way they want to go?

Working on your own, and doing it successfully, brings a quality of life that’s difficult to comprehend. And I don’t mean that from a money profit standpoint. When I need a day off, I don’t have to go to my boss and ask for a day off, I just take it. Sure, it means that I will have to work harder the next day, but that’s okay. There’s nobody managing me.

Working for myself also gives me an opportunity to choose which clients I want to work with. I enjoy working with digitally focused people, with online, forward thinking goals. I get to pick and choose the people I want to work with.

Disadvantages.. I have many friends who work for respectable agencies. Every time I talk to them, they tell me how much they are learning at their jobs. I feel like I miss out on that experience by being self-employed. There’s that part of me that is always curious about that, but that’s what having friend is for, since our community is so helpful. Everyone is very open in our industry.

You run a popular blog, The Design Cubicle. Why did you decide to start a design blog in the first place? How did you get your blog to where it is now? What role did The Design Cubicle’s success play in your design career? Would you advise other designers to start their own blogs? Why or why not?

the-design-cubible

I started The Design Cubicle few months before I left Apple. I started it as a means to interact. I read a lot of design blogs and I felt like I could add something to the greater story. My blog was my creative outlet in written form and my way to share ideas.

Then, two articles of mine “hit the front page of Digg”, which got brought me a ton of traffic. I remember after that my traffic went up to 6000 visitors/day. It gained a lot of momentum for my work. I just kept on writing and sharing.

Today, I wish I would have more time to write, I really do. I have so much less time for it now than I had when I started a blog: my days are filled with client work, I work on more complicated projects, and so on. I need to write more, though.

And yes, my blog played a significant role in my design career. It was at the time the best marketing for me.

Okay, so you have a successful design career, a popular design blog, what are the future plans of Brian Hoff? Are there any interesting new projects that are you planning to take on? What is the next step in your career?

I want to build my own services and my own products. There are two ideas that I’m in the process of executing. I’d say that you can expect something new from me in the next 12 months.

Last, but not least, if you could only one piece of advice to someone who wants to become a freelance web designer, what would it be?

This is my one advice to anyone wanting to start anything (whether it’s to be a designer, a chef, or a construction worker): love what you do.

There’s no way that you can be as successful as you want to be unless you absolutely love what you do.

You can only get so far in life without this. It’s all about love.

Thank you for the interview!

In a nutshell:

  • Keep in mind that freelancing isn’t easy. You have to consider whether you are good at getting things done, managing your clients, promoting yourself, and so on. Many people are much better employees than freelancers.
  • Showcase your work online. Make sure that you have a decent looking portfolio which you can show to your clients. It’s even better if you include case studies that showcase your work process.
  • Always focus on doing the best work that you can. This will help you get new clients through word of mouth. It will also keep your current clients coming back.
  • Avoid working with low paying clients as much as possible. They are the hardest to deal with. Plus, doing low paid jobs will only get you more low paid jobs.
  • Set your work schedule and stick to it. Overworking yourself is very counter-productive. Make sure that you get enough rest.
  • Always make sure that you have money set aside for rainy days. There are times when you have a lot of clients, and there are times when you have none, and this is inevitable part of freelancer’s life. Don’t stress about it, prepare for it!
  • Having a blog can accelerate your freelancing career. Providing value to other web designers helps you to become a recognized expert in the community. Keep in mind that running a blog is a long term project, though. You won’t get quick results.
  • You have to love what you do if you want to really get ahead.

Interested in Brian’s blog? Start here!

Here are three great articles from Brian’s blog:

You can read more great articles at The Design Cubicle.

Older posts are this way If this message doesn't go away, click anywhere on the page to continue loading posts.
Could not load more posts
Maybe Soup is currently being updated? I'll try again automatically in a few seconds...
Just a second, loading more posts...
You've reached the end.

Don't be the product, buy the product!

Schweinderl