Michael Simmons, Flexibits

michael simmons

Michael is one half of the OS X and iOS software development company, Flexibits.

  • What do you currently do?

I’m 50% of Flexibits and our apps are Fantastical and Chatology. I love designing user interfaces, user experiences, and ultimately make apps that help make people’s lives better.

Michaels Simmons Fantastical_for_iPhone_512

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

Even though I did programming back in the 90s with the Commodore 64 and Amiga, it was primarily hacking around and creating what were known in those days as “demos”. In 2000, I attended the Big Nerd Ranch and it inspired me to write an app, so I wrote an app called PiXel Check for OS X that checked LCD pixels. I stopped coding to focus on design and business development, but I keep a strong passion in maintaining my knowledge and education of the latest and greatest frameworks and technologies. This helps me to know how long something might take or what’s (easily or not easily) possible.

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

The first app I created was when I was around 12 years old and was written in BASIC, on a Commodore 64. It was an app that solved basic math equations.

  • Where did you get the idea for the app?

I wanted to learn how to make the computer do something and solving a math problem seemed like a fun thing as I recall.

  • What went well? What could have gone better?

I remember it worked the first time because I kept it simple. Having it work right away inspired me to add more functions and I remember eventually having it do advanced equations.

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

Fantastical, for sure. It saves people time, helps them manage their businesses and lives, and the feedback we’ve received is so rewarding and inspiring.

michael simmons screenshot-1-dayticker

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

Never give up! Programming isn’t something that can be learned right away. Ask any good programmer and he or she will tell you that it’s trial and error. LOTS AND LOTS of trial and error. If something is confusing or not clear, try again. And again. And again. And use documentation and Google. Using Google to search for an answer is a good way to find an answer because most likely someone else had the same problem and there’s never anything wrong with learning from an answer. But that’s the key: learn from the answer. If you just search, find the answer, and don’t try to understand how the answer works, you won’t learn and you won’t improve your skills.

Follow Michael 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.

Doug Russell, Freelance Mac & iOS Developer

doug russell

Doug develops Mac and iOS apps as a freelancer.

  • What do you currently do?

I’m a freelance Mac and iOS developer specializing in Accessibility.

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

I was going to school to become an Electrical Engineer and I had some medical complications that meant that I had to stop taking medication for ADD. I had to find something to do that I liked enough that I could do it even when shiny things were distracting me. I had started writing a podcast client for iOS on a lark and it turned out I was good at it, so I decided to dig in and see if I could get better. I dropped out after a semester of mostly neglecting class while I wrote code to start a small iOS consulting shop with two friends (a designer and a web guy.)

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

A podcast app for streaming and listening to old episodes of a show I was a fan of.

It could:

    • play a live shout cast stream
    • submit feedback to the hosts during the live stream
    • show a list of upcoming live shows
    • show old episodes of the show including show notes, pictures and playback
    • show tweets from the hosts of the show and tweets from fans of the show
  • Where did you get the idea for the app?

At the time the App Store was only 6 months old and there were no good apps for streaming audio or downloading podcasts.

  • What went well?

The first release was definitely crude, but I was able to go from never having written any Objective-C at all to shipping an app that had thousands of users in about 4 months.

I was really lucky to have a lot of volunteers testing things and making suggestions and when it did launch the success of the podcast guaranteed a decent sized user base that was friendly about reporting bugs to me instead of leaving bad reviews.

I was also very lucky that the show had a great server guy who was really helpful about getting me feeds for everything I wanted.

  • What could have gone better?

In retrospect, the feature set was way to big for a 1.0 and I would have saved myself a lot of sanity if I’d rolled out these features gradually instead of trying to take them on all at once.

The code was basically glued together samples from tutorials I had found through google. I didn’t really understand anything about code quality so I’d just punch whatever I wanted to do into google and then rummage around trying things until something worked. The amount you can get done without really understanding how any of it works is pretty surprising.

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

On iOS I’m pretty proud of an app I made called Science 360, for The National Science Foundation. It’s a science discovery and exploration app with a completely custom UI that I think is pretty fun. It was the first time I got to really flex my accessibility know how in making a UI that’s highly customized play well with VoiceOver. It hasn’t been revved in a while, so it’s a bit long in the tooth (needs a retina update for one thing), but last I checked it still works reliably and is still accessible.

On OS X my favorite app I’ve worked on was definitely Kaleidoscope 2. It was a huge technical challenge and a huge design challenge and a really aggressive timeline. A total pressure cooker into which we placed what is easily the most talented group of developers I’ve ever worked with.

I was the technical lead, but I was by no means the most experienced developer, especially with AppKit. This meant that my job was mostly to make sure these incredibly smart people weren’t blocked by anything. To get the right assignments into the right hands and make sure they felt like they could do the work and that I’d be around to help them if they couldn’t.

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

Concentrate on outcomes.

The thing that matters the most is producing software that people can actually use.
Yes, knowing the frameworks inside and out matters.
Yes, code quality matters.
But first and foremost ship something good and ship it as soon as humanly possible.

If you’re a contractor your clients will love you for this, if you’re making a product your customers will love you for this.

Bad code has a natural feedback loop where doing the wrong thing causes you real pain. Late nights unwinding bad decisions are a big part of getting better.

But not shipping doesn’t hurt, in fact often it’s the opposite. Tinkering forever feels great. Getting everything just so feels great. And holding onto the code puts off the scary part where you actually put your work in front of people. So you have to remind yourself everyday that code you haven’t released doesn’t count and create a sense of urgency around getting this great thing you’ve been cooking out the door.

Follow Doug on 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.

Saul Mora, Magical Panda

Saul founded Magical Panda and develops iOS apps. He also writes a blog at http://saulmora.com/

  • What do you currently do?

I’m a freelance iOS developer working for myself as the Magical Panda. I started the Magical Panda so that I could produce quality apps for myself and clients. I’m very excited to tell you that I’m currently developing the Panda’s first major app release. I don’t have any details to release just yet, but it is just me doing all the work, so when a few more things are ready to be announced, we’ll be telling everyone about our app.

I also spend my time contributing to the iOS and Mac developer community by producing a podcast called NSBrief (http://nsbrief.com). NSBrief is a collection of interviews with members of the Cocoa, Mac and iOS developer community doing interesting things. We talk about all things indie developers want and need to know, from some nifty new tools or frameworks, to people’s stories about running their business or selling apps in the store in general.

And, if that weren’t enough, I help out here in the Denver area with organizing iOS DevCamps and the local Cocoaheads chapter. If you’re in the area, we’d love to have you out and meet the local developers. They’re a great group of people!

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

This takes me back to the days when I was working as a C# developer at Intel. It was neat to work on web apps that performed calculations to help with factory equipment analysis (those words don’t make it sound fun, but it was). At that time, Macs were still on PowerPC chips. There was no iPhone. I remember watching a live stream from Macworld and seeing that Macs had switched to Intel processors. This allowed me to try out a Mac, and maybe still use Windows. When I bought my first MacBookPro with 10.4 Tiger on it, I knew the Mac was more my style. I set out to learn how to code on this new (to me) platform, installed Xcode and was completely lost. Then the iPhone was announced. I knew I had to move to this strange new world of Mac and iOS development. I needed help, and fast.

Eventually, I sought some help in the form of local user groups. I found two, the Phoenix Cocoaheads chapter, and the Phoenix iOS Developer Group (Pi). I attribute much of my knowledge of the iOS and Mac platforms to the super awesome people I met at these groups. The first few months I attended the Phoenix Cocoaheads group, I didn’t know anyone, and didn’t really speak…I just listened; just being around these people was inspiring enough. I eventually started to get to know people, started asking questions, started answering questions and eventually started a small app of my own.

And thus, my amazing journey began because of the amazing people in the community who didn’t laugh at my questions in those early days. I try to keep my early days in perspective as so many new developers are still coming to the iOS (and even Mac) platform.

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

The first app I developed was a podcast player, of which there are now plenty good ones on the AppStore. It was really basic, and I was only able to even try to develop the app once Apple had added iPod programmability support into iPhone OS 3.0. All it did was let me have continuous playback of podcasts and shuffle them according to certain attributes. The iPod audio player did not do that back in the day, so it was breaking some early ground.

Even though I never really got too far with it, I learned all about the Objective C syntax, and how it was different to C#. I learned about the built in collections, and studied other code to learn about the conventions of the community and Apple. There was a lot to learn, and while I finished the app in 2 weeks, I had only learned a small bit of the framework, but it was enough to get me familiar with the platform. I should also mention that I did have a full time job while I wrote this app. I was writing it on evenings and weekends in my spare time. Sometimes I have to remind even myself of this to remember what I was able to accomplish with so little familiarity with the platform, but obviously, iOS has grown astronomically since those early days.

  • Where did you get the idea for the app?

I rode my bike to work often, and on the way, I would keep up with news and learn things through audio podcasts. I wanted an app that would play things in a continuous manner to help keep me up to date. The podcast playing app was an app born out of necessity.

  • What went well? What could have gone better?

The first version was pretty basic, and getting it out into the AppStore was great, but I was unprepared for the support that came with it. This is a process that I should have ironed out a bit more in the beginning, even if it wasn’t perfect, it could have been better than what I started out with.

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

Back when I started working with an app agency, I helped create a comic book reader app. I think I look somewhat fondly on this app not only because of the technical challenges of what we were able to do on a first generation iPad, but because of the people I worked with while writing the app. Overcoming adversity on a team is a special feeling, and I tend to remember the great teams I’ve had the privilege of working with. Our struggle on the comic book app was to ship this app in 3 weeks with a team of 4 developers. That sounds like a lot, but when we take into account the time in which we wrote the app, everything was new, we were inventing the future. We designed a custom comic book store, we had to get comic book downloading and purchasing working right, and the reading experience had to blow people away. We invented and shipped the future in 3 weeks. It wasn’t easy with very long days of solving problems that today might seem trivial. But it was fun, and I know our hard work as appreciated, despite the fact that the app is no longer available on the AppStore these days.

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

Making apps will be hard.

Always be learning. Making apps is unlike any industry I know. You have to keep on your toes and not only learn what has changed in the developer world from day to day, but you also need to learn about solutions that already exist. I see so many developers these days reinvent the wheel because they simply didn’t know that the wheel had existed in the first place. This knowledge comes with constant learning of new and old concepts and every day I incorporate some form of learning either from reading blogs, looking up specifications of APIs or reading up on some computer or programming language history or algorithms.

Follow Saul 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.

Kirschen Seah, Rockwell Collins & Free Range Coder

Kirschen sm ac4g

Kirschen works for Rockwell Collins, an avionics corporation. She also blogs on technology, Apple-related things, and food at Free Range Coder. And she’s the curator of App Stories, the blog you’re reading.

  • What do you currently do?

I’m a Principal Systems Engineer at Rockwell Collins working on flight deck displays, also known as cockpit display systems. In my spare time at home, I’ve been tinkering with writing OS X and iOS apps. I’m very passionate about encouraging young women to get into careers in STEM (Science, Technology, Engineering, and Mathematics).

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

I first started programming back when I was 18 at pre-university school in Singapore. We had an extra curricular course on learning the BASIC programming language and practical exercises on a minicomputer. I was very motivated by this and my dad (an Electrical Engineer) bought me an Apple ][ back in 1979. I taught myself BASIC, Pascal, C, and 6502 assembly language. From that Apple ][ I moved on to a Mac Plus on which I continued to learn Mac OS programming in C and Pascal. The Mac’s graphical user interface was quite different from the text based Apple ][ – more new things to learn! Starting on iOS programming came much later in 2009.

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

My very first program / app was written in BASIC back in 1978. Its purpose was to calculate the roots of a quadratic equation ax2 + bx + c = 0 using the mathematical formula I had learned in school.

  • Where did you get the idea for the app?

From a maths class at school.

  • What went well? What could have gone better?

It calculated roots properly, except for imaginary ones. I later corrected it to handle imaginary roots (those which had the square root of -1).

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

It’s the one I’m currently working on to help bicycle mechanics properly adjust bike wheels. I attended a bicycle mechanics course last year and there was one part in which which we had to interpolate values in a table. Now for engineers this was quite easy, but many people in the class struggled with the concept. So I decided to write an app which would do the table lookup and interpolation. I’m now waiting for agreement from the company which makes the tables so I can use the data in my program.

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

Always be learning! There are many new things to discover in computers, programming, and software. Remember that there are always people smarter than yourself from whom you can learn much. And to those who seek to know and understand more, be there to teach them what you have learnt. Also, reach out to your peers and connect with them, both in person, and online – community is what brings us together. Together we learn, together we share. Best of wishes as you embark on your app development career!

Follow Kirschen 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.

Rob Rix, Black Pixel

Rob Rix sm

Rob develops software at Black Pixel.

  • What do you currently do?

I’m a developer with Black Pixel, generally doing consulting, but occasionally doing some work on our products.

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

When I was a child, my Dad had a copy of HyperCard, which you could make drawings in. Then I learned you could also add buttons, and text fields, and fill them with whatever information you needed to make a simple database. Then it turned out you could also program the behaviours of these things, animate elements, show icons, and so forth… and, armed with a couple of reference guides, I made all sorts of crazy programs until I hit the limit of what HyperCard could do in and of itself. By this point, it had really sunk in that someone *made* all the stuff that runs on a computer, and I could do that too.

Fast forwarding a few years, Apple released the public beta of Mac OS X. I installed it and Project Builder, pored over the Objective-C language references, and explored all sorts of things you could do with the Cocoa APIs. It was wonderful—anything that could be done, you could do here (it didn’t leave you with your hands tied), but you had the flexibility of a nice dynamic language and Cocoa, and so lots of otherwise very hard things were just within reach.

Then when Apple released the iPhone SDK, I didn’t own an iPhone or an iPod Touch, but I installed the SDK and got started on an app. A lot of it was familiar, but a lot of it was new and strange as well.

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

The first app I created and released—shipping is the real milestone, to my mind—was a graph paper drawing app called Litho Graph for the iPhone. It had square and triangular (iso) graph paper, and it snapped your lines to grid.

It was fun, and challenging—both technically (OpenGL, PDF drawing, a web server, some UX/UI challenges, and of course optimization—I ran it on a first gen iPod Touch!) and professionally (shipping is hard work—but it’s such important work).

  • Where did you get the idea for the app?

I often have a pad of graph paper at my desk, and I enjoy whitelines papers and notebooks. It’s a bit of a pain carrying around an A4 pad and a nice pen all the time, though, whereas an iPhone fits in your pocket. I knew I wanted to write an app, and I thought I might actually use this idea, so I bit the bullet and spent a month coding my heart out.

  • What went well? What could have gone better?

Actually writing the app went really well. Shipping it, too, really; even though I made my own icons! (I am not a designer.) But maintaining it went poorly, and I forgot that I would be handling the support load on top of my day job. Spending the time to build it was one thing, but the time to grow it into a business was another. In the end, it didn’t turn a profit… but it was an incredible learning experience.

Ultimately, I wish I could have spent the time it would have taken to make it really shine—especially on the iPad, where it really would have made up for the clumsiness of drawing with your fingertip.

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

If you’re talking about apps which I did (almost) entirely myself, then Grid, a window management app I wrote. It’s open source, now!

It’s my favourite because:

    • I use it every day
    • some of my friends use it
    • I shipped it! 🙂
    • my friend Scott Perry started contributing to my Haxcessibility framework, written for Grid, and released Switch; it’s really inspiring, being able to help someone else bootstrap their idea!
    • a real designer made the icons 🙂
    • and, finally, a few people told me that they would pay $15 for it. I’ve never charged for it, but it’s really great feedback to know that someone else values your hard work to that degree.

If you’re talking about apps I’ve worked on, then Kaleidoscope 2.0. It’s a fantastic tool, and although my contributions were relatively small, I’m proud of the work I did, and cherish the time I spent working on it, and even more so the experience of working with that team—by far the highlight of my career to date.

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

Here are some things I wish I had learned when I was young, or which I did learn and which went well for me:

    • Surround yourself with people smarter than you. (Online friendships do count.)
    • Surround yourself with people who ship good work.
    • Never let the perfect be the enemy of the good. Or, otherwise put, make it work, then make it shine.
    • Fear of failure can prevent you from trying, and you need to try—and fail—in order to learn. The best way to combat this fear is to acclimatize yourself to it—so, fail. Try things, and when they don’t work, figure out why.
    • Reason on bugs and problems. Use the scientific method. Come up with a hypothesis as to what could be causing the error; test it, recording the results; re-evaluate the hypothesis in light of the results of the test; repeat. Don’t be afraid to just throw time at it.
    • Talent with effort is worth infinitely more than talent alone.
    • If you feel like you’re a faker, or an impostor, you’re not the only one.
    • Don’t invest ego in your code; do invest pride in it. You’re not the smartest kid in the class, but fortunately you don’t have to be the smartest kid in the class to shine so, so brightly.
    • It’s just the best feeling to work with people who are great at what they do—designers, QA engineers, project managers, other developers, everything. Don’t forget to tell them that from time to time.
    • It’s really hard to make a product, but it’s the kind of really hard that you can do by just chipping away at it bit by bit.
    • Know your tools inside and out.
    • Read the documentation. Write documentation for your own work.
    • Don’t couple your code to your specific use cases, but don’t generalize it too early, either.
    • Paired with that, if you don’t know how to solve a big general problem, solve a small specific instance of it, and work from there.
    • Complex, successful things are made of lots and lots of simple things.
    • Don’t fight the frameworks. You develop an intuition for this, gradually: if something feels like it’s too hard, there’s probably a better way.
    • Do not succumb to Not Invented Here syndrome: don’t be afraid to use other people’s work. But do be cautious about introducing dependencies; if you’re not sure about a third-party framework or service, ask a trusted colleague for their input.
    • Ask experienced, successful, trusted people to review your work. Ask questions about their feedback. Try applying it; does it make your code better? If so, why? If not, why? Did you understand the feedback correctly, or did the reviewer miss something? (This is where not investing ego comes in—it’s a liability when you’re trying to make a better product, rather than just make yourself feel smarter at the expense of your users.)

And most of all, play well with others. Humility and patience go so much further than ego and arrogance.

Follow Rob 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.

Benedict Fritz, FadingRed

Benedict is a software developer at FadingRed.

  • What do you currently do?

I’m currently a Mac and iOS developer for FadingRed. Right now I’m working on a mixture of client work and a new product that we’ve been working on internally.

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

I studied computer science in college, and was hired by FadingRed out of school. They were incredibly patient with me as I learned Mac and iOS programming on the job!

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

The first thing I remember making was a calculator for the Mac. It was a simple app, but it was a great learning experience as it forced me to learn a lot of the Mac development patterns. It was extremely simple as I think it only did addition and subtraction.

  • Where did you get the idea for the app?

It was a suggested learning activity after I had been working towards learning Objective-C for a couple weeks.

  • What went well? What could have gone better?

What went well was that I made something! I think that’s the most important thing when you’re starting out, is just to make something, anything. Don’t worry about it being unique, special, or even good. Just force yourself to do something and you’ll learn so much. So while the app wasn’t good, I don’t know that it could have gone any better. It looked horrible and barely worked, but it was something I made, and the best I could do at the time.

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

brittany koku

My favorite app I’ve worked on is Koku, a personal finance app. I did a lot of work on the budgets feature that we added, and my work on it is definitely the most polished and comprehensive thing I’ve ever contributed to a piece of software.

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

Just start doing it! Don’t be afraid to mess up – no matter what you do your computer won’t blow up. You’ll feel like you don’t know what you’re doing, but try to learn to embrace that feeling. Things are constantly changing, and the most important skill you can learn is learning how to learn. Don’t give up and one day you’ll look back and see all the progress you’ve made, even if that progress is hard to see on a day-to-day basis.

Follow Benedict 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.

Lucien Dupont, Intuit & ChromeDome Software

lucien dupont sm

Lucien works at Intuit and develops TurboTax for the iPad and OS X. He also develops personal apps at ChromeDome Software.

  • What do you currently do?

My day job is working at Intuit on TurboTax for the iPad and Mac OS X. At night after putting my two young daughters to sleep (4 and 2) I work on my personal apps at ChromeDome Software. I’m currently wrapping up a very large release of Check Off, a task management app.

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

I started off Mac development when I talked my dad into getting us a Mac Plus, and started with Turbo Pascal. I puttered around learning the Toolbox, just writing odd little bits of apps. After graduating from the University of Calgary with my degree in computer science, I moved to Toronto to work for a small company working on a multimedia presentation app called Astound (An ancient link on it: http://www.ideaforum.com/astound.htm#text.mac ).

But I like to think I really got started seriously developing Mac software when I joined Apple to work on the connectivity software for the Newton.

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

The first real iOS app that I wrote that other people could get was a pregnancy tracking application.

  • Where did you get the idea for the app?

When my wife and I were pregnant with our first daughter, everyone kept asking us how far along we were. This was about the end of 2007, so the app store was around, and I thought to myself I could go buy an app, or hey, I’m an app developer, I could write one myself. It seemed like a great reason to dig into UIKit and see how it compared to AppKit. Plus it was solving a personal itch I had.

  • What went well? What could have gone better?

Doing the actual development went really well – it was a lot of fun to learn UIKit, and get my wife to test it during the pregnancy. Thinking back, what could have gone better was finding other couples that were pregnant, and asking them to help test it. I suspect I would have gotten a lot of other great ideas to add to it. When I update it in the future, I’ll look for more outside testers, so I don’t develop it in a vacuum of just me and my wife.

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

Hmm. Thinking about my personal apps, I’d have to say Check Off, as it has a small but vocal group of users. Hearing from them keeps me going on the latest release. I’ll also always be partial to the pregnancy tracking application, as it was fun developing it and watching the process of being pregnant (from the sidelines!) 🙂

In my corporate life I’ve been pretty lucky work on some fun and challenging apps over the years. Because it’s so recent, TurboTax for the iPad is my favorite there – doing taxes on your iPad and making it fun and engaging is a fairly challenging problem. 🙂

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

To quote Nike: Just Do It.

Find a personal pet peeve of yours and think about how you might solve the problem, and then just jump into it. Don’t worry about shipping it either – the education in just attempting an app and learning how to develop an app is worth the time, in my opinion.

That said, seeing your app on the app store is pretty fun too.

Follow Lucien 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.