0% found this document useful (0 votes)
4 views8 pages

Dream Applicant Level

The document is a detailed interview submission highlighting the author's skills in React Query and React Server Components, which improved performance in a healthcare scheduling system. The author has extensive experience in web programming, software engineering, and open-source contributions, and has led projects in various domains including payroll SaaS and fintech platforms. The author expresses enthusiasm for Canonical's mission and the opportunity to contribute to high-performance web front ends for open-source products.

Uploaded by

kongoprince100
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4 views8 pages

Dream Applicant Level

The document is a detailed interview submission highlighting the author's skills in React Query and React Server Components, which improved performance in a healthcare scheduling system. The author has extensive experience in web programming, software engineering, and open-source contributions, and has led projects in various domains including payroll SaaS and fintech platforms. The author expresses enthusiasm for Canonical's mission and the opportunity to contribute to high-performance web front ends for open-source products.

Uploaded by

kongoprince100
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 8

Canonical Written Interview Submission

What skill or knowledge have you acquired in the past year that
has been particularly helpful?

Over the past year, I have focused on mastering React Query and React
Server Components (RSC). React Query has significantly improved how I
handle data fetching, caching, and background updates in large
applications. RSC, on the other hand, has helped me build more
performant and scalable web apps by separating server and client
concerns efficiently.

What motivated you to learn it?

I was working on a healthcare appointment scheduling system where


performance and responsiveness were critical. We were experiencing
redundant network calls, long page load times, and inconsistent states
across components. React Query addressed these pain points by
simplifying caching and refetching logic, while RSC allowed me to offload
server-intensive operations and deliver HTML more efficiently.

What has the impact been for you and your team?

The overall user experience improved drastically. Page load times


decreased by over 40%, and we saw a drop in redundant API calls.
Development also became easier to manage due to the improved
separation of concerns, especially in our monorepo setup. These tools
have become part of our best practices.

Describe your experience of web programming - JavaScript,


Typescript, React, CSS and Python in particular.

I have over six years of experience building web applications using


JavaScript and TypeScript, primarily with React. I consistently follow
modern best practices—such as component-level separation, hooks, and
modular CSS using frameworks like Tailwind CSS and CSS Modules.

In a recent fintech project, I built complex dashboards for transaction


analytics using React, TypeScript, and Chart.js. The app featured real-time
updates using WebSockets and leveraged state management tools like
Zustand and React Context.
For back-end integration, I have experience working with Python using
Flask and FastAPI to build RESTful APIs. I’ve also contributed to schema
design, built data pipelines, and written background tasks using Celery.

Describe your experience building large systems with many


services - web front ends, REST APIs, data stores, event
processing and other kinds of integration between components.

I’ve worked on a payroll SaaS platform where the system was composed
of several microservices:

 A React/TypeScript frontend interfacing with users.


 REST APIs built with Node.js and Python (FastAPI).
 A PostgreSQL database and Redis cache.
 Event-driven features using RabbitMQ for tasks like payslip
generation, tax calculation, and salary disbursement.
 Integration with third-party services for KYC, payments, and email
delivery.
 I implemented observability using Prometheus and Grafana, and
maintained consistent API contracts using OpenAPI specifications.

What are the key things to think about in regard to architecture,


maintainability, and reliability in these large systems?

Loose coupling and strong contracts: Define clear interfaces between


services and maintain them through automated tests and documentation.

Observability: Metrics, logs, and tracing must be first-class citizens to


detect and debug issues quickly.

CI/CD and automation: Automated deployments, linting, and test


pipelines reduce human error and speed up iteration.

Scalability and performance: Caching, lazy-loading, pagination, and


asynchronous processing must be considered early on.

Security and resilience: Rate limiting, secure headers, input


sanitization, and failover mechanisms are crucial.

Describe any experience you have with Flutter.

I have built a prototype cross-platform application in Flutter for internal


use at a logistics company. The app allowed drivers to receive delivery
instructions, update statuses, and navigate using Google Maps. It shared
components with the web version through a unified design system.
Although I have not deployed large-scale Flutter apps yet, I am
enthusiastic about its potential, especially for Canonical’s goal of unifying
desktop and web development.

Software Engineering Experience

What kinds of software projects have you worked on before?

A healthcare appointment system with React, TypeScript, and Express.

A fintech platform with payment, KYC, and analytics features using


MongoDB, FastAPI, and RabbitMQ.

An HR and payroll SaaS tailored to local tax laws, built with React, Node.js,
and PostgreSQL.

A machine learning research platform for academic use, with Python,


Jupyter, and Flask.

Which operating systems, development environments, languages,


databases and frameworks?

OS: Linux (Ubuntu), macOS

Languages: JavaScript, TypeScript, Python, Go (basic), SQL, Bash

Databases: PostgreSQL, MongoDB, Redis

Frameworks: React, Flask, FastAPI, Express, Flutter

Tools: Docker, GitHub Actions, Kubernetes, Webpack, Vite

Outline your thoughts on open-source software development.


