About

Hi, I'm Pranav!

Welcome to my coding world

I use this site primarily as a means to document and reflect on what I learn from my career in software development. I learn best by hands-on experience, with a love for side-projects and presenting technical talks. I firmly believe in kaizen: the best way to learn is by pushing to develop something just outside your current abilities.

This blog focuses on technical topics: innovations, job advice, software musings and deep dives into particular software domains. I am deeply interested in improving processes, whether they be CI/CD related, developer tooling, even outside strictly iOS software development. I am passionate about mastering technical topics and software development best practices. I hope that you can appreciate the intense perspiration behind each blogging episode!

My main stack is native iOS development ๐Ÿ“ฒ (Swift and Objective-C). Even though I started as a mobile specialist, I now know many more languages. I am comfortable with Android, Flutter, JS, Python, Git, C++, and C.

Context

I have been writing code (or thinking about writing code) for 8 years and have 4.5 years commercial development experience. I'm currently an iOS Developer atย Sky, developing the NOW TV iOS and tvOS apps as part of their Core Experience team.

My favourite role was probably as a contractor for Maldaba Ltd., where I led iOS dev and published 6 major releases of their iOS healthcare app. I enjoyed refactoring their Objective-C app into a tested, MVC-architected Swift app with Fastlane CI because I succeeded in the challenge. I met their hard deadline, made a positive impact and learnt a lot for my first contract. It was a complete success! I learnt best practices the best way through hands-on experience, both technical and non-technical, and I enjoyed the responsibility of being a tech lead.

I previously worked at Kin and Carta, Maldaba Ltd. (as the Lead Contractor), Nutmeg, Swish, The App Business, did one app design contract (NDA), and have launched 3 personal apps on the App Store. I enjoy personal projects the most, especially when they are ambitious! I released my first Flutter app Ticked on the Play Store recently, learning Flutter in one month from scratch!

TL;DR I enjoy learning through building real apps.

About Me

My purpose is to be happy and develop apps to make others happy. ๐Ÿ› ๏ธ

I have big dreams to become a fantastic software developer, but I now see software as a means to an end. I used to love coding for coding's sake but now I want to focus my efforts on tangible and useful products.

I am obsessed with coding, and am a recovering perfectionist. I have recognised that clear communication with non-technical stakeholders is essential, and there is more to life than code. To develop a balanced routine, I also now enjoy reading books ๐Ÿ“•, playing ๐Ÿธ and working out ๐Ÿ’ช outside coding. I now pay attention to my life outside of work to ensure I live healthily.

I have learnt UX design as well as Python, Google Cloud, C, C++, and Android development with Java. I am reasonably proficient in C++ and Python, but I don't like Java. I improvise with Trello to follow Scrum, and recently passed the Agile Methodologies LinkedIn Skill Quiz. I won't be becoming Agile certified, because that seems like overkill.

Fun Fact: When I feel the urge to fixate on solving the bug after 30 mins, I take a break. I need it to stay sane.

Open your book ๐Ÿ“– and don't look back.

I have multiple projects I need to work on, so I have been improving my time management skills to get more work done. I follow a written and iCal calendar to stay on top of things. I prioritize the most important goal to be done, and focus on that primarily for the next week / month. These are my 6 planned side projects:

Example 1: I resumed learning Android Development for a few weeks after graduation, and I liked it's low-level control of the APIs. I did this for 1 month, however did not release an app to the Play Store with my skills. I want to explore Jetpack, Firebase, MVVM LiveData coupled AndroidX and all the new Android goodness with Kotlin after I've learnt SwiftUI properly.

Example 2: I now have launched my first Flutter app on the App and Play Store: Ticked. I enjoy Flutter's Hot Reload ๐Ÿ”ฅ feature, and especially like using one codebase for both platforms. Ticked is a To-Do List app built using Provider, sqflite, numerous build_runner packages and has different platform designs for iOS and Android. Ticked has a lot of features to continuously improve the app.

Example 3: I started doing Hacking with Swift exercises for SwiftUI for 44 days. I need to resume at some point, however, I have not had time. I really enjoy SwiftUI so I'm sure that I can do that alongside my job in the evenings.

Example 4: Web security is a very interesting field for me, and so I plan to work on side projects or practise VMs online to learn the subject more thoroughly. I did download โฌ‡๏ธ a practice VM at Imperial, but I only did 1 exercise. I got a Distinction in the module, completing all labs, however would love to do more VM exercises and Microcorruption too ๐Ÿ”. I learn so much about OS, problem-solving and actually understand lecture content through (ethical!) hacking.

Example 5: Algorithms. Many people work on Leetcode and FAANG interview questions are all about algos. I gave an NSLondon talk about Swift Algorithms and am now actively learning algorithms through the Algorithm Design Manual (and other reference books). Cracking the Coding Interview is hard to read, but I feel that pacing myself and consistently putting my full effort and attention into each section and line will lead to improvements. Leetcode and Pramp are next on the list.

Example 6: Touch Typing with typingclub.com. I do this whenever I remember to at the moment. I plan to do Touch Typing on the weekends going forward because it is more of a hobby rather than a productive side project.

I haven't mentioned here that I am working on 2 other apps which will be in the App Store soon. I am very passionate about these apps because they solve a real problem, and are my own babies. These are lower priority at the moment.

Ps. I made a blog called CareerBuddy to coach ๐Ÿ‘จ๐Ÿพโ€๐Ÿซ students to get their dream CS job / degree via tailored blog articles. However, the project is now on the backburner because I can't justify the time / effort with more important side projects in the pipeline.

Life's Proudest Achievement

I graduated with a Distinction in MSc Computing Science at Imperial College London in 2020. I was awarded the Imperial Award, and hosted Raspberry Pi ๐Ÿฅง Workshops.

I developed the first ever iOS Yoga ๐Ÿง˜๐Ÿพโ€โ™‚๏ธ Action Recognition app in native Swift for my thesis (Distinction).

My group project in Deep Learning ๐Ÿ”ฎ for Foetal Image Reconstruction was also awarded Distinction. I had fantastic course mates, who came together at the last minute to overdeliver on our project goals. I made a Tkinter GUI, Streamlit Web App with Python, hosted the site and Docker pipeline on GCloud, and developed the networking layer.

Future plans ๐Ÿ”ญ

In September 2020, I launched an App Development Agency called Kaspra Solutions ๐Ÿงช! Kaspra Solutions will be the vehicle for my side projects and apps. Stay tuned for updates on 5 major side projects in my pipeline.

Stats ๐Ÿ‘€

Current Status: learning! ๐Ÿ˜Œ