Overview
Technical skills
Timeline
Roles

Overview

Fullstack web developer (middle level) focused on pragmatic production web apps and API integrations. The strongest proven skill is custom state and lifecycle handling for UX surfaces and backend AI integration, evidenced by src/hooks/use-toast.ts and server/gemini.ts. There is limited public evidence of test coverage, measured performance work, advanced accessibility engineering, or large-scale system design.

Technical skills

Python
Node JS• Senior • 5y+
JavaScript• Senior • 4y+ • 5+ projects
TypeScript• Middle • 4y+ • 4 projects
Node JS
Express
Sequelize
Multer
Bcrypt
Databases
Supabase
PostgreSQL• 4y+ • 3 projects
MySQL• 3y+ • 3 projects
Frontend
Next.js
Tailwind CSS
Zod
React Query
React Hook Form
Angular• 5y+ • 1 project
React.js• 3y+ • 3 projects
DevOps
Git• 5y+ • 5+ projects
GCP• 1 project
QA
Playwright
Vitest

Timeline

Software Developer Middle
Odyssey Technologies Full-Time
Jun 2021 to Present 5 Years 2 Months Kampala In office

Optimized application performance by refactoring code and improving database management, leading to faster response times. Built user-facing features using modern front-end frameworks, focusing on usability and better UX.

Participated in troubleshooting and debugging to reduce issue resolution time and improve reliability.

React.jssince 2021
WordPress
MySQL
Node JSsince 2021
Python
PostgreSQLsince 2021
Uganda Institute of Information and Communications Technology (UICT)
Non-Degree Program Computer Science
2024–2026 Kampala, Uganda
Software Developer Middle
Qase Full-Time
Oct 2023 to Dec 2024 1 Year 2 Months Victoria Remote only

Developed new features and maintain the effiecient performance of the system using JavaScript, React, TypeScript, and Node.js in line with client requirements and deadlines. Worked with cross-functional teams to design, implement, and debug real-world software solutions.

Contributed to improving system reliability and user experience through iterative development and issue resolution.

JavaScript
React.js
TypeScript
Node JS
Nest.JS
Software Developer Middle
Lethub Full-Time
Jun 2022 to Oct 2023 1 Year 4 Months Victoria Remote only

Implemented RESTful APIs to integrate the leasing platform with external services and improve data accessibility.

Developed and maintained scalable platform features using Angular and Node.js, supporting core leasing workflows.

Used Git for version control to manage the codebase and coordinate development with the team.

