- The Silicon Valley Engineer
- Posts
- How I ended up working six years at Apple as Software Engineer
How I ended up working six years at Apple as Software Engineer
Apple Chronicle's. New weekly segment about my life as a Software Engineer @Apple from 2014 to 2020 - I'll share with you bits and pieces of my ~6 years tenure; follow me to not miss the next one.
Apple Chronicle's. New weekly segment about my life as a Software Engineer @Apple from 2014 to 2020 - I'll share with you bits and pieces of my ~6 years tenure; follow me to not miss the next one. See you next week with new content!
Don’t hesitate to ask any questions (@me on twitter) I can help answering and consider sharing if you think the content is interesting.
The Story: The experience in QA
While I am a Staff Engineer now and I was a Software Engineer for the largest part of my career at Apple, I was not hired as one. I initially joined Apple in 2014 as QE (Quality Engineer) for the Siri Team, specifically because they were looking for somebody that was native Italian speaker. My interview was part QA part technical (coding questions, architecture etc.) and let’s face it, Apple Cupertino QA is still much better than any engineering job I could find in Italy in 2014, so I took it without thinking twice.
The Beginning
I still remember that for the first couple of months my daily life consisted of having 8 iPhones in front of me, with different client versions pointing to different server versions (while today a lot of Siri runs on device that was not the case in 2014) and I kid you not using 4 fingers per hand to trigger Siri simultaneously, asking the same utterance, and check if there were differences/bugs worth noticing, and when I did, file those bugs reports.
The Drive to Crazyland
That was driving me insane and while, and there is nothing bad about what I am gonna say next, many experience people working as manual testers would find it perfectly fine and part of their job, as an engineer I was going to go crazy and thought “there must be a better way”.
So it started. I realized that part of my daily routine could be optimized, at least the filing of each bug, which consisted of:
SSH-ing the device
Finding the logs
Reading the logs
Capturing the valuable information from the logs
Creating a bug report and fill tens of fields, including information from the logs, as well expected and actual behavior, and potential screenshots
I started cutting my daily job short and start building something on the side. You know the famous Google 20% rule? I decided to embrace it even though Apple definitely doesn’t have one. After 2 weeks I had something I could show my manager and oh boy oh boy my manager was (and is to this days) excitable.
What I build was an iOS app that located Siri logs, collected them, parsed them, and provided a snapshot of what happened and with a simple tap created a bug report. All the information, including client version, server version, device config, utterance, actual behavior and even selection of the bug report component were automatized; what the user was left to do was to provide a single sentence of what the expected behavior was and hit Submit.
My manager’s support was key for me to stop doing manual QA and becoming after 2 months a Software Engineer in the QA team. Fast forward 1 year, I was able to build a team around that tool and build many others with my colleagues and friends. That tool, let’s call it Toolchest (totally invented) became the standard way of filing bug reports at Apple for Siri from any Apple office in the world #proud. I’ll talk more about other cool stuff I built in QA in the future otherwise I might crash the database for the longest tweet.
Conclusion
Yes, I could have saved 2 years of my life and try to find an engineering position right away but I do think that the 2 years in QA served me well. For one, it was one of the best team (for the people) I have ever been - for G’s sake we played FIFA right after almost every launch. Additionally, I think it made me a better engineer, now I care about quality, I care about testing, I care about performance and when I build products those are never 2nd class citizens.
The Snapshot
I’ll try to provide a cool picture semi-related to the post. This time wasn’t easy because I don’t think Apple would like me from posting pictures of internal software, however they can’t say anything about the time I demoed some of those QA tools to Craig Federighi and how I asked my manager to get a picture of me (lol) and my EPM is in the background - spoiler alert I got less chubby since I left Apple
Me and Craig Federighi in a conference room after I demoed my work