Jay Graves, Double Encore

jay graves

  • What do you currently do?

I am the CTO at Double Encore which means I am responsible for the engineers on both the iOS and Android teams. I speak at conferences and blog for the Double Encore Insights.

  • How did you get started in Mac and/or iOS programming?

I was primarily a web developer and was very interested in building new social networks. When the iPhone was released it was apparent that that was the way people were going to be interacting online. I started building iOS apps to support the social networks I was building.

  • What was the first app you created and what did it do?

The last social network I built was geared towards fashion. It was called Coathangr and it really needed a mobile app so people could post pictures of their clothes while on the go. So I built the Coathangr iOS app as my first mobile project.

  • Where did you get the idea for the app?

My friend, Dave Wiskus, came up with the idea one night. He said “Twitter asks, what are you doing? Brightkite asks, where are you? We need to ask, What are you wearing?”

  • What went well? What could have gone better?

Building this app taught me a lot. Having a real life project to drive you to learn and solve problems is a huge advantage. I really wish I had built this app “the right way”. I took shortcuts because getting something out quicker was more important than learning how Objective-C really worked.

  • What is your favorite among the apps you’ve developed?

I love the MLS MatchDay app for iPhone and iPad. It has been so fun to architect and design a Universal application that delivers so much to fans.

  • What advice do you have for young people who want to make apps?

Learn “the right way” to do things and try not to cut corners. Seek out people who have gone before you and learn from them. Get involved in structured learning like AppCamp4Girls or Pragmatic Studio (where I learned) or just pick up a good book and read it all the way through. This was my first one.

Follow Jay on Twitter and App.net.

Help more girls learn software development at App Camp For Girls.

Jonathan Schwarz, Black Pixel

jonathan schwarz

  • What do you currently do?

I work at Black Pixel as an iOS and Mac developer, largely working on client projects and occasionally contributing to our internal products.

  • How did you get started in Mac and/or iOS programming?

I got my first taste of programming with Logo when I was in middle school. I was hooked as soon as I realized I could make the turtle change colors. I learned Java and C in classes I took in high school, but I didn’t start using a Mac until I went to college. All my college courses were in C or Haskell, but I taught myself Cocoa on the side – I knew I wanted to make beautiful apps, not what I thought were boring command line programs that parsed strings or implemented various search algorithms.

  • What was the first app you created and what did it do?

The first real software I wrote was a Space Invaders clone. It wasn’t very good, but I spent a really long time creating the graphics, adding sound effects, and tweaking the game play. Each level the aliens just got progressively faster until there was no way to win.

  • Where did you get the idea for the app?

We weren’t allowed to install games on the computers at school – writing my own seemed like a great way around that!

  • What went well? What could have gone better?

The game was surprisingly fun to play. I spent hour after hour finding glitches in the game, thinking of new features to implement, playing some, writing new code, and on and on.

I don’t think when I started I realized just how deceptively complex an application can be. You think, “Oh, that looks pretty simple”, and then you get started, and the further along you get the more you realize how many little moving pieces there are that you didn’t notice. So you figure that all out, make it happen, and then there’s a whole other layer of complexity you didn’t see the time before.

  • What is your favorite among the apps you’ve developed?

My favorite would probably be OneNote for iPhone. That was the first real iPhone app I had the chance to work on, and I worked on it from the start of the process through shipping it. It was really challenging to develop for many reasons, but it was amazing to see so many people download it and know that I helped create something that was useful for all of them.

  • What advice do you have for young people who want to make apps?

Learn by doing. I used to get frustrated when I’d try to learn a new topic because I’d read a book or an article about something, then feel that I hadn’t really learned anything in the process because everything was so abstract. I learn much better by reading just enough to get something working, maybe copying some sample code, fiddling with it until it does what I want, and moving on. Once I’ve actually worked with something in code I find it’s easier to read about how it works because I know what the pieces are – it’s more concrete to me.

Learn from everyone. I believe everyone has something they can teach us, whether they’ve been programming for decades more than you or not. Some people know so much about everything, so it’s great to learn all the valuable lessons from them that they had to learn the hard way. Sometimes you learn the most from people without much experience, though. You’ve gotten so set in your ways and you don’t realize it until they ask why you’re doing something a particular way.

Don’t be afraid to try. I think sometimes we’re so self conscious of our work that it keeps us from doing our best or sharing what we can do. You think maybe people will judge you or think you’re not very smart because your code isn’t perfect, and so you don’t write that app or share that code you’ve written. Put yourself out there, and learn from the feedback. By the same token, if you see someone starting out, be nice, help them out, and stay positive. Remember that you had no idea what you were doing once upon a time.