Angular
Node JS
Git
PostgreSQL
Middle Backend Developer Confidence: Medium API Engineer
Backend Node.js engineer (middle level) focused on REST APIs and practical integrations with AI and cloud storage, with a strength in implementing end-to-end features. The strongest proven skill is integrating LLM services and tool endpoints as shown in server/gemini.ts and the supabase MCP function (supabase/functions/mcp/index.ts). Public code shows limited evidence of production hardening such as migration history, secure credential handling, systematic testing, advanced observability, or robust operational patterns.
API Design
3/10
How well APIs are designed
Basic REST API design with organized endpoints and fallback handling but missing versioning, pagination, idempotency strategy, and consistent error contract.
Evidence
mentor-me-Backend/server/routes/api.ts: multiple REST endpoints (GET /health, POST /chat/message, POST /auth/register) showing API structure and fallback behavior
TaskManager-Backend/controllers/taskController.js: CRUD endpoints with includes and response shapes
Data Layer & Database
4/10
Working with databases
Reasonable data model design and associations using Sequelize with many-to-many relationships and include usage, but no migration history, transactions, or explicit isolation handling shown.
Evidence
TaskManager-Backend/models/index.js: detailed Sequelize associations (belongsToMany, hasMany) and onDelete policies
TaskManager-Backend/controllers/taskController.js: uses Task.findByPk, setAssignees, and eager-loading includes
Scalability & Performance
2/10
Handling load and speed
Some integration work (GCS upload, AI calls) but little evidence of caching, queueing, rate limiting, or performance tuning for scale.
Evidence
TaskManager-Backend/controllers/taskController.js: uploadFileToGCS usage for voice note storage
mentor-me-Backend/server/gemini.ts: direct calls to Google GenAI client for content generation (no batching/queueing)
System Architecture
3/10
Overall system structure
Clear module separation (models, controllers, services, AI client) and small service-like function for MCP, but overall monolith-style architecture and no explicit service decomposition or config-driven secret management shown.
Evidence
mentor-me-Backend/server/gemini.ts: dedicated AI client and helper functions
TaskManager-Backend/controllers/notificationController.js and attachmentController.js: separated controllers and email/template logic
Security & Auth
2/10
Protecting data and access
Basic input validation and environment-based API key checks exist, but insecure password handling and inconsistent auth/token management reduce demonstrated security maturity.
Evidence
mentor-me-Backend/server/gemini.ts: reads GEMINI_API_KEY from environment and returns clear fallback when missing
TaskManager-Backend/controllers/userController.js: createUser sets a plain default password (no hashing shown) and limited input validation
Reliability & Observability
2/10
Stability and monitoring
Controllers use try/catch and logging, but there is no structured logging, metrics, retries with backoff, circuit breakers, timeouts, or graceful shutdown handling evident.
Evidence
TaskManager-Backend/controllers/notificationController.js: try/catch with console.log and error responses
mentor-me-Backend/server/gemini.ts: try/catch with console.error but no retries/timeout controls
Expertise
Backend AI & LLM• Middle
Node.js• Middle
Technologies
Python
Supabase
Bcrypt
Multer
Recommendations
  • Harden authentication and secrets: replace plain default passwords with proper bcrypt hashing, implement JWT lifecycle and refresh/revocation flows, and centralize secret management via environment/config tooling.
  • Add database migration history and transactional boundaries: introduce a migrations folder, use transactions for multi-step updates (e.g., task creation + assignees + activity logs), and document schema evolution.
  • Improve reliability and observability: add structured logging (correlation ids), timeouts and retries with backoff for external calls (AI API, GCS), and basic metrics/alerts (Prometheus/Grafana or hosted equivalents).
  • API improvements: adopt consistent error contract, add pagination on list endpoints, and implement idempotency or deduplication for important POST actions.
  • Add automated tests and CI: introduce unit and integration tests for controllers and the AI integration, and add CI checks to run linting and tests on PRs.
Repositories
The developer's experience in this domain has been verified based on AI analysis of the following repositories:
Middle Frontend Developer Confidence: Medium Fullstack
Fullstack web developer (middle level) focused on pragmatic production web apps and API integrations. The strongest proven skill is custom state and lifecycle handling for UX surfaces and backend AI integration, evidenced by src/hooks/use-toast.ts and server/gemini.ts. There is limited public evidence of test coverage, measured performance work, advanced accessibility engineering, or large-scale system design.
UI Component Architecture
3/10
How interface parts are built
Some deliberate component and hook-level design (custom global toast store and clear CSS token system) but no evidence of a bespoke component library or advanced composition patterns; much of the UI scaffolding appears template-based.
Evidence
mentor-me-Backend/src/hooks/use-toast.ts
mentor-me-Backend/src/index.css
musicUI/src/app/layout.js
Responsive & Cross-browser
3/10
Works on all screens and browsers
Basic responsive and theming work using CSS variables, dark-mode, and prefers-color-scheme; no advanced layout strategies (container queries, fluid type) or explicit RTL/i18n handling found.
Evidence
mentor-me-Backend/src/index.css
musicUI/src/app/globals.css
Performance Optimization
2/10
Speed of the interface
Small, pragmatic optimizations (e.g., toast list limiting and delayed removal) but no measured performance artifacts, bundle analysis, code-splitting strategy, or virtualization for long lists.
Evidence
mentor-me-Backend/src/hooks/use-toast.ts
Accessibility & Semantics
2/10
Usable for everyone
Minimal accessibility signals (html lang attribute, some alt attributes present in template code) but no focused a11y work on custom widgets, ARIA usage, or CI a11y tooling detected.
Evidence
musicUI/src/app/layout.js
mentor-me-Backend/src/hooks/use-toast.ts
State Management & Data Flow
4/10
Managing data in the app
Clear, purposeful state management for a global UX surface: a reducer-driven toast store with memory state, listener subscriptions and removal queue shows thoughtful lifecycle handling; backend controllers show pragmatic error handling and data flows for CRUD and integrations.
Evidence
mentor-me-Backend/src/hooks/use-toast.ts
mentor-me-Backend/server/gemini.ts
UX & Visual Polish
4/10
Look and feel quality
Strong visual tokenization and polished CSS (design tokens, gradients, subtle animations and shadows) indicate attention to visual polish, though UX edge states (comprehensive skeletons, undo flows across UI) are not consistently present in the inspected frontend files.
Evidence
mentor-me-Backend/src/index.css
musicUI/src/app/globals.css
Expertise
React• Middle
Frontend Architecture & Build Tools• Middle
Technologies
Node JS• Senior • 5y+
Tailwind CSS
Next.js
Express
React.js• 3y+ • 3 projects
React Query
Sequelize
Zod
React Hook Form
Recommendations
  • Develop fullstack features that integrate AI services and real-time responses (API integration, sanitization, error handling, and pragmatic fallbacks).
  • Own CRUD backends and related flows including file uploads, email notifications, and Sequelize-based data models for SaaS MVPs.
  • Build UI components and small design-system work that extends the CSS tokens already present and implement robust edge states and accessibility for custom widgets.
  • Implement practical frontend state solutions (hooks, query caching) and ship user-facing features with clear rollback/error paths.
