Swift Summit 2017 in San Francisco ☀️ 📱

To start off my Halloween week, I attended Swift Summit 2017 in San Francisco. The coding conference was hosted at the world-famous Palace of Fine Arts. I’ve attended two programming conferences before (Laracon ’16 and Twilio Signal ’15) with my father, so it was a new experience for me going on behalf of PayPal. Overall, I met a lot of talented and passionate engineers in the Swift community and gained insight into the newest trends and best practices that high profile tech companies are following for their iOS applications.

Palace of Fine Arts — San Francisco CA

Venue Layout and Feel 🎪

Conference Lobby — Twitter

Theater Hall — Twitter

When I arrived on Monday, I quickly realized the size of this conference was much smaller than what I was used to in terms of people and lobby size. There were two rows on each side of the lobby of about five sponsors each occupying one table. On one side of the lobby were two entrances to the even and odd theater hall seats. For a relatively small conference, the hall had a ton of seating, most of it was unused. Near the hall entrance on one side was four black tables to host the labs where companies held group and one-on-one sessions for anyone who had questions or problems with their tools. Lastly, on the opposite side of the labs were four tables where speakers went after they finished their talk so attendees could ask follow up questions.

Before any of the tech talks started, I met with some of the company sponsors and talked to an assortment of engineers, recruiters, and product managers about their engineering practices, difficulties, and future product roadmaps. I was shocked at how much recruiting was done at these events. I just joined PayPal two months ago so I repeatedly answered that I was not looking for new ventures at this time. But, now if anyone asks me how to get a job after graduation, I have an answer: go to a coding conference and show you have an interest in your language, the community, and its future!

Apple Engineers 🍏

Lab Sessions — Twitter

Surprisingly, Apple sent a handful of engineers who worked on the Swift language and Xcode to attend the conference. It was a last-second announcement made by the Swift Summit organizers so it was a pleasant surprise that I’m sure everyone was very happy about. There were two talks from Apple employees and the rest were fielding questions at the labs for two days in a row. I follow a lot of people in the Swift community on Twitter and a handful of those are the folks at Apple working on Swift. It was nice to finally meet them in person and thank them for the 24/7 developer support they provide on Twitter for free!

Themes of the Tech Talks 🤓

There were ten talks each day of the conference for twenty talks in total over two days. Each day went from 10 am to around 5 pm but we had breaks for lunch and coffee mixed in between talks. There was a large amount of content covered but I noticed a number of recurring themes:

  • Functional programming — map → map → map 😃

  • APIs — designing and consuming

  • Server side Swift — web frameworks

  • Leveraging Swift’s robust type system — compile-time errors > runtime

  • Refactoring — eliminate tech debt now

Server Side Swift 🕸

Brandon Williams — Twitter

There were a few talks about Swift on the server from various people and companies. IBM announced commercial support for the Swift language and for their leading web framework Kitura. A lot of the themes connected with each other, such as writing a web framework with pure functions. Brandon Williams discussed creating a web server from scratch using functional practices. It was a really interesting talk to dissect web servers into the functional world and then create this paradigm in Swift.

Brandon Williams — Presentation Slides

Traditionally, web frameworks have no type safety or type checking for the router that routes incoming requests to controller logic. Brandon created an enum to hold routes and then hooked up his router logic using applicative parsing which type checked the routers integration of the route definition enumeration. His talk was very thorough and he is open sourcing his work as he goes. A great takeaway from his talk is to use Swift’s type system as much as you can: convert runtime errors into compile-time errors as much as you can.

Functional Programming 👊

Brandon Kase — Presentation Slides

Functional programming was a common theme for all of the talks but I liked Brandon Kase’s talk on “Mock-free, Compile-time checked, Dependency Injection”. Initially, he modeled a Reader struct which held a function run that took dependencies and returned data.

Brandon Kase — Presentation Slides

He came to this conclusion after discovering how it is hard to test singletons, so he modeled functions that took in parameters with a dependency and returned a value. From there, he put the dependency at the end of the parameter list and curried the function. He returned a new function that accesses the dependency value when the dependency is provided. Naturally, this led to the Reader structure which captured what the curried functions represented: a function that takes in dependencies and returns data.

After creating the base Reader he extended his logic to chain readers together through composition and adapted it to capture multiple dependencies at once. Then he implemented an OptionalReader to adapt Reader to the world of Swift optionals.

I saw the dreaded word in his slides: “Monad” and I thought back of my college course in Haskell. His talk was intriguing, and his enthusiasm and passion inspired me to learn more about functional programming as a whole. My takeaway from Brandon’s talk was to invest the time right now to understand functional programming at a deep level to unlock the limitless potential to clean up your code.

Overall 😃

I made it to a conference this year 💯!! I’d recommend every developer to go to a coding conference if they can, it really refreshes the drive for learning. Not only do I learn at the conference, but I learn that I have a lot to learn 😜. It was fun to meet people in the Swift community and now officially be a part of the community. Swift Summit 2017 was amazing: the venue was supreme, the talks were intriguing, and the people were fantastic. Can’t wait for next year!