Follow Jonathan on Twitter and App.net.

Help more girls learn software development at App Camp For Girls.

Gwynne Raskind, Chaotic Moon Studios

  • What do you currently do?

I’m currently employed at Chaotic Moon Studios as a Senior Software Developer. I also do freelance work on the side, and I’m working on a second edition of Amit Singh’s famous, but unfortunately outdated, internals tome, “Mac OS X Internals: A Systems Approach”.

  • How did you get started in Mac and/or iOS programming?

I got started in programming very young, though I didn’t do much in the way of real development until much later. Until a few years ago, I was purely a hobbyist, but I finally began working professionally based on an offer from a friend and found out, hey, it’s still fun!

  • What was the first app you created and what did it do?

The first app I created that had any real function at all was a preference pane for OS X called “MusicImage”; it grabbed the currently playing iTunes track, built a small PNG image with the track info and an optional background, and made it available on my VPS for use in forum signatures – this was back in the mid-2000s, when signatures on sites such as Gaia Online were all the rage. I only kept it updated for a year or so, and it never had more than about 20 users, but it was fun.

  • Where did you get the idea for the app?

One day while I was posting on Gaia Online and noticing how everyone had “dynamic” signatures on a decidedly static (at the time) forum system, I thought it’d be neat to put my current music in my signature. I didn’t realize at the time how terrible a PHP script backed by a MySQL database would have been for scalability if more than a few people had ever used it! :)

  • What went well? What could have gone better?

Really, it all went well; it was a learning experience and I had fun doing it. The main thing that could’ve gone better was me paying more attention to it once it was up and running; I tended to leave it to its own devices and only find out much later that it was down or broken for the few users it had, often because I’d made assumptions or changes that worked only for my computer and configuration.

  • What is your favorite among the apps you’ve developed?

Not having done many actual “apps”, it’s hard to say! But my favorite project to date was working on PLCrashReporter, a backend framework used by developers for detecting and reporting crashes in their apps. It required a lot of research into the internal functioning of the system, also known as the “nitty gritty details”; I love the nitty gritty details :).

  • What advice do you have for young people who want to make apps?

Never assume you know everything you need to know about what you’re doing, because you don’t; there’s always something you didn’t consider, something you weren’t aware of, or something that will change, even after you’re done. Always be ready and willing to continue learning.

Follow Gwynne on Twitter and App.net.

Help more girls learn software development. Contribute to the App Camp For Girls Indiegogo fundraiser, get a cool perk, and enjoy the feeling of having helped the next generation of software developers.

Jaimee Newberry, Speaker + Writer + Consultant

  • What do you currently do?

These days, I’m working for myself from my home in Las Vegas, NV.
I kinda define myself as a speaker, writer, mom-in-tech -or- as an experience design + strategy consultant for web, mobile + physical environments.

That’s a mouthful. My focus is mostly on single-momming two little girls, speaking and writing right now but I’m also working on a couple personal projects with some close friends, and a couple awesome client projects..

  • How did you get started in Mac and/or iOS programming?

So… I’m actually an experience designer/strategist. But I got into all this about 15 years ago by teaching myself how to design and code websites. Photoshop and BBEdit, baby!

  • What was the first app you created and what did it do?

My foray into mobile apps was working with an incredible small team to create the first iPad, iPhone and Android apps for Zappos.

  • Where did you get the idea for the app?

While there were a ton of potential ideas for what the app could and should do, the foundation for an entity like Zappos was fairly straight forward. We took the approach of focusing on the simplest version of allowing people to browse and buy Zappos goods. We put as much effort as we could into focusing very specifically on tailoring everything toward the individual devices we were creating for. They turned out pretty ok.

  • What went well?

The team: one UX designer (me), one visual designer, three developers, one project manager and one quality assurance engineer. We worked collaboratively from beginning to end, on all the projects. We had incredible camaraderie, we had fun and laughed a lot, we worked really hard and we launched a completely awesome iPad app in 8 weeks, then trucked along to crank out the rest in similar timeframes.

Hands-off management: Our leaders used a hands-off approach. They gave us an objective, a timeline and support, and they trusted us. We checked in weekly but ultimately, they got out of our way and let us run. We delivered. There was much celebration.

  • What could have gone better?

I really don’t know. I definitely wanted to throw everything away and start again after we launched each product, you learn so much just by “doing” but for a first go at things, I’m not sure things could have gone any better than they did. Make stuff, throw it out there, observe/learn, do it again!

  • What is your favorite among the apps you’ve developed?

