Posts

System Design Interview For Mobile Engineers

Image
Introduction As you gain seniority in Software Engineering, the system design interview becomes the most important interview. This interview is focused on your ability as an engineer to look at and understand the design of an application from a holistic level. You are expected to start from a high-level view and then do a deep dive into individual components. In this article, I have shared my recipe to approach the system design interview problem by going through an example. Sounds interesting?... Keep reading I find the system design interview interesting because they are most realistic, holistic, and involve great communication skills.  Approaching a System Design Problem So I watched different kinds of system design interviews tutorials and made  my own custom script that made sense to me as a mobile developer. By no way or means, this is a comprehensive list, this is just something that has worked for me. So here is the rundown of different sections I used to tackle the system desi

How to get a job at Apple

Image
Being engineers we all have dream companies we want to work for and make our mark by impacting the lives of millions. Apple is the dream company I always wanted to work for. And here I am...I made it! Here's my story - It all began back in 2009 when I bought my first iPhone. I just fell in love with the experience and ease of the product which just works. That's when I decided I will learn iPhone application development and make these beautiful applications. Hence I bought a Mac Book Pro during my master's program which was difficult for me considering the state I was in with my financial situation. But I am glad I did that, fast forward a decade I am a successful iOS developer who will be now working at Apple!  Here is how I prepared In my opinion, when it comes to expectations from the mobile developers, companies test you on the following things: 1. Data Structure and Algorithms  This section focuses on your capability to think, compare (weigh pros and cons), and solve a

How to Secure iOS App Secret Data With Vault

Image
Working on mobile apps, as developers, we interact with APIs all the time. In order to connect to these APIs, we use API keys. These API keys are very important as it maps/identifies us as a unique user of the system we are trying to integrate with. We always need to make sure these API keys are not accessed by unintended users. Rate limiting, quota control, and security are some of the reasons why API providers have API keys.  One of the good security practices is not to save secrets and API keys as part of your source code. But if we don’t put them in the source code, how will our code know about them and consume it. Well, the answer to the problem is using a security tool called “ Vault ”. There are various vault options to store secrets, we will talk about the Hashi Corp Vault System . In this article, I will walk you through how to integrate vault with an iOS app.  Prerequisites  Setting up Vault  —  Please set up your vault following the instructions mentioned in the link. Write

9 Things To Make Mobile App Successful

Image
Mobile apps are everywhere today, there is an app for everything you can think of. And there are more getting created every single day!! In this situation how do we make sure our app is successful? Join me in this article as we explore the 9 things to make your next app successful…. The number of smartphones to be used around the world by end of 2020 is predicted to be 3.5 Billion. Users spend 90 percent of that time on apps.  There are over 2.7 million apps in the Google Play store and 2.2 million in the App Store. The majority of users use 9 apps per day and 30 apps per month. Source. https://techjury.net/blog/app-usage-statistics/ As you can see with so many apps in the market which are all competing to gain user's attention, competition is very harsh. That's why we need to think about our idea and understand its use for our users. So, here goes our list of things that are useful in making a mobile application successful. 1. Try to solve a basic problem Always think of your

How to use Builder Design Pattern in Swift?

Image
As a developer, we should always follow a design principle that acts as a guide to structuring our code so that it is modular,  easy to read, easy to understand, and scalable. In this article, I will be discussing behavioral design pattern, how to use them, and their implementation in Swift. Read on! Categories of Desing Pattern Design Pattern falls mainly under the following categories 1. Creational 2. Structural   3. Behavioral In this article, we will cover the Builder Designer Pattern which is a type of Creational Design Pattern Builder Design Pattern Why? We create objects for our classes to leverage the functionality a class provides. Sometimes object creation is simple and can be done by the simple initializer. Other objects might have complicated requirements, for eg, it may require a lot of arguments to initialize the object, which in my opinion is too cumbersome and non-productive. Also, we might need to mix and match these params for initialization. In these cases, we should