Have you been an open-source maintainer, can you describe the
scope of your contributions to those projects?

I strongly believe in open-source as a force multiplier for innovation and


accessibility. I’ve contributed to documentation, bug fixes, and small
features in libraries like React Query, Formik, and Tailwind UI.

I also maintain a small open-source library for formatting currency inputs


in React forms, which has been downloaded over 5,000 times.

What software products have you yourself led which shipped


many releases to multiple customers? What was your role?
I was the technical lead for a payroll SaaS used by over 10 companies. I
led architecture decisions, managed deployments, handled customer
feature requests, and oversaw 3 engineers. I designed versioned APIs and
coordinated cross-functional teams to ship frequent releases.

What is your most senior role in a software engineering


organisation?

Lead Software Engineer and Team Lead.

Describe your span of control and the diversity of products,


functions and teams you led.

I led a team working across HR, payroll, and compliance modules. I


worked with backend engineers, frontend developers, QA testers, and a
product designer to build features used by different departments (HR,
Finance, Admin) across multiple clients.

Outline your views on the role of an engineering manager in


shaping a high-functioning team.

An engineering manager should focus on:

 Creating psychological safety


 Clearing roadblocks
 Enabling growth through mentorship and feedback
 Facilitating technical alignment
 Advocating for quality and user-centric design
 They should act as multipliers of team effectiveness rather than
bottlenecks.

Outline your thoughts on performance in software engineering.


How do you ensure that your product is fast?

Performance starts with design. I prioritize:

Minimizing bundle size (code-splitting, tree shaking)

Optimizing API payloads and pagination

Using caching (React Query, SWR, Redis)

Avoiding unnecessary re-renders in React


Running Lighthouse audits

Writing E2E and load tests to catch regressions

Outline your thoughts on quality in software development. What


practices are most effective in software teams to drive
improvements in quality?

Test-driven development (TDD) where feasible

Code reviews with empathy and clarity

CI/CD pipelines with linting, formatting, and testing

Monitoring and feedback loops from real users

Well-defined acceptance criteria in sprints

Error budgets and SLOs to balance quality vs velocity

Education

How did you rank in your final year of high school in


mathematics? Were you a top student?

I consistently ranked in the top 5% of my class in mathematics. I


represented my school in national math quizzes and scored an A in the
WAEC WASSCE examination.

How did you rank in your final year of high school, in your home
language?

I was among the top 10% in English Language, receiving awards for essay
writing and debate competitions.

Please state your high school graduation results or university


entrance results, and explain the grading system used.

In the WASSCE, I achieved:

A1 in Mathematics and Integrated Science

B2 in English Language

A1 in Physics and Elective Mathematics


Grades range from A1 (best) to F9 (fail).

Can you make a case that you are in the top 5% in your academic
year, or top 1%...?

Yes. My WASSCE results placed me among the top 5% of students


nationally, qualifying me for a competitive Computer Science program.

What sort of high school student were you?

I was driven and curious—often organizing coding and robotics clubs. I


enjoyed chess, debate, and volunteering to help classmates with
computer studies.

Which university and degree did you choose?

Bachelor’s degree in Computer Science from a leading national university.


I also completed an MSc in Computer Science with a focus on Machine
Learning for Cryptocurrency Price Prediction.

What other universities did you consider...?

I considered two other top regional universities but chose this one due to
its research focus and faculty excellence in AI and systems programming.

Overall, what was your degree result and how did that reflect on
your ability?

BSc GPA: 3.73 / 4.0

MSc GPA: 3.92 / 4.0

These scores reflect growth over time. My postgraduate work


demonstrated deeper commitment and maturity in handling complex
research and systems.

Describe any achievements that were truly exceptional.

Developed a blockchain simulation engine for my undergraduate thesis.

Built a cryptocurrency price predictor using LSTM and regression for my


Master’s thesis.
Co-founded a tech club that trained 50+ students in software
development.

What leadership roles did you take on during your education?

Coding Club President

Teaching assistant during my MSc

Organized tech bootcamps and weekend hackathons

Context

Outline your thoughts on the mission of Canonical.

Canonical’s mission to make open-source software accessible and


enterprise-grade aligns with my values. I am particularly inspired by
Ubuntu’s role in cloud infrastructure and developer tools.

What is risky or unappealing?

The scale of Canonical’s ambition means rapid change, which can be


overwhelming. However, this is also what makes the work exciting.

Are there any elements of the company goals that you are unsure
about?

The adoption of Flutter at scale across web and desktop is ambitious and
potentially challenging, but I admire Canonical’s proactive approach.

Who are competitors to Canonical...?

Red Hat (OpenShift, RHEL)

SUSE

AWS in the context of cloud-native services

Canonical can focus on improving ecosystem integrations, documentation,


and education to expand its reach.

What would you most want to change about Canonical?


Improved community onboarding and open issue triage across its open-
source projects.

What gets you most excited about this role?

The chance to build polished, accessible, and high-performance web front


ends for open-source products used globally—and to contribute to Vanilla
Framework and Flutter’s adoption across platforms.

You might also like