Why you should hire me!

Hello, thank you for taking the time to take a look at me. I'm Karani and I used to consider myself anything. Data analyst? Yes.(My beginnings). Technical writer? Yes. Frontend developer? Yes, The list goes on. As a junior, while chasing the elephant, I got distracted by birds. Now I'm back to chasing the elephant, good old PHP. Really.

I'm a full-stack developer and I have narrowed down my specialization to Laravel and React as my go-to. Note that specialization does not mean not being flexible. I learn new things every day. I have worked with a vast array of languages and I continue to do so. I am proficient in Kotlin(simpler after using Java), Nest Js(great architecture I believe), Flask(minimal), Tailwind (flexible), Mongo(chilled) and Mysql(structured). Postgresql guys can relax about B-tree and how they can get more from memory. Used that too. I'm familiar with some deployment techniques like docker, but never used them in production, just playing around. Someone else always did that.

I'm also familiar(not an expert) with react native. I have just built one app and deployed it into the Play Store and App Store(quite a pain).

Besides this mumbo jumbo, I'm a great communicator and maybe even greater writer. Who knows? I gel well in a supportive team, more so one that recognizes my mistakes and helps me make amends. Multi-tasker? No, I recognize my strengths and seek to always use them to bring the most impact.

Track record

As an athlete, I once won a football. As a software engineer, I have worked with various technologies to bring ideas to life. Participated in marketing meetings. Proposed ideas. Mentored my peers.

Chatbot phase

Here is the beautiful world of NLU/NLP that I worked in between 2021 and 2023. I n here, I picked up Kotlin as a new language and I was able to work with it. I managed to do the following while in this world:

  • I implemented a multi-tenant back-office that leveraged React and PostgreSQL (using Postgrest). This used Postgres functions to help create a Nocode solution. It allowed non-technical people to load their business data to be used in training the models for their products/business.

  • I added third-party communication channels for chatbots. i.e. Added Facebook and WhatsApp channels using Kotlin. This allowed customers to engage with our products(chatbots) without needing to set up web apps for their business.

  • I was able to integrate payment solutions for the chatbots. This feature allowed customers to transact through text messages. It leveraged existing solutions that would allow for order monitoring and refunds.

  • I created using vite press the documentation site for our products. I also maintained it, adding features like blogs using VueJs. This used SSG through markdown files. I also wrote documentation and blogs for the features I built while here.

App store chaos
  • I was tasked with implementing a marketing system for a newly founded startup in Nairobi. While here my role evolved from just being a developer to an all-round member contributing to the general direction. This involved meeting with the marketing team and investor (as the only dev).

  • I spent 6 months here and learned a lot about the general business. I was able to work with Flask and React Native. I implemented a marketing system with an invite-reward system. The app was able to gain 3000+ users without any breakages. The backend was deployed in Digital Ocean. I used barebones react native and learned how to configure Xcode and Android Studio. I had struggles deploying to the app store but managed.

  • I did not have a Mac, so I had to use a remote Mac to build and deploy to the app store. Also, I learned while building the app. I had no prior knowledge of react native.

The Elephant

It is really the elephant in the project. When I started coding, I wrote code on a book as I did not have a laptop then. The language I wrote was PHP. I loved PHP and though work forced me to work with other languages, PHP remains. It was the title of my blog here, "ALL_PHP". It was my first article [here](https://karani.hashnode.dev/php-growth). I rooted for it. With Laravel, the love has been rekindled.

I like the developer experience of laravel. Some of the things include:

  • It is so easy to roll out authentication for my APIs.

  • It is easy to configure the laravel kernel with your needs.

  • Emails and Notifications out of the box.

  • Support for caching out of the box.

  • Eloquent model which does a whole lot of heavy-lifting keeping the controller lean.

  • Jobs and Queues are easy to implement even for complex tasks.

  • Lovely packages in the community that allow for better documentation of APIs.

  • Lovely data transfer objects that handle your requests and validate them.

  • Laravel collections do a whole lot of extra manipulation of data.

  • The whole debugging experience is better with logging and packages that improve the experience.

  • The community is wholesome and there is an answer around somewhere for your worries. I guess it's by age.

    I could go on all day about how Laravel is amazing. I love it. Laravel is even helping me build my projects now. I was on NestJs which has good dev experience but Laravel just has an edge over Nest Js. In my opinion.

    Anyway, its why you should hire me, so what have I done:

    Task Management Platform: I used Laravel to create the backstage for a Vue.js show. Imagine it as setting up the stage and the tech behind the scenes. Real-time notifications are like the stage lights, queues and jobs are the stagehands, and caching is our magic trick. Together, they put on a seamless performance for tasks.

    Reservation System for Restaurants: For this adventure, I played both chef and host. With React and Laravel as my trusty kitchen tools, I cooked up a point-of-sale feature and handled reservations. It's like cooking a big meal and making sure everyone gets a seat at the table.

    Event Bookings Platform: In the world of event bookings, I built APIs and added email support for good measure. I also created a friendly admin area for event organizers. It's like setting up a ticket booth where you can book, cancel, and send emails – all in one place.

Now let's enter the realm of voluntary work:

Andela(ALC)

In here, Nest Js was appointed as the knight to serve me and protect me. I worked with Nest Js to build features for a mentor management platform. The aim was to go through a whole product lifecycle while working with a developer team, product owner, team lead and project manager. The programmer aimed to use a scrum approach through 5 sprints spread out in 10 weeks. The final product was a mentor management platform for the Andela Learning Community mentors.

I was tasked with creating Apis to handle preferences. This would be a service to allow the mentors to update their preferences. From here, I would go on to work on features that required these preferences. The services included real-time discussion chat rooms, real-time notifications(in-app and email) and the general mechanics of how chat rooms and messaging services would be handled.

Other tasks were distributed to other team members. It also involved using Postman to complete the project. The 10 weeks I spent there were wholesome and I got to work with a globally distributed team. Different cultures. Different approaches. I picked up a few design patterns from the experience.

But... but...what about the soft skills?

Soft Skills.

Well, the most important thing that I have come to learn in my years of working with global teams is communication is important. Verbal communication is great but written, clearly detailed instructions are more important. The other thing I have acquired is the need for a notebook. Write. Write. Write. In a meeting, listen and take notes. Hosting meetings, arrange your thoughts in a notebook.

Documenting is as important as working code. Your code could communicate by itself but documenting what you have done will be more helpful for your team. Context is not trivial. Provide context. Why? Details.

It is important for me as a software engineer to understand the context. It is important to also provide context. I always aim to achieve that. Working with teams has proved this to me. Context helps one understand the details.

What if I miss something? I ask. A guide will show you the best path that has the best views and best experience.

Every day, I learn something new and being open to learning is something I keep in mind. I'm open-minded to new approaches. I learn and easily acquire patterns used by superiors and peers. Sometimes, I stay pragmatic.

I believe myself to be hardworking. I have managed to do all this while also doing an unrelated course at the university. By profession, I remain a construction cost consultant(Quantity Surveyor).

I hope this speaks for me and that you can consider hiring me for your roles. I believe I make a great software engineer.

If you consider me a great fit, I'm open to new roles. You can contact me at karanijohn018[at]gmail[dot]com.

Hope you have a lovely day! Thank you for reading.