After nearly 13 years at the company, last Friday, April 18th, was my last day at Apple. I have decided to leave with no concrete plan in mind, but with the intention of pursuing some kind of venture on my own.
I am so grateful for everything that I learned at the company, and for the innumerable opportunities that I was given there. After some time, I really started to take for granted just how smart everyone I worked with was, and how much the company really cares about its employees. For the entire time I was there, it really felt like engineering was the star of the show, and we could do whatever we want. I worked at both the Infinite Loop campus, as well as Apple Park. At both campuses, there was a strong sense of individual empowerment with very little oversight.
I’ve been an Apple fan for pretty much my entire life. I didn’t start programming for Apple platforms until midway though university, when the first iPhone SDK came out in 2009. I didn’t bother to learn Objective-C up until then, because my personal projects were mostly around the web using PHP and some JavaScript. At school they taught us to write desktop applications using Java. I didn’t know why at the time, but I definitely noticed that Java-based applications never looked as good as native applications. It was only until the iPhone SDK came around, where Java was not an option, did I finally learn about the wonders of Cocoa.
My brother and I started a club at my university around app development, called the “Software Development Club.” The club had some very passionate members and was a decent size, but shockingly few people were actually interested in iPhone app development at the time. Before the official SDK was released in 2009, we all attempted to write apps anyway using a reverse-engineered version of Cocoa Touch. This was incredibly painful, since the “SDK” was actually just class-dumped headers with absolutely no documentation. There was no iPhone Simulator either. Every time you compiled the app, you had to bundle it yourself using a script and copy the bundle to the device over SSH.
Through this, I gained a lot of knowledge about the internal workings of iPhone OS before the SDK launched. I knew about SpringBoard, the system shell; XPC, the IPC mechanism on Apple platforms; and private frameworks like MobileGestalt and MobileInstall that never became public.
Using this knowledge, I also published a lot of Jailbreak “tweaks” onto Cydia, a store for jailbroken devices, that modified device functionality in interesting ways. Some of the tweaks I made were pretty benign, like adding contact photos to group chats in Messages (before that was a built-in feature), and some were rather controversial, like those allowing you to cheat at Game Center, the official Apple scoreboard for video games.
It was the Game Center hack that eventually caught the attention of my first manager at Apple. In 2010, I applied for the first internship program the iPhone software team ever had, and he mentioned it during my phone screening. I panicked, because I thought this was going to be seen as a very negative thing, so I was not expecting a call back.
Surprisingly, I got the internship anyway. Once I arrived at Infinite Loop for my first day, I realized that almost the entire class of interns I was co-located with came from the Jailbreak community. One of whom developed a very popular tweak for managing notifications, and some of the design interns had even worked on WinterBoard themes, which were hacks that changed the design of the home screen and all of the icons. Many of the interns in my class even refused to use the internal development tools because they had better tools that they made before they joined. I suppose in a time before there were professional app developers, these hackers were a great pool of talent to draw from.
A lot of us ended up getting hired as full-time engineers, including myself, despite some controversy and a very public exile from the Jailbreak community. Those first couple of years at the company were really amazing. I feel that I learned so much in such a short period of time. In retrospect, it really felt like the wild west; we were pushing directly to the master branch without code reviews, and a new build of the OS was built every night with all of our changes from the day before. Working nights and weekends was relatively commonplace.
It really didn’t feel like a big company back then. It turned out that actually a lot of people I worked with in the early days didn’t even graduate college. All of the teams within iPhone software knew each other, and we could all fit inside of a somewhat large conference room. Stringent engineering protocols were completely absent, and it totally shattered my perception about what Apple was like from the outside.
This ended up being incredibly motivating. The fabled architects of the iPhone ended up actually being normal, flawed human beings, just like me. The magic about the people at that time wasn’t necessarily talent or rigor, but taste and conscientiousness. Even though people didn’t really know what they were doing, they cared about it a lot. Everybody knew what they liked, and what they didn’t like. And most importantly, everybody owned what they did. Engineers and designers took personal pride in their work, and because it was obvious that nobody else knew what they were doing either, felt that they had the ability to change it to suit their tastes.
Throughout my entire time there, people rarely left. This is in the middle of Silicon Valley, where the average tenure at companies is only a couple of years. The company really rewards seniority, mentorship, and sustaining talent. Many of the original architects behind Mac OS X were still actively running new projects up until I left. I really feel that this is one of the main reasons why the company is so successful, and why it’s such a great place to work, especially as a young sponge.
Despite the public chatter about AI and VR, I think Apple is still an incredibly healthy company. It did change quite a bit since I joined, I think the number of employees grew an order of magnitude. It no longer feels like a small company like it once did. None of this is necessarily bad—things got a lot more stable, and people don’t usually have to work on the weekends anymore. Plus, it seems like it’s just inevitable given a company that size. There’s a lot to be said about how to run a company behind a very mature technology that billions of people depend on.
During my last year at Apple, however, I felt a very strong sense of FOMO. At the time of writing this, there’s so much going on in the tech industry that is hard to ignore. It feels like we’re right at the beginning of a huge revolution, and it’s only getting bigger and more exciting. I think Apple is going to continue to provide a really excellent foundation for this revolution, with incredible hardware and a solid operating system/development environment to support it. A lot of emphasis from typical customers and technology journalists will be on what products Apple will deliver at the forefront of this revolution, but I believe that emphasis is misplaced. I personally believe the forefront is going to be occupied by smaller, more agile companies operating on the fringe. They’ll be standing on the shoulders of giants, the Apples, Microsofts, and Nvidias. There will be a solid place for Apple in this revolution, but the path is rather clear and predictable.
I feel lucky to be able to live in San Francisco, of all places, the epicenter of this revolution. I really have no idea where it’s going, or what my place in it is. My place could very well be back at Apple doing exactly what I was doing. Trying to live a life without regrets, and cursed with a seemingly unending sense of curiosity, I decided to shake it up and try to be a part of this somehow.
I am overwhelmed with gratitude, and extremely excited about the future. Thanks to everyone I worked with at Apple over the last decade. If you’re on a similar journey, please reach out!