Bernard Kanyolo, Developer in Nairobi, Nairobi County, Kenya
Bernard is available for hire
Hire Bernard

Bernard Kanyolo

Verified Expert  in Engineering

System Design Developer

Location
Nairobi, Nairobi County, Kenya
Toptal Member Since
May 14, 2021

Bernard is a professional software engineer with over five years of experience designing, implementing, and maintaining systems. He really enjoys the challenge of architecting scalable systems to solve complex problems. Bernard is also a quick learner and has worked with many technologies and environments over the years, including Go, Ruby, and JavaScript.

Portfolio

Linux Foundation (via Contracting Firm)
Ruby on Rails (RoR), Go, Serverless Architecture, AWS Lambda, Amazon DynamoDB...
Ligo
Ruby on Rails (RoR), Amazon EC2, PostgreSQL, Elasticsearch, Amazon S3 (AWS S3)...
Remote Contracting Firm
JavaScript, PostgreSQL, Go, Heroku, Vue, Node.js, Pivotal Tracker, Trello...

Experience

Availability

Part-time

Preferred Environment

MacOS, Visual Studio Code (VS Code), Slack, Git, GitHub

The most amazing...

...optimization I've made to a back-end system reduced the integration testing time for an internal service from about 10 minutes to 40 seconds!

Work Experience

Software Engineer, Dev Analytics Team

2019 - 2020
Linux Foundation (via Contracting Firm)
  • Built systems to support fetching, storing, analyzing, enriching, and displaying data from different open source projects.
  • Built and maintained APIs in Go and Rails that worked with Elasticsearch and Kibana to display rich dashboards for the open-source projects.
  • Built a serverless service to optimize homepage loading times by periodically caching frequently accessed homepage data in AWS DynamoDB, taking the load off the Elasticsearch server.
Technologies: Ruby on Rails (RoR), Go, Serverless Architecture, AWS Lambda, Amazon DynamoDB, Amazon API Gateway, Amazon Simple Notification Service (Amazon SNS), Amazon Simple Queue Service (SQS), Amazon EC2, Amazon Elastic Container Service (Amazon ECS), Kubernetes, Elasticsearch, Kibana, Amazon Web Services (AWS), Docker

Software Engineer

2019 - 2020
Ligo
  • Designed and implemented features for the company's contract management platforms, such as tagging, reporting, discussions, and document rendering.
  • Analyzed performance with tools like AppSignal and optimized queries to improve page response times. Mostly involved refactoring N+1 queries to use eager loading.
  • Maintained legacy codebase while working with support daily to meet ever-changing customer demands and fixing bugs.
  • Designed and implemented an integration between our app and Google services that enabled our customers to sync their documents to Google Drive easily. Made it modular to allow other providers, e.g., OneDrive, to be easily added later.
Technologies: Ruby on Rails (RoR), Amazon EC2, PostgreSQL, Elasticsearch, Amazon S3 (AWS S3), Devise, Ruby

Software Engineer

2016 - 2020
Remote Contracting Firm
  • Built a learning tracking tool to help developers track their learning progress and actively gather feedback. This helped optimize internal developer growth.
  • Worked with various contracting partners globally, integrated as part of their teams (listed separately).
  • Mentored junior developers that joined the company and helped get them ready to work with external partners.
Technologies: JavaScript, PostgreSQL, Go, Heroku, Vue, Node.js, Pivotal Tracker, Trello, Ruby on Rails (RoR), Agile, Scrum, Ruby

Software Engineer, Studio Labs Team

2018 - 2018
InVision (via Contracting Firm)
  • Built the initial integration between InVision Studio and Slack that allowed designs to be easily shared from within the Studio into Slack.
  • Helped build the initial integration between InVision Studio and GettyImages that allowed Studio users to easily browse and bring in images from GettyImages and iStock into their workflow.
  • Helped set up initial dev tooling for the team (shared repos, packages, and workflow).
Technologies: JavaScript, Node.js, React, Redux, Jest, TypeScript

Software Engineer, RBI Digital team

2017 - 2018
Restaurant Brands International (via Contracting Firm)
  • Set up and wrote an initial set of integration tests for our microservices, including an internal testing framework that cut down testing time for service to less than a minute.
  • Maintained logging and monitoring service on the back end that supported a major restaurant chain's mobile ordering app.
  • Helped create a support portal for our support operators.
Technologies: JavaScript, Node.js, Go, GoCD, AWS Lambda, Amazon Simple Queue Service (SQS), Amazon Simple Email Service (SES), Amazon CloudWatch, Amazon S3 (AWS S3), Amazon RDS, Amazon API Gateway, Amazon Web Services (AWS)

Integration Testing Tool for RBI Digital Team

When I joined, the team drastically needed end-to-end tests for the microservices APIs. After talking with each microservice owner, I was tasked to build a tool that our build and deploy tools could run after services are deployed to verify the integrity of the deployed APIs.

Go offered the best choice since we could easily build the tool and have the CI (GoCD) use it across all pipelines. The type safety and concurrency paradigms also informed this decision.

At the end of the project, I had:
• Worked with each team member to define a DSL that we can all use to define the end-to-end tests
• Implemented the tool from scratch to work with this internal DSL and run the test suites as needed
• Introduced a "flow" mechanism, enabling developers to test a specific business flow (.e.g. signup, checkout) in the form of an independently run set of API tests. This helped developers modularise their tests.
• Further optimized the flow feature to enable multiple flows to be run concurrently since they were independent, which cut the run time of a service's full test suites from around 10 minutes to just around 40 seconds. This runtime would also no longer grow linearly with the number of flows but rather remain constant.

Languages

Go, Ruby, JavaScript, TypeScript

Frameworks

Ruby on Rails (RoR), Hapi.js, Redux, Jest

Tools

Slack, Git, Amazon Simple Queue Service (SQS), Amazon Simple Email Service (SES), Amazon CloudWatch, GitHub, Amazon Simple Notification Service (Amazon SNS), Amazon Elastic Container Service (Amazon ECS), Kibana, Pivotal Tracker, Trello

Platforms

Visual Studio Code (VS Code), AWS Lambda, Amazon EC2, Kubernetes, Heroku, MacOS, Amazon Web Services (AWS), Docker

Other

APIs, Software Engineering, System Design, Data Structures, API Gateways, Amazon API Gateway, Algorithms, Operating Systems, GoCD, Amazon RDS, OData, Concurrency

Libraries/APIs

Node.js, React, Devise, Vue

Paradigms

Serverless Architecture, Agile, Object-oriented Programming (OOP), Scrum, Testing

Storage

Amazon S3 (AWS S3), PostgreSQL, Databases, Elasticsearch, Amazon DynamoDB

Collaboration That Works

How to Work with Toptal

Toptal matches you directly with global industry experts from our network in hours—not weeks or months.

1

Share your needs

Discuss your requirements and refine your scope in a call with a Toptal domain expert.
2

Choose your talent

Get a short list of expertly matched talent within 24 hours to review, interview, and choose from.
3

Start your risk-free talent trial

Work with your chosen talent on a trial basis for up to two weeks. Pay only if you decide to hire them.

Top talent is in high demand.

Start hiring