AD

Anyuru David Derrick

Professional Software Developer

Kampala, Uganda

ABOUT

As a professional software developer, I am enthusiastic about using technology to create a better future. In addition, I endeavour to make a difference and contribute to making the world a better place. I believe in the ability of technology to effect change and am dedicated to using my abilities to promote love and righteousness. I take tremendous pride in my work and am committed to learning and evolving as a developer.

SKILLS

JavaScriptCSSHTMLPHP
VScodeFigmaGithubPuttyPostman
NodeJsReactTailwind CSS
ReactExpressNextJSJestSuperTestScrum
LinuxWindowsmacOS
SupabaseFirebase
Serverless Architecture
PostgreSQL
Role Based Access ControlRow Level SecurityTwo-Factor AuthenticationOTP
Effective communicationCollaborationTeamworkProblem solving
English (Proficient)Luganda (Fluent)

EXPERIENCE

Final Year Project Team Member

2020 - 2021

Makerere University • Kampala, Uganda

In a team of four, we developed a real-time facial recognition security system that used facial recognition to achieve the security goal. This was done as a requirement to award a bachelor's degree of science in computer science at Makerere University. In this project I explored the different algorithms for facial detection and recognition while evaluating their performance based on metrics for example the accuracy and confusion matrices. This enabled me to choose the right algorithm fit for the system. On the course, one of our biggest challenges was working as a team. We had limited experience working in a team setting and according to my observation this came as a result of social loafing, lack of well defined project scope and goals due to limited planning resulting in scope creep, lack of motivation due to the workload and most of all limited time and skill-set and resources to tackle the project. We had long periods between which we would interact with our supervisors. To overcome these challenges as a team towards the end of the project we resorted to having regular check-ins and dedicating about four hours daily to meet in the same place as to work on the project. This was instrumental in beating social loafing and it helped us as a team to ensure that we build a common understanding of the project and complement each other as team members, learning our strengths and weaknesses. • Explored different algorithms for facial detection and recognition • Evaluated performance based on metrics including accuracy and confusion matrices • Overcame team challenges through regular check-ins and daily four-hour work sessions • Built common understanding and complemented team members' strengths and weaknesses

Software Developer Apprentice

2021 - 2022

Ablesolver Apprenticeship • Uganda

I used the knowledge acquired throughout my previous experiences especially those acquired throughout the Ablesolvers cohort to develop a web system and mobile applications. In the apprenticeship, my fellow students and I worked as a team on a number of projects. These projects included an insurance web application and a Sacco application. To me, these stood out because they really put my skill set to the test and expanded it as well. I gained familiarity with Backend as a service, as a technology where I interacted with Supabase and Firebase, and Serverless Architecture. I also got a chance to facilitate the Ablesolver cohort 2 as an instructor. This improved my interpersonal communication and presentation skills. • Developed web system and mobile applications as part of team projects • Worked on insurance web application and Sacco application • Gained familiarity with Backend as a Service (BaaS) including Supabase and Firebase • Gained experience with Serverless Architecture • Facilitated Ablesolver cohort 2 as an instructor • Improved interpersonal communication and presentation skills

Full Stack Developer

2021 - 2022

Sacco Web Application Project • Uganda

This is a web application that automates sacco activities by enabling sacco members to monitor their performance and monitor their transactions. Challenges included choosing between BaaS and Implementing an API and Database. Since we were constrained in time and resources in terms of head count as a team we found it feasible to choose BaaS as a team. In choosing the right BAAS we were presented with two options - supabase and firebase. We opted for Supabase because of an inbuilt api to query the database. It provides an option where one can subscribe to real time database changes, it provides RPC functions which could be used to combine multiple queries in one and it provides edge functions all at no cost compared to its counterpart firebase, making it cost effective. We also had the ability to self-host our own instance with supabase which would make work easier and make it cost effective. Learning Supabase was my first time learning Supabase and PostgreSQL since supabase is built on top of PostgreSQL. This took me a while learning the new technology because supabase had a limited community and was just emerging as an open source product. For One Time Password for two factor authentication (OTP), in the authentication implementation we used phone numbers. And we had to ensure that the user signing up is the current user which led us to develop a one time password workflow for user authentication. This presented a challenge because Supabase only offers these methods for authentication. However, we needed them for authorization. For example, if the person is transferring money in the system to another account they have to verify their identity through the system. In addition to that we also discovered that the pricing of Supabase messaging providers is not friendly to our client. Therefore, we proposed a better solution that utilised africastalking messaging provider. I developed an abstraction on top of supabase's authentication and messaging customising it to meet my project requirements and authentication workflow. I also utilised the serverless architecture on Vercel, the platform hosting the frontend and deployed serverless functions to handle the messaging and otp services. It saved the team the costs of handling and maintaining multiple servers for different services and it honed my problem solving acumen, teamwork and collaboration skills in the professional working environment following the industrial standards. For Role based access control, in the sacco, there is always an executive that comprises members that are more privileged than others in terms of responsibility. This had to be incorporated in the system as any member could be part of the system at any time. I overcame this by implementing Role Based Access Control which enables a user to assume a role in the system that can be passed onto another user together with Row Level Security using access control policies to set permissions to resources based on the role of the user in the database. • Developed web application to automate sacco activities for performance and transaction monitoring • Chose Supabase BaaS over traditional API implementation due to time and resource constraints • Selected Supabase over Firebase for cost-effectiveness and features including real-time database changes, RPC functions, and edge functions • Learned Supabase and PostgreSQL as emerging open source technologies with limited community support • Developed custom One Time Password (OTP) workflow for two-factor authentication using phone numbers • Integrated Africastalking messaging provider as cost-effective alternative to Supabase messaging • Created abstraction layer on top of Supabase authentication and messaging to meet custom requirements • Deployed serverless functions on Vercel to handle messaging and OTP services • Implemented Role Based Access Control (RBAC) with Row Level Security for executive permissions • Applied access control policies to set database resource permissions based on user roles

Instructor/Facilitator

2022 - 2022

AbleSolver Cohort 2 • Uganda

Prepared lectures and class activities focusing on the command line interface (CLI), version control using git and Web development using Hypertext Markup Language (HTML) that spanned between 15-25 for the cohort students. Created and graded course quizzes and projects to ensure students understood material and stayed on track. • Prepared lectures and class activities on CLI, Git version control, and HTML web development • Taught cohort of 15-25 students • Created and graded course quizzes and projects • Ensured student comprehension and progress tracking

EDUCATION

Makerere University

- 2022

Bachelor of Science in Computer Science

Udacity

- 2022

AWS Nanodegree in Machine Learning Foundations

freeCodeCamp

- 2022

Certification in JavaScript Algorithms and Data Structures

AbleSolver

- 2021

Program in Software Development