
Caleb Oneyemi
Verified Expert in Engineering
Full-stack Developer
Lagos, Nigeria
Toptal member since December 23, 2021
Caleb is a software engineer with over five years of experience building reliable systems, primarily with Node.js and TypeScript. He has experience designing, building, and owning services in distributed systems and has worked on container and serverless-based systems. Caleb has proven his ability to produce optimal outcomes by taking ownership, communicating effectively, and balancing competing priorities.
Portfolio
Experience
- Node.js - 5 years
- PostgreSQL - 5 years
- TypeScript - 5 years
- Redis - 5 years
- Amazon Web Services (AWS) - 4 years
- NestJS - 4 years
- Docker - 4 years
- AWS Lambda - 4 years
Availability
Preferred Environment
Visual Studio Code (VS Code), Git, MacOS, Slack
The most amazing...
...thing I've done is design and build a feature complete and scalable serverless back end for the social media component of a super app, all within three months.
Work Experience
Senior Software Engineer
Mansa Finance
- Worked with Mansa, which provides stablecoin liquidity to cross-border payment companies, helping them achieve real-time settlement. I joined as the first back-end engineer on the team after they published their v1 smart contract on Base.
- Built the entire back end as the sole back-end engineer on the team. The back end is mostly container-based and split across two major services: one for investors and the other for borrowers.
- Worked on the system that can be considered a hybrid between Web3 and traditional Web2 systems. There are typical APIs for each of the services with a ton of background interactions and processing with onchain data happening.
- Built a blockchain scanner that interacts primarily with the Mansa smart contract, stores historical data, and performs other operations like handling liquidity repayment attribution. It runs every minute.
Senior Software Engineer
MAX
- Maintained and extended the core revenue operation service for a vehicle subscription to the ownership platform along with three other engineers. Core technologies used were Node.js, TypeScript, Inversify, and PostgreSQL.
- Integrated serverless systems with the core revenue operations service using event-driven approaches powered mostly by Amazon Simple Queue Service (SQS) and Amazon Simple Notification Service (SNS).
- Owned critical features that helped bring in more flexibility for managing customer contracts and payment schedules, which led to a drastic reduction in churn rates.
- Moved a few manual processes from Excel file-based operations to purely system-based operations, which helped reduce business errors drastically.
- Participated in designing the new system architecture to split our existing core revenue operation service into three separate services.
- Contributed to the new architecture, which will aid independent scaling of different system parts. As part of the new architecture, I own the service handling contracts and repayment schedules.
- Onboarded and mentored interns and junior engineers. Organized a couple of meeting sessions to give new hires an overview of the system, showing them the necessary documentation and helping them set up.
- Designed and developed a new service for enterprise customers. The new microservice will handle asset assignment, contract generation, payment schedules, and other features powering a SaaS product for enterprise customers.
- Did some work on the fintech arm of the company. It mostly involved splitting the Node.js Monolith into microservices, all written in Go, and moving infra from GCP to AWS.
JavaScript Developer
Skyshares
- Fixed CRUD bugs and server startup errors on the platform's admin interface.
- Upgraded libraries and resolved a couple of security issues.
- Redeployed the server on DigitalOcean and documented deployment processes.
Senior Back-end Engineer
VEGA Global Corporation
- Worked on building a serverless back end for a super app ecosystem with high scalability requirements. Core technologies used were Node.js, TypeScript, the Serverless Framework, AWS Lambda, PostgreSQL, DynamoDB, Amazon S3, Amazon SQS, and Amazon SNS.
- Owned the social media component of the super app that initially just had posts, set up unit tests for the whole system, and handled system design for other parts of the social media component.
- Implemented parts of the social media component, including media upload (which also involved image and video transcoding), comments, clips, and moments (like Instagram or WhatsApp stories).
- Integrated a provider called Mealme for the food delivery component focused on stores and products.
- Participated in code reviews for other parts of the super app ecosystem, which included accounts and booking (hotels and flights).
Lead Engineer
Stylefrica
- Led the development across the entire stack. Used Next.js and TypeScript for the front-end progressive web application (PWA). Node.js, TypeScript, and PostgreSQL were used for the back end. I led a team of three engineers.
- Set up all the repos and development environments for both the front end on Vercel and the back end on Heroku. Will be switching to the Google Cloud Platform (GCP) before going live.
- Divided tasks into two-week sprints and assigned the work across the entire team on Jira. Documented important technical decisions for the whole of the project on Confluence.
- Led weekly stand-up meetings alongside the CEO (product owner) and ensured a smooth workflow. Dropped daily progress updates on Slack with the help of a geekbot I monitor.
- Reviewed code and implemented more essential features like subdomain routing on the front end and Auth, payments, caching, and rate limiting on the back end.
Back-end Developer
Fruitful
- Collaborated with another engineer to develop the entire back end, which consisted of a central TypeScript Core API, a separate Python API handling Plaid integrations, and AWS Lambda written in JavaScript.
- Migrated server-side code on the core API from JavaScript to TypeScript and implemented API versioning and documentation for all endpoints.
- Implemented push notifications and integrations using Salesforce, Twilio, and additional APIs within the core API and AWS Lambda.
- Handled a couple of processes using AWS Lambda, including real-time data synchronization of messages between our back end and Salesforce, batch storage of messaging data from Twilio, and scheduled jobs with Amazon EventBridge.
- Automated internal processes and wrote integration tests using Python. Increased unit test coverage from 0% to over 90% across the core API and all AWS Lambda.
- Added functionality to reprocess SQS events across all old and new AWS Lambdas.
- Automated AWS Lambda deployments with Pulumi, an IaC tool, increasing the reliability of the deployment process.
- Implemented a logging system across the API and AWS Lambda, enabling us to tweak log levels at any time and get access to all logs at different levels using Amazon CloudWatch.
- Handled release management across different environments, including development, QA, and user acceptance testing across the back end.
Back-end Engineer
Elen Financial Software
- Collaborated with a software architect and tech lead and two other back-end engineers, contributing to a system with over 15 microservices.
- Documented high-level technical decisions made for new services while collaborating with an architect. I spent the most time on the third service, focusing on completing the initial tasks before handing the project off to work on older services.
- Built three new services in six months using TypeScript. These services handled email and platform integrations and improved the platform's user experience for financial advisors.
- Championed the migration of all server-side code from JavaScript to TypeScript by using the services I built as examples, explaining some of my configuration and design choices, and helping others get comfortable with the migration.
- Cut down CI pipeline costs on AWS CodeBuild by around 83% by integrating NX into our monorepo and running tests for affected services when making pull requests.
- Replaced the internal RabbitMQ client with a newer version, using an open source wrapper for amqplib called Rascal. This helped us simplify configuration and error handling for more recent services.
- Handled tasks involving optimizations, refactoring, and feature additions and worked on older services as part of a team.
Associate Software Engineer
Decagon
- Collaborated with the company's agency and boot camp arm. Worked on projects and brought real-world experience to the classroom as an assistant instructor for the Node.js tech stack.
- Worked on several projects with most of the clients from Africa and Europe on the agency arm. Some key companies I worked with were a lifestyle application company in Kenya and a Web3 company in Europe.
- Helped migrate the lifestyle application's back end to a microservice. Overall, the back end was split into tens of services communicating over RabbitMQ on Google Kubernetes Engine. I personally worked on the event ticketing service.
- Mostly focused on data engineering work for the Web3 company, such as capturing historical on-chain transaction data. I built serverless pipelines on AWS and used Coin Gecko and the company-owned blockchain node to pull in on-chain data.
- Taught Node.js and TypeScript as an assistant instructor to over 100 students across three cohorts on the boot camp arm. Some other peripheral technologies we covered include MongoDB, PostgreSQL, Redis, Express, and DevOps Fundamentals.
- Held online talks and classes for students pre-boot camp via Zoom, which resulted in a 120% increase in students who showed up in person for entry assessments and a 75% increase in students who actually passed those in-person assessments.
- Built tools for recruitment and ops teams at the boot camp that mostly replaced manual processes.
Full-stack Developer
Freelance Clients
- Worked as a full-stack engineer at a fashion eCommerce startup, where I built the MVP alongside another engineer within four months. Maintained the product and extended it with new functionality for over a year after the launch.
- Built a web app for public schools used by parents to monitor their child's school performance in real time. Use cases included alerts for when grades dropped below a certain level. I also onboarded two engineers when I moved to full-time work.
- Joined a startup where I built a blog that was initially a Gatsby static site, migrating it later to Next.js and Strapi. I added numerous features, including gifting readers with the highest scores on the blog's occasional quizzes.
Experience
Mock Premier League API
https://github.com/Caleb-Oneyemi/mock-premier-league-apiAPI supports auth, caching, rate limiting, and a bunch of other common operations. I built the project from scratch as a simple template to structure back-end Node.js projects.
MAX Loan Asset Management System
In a rapidly moving team with tons of complex real-world operational challenges, I had to focus on improving the flexibility and reliability of the system to address those real-world issues. There were a couple of major issues we had when I joined, and these included service degradation/downtime and failed operations from external systems we integrated with.
Over time, I played a role in addressing some of these challenges and more. We initially used Grafana/Loki for monitoring, and given that some of our microservices were making synchronous calls to other services, this was not enough. I collaborated with my technical lead and the DevOps team to introduce Prometheus for metrics and Jaeger for tracing to help debug and resolve degradation issues. I also introduced queuing and retry mechanisms to resolve the occasional failed operations from external systems.
Besides these, I worked on other feature additions along with moving the contract management component to a dedicated service out of the core revenue operations back-end service.
Elen Back Office CRM
With this goal in mind, I joined the team and built out three microservices in TypeScript with a focus on integrations over a period of about four months. I also improved data import performance and reduced CI pipeline costs, which were two critical issues when I joined.
I helped lead the migration of older services to TypeScript since I was the first engineer on the team with previous TypeScript experience, and I also replaced our internal RabbitMQ library with an open-source AMQP wrapper. These actions helped simplify configuration and enabled us to spot errors earlier, thereby increasing the overall reliability of the system.
Vega Super App
http://vegagem.com/I improved the handling of posts, decoupled the existing media upload implementation from posts, and extended it to handle uploads for other Lambda-based services I implemented including clips, comments, and moments (like Instagram stories). I also stabilized the overall API by fixing errors and adding tests, which took coverage from a little under 20% to over 90%.
Ethereum Web Socket Server
https://github.com/Caleb-Oneyemi/eth-socket-serverThe API allows subscribers to configure the events they listen to. They can listen to all transactions or transactions related to a specific ETH address.
The tech stack used includes Node.js, TypeScript, TypeORM, PostgreSQL, Socket.IO, Express, TypeDI (for dependency injection), Docker, and Docker Compose.
Education
Bachelor's Degree in Physics
Covenant University - Ota, Nigeria
Skills
Libraries/APIs
Node.js, React, Socket.IO, Twilio API, InversifyJS, Stripe API
Tools
RabbitMQ, Git, Terraform, Google Kubernetes Engine (GKE), Sequelize, Knex.js, SendGrid, Amazon Simple Notification Service (SNS), Amazon Simple Queue Service (SQS), TypeDI, Docker Compose, Etherscan, Slack, Helm, Auth0
Languages
TypeScript, JavaScript, GraphQL, Python, SQL, Go
Frameworks
Express.js, Koa, NestJS, Jest, Next.js, Serverless Framework, Alchemy
Platforms
AWS Lambda, DigitalOcean, Docker, Kubernetes, Google Cloud Platform (GCP), Amazon Web Services (AWS), Heroku, Mailgun, Ethereum
Storage
Redis, MongoDB, PostgreSQL, MySQL, Amazon S3 (AWS S3), Amazon DynamoDB
Other
TypeORM, Ethers.js, Pulumi, WebAssembly (Wasm)
How to Work with Toptal
Toptal matches you directly with global industry experts from our network in hours—not weeks or months.
Share your needs
Choose your talent
Start your risk-free talent trial
Top talent is in high demand.
Start hiring