Goodbye iOS… Hello Web development

Changing development orientation after 11 years of creating applications full-time.

Looking into the past to set the future in new grounds

Software Engineering has little to do with computers. That’s right. Software engineering is actually ideas, notions, abstractions, logic, architecture. You think about something; you visualize it, you design it, then draw a sketch on a paper. Only the last part of software development concerns programming (writing code).

What is this transition about after all?

So here is what abandoning something you are an expert in (mobile development) to dedicate yourself to something different is about in Software:

It’s about serving (APIs) and not being served anymore

Designing an API is not hard. Creating a good API is very difficult, however. It’s never about returning JSON. It’s about talking with REST semantics, making HTTP conversations using specific verbs as actions, communicating with API consumers using a particular dialect of your invention. And having consumed countless APIs, it’s interesting to see what’s happening on the other side of an API. This time you have to think ahead of what you are going to serve.

It’s about using the right tools for the job — not just a single one

Desktop and mobile application development usually involve using one technology — one tool to get the job done (no matter the libraries and frameworks used). On iOS, I had Xcode; for everything Windows, I had Visual Studio.

It’s about your conform zone and what “comfort” means to you.

For some, comfort means routine and stability. They need to know where they are heading to, why, and when they are going to do that. It means learning something, sticking by it, and squeeze every little ounce this “something” has to give you.

It’s about thinking differently — changing mindset.

While working for iOS apps, I found myself very easily changing implementations just to squeeze some more performance from the mobile processor. 50ms delay in a screen update would indicate an underlying problem — thread safety was paramount, and algorithmic optimization was an everyday routine happening at compile time & programming time — scaling up means going deep into how the processor works.

It’s about taking risks — and having confidence

Giving up something you are considered to be an expert in means that you will need to prove your way up all over again. It takes a lot of professional confidence and determination to step down and follow a different path willingly. It also requires people to trust you.

Finally…

…it’s about gaining an understanding of how to do things differently and see how the world works.

API Development Lead, currently @ Vodafone GR. Past: Lead Dev @ Intrasoft Intl, atcom.gr and more. Crafting apps & web services since 2007. https://oramind.com