The Swifty iOS DevOps and Continuous Delivery Blog 

Apple  Dream come true!

Everyone has life’s work, you will come to know when you find it at some point in your life. Some people work for their passion and the things they love to do, while others do that for the sake of money. Love it or hate it, you have to spend a lot of time being at work in your life until you retire. There is a famous quote from Steve Jobs.

Your work is going to fill a large part of your life, and the only way to be truly satisfied is to do what you believe is great work. And the only way to do great work is to love what you do. If you haven’t found it yet, keep looking. Don’t settle. As with all matters of the heart, you’ll know when you find it. And, like any great relationship, it just gets better and better as the years roll on.- Steve Jobs

That’s very true. When you got an opportunity to work on your passion then It doesn’t feel like work, it aligns with your values, work just happens, it gets noticed by people who matter and it keeps you happy, healthy and motivated. That’s how you will come to know about your life’s work. It can be any work regardless of position or title. In my case, I came to know my passion a few years ago. Continuous Integration, Continuous Delivery and Test Automation have always been my passion. In recent years, I have enjoyed a lot setting up CI/CD Pipelines, Test Automation for iOS apps so far and now I have big news for you.

I am thrilled to announce that I got an opportunity to work with Xcode team at Apple on a similar role which is an exact match for my passion. It’s one of the big achievements in my life and I can’t explain in words, how excited I am to start working with the Xcode team at Apple. I would like to highlight my background in this post. This post is personal, emotional and empowering. It’s personal because it covers my personal career journey, emotional as it might be the last post on XCBlog and empowering because I will get an opportunity to work directly with Xcode team and improve the experience of the developers.

Background

Being born and brought up in middle-class Marathi family from India, all my early education done in the Marathi language. I am one of the kids on the earth who finished a bachelor of engineering (Information Technology) in 2006 when I was just 20. Well, that defined my age but yes, everything came up with good and bad experiences. Someone may land a role at big tech firm straight after graduating from big university at a young age but they might not experience the struggle for job search, accepting job rejections, dealing with different people, working with different companies at different scales, working on different roles etc. Luckily, I have experienced all of these things in my life so far. During my engineering years(2002-2006), there was a huge opportunity to learn computer science in deep, however, I have done super crazy things during my engineering apart from study. I have no regret as those stupid things I have done with my friends at that time still makes me laugh. I could have done better study at that age but I would have missed all the fun, enjoyment and teenage life. All my classmates got jobs in reputed IT companies in India while I ended up without an offer. I managed to get a job in India where I experienced different work cultures and many more things which helped me to be even stronger. However, I wanted to do something different and explore the opportunities which I can really enjoy. In 2010, I came to London to pursue my master’s degree in I.T from the University of Greenwich with limited time and limited money. Getting a job in London isn’t easy for a student or a fresh graduate. I am lucky to get my first contract right after submitting my thesis. Thanks to Irina who I met at one of the meetups and got my first ever role in the UK. After that, I got the opportunity to work with some big companies like AOL, BBC where I have done a mixture of DevOp and Test Automation roles for web apps. Being a long term Jenkins user and early adopter of Docker, I have been called to provide a quote for the Jenkins 2.0 press release With my work in DevOps, I managed to get into the DevOps 100 list published by Tech Beacon, blah blah blah. Whilst doing all this work, one thing I was missing badly which is working in the Apple ecosystem.

Apple Ecosystem

While studying engineering, I read the word “Macintosh” in many books but didn’t get a chance to see how that computer looks like. At that time, I couldn’t even pronounce the word “Macintosh” properly. Only thing I knew about Macintosh is another operating system like Windows and Linux. In 2010, at the University of Greenwich, I have seen how Mac/MacBook looks like in the computer labs. Since then I started loving the Apple products. I got my own MacBook soon after, kept updating my iPhone contracts as Apple releases a new version of the iPhone and kept installing the beta version of macOS (previously OSX) on my machine to try new features of macOS. I kept watching WWDC keynote to hear about the new announcements from Apple. However, never got an opportunity to work with Apple developers tools or technologies like Xcode, Objective-C, Swift or CLI tools.

In April 2016, I was lucky to come across the iOS role at PhotoBox where all the journey towards the Apple developer tooling started. This role turned out a truly life-changing role for me and I learned a lot from my colleagues at PhotoBox group. I can’t thank enough to iOS developers who teach me everything about iOS Development in my early days. Since then, I have never looked back. We have solved flaky Continuous Integration and Test Automation issues at Photobox where I learned all about Xcode Server, XCTest. XCUITest and lots of Apple developers tools. This role gives me an opportunity to know many internal details of Xcode, I have shared my entire experience at Photobox here.

