Speaking

In 2006 I was given my first opportunity to speak at a technical conference. I was scared out of my mind. I had never done this sort of thing before and this was a huge conference. After starting the local CocoaHeads chapter and having many opportunities to speak about Cocoa development, I started enjoying it much more. That and the opportunity to help others learn something or think of something in a different way makes it really exciting. I’ve been invited or selected to speak at a few different conferences like 360|iDev, CocoaConf, and iOSDevCamp DC.


If you would like me to speak at your event, please contact via email – you can reach me at jnjosh at jnjosh.com, or @jnjosh on twitter.

How to Lose an iOS Developer in 10 Days

I’ve seen a lot of bad things in my career. Ever since taking on a lead role at Two Toasters and then Ticketmaster, I’ve seen all these issues in a new light. How do you make a team that people want to stay on? How do you find a team? This talk covered all these questions by talking about things you shouldn’t do. How do you make an environment that drives iOS Developers away? What are the traits that lead to horrible workplaces? In talking about building a horrible environment for iOS developers, this session showed what actually makes a great environment.


Clean Bill of HealthKit: Making the Most of Health Data

HealthKit is a new framework in iOS 8 that acts as a centralized repository of personal health information. It allows you to create, query, and interpret this data about your users so that you can provide amazing and personal visualizations or utilities. What does this mean to the user? How is their privacy protected? What should you not do with this data? This session will cover the basics of using HealthKit and explore what can be done with this awesome new framework.

How I Learned to Quit Worrying and Love Storyboards

For a long time, I’ve been convinced that the only way to build iOS applications. Recently I’ve made the switch to use Storyboards for a project. At CocoaHeads May in Durham, NC I shared some of the things we’ve been doing to stay productive while working with something that was new to us.

Fake It ‘Til You Make It: Staying Productive when Working with Web Services

Most apps we build are backed by some form of API. When these APIs are pre-existing or bug free, great! What happens when another team is building the API while you are building the app? How can you build a view with data that doesn’t actually exist? We will review some options for staying productive when working with external teams by exploring Best practices for API development with external teams, Options for testing nonexistent APIs, Foundation’s URL Loading System to fake API requests that are in development, and more.

Building a Playlist with AV Foundation

A talk on using AV Foundation to build playlists that can support fading between tracks.

Automated Acceptance Testing or: How I stopped worrying and trusted the tests

Manually testing your app over and over again is incredibly tedious and error prone. You can either stop testing and roll the dice, or find a way to automate the testing process. Automation is the way to go. Apple provides a great framework in UI Automation for testing apps through Instruments, but it can be difficult to use as a tool with non-technical QA or clients. Calabash is a framework built on top of the ruby testing framework, Cucumber, that lets you build acceptance tests that can easily automate testing of your application. Using a very readable language that anyone (even my Mom) can understand, you can write tests that exercise your application and check for regressions. This session will discuss setting up your project to use Calabash, writing tests, writing custom steps, dealing with some of the more frustrating edge cases, and look at a the console script provided to navigate your application’s views while running.

Concurrency with Core Data

Threading is a complex problem in applications. Adding Core Data to the mix doesn’t make it easier. However, if you follow some rules you can perform Core Data operations on Background queues without too much trouble.