Repositories
The developer's experience in this domain has been verified based on AI analysis of the following repositories:
Middle QA Engineer Confidence: Medium Generalist
Full-stack JavaScript developer (Middle) focused on building pragmatic backend APIs and integrating external services, with a strength in AI and cloud API integrations. The strongest proven skill is building resilient API integration and error-handling logic as shown in server/gemini.ts and the supabase functions (supabase/functions/mcp/index.ts). There is little evidence of owned test suites, contract testing, CI test engineering, or formal performance/load testing in the human-authored code.
Test Automation Frameworks
2/10
Building automated tests
Minimal test framework presence is visible (test runner configs and devDependencies) but there are no developer-authored fixtures, isolated test infrastructure, or selector discipline in the human-authored code.
Evidence
mentor-me-Backend/vitest.config.ts: vitest configuration with setupFiles and jsdom environment
mentor-me-Backend/package.json: devDependency @playwright/test and test script 'vitest run'
Test Coverage & Strategy
1/10
What and how to test
No meaningful test coverage or risk-based test strategy observed; only runner/config exists and there are no negative-path, property-based, or contract tests in the human-authored sources.
Evidence
mentor-me-Backend/vitest.config.ts: test config but no tests included in human-authored files
mentor-me-Backend/package.json: 'test' script present but no test suites or test files in human-authored bucket
API & Integration Testing
3/10
Testing how parts work together
Clear evidence of integration work and defensive handling for external APIs (rate limits, missing keys, parse errors), but no contract testing or schema validation harnesses.
Evidence
mentor-me-Backend/server/gemini.ts: generateMentorChatResponse has try/catch, JSON parse handling, and fallback getErrorChatResponse
mentor-me-Backend/supabase/functions/mcp/index.ts: fetch to external AI with explicit handling for non-ok statuses (429, 402) and ToolError usage
Performance & Load Testing
Testing speed under load
Not evidenced in public code
Bug Reporting & Analysis
2/10
Finding and describing bugs
Ad-hoc debugging traces and sensible error responses are present in controllers, but there are no formal reproducible bug reports, root-cause analyses, or flaky-test investigations.
Evidence
TaskManager-Backend/controllers/attachmentController.js: extensive console.log debug traces and error handling in download/create flows
TaskManager-Backend/controllers/taskController.js: try/catch error handling and informative logging around task create/update operations
CI Test Integration
2/10
Running tests automatically
Basic test integration artifacts exist (test scripts and runner config), but there is no CI matrix, per-test artifact capture, quarantine mechanics, or selective diff-based test runs in the human-authored files.
Evidence
mentor-me-Backend/package.json: 'test' script and devDependencies include vitest and @playwright/test
mentor-me-Backend/vitest.config.ts: test runner configuration with setupFiles (no CI-specific wiring observed in human-authored files)
Expertise
Unit & Component Testing• Junior
Industries
Software• Middle
Technologies
TypeScript• Middle • 4y+ • 4 projects
Playwright
GCP• 1 project
Vitest
Recommendations
  • Build backend REST/GraphQL services and integrations that require robust external API error handling (Node/TypeScript + Express/Sequelize).
  • Implement and own AI integration features that call cloud ML APIs and provide graceful fallbacks and logging (Google GenAI/GCP integrations).
  • Develop medium-sized web application features that need pragmatic debugging, logging, and data-model associations (Sequelize models and controllers).
  • Add test ownership work: create unit/component tests, negative-path cases, and simple CI test-job wiring to raise QA confidence.
Repositories
The developer's experience in this domain has been verified based on AI analysis of the following repositories: