This post was originally posted on my personal site here.
Since my last blog post (yea, it's been a while), I made myself busy searching for jobs in and around London, eager to effect my career change into making apps at an exciting product company. The process of finding your first gig as a new apps developer is deserving of a post in itself but for now here's the TL;DR:
- I talked to many recruitement agents with very varying degrees of success - I guess a new entrant to the engineer market is a hard sell for agents and I suspect it's not a very fruitful way to land a great position anyway, with many companies unwilling to work with agents.
- I attended Silicon Milk Roundabout - an enjoyable if incredibly tiring day of speaking to lots of tech companies looking for engineering talent. This did lead to a number of very good leads and my eventual position at Skyscanner.
- I had many interviews, hacker-rank tests and thankfully only one ackward white-board-me-an-algorithm-now session
- There was one crazy week with three full-on interviews in as many days (not recommended, my brain was wiped!) but I must have done something right because I ended the week with three offers! 🎉
With three very tempting job offers as a mobile Software Engineer to choose from (Skycanner, a challenger bank and a transport e-ticketing company), I had some thinking to do. In the end, the choice was quite easy.
The top reasons for choosing Skyscanner were:
- The opportunity to work on a product that many people know and love and which operates at impressive scale (> 60m monthly app users)
- The culture: I liked how they emphasised the importance of learning, the trusting attitude towards time-off and flexible working and what seemed like a workplace for grown-ups
- Reading their engineering blog, I was impressed with some of the engineering challenges taken on, such as the approach to product experimentation and analytics
One of the primary reasons for joining Skyscanner was the opportunity to be continuously learning new things. In fact, "Master. Teach. Learn." is one of Skyscanner's Core Values.
Well, my first months at Skyscanner did not disappoint. I was hired on the back of my experience with Android development but I was asked during the hiring process if I had any objections to picking up some iOS work for a time. Keen to learn something new, my first challenge at Skyscanner involved diving into a new world of Objective-C, Cocoa Touch and slowly appreciating that an unchecked
nil isn't always as disastrous for your application as Android Java's
Surrounded by outstanding engineers, my old friend Imposter Syndrome barged into my psyche and took residence
Before long, I was reaching the point where it was time for my first Pull Request. Surrounded by outstanding engineers, my old friend Imposter Syndrome barged into my psyche and took residence while I awaited feedback on my first contribution.1 It's very easy, especially while learning something completely new, to feel like a fraud and that you don't deserve to be there alongside the real engineers - this feeling was quite hard to shake off.
Imposter Syndrome struck with the arrival of my first pull request. Source: xkcd
Thankfully the peer review went fine2 and as I moved on to other things my confidence grew, I found myself working on more complex tasks and I felt proud when some production experiments that I worked on got in front of our users.
It has been a bit of an emotional rollercoaster starting out in my new career path but I am happy to say it was the best decision I have taken by far. I'm finally working in a discipline which scratches the right intellectual itches, allows me to explore my technical curiosity whilst staying close to what is most important: the product experience and delivering the right things for travellers that use Skyscanner.
Here are a few of my highlights from this past year:
- Working with some of the sharpest minds I have met. I expected my colleagues at Skyscanner to be very good Engineers and Product people but what surprised and delighted me was their abilities outside of their direct areas of expertise. The discussions we have had on correct experimental configurations, product direction and user research have shown that Skyscanner really does hire T-shaped people who can stretch themselves in many directions.
- Learning iOS, 2 programming languages, an experimentation and analytics platform in 6 months. While it would be wrong to say I have mastered iOS, Objective-C and Swift during this time, I did have a moment at one point where I took stock of what I had achieved in around 6 months. I had got to grips with Objective-C, written my first features in Swift, got familiar with iOS development, oriented myself in a large iOS code base and understood how we do experimentation and analytics at Skyscanner. It felt good to have embedded myself in the team but also to realise how much more room there was to grow.
Creating a cute Star Wars Easter Egg. In December, we took it upon ourselves to make a fun easter egg feature to let our personalities shine through in the app and to provide Star Wars fans with a bit of a chuckle. It was great to work on something so playful and we all enjoyed seeing feedback like this from our users.
The key theme for my first year as a mobile Software Engineer is learning. I have learned an enormous amount technically but some of the more valuable lessons were the softer elements of our craft.
Here are my top tips taken away from my first year in my new career:
- Don't be afraid to ask for help. During my initial learning phase, it was tempting to feel like I should be getting on with things myself and prove my worth individually. After all, I had passed the hiring bar and should just be getting on with things, right? Wrong. I received some great feedback early on that I should be making use of the experience around me to bootstrap my learning - once I took this on board, I made much more fruitful progress.
- Don't assume people are too busy or unwilling to help. Following from above, it can be easy to feel like others will be too busy to stop and help you with your "silly" questions. While I expect some organisations may work in this way, I'm happy to say this cultural code smell is not present at Skyscanner. Once I moved past my fear of appearing clueless, I found my colleagues were happy to help and enjoyed distributing knowledge through the team.
- Speak up - just because you're new and relatively inexperienced, it doesn't follow that your opinions will not be valuable to those around you. Even if you voice an opinion that turns out to be flawed - it still has the benefit of eliciting further justification for decisions that have been taken.
In short: more learning. I have recently switched focus back to Android development in our drive to bring our iOS and Android apps to feature parity. If you're a fan of Skyscanner's Explore Everywhere section of the Android app, you can look forward to seeing some changes which bring it up to speed with its iOS sibling.
During my spell of iOS development, a few things changed in the Android world - most notably Kotlin becoming a first-class citizen. I've recently been enjoying adding this further programming language to my engineering swiss army knife. As a Product Engineering team, we have also started to introduce React Native to our tech stack - I anticipate getting my hands dirty with this technology in the near future as well.
When I look back at where I was 18 months ago searching for jobs, wondering whether I could make it as a Software Engineer, a large, contented smile comes to my face. It's difficult and scary taking the plunge away from the familiar but if you have the belief and determination - it really is possible.
The last year working at Skyscanner has been such a thrill and a challenge...just how I like it.
If you like what you have heard about Skyscanner, take a look at our current open positions on our jobs site.