How AI Helped Me Survive the Shift from Backend and DB Architecture to Native iOS

After five years in a codebase I knew by heart, I suddenly found myself back at square one in customer-facing native iOS development, and AI became my lifeline.

Recently, when I changed my job position inside the company, everything changed with it.

Switching from an internal web app to customer-facing mobile development felt like a downhill skier in full gear competing in the Summer Olympics in the 400-meter hurdles. But the reality hit differently, and I realized I am not only the same developer I used to be, but also a different person.

As an aspiring senior developer, I had been working in my domain for almost five years. I knew every bug, every comma in the code, and the domain itself was already printed in my DNA.

Then a challenge came in my career: the company needed a native iOS dev to help with a customer-facing project. What now? My career aspirations gone. My growth aspirations gone. Or weren’t they?

Oh, to be the youngest on the team…

As a developer in my old position, I was really independent. I took on big tasks, hard investigations, and suggested architectural changes. But as the youngest in my team, I was often doing documentation, maintaining stuff, and doing support, while the big senior guys had meetings where important decisions were being made that affected whole departments.

I was looking at them jealously like Barry B. Benson at the Pollen Jocks in Bee Movie. He had a good life, but he wanted more. He wanted to be the most elite part of the Beehive that risks their life to collect life-sustaining nectar. He was often reminded he can’t just decide to be a Pollen Jock – he had to be bred for that.

Thankfully, I am not a bee, and I was often reminded that my time will come, just need to be patient. But my 30th birthday was approaching faster than that promise. “I need a little patience, yeah,” as Guns N’ Roses sing.
 

I decided to bite the bullet

And then the time came: our project was moved to a different country, and only a few members of the team could stay together on a new, very similar project. One of the opportunities for the rest of us was to switch to customer-facing native mobile development.

I had been doing internal tool web-app work, but mainly focused on backend development and DB architecture for five years, so the opportunity sounded to me like they wanted a knight in full armour to swim through La Manche.

But I’m the type of person who would do it for the team. I’m really a flexible person, so I wasn’t even afraid of this challenge – until I finally hit a wall.

The scope was terribly big, with more teams collaborating on multiple SDKs, and everything was customer-facing, so no mistakes were allowed. Even the Xcode IDE for iOS development was so terrible that, when I tried to find some feature I was used to, one Redditor wrote that no one should even try, because that IDE was created by Satan himself.

So my easy equation – I will prove myself in a totally different environment, I will be a senior developer – was crushed.

Tiberius Claudus Caesar Augustus Germanicus the code conqueror 

There was basically no time to meet with more senior colleagues, and I only had a few days on Udemy before I started working on the first issues. So it was a lot of meetings, but basically no context.

At the same time, we started adopting Claude Code and an agentic coding approach more broadly. I was skeptical about AI at first – it had a lot of flaws back then, still hallucinated, and produced plenty of bugs. It didn’t feel trustworthy. But I quickly realized that if I didn’t want to spend the next year and a half just learning everything the hard way, I had to adapt faster than ever and Claude became my main companion in that process.

I didn’t had a choice so I decided to utilize him at maximum. Learned a lot about subagents, prompting skills, planning and mainly use divide and conquer method to ensure multiple iterations so that the AI produced code won’t break. I was able to learn much more faster, skip boilerplate code and focus on the real matter. After lot of produced .md files with reviews and exhausting code explanations later I see I have real influence on my new team, despite still a lot of things to learn, new programming languages are just a formality and my confidence grows every day with every prompt. 

… Back to my roots 

The most exciting part of the university was for me problem solving. Different fields of study, different programming languages and your task was to find solutions to different problems. That’s basically the essential meaning of engineering described as a problem-solving discipline using science, math and creativity. 

In the corporate world, this has been replaced by endless ticket maintenance processes, with people focusing only on their area of expertise and often losing touch with the bigger picture. With AI agents all boundaries were erased. You don’t need to study some new programming languages and their principles, you don’t need to maintain a lot of tickets manually, you dont have to write tests anymore.

Your only responsibility in this AI world as a Software engineer is to solve problems, without being distracted by all the small things that don’t bring you joy but are required by ruthless corporate rules. The only barriers now are only our own imagination and AI slop code. Happy engineering.

> subscribe shift-mag --latest

Sarcastic headline, but funny enough for engineers to sign up

Get curated content twice a month

* indicates required

Written by people, not robots - at least not yet. May or may not contain traces of sarcasm, but never spam. We value your privacy and if you subscribe, we will use your e-mail address just to send you our marketing newsletter. Check all the details in ShiftMag’s Privacy Notice