I can’t talk about a lot of the stuff I’ve been able to work on in the mobile apps realm due to many strict NDAs. Of the things I can talk about in this moment, Zappos still may be one of my favorite projects to have worked on.

Pretty soon I’ll be able to share some stuff that really takes the cake on my favorite projects, so keep an eye out for those announcements!

  • What advice do you have for young people who want to make apps?

Always follow your passion. Dig in and DO IT.

The app-makin’ community is one of the most encouraging, helpful and welcoming communities I’ve ever had the pleasure of being a part of. If you get stuck on anything, there are people willing to help.

And, even though I ended up following the design path more than the coding path, learning to code as a web designer has always helped me be a stronger designer and a better communicator with the programmers I get to work with.

Follow Jaimee on Twitter.

Help more girls learn software development. Contribute to the App Camp For Girls Indiegogo fundraiser, get a cool perk, and enjoy the feeling of having helped the next generation of software developers.

Evadne Wu

image

 

  • What do you currently do?

I’m a human interface specialist aspiring for world domination and running a consulting business on the side. I design human interface for mobile, web and desktop software, and do some degree of mobile and Web engineering. (Tongue in cheek variant: I help clients build business applications that make them superhuman, in an affordable and profitable way.)

  • How did you get started in Mac and/or iOS programming?

I started out working on visual design and digital publishing and was compelled to learn Web design and development to create a street photography portfolio. It kicked off a series of events forming Iridia Productions with a friend of mine and got me started on software development and the business side thereof.

I started out building business software on the Web with Cappuccino, a framework built on top of the Objective-J language which is a port of Objective-C atop JavaScript.

Iridia’s formative months coincided with the launch of the iPad and the explosive period of growth of the iOS platform as a whole, and we shifted from Web consulting to iOS consulting. We built our and my first iOS application around this time.

  • What was the first app you created and what did it do?

Tarotie was the application I created with my co-founder at Iridia to explore what’s possible with iOS, when iOS 3 was mainstream and iOS 4 was taking territory. It’s an interactive Tarot deck. You’ll place the phone face-down on the table, then flip it back up. The app picks up device motion, recognizes the rotation and shows a new card with the built-in flip animation.

  • Where did you get the idea for the app?

Both of us have a Tarot deck sitting on our respective shelves, and I have an unhealthy level of obsession with replacing ordinary things with convoluted technology. It’s mostly a series of coincidences.

  • What went well? What could have gone better?

A professional astrologist praised its apparent accuracy; we were half baffled. For a side project, Tarotie took over a whole year to build, only because we spent very little time on it between client projects. It could have been shipped in weeks if we both knew what to build and were both focused on the project for a very short period of time.

  • What is your favorite among the apps you’ve developed?

I once built an engine that used up to seven UIWebViews concurrently in pages to drive an infinite magazine-style layout which scrolls at 60 FPS.

Another app reads and writes WMF-wrapped PNG files natively, handles rich text editing on the iPad, with full RTF reading and writing support, and synchronizes everything with Dropbox while recording or playing back audio at the same time.

  • What advice do you have for young people who want to make apps?

Build your own support network by integrating the local and global community. As a novice, the first step is the hardest, and classrooms won’t always work. (Teaching iOS development to absolute novices, drawing from my own experience, is very difficult to do in certain cultures where failure is frowned upon.) Find out where people go and attend these meet-ups, show your progress to other peers, and find mentors early in the process. If there’s no such local community, you can easily create one by providing food, beer and a place to meet regularly. People will come out of altruism, curiosity or boredom, and you get to learn from them in all cases. (Bonus: If you buy people beer, they will like you.)

Rack up your open-source contributions as soon as possible to acquire experience, force exposure and heighten proximity. In certain cases, it’s highly beneficial to start with small tasks that add to an existing framework than to start from scratch. It’ll provide you some structure to learn about specific areas. Interacting with the open-source development community helps you learn more about the craft itself — ways to build usable, solid and performant software — and the meta-craft, which is the way of performing these tasks as an useful participant.

Postpone your “life project” and hedge some time against an initial piece you can finish expediently. It’s imperative that when shipping your first application, you ship it in a matter of weeks by creating very little. A string of small victories is far more beneficial than a long march with no proof of succeeding. Get something on the screen, and worry about product-market fit later on your second or third project when you are technical enough to avoid jumping into rabbit holes.

Find your ten-year and five-year anchors and work towards them. Acquire specific skills, connections and knowledge if need be, and don’t be afraid to eventually get out of building applications if that’s not the best way to manifest your ideas.

Follow Evadne on Twitter and App.net.

Help more girls learn software development. Contribute to the App Camp For Girls Indiegogo fundraiser, get a cool perk, and enjoy the feeling of having helped the next generation of software developers.

Paul Kafasis, Rogue Amoeba

  • What do you currently do?

I’m the CEO of Rogue Amoeba, a Mac audio software company I co-founded back in 2002 with my partners Quentin Carnicelli and Alex Lagutin.

  • How did you get started in Mac and/or iOS programming?

It all started with writing, actually. Back in the late 90s, my friend Misha Sakellaropoulo got me set up writing software reviews for MacNN. I stumbled on a small tool called StripAmp. I wrote a positive review of the product, and before it was published, I contacted the author to suggest he should charge a few bucks for it, rather than giving it away. That author was the aforementioned Alex Lagutin. Well, back in the late 90s taking payments online was a bit tougher, particularly if you lived in Russia as Alex did. Casting aside all journalistic integrity, I offered to partner up with him to sell the app (hey, I’d already written the review!). He was amenable, and we started a tiny company called PK Industries (the domain is now owned by a janitorial company who kept our color scheme) to sell the app.

  • What was the first app you created and what did it do?

The first tool we sold was StripAmp. It was a software remote control for one of the first MP3 players, MacAmp. It was a tiny app which sat in the Control Strip (the what?! http://en.wikipedia.org/wiki/Control_strip), which was sort of like the menu bar is now – a place for fast access to all sorts of status information and controls. StripAmp provided a quick way to control MacAmp, the most popular MP3 player on the Mac at the time. It was small but elegant, and we sold it for a whopping $5.

  • Where did you get the idea for the app?

When I stepped in we polished the app up together, but Alex gets all credit for the application idea itself, as he made it before we even met. He made it to scratch his own itch – he wanted an app which did what StripAmp did, so he made it. That said, it’s useful to talk about where ideas for our apps have come from in general. Scratching our own itches has often been the starting point for our apps. Then, once we’ve released a basic application, we’ll hear from customers who need a slightly different tool.

Customer feedback has led to the much of the stable of Rogue Amoeba products. We started with audio capture, because Alex wanted to add an Equalizer to movies played in other applications. After users saw that, they told us they wanted to be able to record audio, rather than just add effects, so we made Audio Hijack. Well, once audio capture and recording was out there, people told us they wanted to broadcast audio across the Internet, which led to Nicecast, our Internet radio tool. And when the AirPort Express debuted back in 2004, it could only receive audio from iTunes. People immediately came to us to help them send any audio to it, which resulted in Airfoil. Those are just a few examples, too. Literally dozens of additional features and even full-fledged products have been the result of customer requests and desires.

So, to sum all that up? Pay attention to what you want, and pay attention to what other people want. It’s a pretty good way to make products that will find an audience.

  • What went well? What could have gone better?

Let’s start with what could have gone better: we could have sold more copies! At $5 a pop, it’s very difficult to make a sustainable business. That’s as true now as it was then – perhaps even more so, as there’s far more competition now. A low-volume, low-priced app is not a recipe for success, and most apps will be low volume.

As for what went well, our partnership certainly did. Jump ahead almost 15 years, and we’ve worked together at 4 different companies, including our current one for over a decade. It’s been a heck of a ride together, all because Alex made a great little app and I thought he should get paid for it.

  • What is your favorite among the apps you’ve developed?

That’s a fascinating question, because it can be answered in so many different ways. Our audio streaming tool Airfoil is by far our most popular app, and it’s thrilling to know we’ve helped fill a hole for hundreds of thousands of users. But popularity isn’t the only factor in determining what my favorite will be. Really, I think the answer should usually be “our latest”, because we’re always improving and building off what we’ve learned. Fission 2 was our most recent major update, and it came together really well. Audio editing is often difficult, but Fission makes it easy for users to do what it promises. There are a whole lot of things it doesn’t do, and that’s part of its design as well, and part of why I like it. But hopefully in another 6 months or a year, we’ll have another major release and I’ll have a new favorite.

  • What advice do you have for young people who want to make apps?

I generally encourage anyone getting started, young or old, to find a partner. Developing on your own can work out great, and I know plenty of successful one-man shops. Still, having a partner to work with is hugely beneficial. It means you have someone to share the workload with, someone to bounce ideas off of, and someone who can either reel in your crazy impulses, or encourage you to go even further.

Whether you go it alone or with a friend, the single most important thing is to actually GO! Ideas without implementation are nearly worthless. So get to it and get your app out there. Don’t be timid – learning by doing is practically required here, and the only real mistake is not trying at all. Your app may not be great, or successful, but it will teach you a great deal, and that experience and knowledge is invaluable. After you’ve developed software for a couple years, you’ll be leaps and bounds ahead of where you started.

Then come find me at Rogue Amoeba – we may just have a great job for you!

Follow Paul on Twitter and App.net.

Help more girls learn software development. Contribute to the App Camp For Girls Indiegogo fundraiser, get a cool perk, and enjoy the feeling of having helped the next generation of software developers.

Rich Siegel, Bare Bones Software

rich siegel thinkpascalicon

Rich operates Bare Bones Software, Inc., a company which develops OS X and iOS apps.

  • What do you currently do?

I run a software company: Bare Bones Software, Inc. We’re the developers and publishers of BBEdit, TextWrangler, Yojimbo, and many past products.

rich siegel AboutBBEdit

  • How did you get started in Mac and/or iOS programming?

I got started in Mac programming in 1985, with a copy of the Macintosh Pascal interpreter. It was a very simple environment for programming, but there were some secret tricks under the hood that you could use to reach into the innards of the Mac toolbox and get started with all the cool stuff.

Not long after, THINK Technologies, the developer of Mac Pascal, released a product called THINK Pascal, which could compile native Mac applications (not just interpreted code) and made the full power of the Mac available to users. Together with LightspeedC from the same company, it was one of the first products that we today recognize as IDEs.

  • What was the first app you created and what did it do?

Apart from just randomly messing around, the first “real” applications I wrote that were used by other people were purpose-built tools for controlling and reading scientific instrumentation. I also wrote a graphing and numeric analysis program that was fairly popular as shareware.

The product that really started my indie career, though, was BBEdit. It started as a high-performance general purpose text editor.

rich siegel HTML Glamour

  • Where did you get the idea for the app?

In one of life’s funnier twists, I actually ended up working at THINK, on their IDE products (LightspeedC and Lightspeed Pascal). While I was there, one of the recurring needs was for a general-purpose editor that was usable outside of the IDE. LightspeedC wouldn’t let you open a file unless you also had a project open; and Lightspeed Pascal’s editor was purpose built for editing Pascal source files, so it would try to format anything you opened as Pascal.

At the time, the only editor around was TeachText (later rewritten as SimpleText), the editor that was supplied with the system software installation. This was limited to 32K (that’s 32,768 *bytes*) of text in a file, and the bigger the file, the slower it was to type in.

However, the editing engine that THINK had developed was purpose-built for editing big files without slowing down, and could handle files up to a theoretical 32-bit size limit (2GB), as long as you could read the whole thing into memory.

At the same time, I was trying to demonstrate some simple Mac programming concepts with an example program that was intended for a new version of Mac Pascal (which ended up not shipping); and that program was a text editor which used the OS editing engine (limited to 32K) but had a nice basic set of features: searching, printing, and so forth.

So, I took the THINK editor engine, hooked it up to my example program, and suddenly I had a simple but very powerful text editor. This attracted intense interest from my colleagues, who started using it for all sorts of work alongside their development environments, and I got huge quantities of feature requests, bug reports, and all sorts of other feedback that helped move this little editor forward.

Eventually, it reached a point where I thought it was something the rest of the world might find useful, and so I did a release as freeware; and when the need to provide documentation and support reached a level that needed funding, I made a commercial release. Eventually that became self-sustaining, and I was able to do it full time.

  • What went well? What could have gone better?

BBEdit grew *remarkably* quickly in its early days. If I had it to do all over again, and I had the faintest idea that I’d be working on some of the same code twenty years later, I certainly would have made some different decisions early on in how I architected certain parts of the product. But the best part of the life cycle of BBEdit (of all of our products, really), is the feedback that we get from customers who are using it to make their own careers, and that helps us make a better product.

  • What is your favorite among the apps you’ve developed?

…it’s hard to pick favorites — each one I’ve worked on has had something special about it, a unique set of challenges and rewards. I do miss the days of working on Lightspeed Pascal, but nowadays I find that BBEdit is the one where I spend most of my time, because there’s always something new to explore.

  • What advice do you have for young people who want to make apps?

The fundamentals are important: math science, logic, language skills, organizational ability. However, along with all that, I encourage you to look at app development as an art form, and an app as the artistic expression of an idea within you. If you do that, I think you’ll find that the code just pours out of you. And look within yourself for ideas, too — the best solutions you will ever come up, and the best products that you ever make, are the ones that you create to solve problems that are of personal importance to you, or to people who are close to you (personally or professionally).

Follow Rich on Twitter and App.net.

Help more girls learn software development. Contribute to the App Camp For Girls Indiegogo fundraiser, get a cool perk, and enjoy the feeling of having helped the next generation of software developers.