on becoming a Senior Engineer

How to Network at Tech Events

The purpose of networking is to build mutually beneficial relationships. That is hardly achievable if the only activity one engages in is attending events and exchanging social media contacts with other attendees. The idea is to form a symbiotic relationship - one where the parties involved are helpful to each other or one another. It will be more productive if after introductions, participants discuss shared interests projects they worked on or are working on the challenges they face and how they can overcome them open source projects they (can) contribute to and learn from connecting themselves to people or communities who are interested in what they’re doing The good thing is, one does not have to be at tech events to do these....

November 29, 2024 · 2 min · Orim Dominic Adah

Quantifying Your Accomplishments as a Software Engineer

It is important that you keep a track record of the impact you make in your career, and that includes accomplishments outside your 9 - 5 job. Why? The record is a bank of your impact for your next salary re-negotiation, promotion or job search serves as a reference for you to measure your career growth helps you evaluate how much value you have contributed or created inspires you to do more Developer Efficiency All the work that we do (as software engineers) falls into two main categories:...

July 2, 2024 · 4 min · Orim Dominic Adah

A Guide to Understanding Binary Search

In working with collections (lists, queues, maps) of data, you usually have to perform one or more of the following operations on the collection: accessing, searching, appending, inserting, replacing/swapping, deleting and sorting. Binary search is one of the most popular algorithms for searching for a number within a sorted list of numbers. It has a time complexity of O(log N) which means that its ability to find a number in a sorted list is minimally affected by the length of numbers in the list....

June 1, 2024 · 7 min · Orim Dominic Adah

Single-Letter Identifiers in Loops

I recently developed a practice of using single-letter identifier names in code I write. This practice is quite contrary to my principle for writing clean code. I aim to make readers understand the code I write without thinking too hard. However, I have two points of view to support this practice. identifier is the generic term for variable names and names of constants. I use the term identifier and not variable name because identifier encompasses variable names and constant names....

March 24, 2024 · 1 min · Orim Dominic Adah

Why I Write Tests and Documentation and Why You Should Too

In November 2023, I was at the API Conf Lagos meetup. One of the speakers, Toni Alaribe, asked members of the audience to signify by show of hands if they write tests for HTTP APIs they build. Myself and a couple of other people raised hands. He asked members of the audience to signify again by show of hands if they write API documentation, update the documentation with the latest changes and also keep a changelog of the changes....

March 2, 2024 · 5 min · Orim Dominic Adah
A Guide to Handling Cross-Currency Transfers With Flutterwave

A Guide to Handling Cross-Currency Transfers With Flutterwave

It was a bit challenging for me to understand Flutterwave’s documentation on cross-currency transfers. After discussing with her staff on Slack, I was able to understand how it works. I have put this guide here for anyone who may be going through this challenge. The Challenge I was tasked with the responsibility of implementing a feature that involved a transfer of funds from a Flutterwave USD account (the source account) to a recipient bank account (the destination account) that holds funds in a different currency from the USD....

November 26, 2023 · 3 min · Orim Dominic Adah

A Guide to Interfaces in Programming for Beginners

What is an Interface? An interface is a component that another component can interact with to perform one or more operations. Most beginners in programming encounter the term interface when they dive into object-oriented programming or clean code principles like SOLID. This article will help you understand what an interface is, irrespective of the programming language that you use. It will also cover the concept of programming to an interface, not an implementation....

November 25, 2023 · 5 min · Orim Dominic Adah
Set Custom Types for docs items in mongoose-paginate-v2 wit TypeScript

Set Custom Types for docs items in mongoose-paginate-v2

What is mongoose-paginate-v2? mongoose-paginate-v2 is a pagination library for mongoose. With mongoose-paginate-v2, you can fetch a list of documents from a MongoDB collection and get a paginated response. Paginated responses are useful for cases where UI clients needs to query and display only a section of data at a time. UI Table Pagination - ui.shadcn.com The mongoose-paginate-v2 documentation provides a code snippet for how to use the library with TypeScript. 1...

September 19, 2023 · 3 min · Orim Dominic Adah
You Don't Need to Know It All to Contribute to Open Source

You Don't Need to Know It All to Contribute

How it started I was working on a project recently where I used mongoose-paginate-v2 to retrieve paginated data from the database. I was trying to type my output because I deselected some fields from the documents returned, but I could not do it because the library did not provide that functionality. I had experienced this in a couple of other projects that I was working on. This time, the inability to achieve this got me frustrated....

September 17, 2023 · 2 min · Orim Dominic Adah
URL validation JavaScript header image

How I Validated for Specific URLs in JavaScript

In a pet project that I worked on recently, one of the requirements was to allow users to submit the URL to their Facebook social media profile. This article describes how I ensured that only Facebook profile URLs were submitted. JavaScript was used but it does not matter as much as the algorithm used; and that algorithm is described here. function validateUrl(url, expectedOrigin) { const urlObject = new URL(url); const originPattern = new RegExp(expectedOrigin....

August 18, 2023 · 2 min · Orim Dominic Adah