wbyoung

Whitney Young is a developer at FadingRed
 

August 17th, 2011 1 note

As a software developer, I’m constantly hearing people talk about California. Silicon Valley and San Francisco are the places to be. And increasingly people are talking about New York as a tech city as well. These are wonderful cities for technology. There are tons of startups, established companies, venture capitalists, like minded people, and constant tech events. Add that to the beautiful weather in California or the massiveness of New York, and what’s not to love?

A few years ago when we started FadingRed, Brittany and I were living in Chicago. Neither of us had anything that was really keeping us rooted in Chicago, so we discussed moving to San Francisco and starting our company there.

At the time, I’d never been to California, but I’d always heard good things. Throughout college, people talked about moving out west like it was the promised land. No more cold weather, beaches, job opportunities, relaxation, etc. It seemed like there was a never ending list of reasons why California was the place to be. So when we talked about starting our company there, it was a really exciting possibility. Ultimately we chose to stay in Chicago, though, and I wouldn’t go back on that decision.

Chicago is not a city that people think of when they think tech, but that doesn’t mean that there’s no tech here — there certainly is! There are developer meetups for people in various tech scenes, great conferences are held here, we’ve even got some big named companies here as well. And as for the weather, well I enjoy the seasons — we go from grilling to ice skating, and the winter really isn’t that bad. So what makes Chicago better than San Francisco? Technology isn’t all around you all the time.

I’ve been out to San Francisco a few times now, and it doesn’t take long for the pervasive presence of technology to wear on me. You just can’t escape it. In coffee shops people are talking about their next product idea. On the way to lunch, you hear people discussing nitty gritty implementation problems. You could, of course, explore the cultural side of the city and enjoy restaurants, museums, music, etc, but you’re still pretty likely to happen upon a bit of technology during your journey.

When I leave the office, I want to leave work behind. Now, it’s not that I don’t enjoy what I do. I do. But I also enjoy so many other parts of life. I want to have a break from tech so that it’s refreshing to come back to it the next day. Even when I hang out with coworkers or other people who write software, it’s nice to take a break and talk about life rather than just what’s new in the tech world. Here in Chicago, I feel like I can have that break when I need it. When I grab a cup of tea, I can sit and just enjoy the peaceful murmur of the conversations around me without my brain firing on all cylinders. And as mentioned previously, when I’m in the mood for a good tech meetup, we have those too. There’s really nothing not to love about this city. It’s the perfect place for me at this point in my life.

In the end, this is not a why my city is better than your city article. The takeaway is this: consider your city or town as a good alternative to one of the big tech cities, because it is. There’s no reason you can’t have the best of both worlds, and chances are it’s already in your backyard. Go enjoy!

January 12th, 2011

For the last few years, I’ve gone to work and written code, discussed architecture, attended meetings, etc. The job description has always been roughly the same – I’m a software developer. The job has always been different, though. The quality of software, the focus on design, the release process have all differed. It all boils down to one simple question: For whom do you create?

As far as I’m concerned, there’s three possible answers to this question:

  • Clients
  • Coworkers
  • Customers

This is a considerable simplification, but most software groups really do fall into one of these three categories. Consulting companies and independent contractors create for clients. The IT division of a company creates for their coworkers. Those of us who sell software to end users are creating for customers.

Personally, I like to create for customers. I enjoy creating something for a broad audience. Design matters. Usability matters. When you release a product, it’s something you’re really proud of. Customers influence what you do, but you retain the right to make decisions. If a customer requests a feature, you can step back and try to figure out what they really want. If it doesn’t help the majority of your customers, you have the ability to say no. The ability to say no gives you power. Without it, you’ll end up with tons of features that serve a minority, and your software will become hard to use.

As you move up the list, you lose your ability to say no. It’s possible, though harder, to reject an idea when working for coworkers. Internal development teams really have a tough time saying that they won’t add a feature because it will make the software more complex. How do you say no to the senior vice president when she demands the feature? Usually, you just don’t. You create software that’s partially designed by people who know what they’re doing and partially designed by people making demands.

