Mfon Eti-mfon in a durag against a backdrop of colors

Mfon Eti-mfon

Human.
Compassionate. Respectful.

Hello World, Mfon Here!

I'm a self-driven problem solver with a passion for building well-tested backend applications that solve real and hard problems.
I understand the limits of my knowledge, and I'm forever pushing them.

My Circles

I'm drawn to the promise of collaborating with exceptional people in a healthy environment where I have access to the right tools and support I need to do my best work — innovating solutions and growing into the exceptional problem solver and people manager I want to be.

I'm currently doing my best work in the following roles:

My Skills

Rated relative to each other.
5 means I'm most proficient in it. 1 means I'm least proficient in it.

    • Python5
    • Django5
    • Django Rest4
    • Starlette4
    • Haskell2
    • Smalltalk (Pharo)3
    • HTML5
    • CSS4
    • JavaScript4
    • NodeJS2
    • Angular3
    • Rust1*
*I've just started learning Rust, and I'm excited to share the ups and downs of my journey with you
— you can also share ups and downs of your most recent learning experience with me!

My Contributions to Opensource

(Other People's Projects)

  • Kiwi TCMS

    An open source test management system for both manual and automated testing. Kiwi TCMS transforms the testing process by making it more organized, transparent & accountable for everyone on your team — you should try it!

    My status:
    active contributor
    PRs merged:
    17
    Open PRs:
    3
  • Pinax

    An ecosystem of reusable Django apps, themes, and starter project templates.

    I've contributed code to upgrade thirteen (13) apps in the Pinax project to the current, officially supported versions of Python and Django. The notes I made while upgrading the first two apps I worked on have been incorporated into the Pinax 20.XX Release Plan to guide contributors as they make upgrades to other apps in the Pinax project.

    I also answer questions posed by developers who make use of our suite of reusable apps on the Pinax community Slack channel, as well as on Stack Overflow.

    My status:
    active contributor
    PRs merged:
    13
  • Django Modern RPC

    An XML-RPC and JSON-RPC server for modern Django.

    I submitted a correction to an error I observed in the documentation while I was exploring it for use in Kiwi TCMS

    My status:
    one-time contributor
    PRs merged:
    1
  • Face Recognition

    A facial recognition API for Python and the command line.

    I created a PR to free up image handlers that were created when loading images for face recognition. This solution resolved a problem I had on a face recognition project I'm working on where the app runs out of memory on the server.

    My status:
    one-time contributor
    Open PRs:
    1
  • Astroquery

    A collection of tools to access online Astronomical data.

    My status:
    inactive contributor
    PRs merged:
    6
    Open PRs:
    1
  • PursuedPyBear

    A Python game engine for teaching Computer Science.

    My status:
    inactive contributor
    PRs merged:
    3
    Open PRs:
    1
  • Labels

    A CLI app for managing GitHub labels for Python 3.6 and newer.

    I'm particularly excited about my contributions to this project as they were my first experience contributing to opensource. I learnt how to write pytest-styled tests from the maintainer.

    My status:
    inactive contributor
    PRs merged:
    2
  • Python RESTcountries

    A Python wrapper for http://restcountries.eu

    I'm excited about this one as it gave me an opportunity to practice and internalize the things I had learnt from my first experience contributing to opensource.

    My status:
    inactive contributor
    PRs merged:
    2
  • School Market

    A market place for schools in Nigeria.

    My status:
    active contributor
    PRs merged:
    1

Personal Projects

  • inQueerstigate (private)

    Face recognition Django Python

    inQueerstigate is a face search and recognition engine which helps members of the local LGBTQ+ community in my corner of the world protect themselves from criminal elements who masquerade on social media and hookup apps as LGBTQ+ people in order to lure unsuspecting LGBTQ+ people to meet with them.

    The service leverages on the Python bindings for Dlib to recognise faces of already identified miscreants and save LGBTQ+ people from loss of dignity, property or life.

    I created a prototype of the solution in Python/Django and gave a 5-minute lightning talk on it at PyCon US 2021. I'm fleshing it out with Python/Starlette in collaboration with fellow problem solvers in the local LGBTQ+ community.

  • Auth Code Flow

    Test-Driven API Design Python

    A utility for obtaining access tokens on behalf of resource owners using the OAuth 2.0 authorization code flow.

    I refactored my original work and massaged it into shape after a session of code review with my friends and fellow lifelong students at The Recurse Center.

  • Django EiUser

    Test-Driven Django Python

    Django Email-identified User, a reusable app for managing users identified by their email (as opposed to username as is the default in Django)

    Django Email-identified User (Django EiUser) provides a custom user model for overriding the default django user model in situations where it makes more sense to use an email address as the user identification token instead of a username.

    I created this project primarily for educational purposes: to learn and teach TDD in Django. I documented my thought process while creating the project. I did this so that any one who stumbles upon the repo can walk through it and create something similar from scratch.

    My reasoning at the time was that if project authors have the bandwidth to document their thought processes that way, newbies won't be intimidated by the size of projects they come across while trying to learn by going through other people's code. They'd be confident that they can walk through the creator's mind and recreate the creator's understanding of the project for themselves.

  • Starlauth

    Test-Driven Starlette Async Web REST Api Python

    I learnt backend building with Starlette, a lightweight web framework for building high performance async services, by building this authentication and user management Starlette app.

  • Condorcet

    Test-Driven Python

    A Python library for evaluating votes using the condorcet method.

    I worked on this project after voting in the Django Software Foundation's Technical Board Elections and realizing that the votes were going to be evaluated using the condorcet method. That was the first time I'd ever had to cast multiple, weighted votes for the same position in an election, and I was curious about how they were going to be evaluated.

    Building this project, I got to totally understand how votes are evaluated using the Condorcet method. I read a number of papers on voting and learnt about other evaluation methods and how they all fared in comparison to each other.

    It was a refreshing learning experience.

A Note to My Future Employer*

Yes You, Really!

I've been recently inspired to achieve my goals of becoming an exceptional, well-rounded problem solver by asking one question at a time, and making one small commitment to building and learning at a time.

And at this point on my path to mastery of problem solving, I need exposure to the DevOps side of Software Development. I need you to have created a pleasant and relaxed atmosphere where I'll have the opportunity to learn DevOps and other new things as I collaborate on amazing projects with people who have excellent command of them.

*I could very well end up being the person this note is written to.
Hmmmmmmmmmm.
You may go ahead and picture me nodding sinusoidally right now as I internalize the realization.
Because I am.

Ask Me Anything

Got a question for me? Well I've created just the Google Form for that!

I'm happy to answer your questions.

© Mfon Eti-mfon, 2021