Bernard Kanyolo
Verified Expert in Engineering
System Design Developer
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
Experience
Availability
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
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.
Software Engineer
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.
Software Engineer
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.
Software Engineer, Studio Labs Team
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).
Software Engineer, RBI Digital team
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.
Experience
Integration Testing Tool for RBI Digital Team
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.
Skills
Libraries/APIs
Node.js, React, Devise, Vue
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
Frameworks
Ruby on Rails (RoR), Hapi.js, Redux, Jest
Platforms
Visual Studio Code (VS Code), AWS Lambda, Amazon EC2, Kubernetes, Heroku, MacOS, Amazon Web Services (AWS), Docker
Languages
Go, Ruby, JavaScript, TypeScript
Storage
Amazon S3 (AWS S3), PostgreSQL, Databases, Elasticsearch, Amazon DynamoDB
Paradigms
Serverless Architecture, Agile, Object-oriented Programming (OOP), Scrum, Testing
Other
APIs, Software Engineering, System Design, Data Structures, API Gateways, Amazon API Gateway, Algorithms, Operating Systems, GoCD, Amazon RDS, OData, Concurrency
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