Interviews 06 Jan 2021  ■2 Comments

Team LottieFiles: Karam Ali, Full-Stack Developer

Tell us about your role at LottieFiles. How would you describe it?

I’m a full-stack developer at LottieFiles. That essentially means I build the user interface of an app and the logic or the magic that actually makes an app functional and usable. It requires a bit of finesse juggling both design thinking as well as logic. Both different types of creativity however, require lots of practice and even guidance when first getting started. Right now at LottieFiles, I develop tools and plugins; this includes third party integrations, plugins, open-source libraries, and internal libraries.

My teammate Mazin and I

A huge part of my current work involves writing TypeScript, JavaScript, and writing node modules that would be relevant to the overall LottieFiles ecosystem. Another huge part of my role is building and releasing new products (like some of the LottieFiles plugins), and of course maintaining and improving all these different tools and software. I also make it a point to collect feedback on these products from the LottieFiles community so that I can constantly improve upon them, which is something I deem a vital responsibility.

What is it about programming that enticed you into a career in it?

I grew up on a small island in the middle of the Indian Ocean, and my parents sacrificed a great many things to ensure that I was given an education. They also encouraged me to get a job as soon as high school was over at 16 years old. My first ever job was at a computer store as a retail salesperson, and eventually, I went on to become an amateur computer technician repairing and building computer systems.

Me during my island days back home in the Maldives.

Once college was over, I soon applied for a student loan and took it on myself to expand my skill-set with computers, and what better field to jump into than computer programming. It’s a field where you can build something out of nothing but knowledge, a field that demands solving unique problems every day, that always keeps you on your toes as it expands ever so fast. It is by no means an easy job to be a programmer; programmers build systems and infrastructures oftentimes intangible and not visible to the eye but scaling larger than entire skyscrapers and sometimes even cities. The complexity, the scale, and partly the exposure to computers, computer games, the internet, and the fun I had as a kid exploring different apps and games have a lot to do with why I do what I do now. It’s a mixture of curiosity, a little push from the environment I grew up in, and the demand for the skill-set is what kept me on this path.

What would you say is the most important thing to keep at the forefront of your mind when working as a programmer?

Becoming a programmer means you need to spend a lot of time in front of a computer. Like any skill, it takes practice to become really good at something; they say one needs to invest ten thousand hours to master something. Well, with that in mind, I'm going to be practical and say that proper rest and taking care of yourself is important; your body is just as important as your mind. Stand every now and then, maintain good posture when sitting, rest your eyes, and rest your mind when you feel tired. In regards to a career as a programmer, I’d say the most important thing is to keep in mind that it takes time, effort, and patience to become a programmer. And once you become one, keep in mind that it's a lifelong journey of learning and absorbing knowledge as the field constantly evolves, and staying relevant can be incredibly hard.

Me taking a moment in the LottieFiles office to centre myself with a short yoga break.

Going deeper into more technical advice, I'd say that proper naming conventions, abstracting out code that's reusable when you can, following engineering principles, using specific languages where necessary rather than always preferring one specific language, and having that flexibility to adapt to new technologies goes a long way.

What would your advice be for anyone wanting to go into a career in programming?

In our society, demand for a skill-set determines how lucrative a field is, and programming is definitely a lucrative field high in demand where the prerequisite is a willingness to learn and patience. It's a good career path, one that will let you work from anywhere if you have a laptop and some wifi available. That aside, there are some other skills that I do feel are important as well. Most people think being a programmer just means taking orders and completing tasks and that the only interaction happens between you and the computer. On the contrary, programming involves a lot of communication and teamwork; these are basic skills but important ones in any field. The work you do has to be explained in layman's terms to your colleagues who don't work in tech, the value of your work must be explained to your bosses; you are just one person, and it takes an entire village to truly build something of scale, and solid teamwork requires consistent communication between you and your team members daily. So always keep in mind that these basic skills are just as important as the technical skills.

My skill set currently however, is not limited to just JavaScript as per my role, I am also familiar with ReactJS, VueJS, multiple programming languages from PHP to the Laravel stack as well as HTML, CSS, and even DevOps, AWS infrastructure, and database management too. At a start-up, it pays to have multiple skills and to be able to offer input into the many conversations that go on. I have worked non-technical jobs and having a product perspective, and a technical perspective helps create a lot of value too. Now, after that humblebrag, just know that even if you specialize or just want to work with one type of technology, it's important to have a multitude of skills and be familiar with many different technologies because there is great value in that knowledge and also the flexibility to adapt.

What was it that attracted you to work at LottieFiles?

Before joining LottieFiles, I was the CTO and founding member of an ad-tech company which two friends and I started building the same day I graduated from university. Slowly I became friends with other developers, and of them was the lead web developer at LottieFiles and also the CTO at LottieFiles. LottieFiles was a seedling back then, maybe a team of just seven people.

With some of the LottieFiles team.

On and off, I worked on other freelance projects together with some of the LottieFiles staff, and frequently got invited to apply to LottieFiles, but it was hard letting go of a company that I had put so much effort into. Two things convinced me to let go of my previous role and jump into LottieFiles, one was the team at LottieFiles, and the other was the legacy that LottieFiles aimed to create. The team (as I later came to know) was incredibly talented, with each person working at unprecedented speeds and delivering exceptional quality with amazing attention to detail. I was convinced that just being around most of them would help me grow my career and that was the number one reason. The second reason being that the team aims to create a legacy that lasts. Attempting to build a file format that would live on in the books of history by making a small dent in the world of ever-changing technology, touching the animation and design space across the world, and impacting the lives of millions of people was irresistible. This is an industry space that hasn't seen disruption since the age of Flash, and LottieFiles promises a new frontier for animations. There's a certain novelty to being part of such a story, and that's as noble a reason as any.

Full stack dev @ LottieFiles https://github.com/karamalie
Comments