Antwerp, Belgium

Grace Okolo.

Thoughtful engineering.
Software that moves a business forward.

I turn complex business needs into robust, maintainable software — connecting the people, the processes, and the code.

currently — building product at Lighthouse, reading more than usual, and hiking whenever the weather allows.

BUILDING WITH INTENTSCROLL TO EXPLORE

A little about me

I'm a software engineer who likes understanding the whole picture. What does a stakeholder really need? Where is a process getting in the way? And how can the software make the next decision easier?

My background spans frontend and backend development, from shaping APIs and data models to building interfaces, testing, and shipping. I’m drawn to dense data, layered systems, and the numbers people make real decisions with. My job is to make that feel calm and clear.

At Lighthouse, I’m the sole frontend engineer on my team. I scope features, collaborate on API design, and own delivery while helping move an Ember.js product toward React and TypeScript. Before that, I worked across a Python and Vue.js data platform at IMDC.

I bring critical thinking to architecture, care to maintainability, and curiosity to conversations with the people using the product. AI helps me explore and move faster; the engineering judgment stays mine.

Where I've been building

Different domains. The same focus: understand the problem, build thoughtfully, and own the outcome.

Lighthouse CURRENT

Software Engineer

Product engineering · Frontend ownership · Data-heavy applications

  • Own frontend delivery from feature scoping and stakeholder needs to API collaboration, implementation, testing, and release.
  • Build and maintain Ember.js applications with TypeScript, applying state-management patterns and improving foundations as the product grows.
  • Develop features in React 19 and TypeScript as part of the migration from Ember.js, using TanStack Router, Query, and Form, Vite, and Vitest.
  • Translate complex analytics into useful interfaces: time-series charts, hierarchical tables, contextual tooltips, and validated data-import flows.
  • Build permission-aware experiences and activity history; improve state management and CSS architecture, and develop internal tooling used across the team.
  • Use code review, automated testing, feature flags, and adoption tracking to support maintainable software and staged delivery.
Ember.jsReactTypeScriptTanStackVitest

IMDC

Full Stack Software Engineer

Water engineering · Business processes · Data visualization

  • Work across Python and Django REST Framework APIs and a Vue.js/JavaScript frontend on a small team building a water-engineering data platform.
  • Handle large volumes of time-series data and present them in graphs that help users interpret changing water conditions.
  • Build applications supporting government offices monitoring water levels, connecting complex environmental data with operational decisions.
  • Understand stakeholder workflows and translate requirements into practical software improvements, moving between frontend and backend as the product needs.
PythonDjango REST FrameworkVue.jsJavaScriptTime-series data

0smosis

Full Stack Software Engineer

Full-stack development · Seven-month role

  • Build across Python and Django REST Framework services and Angular interfaces with TypeScript.
  • Connect backend functionality with frontend experiences, translating application requirements into working software.
PythonDjango REST FrameworkAngularTypeScript

The tools. And the thinking.

A broad technical foundation, with a focus on making the right things work well together.

Frontend

React · TypeScript · Ember.js · Vue.js · Angular · JavaScript · TanStack Router, Query, Form & Table · Vite

Backend & data

Python · Django REST Framework · PostgreSQL · API design · Data modeling · Time-series visualization

Quality & delivery

Vitest · MSW · Testing Library · Git · Code review · Feature flags · Agile/Scrum · Jira

Engineering judgment

Solution architecture · Stakeholder collaboration · Business-process improvement · State management · Maintainability · Scoping & estimation

Fast draft. Thoughtful judgment.

AI is part of my everyday workflow. I use it to explore options and reduce repetitive work, then apply the same care to architecture, behavior, and quality.

01

Planning & scoping

Talk through requirements, data shapes, and edge cases. Turn a vague ticket into a clear approach and meaningful validation cases.

02

Code generation

Draft typed schemas, API wrappers, and repetitive UI scaffolding, then shape the implementation to fit the system’s patterns.

03

Refactoring

Explore ways to simplify complex code while preserving behavior and keeping responsibilities clear.

04

Testing

Draft tests around real behavior, challenge assumptions, and keep the checks that catch meaningful failures.

05

Review & documentation

Take a second pass before code review and create readable documentation for data models, decisions, and conventions.

ScopeDraft with AIShape by handTestReviewShip

A foundation beyond the code

University of Tartu

Master’s degree · Software Engineering

Practical, project-based study connecting software engineering with product and business needs. Areas of study included machine learning, data visualization, software product management, systems modeling, and business-process modeling, management, and optimization.

University of Hertfordshire

Bachelor’s degree · Information Technology

First Class honours
Download my CV
IDEAS, ENGINEERING & GOOD CONVERSATIONS

Let’s exchange
ideas.

I enjoy connecting with people who care about thoughtful software, interesting problems, and the ideas behind them. Feel free to say hello.

Connect on LinkedIn