I just finished seven on-site interviews at Silicon Valley tech companies. I ultimately accepted an offer for a software engineering job from Facebook.

Here’s how I prepared for these interviews, and what I learned along the way.

My multi-year journey toward Silicon Valley

When I was studying Computer Science at my university in Australia, I always envisioned my future as a software engineer in Silicon Valley.

I loved the idea of being in the heart of all the tech industry’s innovation — as well as its blunders. This goal kept me motivated. It kept me focused.

I left my post as Lead iOS Engineer at an…


I’ve only been to a handful of conferences in my career, and at each of these conferences I’ve attended, there’s always been someone on the lineup who I was interested in talking to. However, there’s been times where I’ve been too nervous or shy to approach them and introduce myself, or at least interject myself into a group conversation which they’re a part of. Just recently, I was having dinner with a friend who told me they experienced the exact same thing. They wanted to introduce themself to a speaker but for whatever reason, they just froze up. …


Because closures make ugly couples

If you hadn’t already heard, closures are a great tool to utilise in your Swift code. They’re first-class citizens, they can become trailing closures if they’re at the end of an API and now they’re @noescape by default which is a massive win in the fight against reference cycles.

But every once in a while we have to work with APIs that contain more than one closure, which turns this beautiful language feature into something far less appealing. I’m looking at you, UIView.

class func animate(withDuration duration: TimeInterval,            
animations: @escaping () -> Void,
completion: ((Bool) -> Void)? = nil)

Trailing Closure

UIView.animate(withDuration…


Photo by Daria Nepriakhina

A combination of deciding factors

Over the past few weeks, I’ve seen a recurring topic of conversations become about the lack of diversity in speakers. But the type of diversity being mentioned isn’t about a person’s gender, age or background, they’re referring to the lack of new faces giving talks which are sometimes coupled with what they believe are the reasons things are the way they are. Although I found myself disagreeing with some people’s views, I can understand why they would feel that way. …


Swift eye for the stringly typed API

Swift 3 brought a tsunami of changes to the language as well as our codebase, some of you reading this may even still be battling with the migration too. But even with all these changes, we’re still left with some APIs within Foundation that are stringly typed, which is totally fine… Until it’s not.

It’s kind of a love/hate relationship in that we love the flexability that strings within APIs afford us, but we hate that we have to use them because of the inherit consequences they bring if we’re not careful, they’re pretty much the programming equivalent of running…


February 23 & 24. Melbourne, Australia.

Its been an amazing year for the Swift language, especially with the massive release of the third iteration of the language, as well as the 10th anniversary of iOS. Who could have guessed 10 years ago that Apple developers would have so many new platforms to write for? These last few years have been a massive rollercoaster ride of releases now that we developers can release apps on watches and even televisions.

The community has grown and so many people have contributed back in so many different ways from all over the world. …


Enums …as data models?

Every once in a while you come across one of those unicorn edge cases that force you to challenge everything you know about everything you’ve ever learnt up until that current point in time and space. Just recently I had become a victim of such an event.

In the Chinese language, the word “crisis” is composed of two characters,
one representing danger(危) and the other, opportunity(机).
— John F. Kennedy

A great quote from one of the most famous Americans of all time back in the late 50s, and 35 years later it was modernised by another famous American:

Crisi-tunity…


↑ ↑ ↓ ↓ ← → ← → B A

Whether it’s your first language or you’re coming from Objective-C, the Swift language is literally the bomb-diggity in terms of learning to write code, but it can be a bit intimidating if you’re unfamiliar with the syntax enhancements that it’s brought to the table. This post is going to go through and detail some the common syntax you will encounter when reading about, and learning to write concise code with Swift.

Closures

() -> Void

Othewise known as “unnamed functions”, or “blocks” in C and Objective-C; a closure is pretty much a miniature function which is able to be passed around…


Observer pattern made better-er

NotificationCenter existed since the first release of OSX which is at least 17 years, and has been a popular tool for Apple developers ever since. For those who dont know, it’s based off the Observer pattern concept which is part of the behavioural group of software design patterns.

Observer pattern

The Observer pattern has existed ever since the Gang of Four wrote about it in the mid 90’s and is a relatively simple pattern to understand. …


Kinda like reverse Fight Club for developers

Usually people that learn functional programming (also known as FP) don’t shut up about it, to a point where it would almost be irritable if it just wasn’t so darn cool. Imagine the famous scene of the 1999 classic cult movie Fight Club, but completely flipped on its head.

Rules of Functional Programming Club:
1. You do not shut up about Functional Programming.
2. You do NOT shut up about Functional Programming!

Some people also liken functional programmers to Crossfit enthusiasts, but unlike Crossfit, functional programming doesn’t have a 73.5% chance of you sustaining an injury preventing you from working…

Andyy Hope

Australian iOS Engineer living in SF, Blogger, Speaker, Organiser of Playgrounds Conference, Founder of Wu-Tang Clang

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store