Swift jobs are something we’re all interested in. Companies are hiring remotely more than ever since everybody is working from home either way and the request for new iOS and macOS apps keeps on growing.
As a Swift engineer, it’s tempting to jump on a recruiter’s message telling you about a new job position offering a great salary, combined with equity and bonuses. But how do you know that it’s the right time for a move? How can you make sure that you’re not making the wrong decision?
Well, let’s start with the fact that you can never know for sure whether it’s the right moment for you. There’s always a question of whether it will work out, but I can at least share my experiences and tips to make that decision a little bit easier.
Looking for a job no matter what? Check out swiftleejobs.com and find your next Swift job position!
My journey as an iOS Engineer
Let me take you on a journey through my own development career. Throughout the years, I’ve been making several career changes for all different reasons. They’ve never been easy, as I would always leave behind a position where I felt comfortable with colleagues as friends around me.
1. Picking your first Swift Job
It started with picking my first Swift job, or well, Objective-C job, ha! It was September 2011 – a time when ARC had just arrived. I had the opportunity to continue at my internship and started working on an existing Objective-C project.
This was fine to start with, as I was getting started as an iOS engineer. Soon I was seeking to get a project to work on from the beginning to gain experience setting up project structures. The company I worked for, unfortunately, didn’t have many of those projects. Looking back, I would recommend looking at the following when picking your first job:
- Make sure you’re not alone. Learning from a more experienced developer is a must to grow fast when you’re just getting started.
- Have an idea of the upcoming projects. Is there an opportunity for you to join a project from the beginning?
- Ask about career paths. You want to grow, so that should be possible!
I’ve had great engineers around me, but I missed point 2: a project to build from scratch and really configure one of my own. This brings me to my second point:
2. Find the right environment to grow
After a year or so, I found myself in a position without the opportunities I was seeking. I asked the company for a change, they tried to get me a project I wanted, but it turned out to not be possible after a few months.
This was the moment I started looking around for new job opportunities. I found a few in Amsterdam, but at the time, this was a bit too far away in terms of travel time. I was lucky enough to find the perfect job for that time: a digital agency not far away.
Digital agencies are great as they often have many different projects. Each project runs for a short period of time, after which the app is released and maintained. Agencies also try to get new projects in, which creates opportunities to set up projects from scratch.
I worked at this agency for over 4 years:
- I started as a Junior iOS Engineer
- Became Medior, Senior, and Team lead
- Learned how to manage projects
- Created multiple projects from scratch
- I made many mistakes!
The last point is especially important: making and learning from mistakes. Of course, you don’t know everything from the get-go. For each new project I started, I knew how I wanted to set up the project. At the end of every project, I knew that I wanted to do it differently the next time, haha! I think we all recognize this pattern: you learn, improve, and revisit. It’s so important to gain that experience, and an agency is a perfect place to do so.
Of course, you need to level up those projects you failed on in terms of structure, but it’s different from working at a product company when you’re a Junior. It’s still a valuable starting point, but it’s much harder to gain experience setting up projects from scratch at a company where everything is already structured and set up. Things like setting up App Store Connect, releasing your first app, managing contact with customers, all these parts are valuable in making you the iOS engineer many big companies want today for Swift jobs.
This brings me to my 3rd point:
3. Decide to find a more challenging environment
At a certain point, you realize everything has become too much of a routine. You’re not super challenged anymore, and it’s relatively easy for you to bring projects to the requested level. For some, this might be fine. If you’re happy with such a position, you should definitely consider staying where you are and prioritize other things like family or hobbies. For me, it was clear that I needed more.
A downside of the agency for me was working alone. I could commit directly to develop (even master), and nobody would notice. I didn’t make any pull requests, and I could integrate any 3rd party dependency if I wanted. This was great to move fast and release all features before the deadline. Lastly, projects often had time pressure and every hour counted. There was no time to write tests, for example.
Another downside for me was the size of the apps. They were often targeted nationally and, therefore, only reached a few thousand or maybe one or two million users. Don’t get me wrong; this is amazing when you’re just 5 years into developing apps! However, I knew I had the opportunity to grow bigger.
At that time, I had a request to talk at a Dutch conference as somebody became sick. As a coincidence, somebody from WeTransfer was sitting in the audience during my talk and invited me to meet at their office. “The rest is history.”
On the serious side, it was an eye-opener. I had the opportunity to join a product company and work on an app that had to grow for years to come. I could use all my experience from the agency and finally find time to build up to something big! There was time to write tests, and most importantly: I had two Senior Engineers (ex-Uber, ex-Sketch) that challenged my code every day. I thought my code was perfect until I opened my first PRs. Oh, and, no way I could easily add those 3rd party dependencies, ha!
You can imagine my growth in the first few months, even years. Today, I’m still working here, and learning a lot from all the experienced engineers around me. We’re serving millions of users around the globe, and our app, which we started building in 2017, is still running on that solid foundation. Many of my articles here on SwiftLee are actually inspired by the code from our Collect by WeTransfer app.
Even if you’re in a good position like this, you will likely still end up asking yourself whether it’s time to look ahead again for Swift jobs. I’m working for 4+ years at WeTransfer, and I’m always open to job offers. Not that I’m planning to leave soon, but I don’t want to miss out on that unique opportunity when it’s there.
4. Being brave enough to challenge status quo
Working at a company you know for years makes it easy to continue your day-to-day job. You know what it takes to deliver the features requested, and you know how the company wants to work. You’re happy where you are; you’ve got enough challenges, a good salary, and nice colleagues. However, you’re getting a lot of offers from recruiters as engineers with experience are wanted.
In my opinion, it’s good to stay open to those messages. I often ask recruiters for more information to ensure I’m staying up to date with the market of Swift jobs. Through that, I often get an idea of current salaries, and I know whether or not I should stay where I am.
Occasionally, I even take the step to challenge the status quo and take on interviews. These take time and really set you up for a big decision. It might be that you’re super happy at your current company, and you end up challenging that idea after these interviews. This can be energy-draining, and it might not be easy in the end to make the final decision. I once found out that my current private situation didn’t allow me to go for a new challenge, even though their offer and company were super interesting.
Therefore, don’t just jump on an interview for any job. Really make sure you have the idea that you could see yourself ending up working there. Prepare questions for the company and make sure you get to know the company. Realize they don’t only want you, but you should also want them. Make sure you know what’s important to you.
5. Learn what’s actually important to you
Senior at your current company does not mean you’ll be a Senior at another company. If you’re a lead today, it doesn’t mean you’ll be one at a new company. The new company might require you to relocate, or you might be allowed to work remotely but find you end up missing in-person conversations as you won’t go to an office anymore. Swift jobs are interesting, but what makes them interesting for you?
Do not only go for money
Many companies are offering high salaries now with remote positions. These salaries are tempting, but try to decide on the job without comparing salaries. Are you still able to say yes to the job? Obviously, money should only be part of the decision.
Research the offer: what is your equity actually worth?
Equity is often part of an offer and can be confusing. I’m not going to dive deep into this topic; other than to point out topics like vesting, strike price, and types of equity are all important to sort out and can really make a difference. I encourage you to read Equity for Software Engineers at Big Tech and Startups, which really helped me understand this topic.
6. Finding challenges outside of work
Lastly, I want to propose to you another route to take. Currently, I’m running SwiftLee, SwiftLee Weekly, SwiftLee Jobs, and RocketSim. All projects individually have their own challenges and really keep me busy. If I don’t find challenges at WeTransfer, I’ll for sure find them there.
Challenges outside of work can be a great reason for not making a career move to a new Swift job. Your current job can be a foundation for the stuff you do in your own time. Without the risks of going Indie, you allow yourself to build up your own projects. I realize this might not be possible for everyone, as you have to do this in your spare time. However, companies like WeTransfer, really encourage community projects like blogging, so it might be possible you can even do this on work time! I’m writing this article in my spare time, but I often get time during my day-to-day job to write articles as well.
If you are ready for a new challenge, I would like to introduce you to SwiftLee Jobs. I’ve developed this platform to be specific to only Swift jobs. With filters for Combine, SwiftUI, and more, you’ll be able to filter down to jobs that match what you like.
My idea is to keep developing this platform and make it even better at meeting your needs. Featured listings will end up in SwiftLee Weekly, so by subscribing, you’ll at least give yourself those unique job positions every week.
I’ve covered a lot of ground but just scratched the surface. Each point on its own deserves its own article. Hopefully, I’ve inspired you by sharing my story, tips, and ideas. Finding the right moment to switch jobs is hard, so try to find answers to related questions you have to better understand whether it’s the right moment for you to switch.
If you like to learn more tips on Swift to get better for your next job position, check out the Swift category page. Feel free to contact me or tweet to me on Twitter if you have any additional tips or feedback.