After that, I started loving everything about iOS tooling and Apple developer tools. I started watching WWDC videos related to XCTest, Continuous Integration and tried to apply those tools in my day to day role. At that point, I was fully sold to Apple developers tools and couldn’t imagine myself working on anything else apart from Apple developers tools. At Photobox, I got an experience of setting up CI/CD pipelines with in-house CI tools like TeamCity and in my next role, I got an opportunity to automate the iOS releases through cloud-based CI server, Travis CI. While working on CI/CD and Test Automation for iOS apps, I learned a lot of Apple developers tools which are barely noticeable when you work with Xcode.

I loved to talk with the engineers who have a deep understanding of the native Apple developers tools and learned from them. I wanted to work in an environment where the role is fully infrastructure automation focused. I found that at HSBC Mobile Infrastructure team. I interviewed with HSBC even before talking with Apple but unfortunately, HSBC role took way longer to turn it into the offer. Meanwhile, I had a chat about my dream role at Apple and been to Cupertino for the first ever a time in my life and got an offer from Apple. It turned out both HSBC and Apple offers landed almost at the same time which means I have to leave my perfect role at HSBC for my dream role at Apple in a short time.

Role at Apple

While I was doing all this work on iOS Continuous Delivery, XCTest. I got approached by Apple and the whole conversation started. I had a great time and pleasure talking to all Apple engineers/managers involved in the hiring process. I have been accessed for all my DevOps, Swift and Infrastructure/Test Automation skills. It was my first time to visit the USA for face to face chat with the Xcode team and finally manage to get the offer. This is a pic of my visitor pass at Apple campus in Cupertino.

As an automation engineer role in the Xcode team, the role involves debug and triage automation failure on Continuous Integration server, set up automation infrastructure and detect the issues. There is an opportunity to work with XCTest and CI automation. As the role is based in London, it would be a great opportunity to use the time zone difference to boost the performance and quality of Xcode.

What will happen to XCBlog and XCTEQ

The XCBlog is my personal blog dedicated to DevOps, CI/CD and Test Automation for the iOS apps. XCBlog has monthly 20-25K reads on Medium and lots of others who follow the personal blog. From all the emails, comments and tweets XCBlog helped many iOS developers to setup Xcode Server for the apps. Also, it helped many QA engineers to setup Xcode UI testing for iOS apps. As news comes out that I will be joining Apple, many commented that I should keep blogging. However, it might not be possible but who knows, there might be some other blogging opportunities on official Apple developer blogs e.g Swift blogs

As you can guess from the name that both(XCBlog & XCTEQ) start with “XC” and most of the developer tooling of Apple also starts with “XC. Ultimately, the entire goal of XCBlog to spread the knowledge of automation technologies based on the Apple developer tools. While the whole point of XCTEQ was to provide services based on Mobile DevOps and Apple developer tools. Being a solo founder/director of XCTEQ, I will be joining Apple. This is a huge win for XCTEQ Limited. It’s clear that from now on, XCTEQ Limited will NOT perform any business activity and would probably go dormant or dissolved depending on the situation in the near future.

Pre-Apple Work Transition

There are so many OSS projects, blog posts and content created so far on XCBlog and for XCTEQ Clients. Once I join Apple, It would be difficult to take ownership of maintaining those projects or content. I will make those projects deprecated unless the new owner takes it over. The content created for XCTEQ clients cannot be maintained. Those projects won’t be maintained in the future. Feel free to fork if you want to keep working them.

Personal Project

iOS DevOps Book: This book is half finished, not reviewed or not proof-read. Most of the content is now outdated with recent news at WWDC19. As I will be joining Apple, I have to stop working on a book but still, I will make it available as it is on Leanpub here.

Acknowledgement

It’s a great deal for me to join Apple but there are so many people behind this success who educated me, empowered me and supported me in this journey. There is a long list, friends, family, colleagues, meetup attendee etc. However, those who are special, they are unforgettable people and I have already thanked them personally for their contribution to my success. Thanks to all XCTEQ clients like Bitbar, Nevercode, MacStadium for making me even knowledgeable. I wish them all the success in the future. Finally, big thanks to readers of XCBlog for staying with me so far.

Looking forward

It’s hard to explain in words, how excited I am to join Apple and working with Xcode team. It’s like a dream come true for me. My end goal was to be part of Apple at some point in my life. I am proud that I have achieved it. I believe in the quote

What is Apple, after all? Apple is about people who think ‘outside the box,’ people who want to use computers to help them change the world, to help them create things that make a difference, and not just to get a job done. – Steve Jobs

Being a part of Apple is a great success but I am sure it will bring some challenges, responsibilities in the near future. I am looking forward to all the challenges ahead and ready to give my best to this role assigned to me. I can’t wait to meet all the Xcode engineers who interviewed me or who I watched in WWDC videos or know me from Twitter and start working with them. I never got an opportunity to be at WWDC till now, but I will try my best to make your WWDC most enjoyable experience next year. Time will tell where it will take me but I will take it as doing something wonderful at Apple every day which makes me happy.

It’s time for you to wish me luck for my role at Apple starting next week (July 8) and stay in touch! Thanks for reading.