Education:
MSc in Internet Systems - Durham University - Java, Ruby, Project management.
BA in Politics, Philosophy and Economics - 2:1 - Durham University - Focus on Economics and Philosophy - in particular econometrics and philosophy of science.
Additional Qualifications:
- Scrum Certification - Scrum Alliance - 2022
- Introduction to GIS - Lund University – 15 ECTS: GIS software and analysis, ArcGIS - 2019
- Introduction to Remote Sensing - Twente University – 10 ECTS: Remote sensing tech and applications, ERDAS, ArcGIS - 2020
Skills:
Ecosystems:
- Languages: JavaScript 14yrs+, Typescript 4yrs+, Node.js 4yrs+, Python 4yrs+, Ruby 4yrs+, PHP 6yrs+
- Backend Frameworks: Express.js 3yrs+, Django 3yrs+, Flask 2yrs+, Laravel 6yrs+, Rails 3yrs+, Sinatra 1yr+
- Frontend Frameworks: Vue.js+Vuex/Pinia 6yrs+, React+Redux 3yrs+
Technologies:
- Frontend: Tailwind, Bootstrap, ARIA, Storybook, Design systems, Chromatic, Chart.js, Leaflet, Apollo, RxDB, Web sockets, JSON Schema
- DevOps/Infrastructure: Docker compose, AWS products, Dokku, Capistrano, Apache, Nginx, Loggly, New Relic, Cloudflare
- CI/CD: Jenkins, Travis, Bitbucket Pipelines, Github Actions
- Databases & Queues: MySQL, PostgreSQL, BigQuery, MongoDB, RxDB, Elasticsearch, Redis, RabbitMQ, SQS, Celery
- API Integrations: Google, Facebook, AWS, OpenAI, Twilio, WhatsApp, MNO systems for SMS, USSD and IVR, DHIS2, ODK, GraphQL, Mobile money
- API Development: GraphQL, OpenAPI, Apollo, graphql-laravel, Swagger, OAuth2 with Passport
- Data Analysis: pandas, Looker Studio, ArcGIS, ERDAS. Regression analysis, hypothesis testing, risk and poverty modelling
- Testing/TDD: Jest, PHPUnit, RSpec, unittest, Storyshots, Cucumber, Behave, Capybara
- AI: OpenAI assistants, TTS and STT
Practices:
- Delivery: Agile environments, Kanban, Scrum (certified), XP, TDD, BDD, pair programming, user stories, pull requests, Trello, Jira.
- How I Work: TDD, Vim, tmux, Bash, Git, Ubuntu, Copilot and LLMs where appropriate. SOLID. Clean Code.
Professional Experience:
Viamo.io - Multiple Roles - London, Kinshasa, Khartoum, Remote
Lead Engineer and L1 Engineering Manager, Web Apps - March 2022 to November 2023
- Led the development of a complex new application to enable creation of digital training courses in low and middle income countries. The application embodies best practice for creation of training projects delivered via IVR and social messaging. It improves the efficiency of setup and standardises data collection.
- Used Vue 3 and Node.js with Typescript, GraphQL, Laravel, MySQL, Redis, RabbitMQ, BiqQuery and Docker to construct a standalone domain focused application. This allowed us to abstract away the core platform to a pure communication layer and cleanly encapsulate the business logic around delivering training courses.
- Gathered the requirements for this new app in collaboration with a product manager. Led an agile and iterative development process from inception to production including architecture, planning, writing test driven code, provisioning infrastructure, setting up monitoring and CI/CD.
- Managed and mentored senior engineers. Ensured timely, high quality delivery and provided growth opportunities.
Lead Engineer, Flow Interoperability Project - August 2020 to February 2022
- Led the creation of the open source Flow Builder as part of the USAID sponsored Flow Interoperability Initiative. The Flow Builder is a tool for authoring JSON-based “Flows” which meet the Flow content standard. This open standard enables a common interactive experience across different vendor platforms including Viamo.
- Built with Typescript, Vue.js with a functional component style and Node.js with Express. Ensured vendor customizability while maintaining compliance with the spec. I then led the integration of the tool with Viamo’s existing systems.
- Managed a team of 4 engineers using agile methodologies.
Lead Engineer, Core Platform - March 2019 to July 2020
- Led the development of complex features for the core platform. This included developing an app store platform and associated GraphQL API, weather notifications, an issue tracker, a referrals system, numerous API integrations and more.
- This platform serves over 12 million unique subscribers in 20 countries via IVR, SMS, USSD and Social Messaging.
- The core platform consists of a cloud SaaS platform which communicates over a complex queue setup with in-country servers co-located with MNO data centres. The deployment, networking and data consistency challenges of this distributed system are considerable, especially given the intermittent connectivity between the AWS cloud node and the on-prem nodes.
- Line managed and mentored engineers. Managed projects. Collaborated with designers and product managers to ensure that users were always at the centre of our work.
Lead Engineer, Custom Applications - March 2018 to February 2019
- Took over leadership of the team of 3 engineers responsible for building custom data collection and analysis tools. Handled planning, requirements gathering, and client communication in addition to existing responsibilities.
Senior Full Stack Engineer, Custom Applications - October 2016 to March 2018
- Developed custom Monitoring and Evaluation apps and dashboards of client data using Laravel, Vue.js, Chart.js and Leaflet. Built ETL pipelines. Strengthened data-driven decision-making.
GOV.UK - Government Digital Service - Cabinet office - Developer - London - September 2013 to October 2015
Built dashboards to show the performance of over 800 services provided by the UK central government, this involved:
- Building data collection, analysis and alerting microservices (among others) using Python, Celery, Django, Flask, PostgreSQL, MongoDB and Elasticsearch.
- Building a graphing and data display system in D3, Node.js with Express and Backbone.js.
- Working on designing clear and actionable metrics through iteration and user research (including lab research).
- Working with departments throughout government to change culture and make sure new services were designed and iterated with constant reference to the data.
- Duties also included Ops support of one of the most used websites in the UK - GOV.UK. This included in and out of hours support - monitoring errors, fixing bugs, diagnosing problems and maintaining operation using Ansible, Puppet and Chef.
Funding Circle - Developer - London - August 2011 to September 2013
- As the 3rd engineer at Funding Circle I contributed to scaling the platform by transitioning legacy PHP systems to Ruby on Rails and building financial tools for real-time user transactions. I helped build the first loan application processing and CRM system and I contributed to the development of risk model infrastructure, setting up Cassandra, Hadoop and Elasticsearch.
Interests and other experience
- GIS and remote sensing for social & environmental problems including early professional experience. Experience with ArcGIS, ERDAS, Leaflet.
- Experiments in React, Rails, RXDB, Apollo Client and Server for GraphQL and Node.js/Typescript with Sequelize and Express to build an offline first note taking PWA.
- Experiments with OpenAI APIs and pandas in Python.
- Experience prototyping apps in React native for cooking and language learning.
- Experience with Ruby and Python for complex web scraping including early professional experience.
Quotes about working with me:
- “Jacob is a remarkable professional, excelling not only as a manager but also as a mentor and developer. His compassionate leadership style and dedication to fostering a supportive work environment make him an exceptional asset to any team.”
- “[Jacob] understands how to manage large, complex tasks; prioritize; and keep focus on product goals in the different aspects of our work.”
- “Jacob is a model of professional effectiveness: Responsible, proactive, strong on communication, high on ownership and responsibility, collaborative, organized, and motivating + supporting the team through big goals, challenges, and deadlines.”
- “My bi-weekly one-on-one meetings with Jacob were truly enjoyable and enlightening. As a manager, he demonstrated a holistic approach by prioritizing not just work-related matters but also my overall well-being.”
- “I really value Jacob’s level-headed contributions to both technical and product propositions. He understands the value of what we do, but isn’t afraid to challenge it to ensure we are doing our thinking properly.”
- “Jacob’s meticulous approach was evident in his clear and detailed notes for each ticket, specifically tailored for developers. These notes not only clarified the ‘Acceptance criteria’ of a story but also served as excellent templates for crafting well-structured tickets.”
- “[Jacob] is really capable when it comes to starting discussions about a given task … when it comes to something new - he’ll take an idea and work it into code through a series of conversations that leave the whole thing clear to the rest of the team.”
- “His maturity, ability to listen to all points of view and ability to really understand perspectives he doesn’t agree with are, in my opinion, exactly what we should be looking for in leadership roles.”
- “In brief, Jacob stands out as one of my most esteemed managers, embodying qualities of compassion and unwavering support. His prowess extends beyond management, as he is a highly skilled full-stack developer with extensive experience leading developer teams and serving as a Scrum Master.”