Dear reader in search of a creative developer,
I was 22 years old when I started my coding career in 2016 while pursuing my bachelors in Computer Science. Since then I had the privilege to work with some of the finest brands in the industry and also individual contractors. The thing which kept me going was the extensive desire of learning new things and taking on the challenges. I've been researching and experimenting ever since and my journey has been exciting so far!
NOTE: This is a general overview of my coding/design career in which I talk about where I have been in life and where I want to be next. If you're looking for specific projects that I have worked on visit this page.
Chapter 1: Exploring the internet and and finding my passion within (early days of my coding career)...
My first paying job was as a front-end web developer working with the React framework. This was the time when React from Facebook was newly open-sourced. Through self learning and online courses I familiarized myself with the in's and out's of React. Concepts like one-way data flow and declarative component based UI was fun to learn and a pleasure to work with.
React being the forefront of open-source technology offered so much insight to what it means to be a developer in this day and age. People like Dan Abromov, Ryan Florance, Kent C Dots, Micheal Jackson had such a great impact on how I looked at programming in general that everyday was exciting for me and I always wanted to do more because of them. I got to learn first hand topics like Redux and React Router by the people who brought them forward through their talks and online resources they provided.
For example, the famous talk on hot-reloading by Dan Abromov when he introduced the Redux state management or the time when Ryan and Micheal introduced the react-router v4 had a great impact on my career as a programmer and I was really moved by knowing what it means to work in the open-source space. By closely observing the latest developments in the web space I expanded my understanding of where the web community comes from and where it is heading. It really helped me grow as a novice software developer in the early days.
I always wanted to contribute in the open-source space ever since I started working as a developer and publishing this boiler-plate project was my first shot at it. This project was well received by the community. Certainly because at the time there was a dire need in the React ecosystem to quickly setup a React project without worrying about the all the different configuration it needed. This gap was later felt by the core React team and they launched the famous create-react-app to centralize the bundle configuration for react projects and neutralize the need of boiler-plates like the one I created. My project was dead but it shared a cause, and that is something important for me. The experience I had with Webpack and Travis CI was something I will always look back to.
I was personally interested in working on the mobile platform so the transition was naturally exciting for me. React Native brought in its own set of challenges like learning how to debug Android and iOS, animating objects using the Animated library, and working with native Android and iOS components using Java and ObjectiveC. React native really helped me grow as a developer because I got to work with different languages and tools but also to build for a completely different end-user and devices.
Chapter 2: Pursue what you have a passion for and the opportunities will surface (learning the insides of iOS development)
While working with React Native I had tremendous opportunities to explore and understand concepts like performance, and react native bridging and using React Native components in already existing iOS applications. This experience gave me a push that I needed. I focused more on iOS development by learning Objective C and Swift languages in depth. My previous Java and C# experience from college helped me understand the core concepts of these languages relatively quickly. Other more ingrained knowledge, like working with Xcode and developer tools like Instruments developed with experience.
Since then, I've been involved in numerous tasks related to the bridging of iOS and React Native platforms. I helped my team in creating many different native modules for the iOS platforms. Some of these modules were constructed from scratch like for example a sliding up panel component; others were open-sourced iOS/Android libraries that weren't available in the open-source React Native community as a module, for example the DeepAR SDK for iOS and Android which our project used.
One of the major native project that I worked on as an iOS developer was the iOS video-player library for the flagship application that our team built for one of our fortune-100 client, a famous movie studio. This video player incorporated Apples Fairplay streaming services to securely playback the HLS content streamed from the servers.
Apart from working with the different SDK's and the audiovisual media playback APIs I also spent time understanding the UIViewPropertyAnimator introduced in 2015 for smooth, interruptible, and interactive animations, SFSpeechRecognizer for working with SIRI API\s for real time offline and online voice transcriptions, MobileCoreServices and OpenGL/Metal for constructing a photo filtering feature much like the one used in Instagram.
I also experimented with SwiftUI framework that was released in late 2019 at the WWDC'19 Apple conference. I decided to write a blog post about my experience working with SwiftUI published on the Flawless iOS Medium group. The article was well received by the community.
Chapter 3: What is an Artist but someone who work really hard on things they love... (Experimenting with UI Design tools)
Apart from writing code I also have a very strong desire to be creative. For this reason I taught myself tools like Sketch and Figma and take great pleasure in experimenting with new UI design ideas. I also like to prototype animation concepts on Principle. I have a Behance profile where I share my UI/UX experiments and follow other like minded creative people. I am personally interested in design systems led development which helps in seamless work flows and handovers from design to development if done right. I had the privilege to work on both sides of the spectrum in the software product development teams.
Later I moved to London and enrolled in a course to learn in depth about what User Experience design means. The reason behind this was Craig Federighi. Apples VP of development. In his talk "A View From The Top" he explained why crossing your lane as a software developer is so important. It was inspiring for me because it talked about dynamic teams, expanding your horizons, learning what interests you and following your heart. Things that are so important for building great software products.
Chapter N: Whats next to come?...
I am grateful for the experiences that are behind me. I am looking forward to the days ahead. I am always anxiously waiting for what the future hold for me. I feel privileged and lucky to work with the people I did until now. And also for the delightful products that I got to build. People and products are two things which makes me wake up in the morning. Makes me tick. Keep me going. And bring desire to learn and do more.
At the core of my heart though I am a dreamer. I feel that if you're not crazy enough to dream then you will never reach your ultimate potential. Whatever I do in the future, I want to do it with full affection. For this reason I am always willing to take on the chances.
I'm always looking forward to the next time I get to work on a project that is exciting and offers a challenge.