At the client level, you really just can’t say no. You can say, “it would be better if we did it a different way,” but when they say to you, “this is what we’re paying you for,” you’re stuck. I used to work for a company that worked with clients. They got around this by asking various clients what they wanted, then creating something that all of the clients would want to buy. It was very customized software, but customized to what they thought clients would buy rather than what they demanded. Basically, they turned client work into customer work because they had bad experiences working with clients in the past.

Every aspect of software development differs in these environments. Distributing software is much easier when you distribute to coworkers because the environment is consistent. Design is much more important when creating for customers because the software needs to appeal to the customer. Agility and breadth of knowledge are important skills for developers working at client facing software shops.

If you’re looking to work for a new company or are just getting started, think about who will be using the software you create. Think about what that will mean in your day to day tasks. Everyone has different interests, so there’s no wrong answer. I love making software for customers. Even on the days when it feels like everything is going wrong, I still get satisfaction from what I’m doing. At the end of the day, I’m proud of the software I create, and that’s what matters to me the most.

August 25th, 2010 6 notes

It’s been a year and a half now since FadingRed became a registered LLC. A year and a half — that’s not very long — you must be a startup, right? No.

The term startup is usually used to describe young companies in technology. In general, startups have relatively small teams and a reputation for being fun, hip companies where people love to work. This is exactly the kind of environment that we’re working to create, so why is this not a startup?

There’s a couple of commonalities that you’ll find with startups. First, they are seeking or have already found someone to invest in their company. Many startups even receive funding before anything has been built; they have an idea that an investor believes in. When more money is needed, an additional percentage of the company can be sold. Because investors are involved, return-on-investment becomes a key part of the business. Investors are hoping for high returns because the company is growing rapidly.

Growth is intriguing because the real goal is for revenue growth. Sometimes it’s easy to get caught watching the number of employees grow and anticipate that revenue will follow. Regardless, once hiring begins, startups add many new team members quickly. I’m not talking hundreds of people, but it’s likely that they may grow from five people to fifty in less than a year. Such fast paced hiring often leads to startups bringing in an executive with experience to help manage.

The first employees who work for a startup are compensated with stock (in addition to their base salary). These employees clock crazy hours because they love what they’re doing. What’s more exciting than working on or having just completed a 1.0 product? Working a little extra at the end of the day or on the weekend is no big deal because it’s so much fun. There’s a culture of energy and excitement!

Everything could change — for better or for worse — in a split second. So much is happening so quickly that it’s hard to control and mold your company into what you really want it to be.

While much of the what’s written above are generalizations, it fits with what comes to mind when a company is described as a startup. There’s too much, though, that just doesn’t fit with what we want our company to be.

For as long as I’ve been developing software for the Mac, developers who either work for themselves or small companies have been referring to themselves as indie developers. This, of course, is short for independent developers. Independent is a great way to describe our company — we think independently about how our company should operate.

We don’t have investors. We don’t work late or on the weekends. We don’t focus our energy on growing rapidly just for the sake of growing. We think outside the box.

When we started, our company didn’t have anything in the bank; we didn’t even have a bank account. A small operational overhead has allowed us to get off the ground without outside funding. For us, this was an ideal starting point. Starting from zero allows you to really understand how much revenue you need to support your business. Our revenues have been good, and we’ve built up to the point of being able expand our team. Expanding makes sense for us now because we have more work than our team can handle. We are growing because we need to grow not because we can.

We don’t work on the weekend because we don’t want to. That’s personal time. No one wants to feel like their entire life was spent working. We plan things out so that nothing critical happens at the end of the week, so there’s nothing to worry about during the weekend. Everyone should relax and enjoy life outside of work, and the weekend is your time.

What we’re building is a place where we love what we do, where everyone who works for our company loves what they do. Decisions are made based on what is best for business and our happiness. We don’t report numbers to investors to determine our success. Our success is based on the quality of what we create.