Software Developer
Python
JavaScript
Node JS
PHP
TypeScript
Dart
Data Layer & Database: 5/10
Security & Auth: 5/10
API Design: 4/10
Active 11 hours ago
Invite to interview
Message
Download CVCV
Overview
Technical skills
Timeline
Roles
Overview
Flutter mobile developer focused on teacher-facing education tools and feature-rich client UI at a middle level of experience. The strongest proven skill is building end-to-end Flutter features that integrate image capture, LLM-backed analysis and PDF generation as seen in lib/attendance_service.dart and lib/lesson_plans_screen.dart. Public code shows limited evidence of offline-first sync, background work, formal testing or CI/release automation.
Technical skills
Python
JavaScript
Node JS• Middle
PHP• Junior
TypeScript• Junior
Dart• Middle
Python
Django
Node JS
Express
Multer
PHP
Laravel
Databases
MySQL
MongoDB
PostgreSQL
Frontend
Tailwind CSS
Zod
Recharts
React.js
Next.js
Mobile
React Native
Flutter
Declarative UI
State Management
Repository Pattern
DevOps
Git
Analytics
Power BI
Tableau
Timeline
Business Technology Officer
•
Middle
E&M Technology House Uganda
•
Full-Time
Worked in a structured environment on practical software development for FinTech and client projects. Contributed to web and mobile application development using React.js, Next.js, Laravel, and PostgreSQL. Supported API and database design and applied secure coding practices in collaborative agile work. Assisted with reliability tasks such as troubleshooting issues and helping maintain data confidentiality and company standards.
React.js
Next.js
Laravel
PostgreSQL
Software Engineer (Junior)
•
Junior
Chil Femtech Center
•
Full-Time
Developed and scaled a telemedicine platform used by partner clinics and service centers. Rebuilt the website from a static template into a more interactive React-based platform and improved system stability. Built and integrated a Laravel backend for appointment booking, video sessions, and data management, reducing outages. Implemented core APIs with PHP to improve operational efficiency and reduce system outages.
React.js
Next.jssince 2025
TypeScript
PostgreSQLsince 2025
Laravelsince 2025
PHP
Software Engineer (Intern)
•
Junior
SunbirdAI
•
Internship
Contributed to AI product work on a multilingual speech transcription tool and a text translation tool. Collaborated with product teams to identify and fix critical front-end issues, improving user experience and reducing response time. Implemented multilingual transcription support for multiple African languages. Redesigned and updated UI styling to match brand guidelines and improved overall site usage through UX and layout changes.
React.jssince 2024
Node JS
Middle Backend Developer
Confidence: Medium API Engineer
Full-stack JavaScript engineer (mid-level) focused on building REST APIs and backend features with practical strengths in JWT-based auth and Mongoose data modelling. The strongest proven skill is building secure, production-ready Node/Express features including JWT auth, cookie handling and Mongoose aggregation as seen in controllers/authController.js and models/tourModel.js. The public code lacks evidence of end-to-end system design, automated tests, robust observability, or multi-service architecture.
API Design
4/10
How well APIs are designed
API design shows standard REST patterns, auth middleware, and query features but lacks explicit versioning, idempotency keys, or a documented error contract.
Evidence
katg999/NODEJSPRACTICEPROJECT/controllers/authController.js - protect and restrictTo middleware with JWT handling
katg999/NODEJSPRACTICEPROJECT/utils/apiFeatures.js - query filtering/sorting/pagination pattern
ericjagwara/New_Quest/lib/api.ts - client-side fetch wrappers with timeout logic and export access checks
Data Layer & Database
5/10
Working with databases
Data layer uses Mongoose schema design, indexes, virtual population and aggregation pipelines showing deliberate modelling and performance awareness but no migration history or explicit transaction handling.
Evidence
katg999/NODEJSPRACTICEPROJECT/models/tourModel.js - indexes, virtual populate, geospatial 2dsphere index and schema validations
katg999/NODEJSPRACTICEPROJECT/controllers/tourController.js - aggregation pipelines for stats and geo queries
katg999/NODEJSPRACTICEPROJECT/controllers/tourController.js - use of $geoNear and aggregation stages
Scalability & Performance
4/10
Handling load and speed
Some production-minded choices such as rate limiting, image resizing with parallel processing and client-side request timeouts are present, but there is limited evidence of caching, queueing, or measured performance tuning.
System Architecture
3/10
Overall system structure
Reasonable modular structure with routers, controllers and factory handlers demonstrates conventional service decomposition but no multi-service architecture or explicit config/secret management patterns.
Security & Auth
5/10
Protecting data and access
Good practical security controls are implemented including JWT auth, cookie hardening, input sanitization and CSP, though some client-side token handling could be hardened further.
Reliability & Observability
3/10
Stability and monitoring
Basic reliability patterns exist such as centralized error handling and timeouts, but there is little evidence of retries with backoff, graceful shutdown, structured correlation ids, or metrics/alert integration.
Verified artifacts
Expertise
Node.js• Middle
Industries
Education• Middle
Technologies
Python
PHP• Junior
Node JS• Middle
MySQL
MongoDB
PostgreSQL
Express
Laravel
Multer
Django
Git
Recommendations
- Develop REST APIs and backend features with Node.js and Express, including JWT auth flows and Mongoose schemas for data-driven web apps.
- Implement file upload and image-processing microservices or worker queues using multer and sharp for scalable media handling.
- Harden production readiness by adding structured logging, metrics (Prometheus/OpenTelemetry), retries with backoff and graceful shutdown handling.
- Add automated tests and CI pipeline to validate auth, data integrity and critical aggregation logic before deployments.
Repositories
The developer's experience in this domain has been verified based on AI analysis of the following repositories:
Middle Mobile Developer
Confidence: Medium Cross-platform
Flutter mobile developer focused on teacher-facing education tools and feature-rich client UI at a middle level of experience. The strongest proven skill is building end-to-end Flutter features that integrate image capture, LLM-backed analysis and PDF generation as seen in lib/attendance_service.dart and lib/lesson_plans_screen.dart. Public code shows limited evidence of offline-first sync, background work, formal testing or CI/release automation.
Platform Native Mastery
2/10
Knowing the mobile platform
Basic lifecycle awareness present but no evidence of process-death handling, state restoration, structured concurrency tied to screen lifecycle or advanced platform-specific lifecycles.
Evidence
lib/chart_screen.dart: WidgetsBinding.instance.addPostFrameCallback used to read route args and initialize flows
lib/chart_screen.dart: dispose() implemented to dispose controllers and calls _attendanceService.dispose()
lib/attendance_screen.dart: StatefulWidget lifecycle with SharedPreferences usage in _getUserPhone()
Mobile UI/UX & Responsiveness
4/10
Smooth mobile experience
Good, pragmatic Flutter UI work and responsive layout choices for phone screens; not advanced adaptive layouts for tablets/foldables, no explicit accessibility or RTL/dynamic-type handling observed.
Evidence
lib/lesson_plans_screen.dart: responsive layout with ConstrainedBox, SingleChildScrollView and GridView usage
lib/hygiene_products_screen.dart: GridView.builder and well-structured product card UI
pubspec.yaml: custom fonts and multiple assets declared for polished UI
Performance & Battery
1/10
Speed and battery use
No measured performance work or battery-aware background tasks; only basic async usage and UI animations without profiling or memory/jank fixes.
Evidence
lib/chart_screen.dart: uses ScrollController.animateTo for smooth scrolling
lib/lesson_plans_screen.dart: asynchronous PDF generation in _generatePdf
Offline & Data Sync
1/10
Working offline and syncing
No offline-first store, no queued sync or conflict-resolution strategy; simple network-first flows and single-shot backend posts only.
Evidence
lib/attendance_screen.dart: _getUserPhone uses SharedPreferences only for a single value
lib/attendance_service.dart: submitAttendanceData posts directly to backend without retry queue or local storage
Device Integration
3/10
Using device features
Solid device integration for common features - image picker, opening files and file storage - but missing full permission-denial flows and edge-case handling for camera/storage permissions.
Evidence
pubspec.yaml: permission_handler listed as dependency
lib/attendance_screen.dart: uses ImagePicker.pickImage for gallery selection
lib/attendance_service.dart: openGeneratedPDF uses OpenFile.open to open generated PDFs
Release & App Lifecycle
2/10
Building and publishing apps
Basic release-related artifacts present (platform Podfiles, launcher icons, splash configuration) but no CI, fastlane, signing, crash reporting or staged-release evidence.
Evidence
ios/Podfile: platform and flutter pod setup present
macos/Podfile: flutter_macos_podfile_setup present
pubspec.yaml: flutter_launcher_icons and flutter_native_splash configured
Expertise
Flutter• Middle
Industries
Education• Middle
Technologies
Dart• Middle
Flutter
React Native
Repository Pattern
Declarative UI
State Management
Recommendations
- Own and harden the image-to-server flow - add permission denial handling, retries with idempotency and an offline queue for intermittent networks.
- Add automated tests and basic CI pipelines - widget tests for key screens and integration tests for image/PDF flows.
- Improve lifecycle and process-death handling - implement state restoration for long-running flows and tie async work cancellation to widget lifecycle.
- Harden OpenAI integration - avoid embedding sensitive prompts in client code, move model calls to a trusted backend and secure API keys using platform secure storage.
Repositories
The developer's experience in this domain has been verified based on AI analysis of the following repositories:
Junior Frontend Developer
Confidence: Medium UI Engineer
Frontend engineer (around Middle level) focused on React/Next stacks with a practical strength in building small, reusable UI primitives and client-side data flows. The strongest proven skill is building reliable client-side integrations and state flows with concrete artifacts in lib/api.ts (AbortController, token expiry and role-aware filtering) and components/ui/use-toast.ts (custom toast pubsub). There is limited evidence of system-level architecture, automated tests, advanced accessibility work or measured performance tuning in public code.
UI Component Architecture
5/10
How interface parts are built
Custom component/hook work is present with deliberate in-memory state and a small token/theme system, showing practical UI engineering rather than copy-paste UI-kit usage.
Evidence
ericjagwara/New_Quest/components/ui/use-toast.ts: custom in-memory toaster implementation with reducer, listeners and public toast API
ericjagwara/New_Quest/hooks/use-toast.ts: identical custom hook for use in client components (pubsub-style memoryState)
ericjagwara/New_Quest/app/globals.css: CSS variables and theme tokens used as a lightweight design surface
Responsive & Cross-browser
3/10
Works on all screens and browsers
Basic theming and CSS variables are used and Tailwind is present, but there is no advanced responsive strategy or explicit RTL/i18n architecture visible in the human-authored code.
Performance Optimization
4/10
Speed of the interface
Practical, measured client-side work is visible: request cancellation, network timeouts and limits on UI work are implemented, but there is no evidence of bundle analysis, long-list virtualization, or measured before/after performance artifacts.
Accessibility & Semantics
2/10
Usable for everyone
Small accessibility-aware decisions exist indirectly, but there is no systematic ARIA/focus management across custom widgets and some CSS choices are actually accessibility-hostile.
Evidence
ericjagwara/New_Quest/components/ui/use-toast.ts: onOpenChange callback used to dismiss toasts (partial lifecycle/focus hook)
ericjagwara/New_Quest/app/globals.css: selective enabling of user-select for inputs indicates thinking about UX focus, but global user-select disabling is an a11y anti-pattern
State Management & Data Flow
4/10
Managing data in the app
Server-state discipline and client flows show thoughtfulness: token expiry checks, role-based filtering, fallbacks and request cancellation are implemented, plus an in-memory pubsub for toasts; still no formal state machine or optimistic update patterns.
Evidence
ericjagwara/New_Quest/lib/api.ts: hasExportAccess with timestamp expiry, getExportToken/setExportToken and role-based filtering in fetchAttendanceData
ericjagwara/New_Quest/lib/api.ts: fallback data and error handling to avoid UI breakage when API unavailable
ericjagwara/New_Quest/hooks/use-toast.ts: memoryState, listeners and dispatch for cross-component toast updates
UX & Visual Polish
3/10
Look and feel quality
UX-minded touches exist such as theming, fallback datasets to preserve perceived reliability, and toast lifecycle management, but there are missing standard UX refinements like skeletons, consistent error states and undo patterns.
Expertise
React• Junior
Modern Web Frameworks• Junior
HTML & CSS• Junior
Industries
Education• Middle
Technologies
JavaScript
TypeScript• Junior
Tailwind CSS
Next.js
React.js
Zod
Recharts
Recommendations
- Build interactive dashboards and admin UIs where careful client-state handling and small custom components are needed, such as school attendance or operations dashboards.
- Implement mid-size feature work on React/Next projects that require custom hooks, theming and robust API error handling and request cancellation.
- Improve team libraries: extract the toast and session utilities into a small shared UI/internal-utils package and add automated tests and documented edge-case behavior.
Repositories
The developer's experience in this domain has been verified based on AI analysis of the following repositories:
