July 9th: Jeremy Cohen, Facebook, and Core Data

Howdy folks! Join us this Thursday night for a rabble-rousing talk from Jeremy Cohen about what Facebook is doing for persistent storage. I know I've got a ton of questions and I'm sure you do, too — bring 'em on Thursday and we'll hash it all out.


Also, please note that Jeremy's gotta run right around 7, so we're going to do our best to start right at 6:30 on Thursday. All the details are here. See you then!

May 14th: Job Interview Trivia [UPDATED]

Technical interviews: loved by some, loathed by others, but, universally, a necessary gauntlet to vet possible coworkers to prove their worth.

Join us this Thursday, May 14th, at our usual time and place where we will *gasp* quiz each other on interview questions! Sure, there will be softball questions, certainly some hardball questions, maybe a curveball or brain teaser or two BUT there WILL BE PRIZES.

Since I'll be running this open-ended and interactive edition of CocoaHeads, this will be part trivia, and part discussion of which questions make Good Technical Interview Questions for different levels of people.

If you have any interview questions you'd like to contribute, please pass them my way before Thursday!

Post-Meeting Update

Thanks to all who made it out and suffered through 15 iOS interview questions. The good news is that I didn't grade your answers because (a) that'd be creepy and (b) I couldn't read most people's handwriting. But I could make out integers in some of their scrawl!

Here are the slides that I gave for the talk:

…and here's how each question fared. For each question, everybody rated how difficult the question was, where a 1 was for a Junior iOS Dev, 3 was Intermediate, and 5 was Expert. Here's the list sorted by the number of votes a question received to grade its expected difficulty (Junior -> Senior):

Question 1 2 3 4 5 Average
Name some of the UIApplicationDelegate protocol methods and how to use them. 6 2 0 0 0 1.25
What’s a delegate? Give an example. 6 2 0 0 0 1.25
NSArray *foo = @[@“alpha”, @“beta”, @“gamma”]; How would you add another element (@“delta”) to the foo array? 5 2 1 0 0 1.5
What are some ways that you can persist data in an app? 4 2 2 0 0 1.75
Describe what happens behind the scenes when you tap an app’s icon, you see the app open, and you press the home button. 2 5 1 0 0 1.875
How can you add a method to a class that you don’t have the code for? 3 3 2 0 0 1.875
What is a hash? 3 3 2 0 0 1.875
How do you use NSNotificationCenter? 1 5 2 0 0 2.125
What are the differences between an array and a linked list? What do you think an NSArray is? 2 4 1 1 0 2.125
When you create an object (in a running app, not while you’re writing code), where are the bytes located in memory? 2 3 3 0 0 2.125
You have a method call. By using the debugger or a print statement you determine that the method is never called even though it seems plain that it should be. What is a very likely cause? 0 4 4 0 0 2.5
Have you worked with NSOperationQueue? How does it work? 0 4 3 1 0 2.625
When responding to an NSNotification, what will happen if the notification handler executes for a long time? What can you do about it? 1 3 3 1 0 2.625
Why shouldn’t you reference self in a block? 0 1 6 1 0 3
What is an NSZombie? 0 1 3 3 1 3.5

And this is not to say that all the questions were acceptable — some of them I put strikethroughs because our group more or less voted them down to be too algorithmic or pure computer-sciency, which does not equate to a good iOS developer. This is a tricky subject: some startups will want a versatile engineer well-versed in the basics of CS, and, frankly, some excellent iOS devs have had no need to study up for those questions. Additionally, some questions are absolutely harder or simpler if the interviewer is or is not a pure jerk and doesn't lead the interviewee on without any affirmation that they're on the right track. All points taken.


p>This was a very fun and engaging talk! I think we all learned something about each other. My personal favorite was the entire room's reaction to the adding things to an NSArray question: "You can't.", which, as the person with the slides, I said "Oh really, Junior Developer, you're telling me you can't add an element to this array?"

Thanks to all that attended! We'll meet again on 6/18.

Our Next Meeting: April 9th, featuring Orta Therox

Welcome to Spring of 2015!

Thanks very much to Andy Lee for last month's presentation of developing snippet extensions in Swift.  Andy is the best. (Sorry, all other members and future presenters!)

At our next meeting, we'll have Ørta talking about making a mobile team run like an open source team.  Sounds pretty neat, eh?  Join us at the usual place and time, and don't forget about pie afterwards!



Last week, the day before our meeting, I announced to the group that I would be stepping down as organizer. As of now, that change is official: Natalie Podrazik is the new organizer of CocoaHeadsNYC.

Many of us know Natalie as a longtime attendee and contributor, and as a friend. She and I have discussed many times what we value about CocoaHeads. I feel Natalie is perfect for the role, and everyone at the meeting on Thursday was supportive as well.

We will continue to meet every month at the Google offices. For that I want to say thanks to Ed Marczak, our sponsor at Google and another longtime CocoaHead. Thanks also to the other Googlers who help us out.

I don't want to sound too farewell-ish, since I'm not actually going anywhere, but for the record: I've appreciated everyone's support over the years.  What a great bunch we are!

Natalie, you have the reins.

I'll see you all at next month's meeting!

14 months of CocoaHeadsNYC

You might not guess it if you've been checking this blog since November 2013, but we have been having lively meetings every month:

  • December 12, 2013. Paul Kim talked about the design and implementation of his open source OpenPanel built on ConnectionKit.
  • January 9, 2014. Two speakers:
    • Andy Lee showed a little one-off utility he wrote to get a column of images into a Numbers file.
    • Avi Drissman showed a cool thing about AppKit internals.
  • February 20, 2014. There wasn't one main presenter, but a couple of people volunteered to do show-and-tells, and Ed Marczak facilitated a general discussion. (Postponed from the usual second Thursday to the third Thursday.)
  • March 13, 2014. Howard Olah-Reiken shared his recent experience using iOS view animation to develop a drag-and-drop game with points and lives.
  • April 10, 2014. Andy Lee presented "Table Views on the Mac, for iOS Developers".
  • May 8, 2014. David Cilia of GrubHub gave a presentation on CocoaPods. Many thanks to David and to GrubHub for hosting and feeding us this month.
  • June 12, 2014. The Kinsa Smart Thermometer uses the headphone jack on mobile devices as a signal input for precise medical temperature measurements. Mike Akers discussed how Kinsa deals with the technical and usability challenges they faced. The post-meeting dinner this month was Thai food at Spice.
  • July 10, 2014. This month's meeting was kindly hosted, again, by GrubHub. Two speakers:
    • Pavan Podila demoed his screen utility QuickLens ("Explore the UI, down to the Pixels").
    • Ariel Michaeli, CEO of appFigures, talked about the reporting service his company provides.
  • August 14, 2014. Dave Wiskus discussed his work as the designer of Vesper.
  • September 11, 2014. Kevin Wolkober talked about KuaiBoard, his iOS 8 keyboard app, and about iOS keyboard apps in general.
  • October 9, 2014. Pavan Padila agreed to give a follow-up talk on QuickLens, to discuss the many problems he solved in making a usable, responsive, and testable screen utility. Pavan also waxed enthusiastic about RubyMotion.
  • November 13, 2014. Mike Gozzo, visiting from Montreal, gave a talk titled "Getting to know your users as well you know your code".
  • December 11, 2014. Daniel Steinberg was in town. He gave his "What the Func?" talk about Swift functions.
  • January 8, 2015. Andy Lee showed how he added in-app purchases of auto-renewing subscriptions to a Mac app.

UPDATE: Whoops! I just noticed three other months had gone unmentioned.

  • August 8, 2013. Brian Papa talked about his bicycling app, and what he's learned about MapKit and working with NYC OpenData.
  • September 12, 2013. Samantha John, co-founder at Hopscotch Technologies, talked about Hopscotch.
  • October 10, 2013. Natalie Podrazik, then at 29th Street Publishing, talked about how they implemented Emily Books Reader, their first Book Club app in the newsstand.

July 2013 meeting recap

[Update: Michele will be speaking at MacTech Conference, which is Nov 6-8, 2013 in Los Angeles, with pre-conference workshops and accreditation available on Nov 5.]

Our guest speaker was Michele Titolo, who gave a talk about "Mastering the Project File":

Do you frequently hear yourself say "Don't touch the project file!", "Who overrode my changes?" or "Where did my file go?" If so, this talk is for you. We constantly put the project file on a pedestal of things-you-do-not-mess-with, but is this much caution really warranted? We'll cover tips, tricks, and solutions to promote harmony between you and your project file.

Luckily for us, Michele happened to be in town, happened to learn about the CocoaHeads meeting, and happened to be willing to be our speaker on short notice.

Daniel Jalkut happened to be in town as well, and also made it to the meeting.

Thanks as always to Dulio Denis for shooting and editing the video.

CocoaHeads NYC July 2013 from Dulio Denis on Vimeo.

June 2013 meeting recap

At our June meeting, Anup gave an intro to CocoaPods, I demoed an early draft of an app I've been working on for watching and searching WWDC videos, and Ed led a discussion on the new stuff announced at WWDC.

We'll be back on the normal schedule for next month's meeting, which will be on the usual second Thursday (July 11). I'm going to look for a different place to have July's post-meeting dinner — suggestions would be welcome. I love Patsy's and wouldn't mind eating there twice in two weeks, but others might feel differently, plus I've been told that a little variety in general would be appreciated.

We don't have a speaker yet for July, so if anyone would like to volunteer, either email me at aglee@earthlink.net or post to the list if you'd like to gauge the group's interest.

Here are Anup's slides and resource links: