David Brown

David Brown Profile

Technical Lead

My personal website summarising my experience, links to my blog/contact, and some personal projects.

About Me

I'm the Technical Lead at IAG Connect.

I deliver the software that enables customers onboard various airlines within IAG (International Airlines Group) to connect to the onboard Wi-Fi.

I am also responsible for delivery of the seatback interactive software, which is what you use to watch movies onboard long haul flights!

The airlines we cater for are British Airways, Iberia, Vueling and Level.

My Experience

Technical Lead - IAG Connect | IAG Loyalty

November 2022 - Present

I'm responsible for the software that connects you to the internet onboard British Airways, Iberia, Vueling and Level, and for the software that provides you with media to watch onboard these airlines.

We smooth over the differences between multiple inflight connectivity providers, and provide the same experience for customers of airlines across IAG (International Airlines Group).

Think of our inflight connectivity providers as AWS in the air, providing us with the hardware, network, and the capability to connect passengers to the internet over their network.

Senior Developer - Threads Styling

January 2022 - November 2022
s

I'm working on core enabling products that allow personal shoppers to manage stock, and provide tailored suggestions to high profile clients.

Senior Developer - Whitbread

June 2021 - January 2022

I'm working on core products using react, migrating to frontends utilising a set of new microservices, and away from AngularJS.

Senior Developer - Mendeley, Elsevier

November 2019 - June 2021

I'm working on a core product using React.js with redux. It's simultaneously a web and desktop application through the magic of electron, and has a wide range of use cases including being offline-first. It's a pretty heavily data-driven application, handling management of academic references.

Senior Developer - Lumina Learning

January 2019 - November 2019

I'm responsible for the JavaScript based applications using Node.js, React.js and AngularJS, ensuring code quality and assisting with technical direction within the team as a whole. There's some exciting stuff I'll be working on during 2019 for Lumina, which will really revolutionise the Psychometric world.

Software Developer - Lumina Learning

Autumn 2017 - Christmas 2018

Worked on some exciting new projects, including creation of an interactive Team-Viewer, allowing comparisons of psychometric profiles within professional teams. I vastly improved and added a lot of features to an Applicant Tracking System. Technically speaking, I've worked on the older PHP systems, created inter-server APIs, created interactive front-ends and built new APIs, maintained new and old systems, as well as mentoring interns during Summer 2018.

Intern - Lumina Learning

Summer 2016

Mainly involved working on the older systems at Lumina using PHP. I added a lot of new features which was really appreciated by a lot of Lumina's customers. Notably migrated the entire system to use a uniform interface for emailing customers, allowing for sending-failures and future scheduling.

Computer Science BSc - University of Southampton

2014 - 2017

I graduated in 2017 with a First Class Computer Science degree. Southampton was a fantastic environment for learning academic principles as you'd expect from a top University. Something I loved about Southampton was the additional focus on practical application for a lot of concepts that were taught.

Projects

Fractal Viewer

Mandelbrot Fractal

If you're an ex Computer Scientist from Southampton University, you'll be well acquainted with Fractal renderers. One of the programming courseworks required creating a Fractal Viewer written in Java.

I created a WebGL accelerated Fractal Renderer using vanilla WebGL. This is more of a learning exercise for me than a really useful tool, but I had a lot of fun implementing real-time renderering of fractals.

I have a few more plans for this project, including

  • Simulating double precision in glsl. WebGL is limited to regular 32 bit floats, meaning you cannot zoom very far into a fractal image, which is a shame since fractals are infinitely self-similar.

Browser Based JavaScript Editor/Interpreter

My JavaScript code editor lets you edit and run modern JavaScript in the browser.

JavaScript Editor

It's using the babel parser/traverser/generator to process your code in the browser before finally evaluating it in a cross-browser compatible way. Transformations are performed on the AST (abstract syntax tree) to redirect common statements such as the logging functions to internal state and then to components in the application, rather than the browser's standard log.

I find interpreters really interesting, and this is a fun little project I'm working on at this stage.

Some plans I have for the project are:

  • Syntax Highlighting - The babel project is really amazing, and the parser used has a lot of stuff built in such as ranges in the code for code expressions. This points you to the exact locations in the original program string which contain certain expressions, and by extension lets you know exactly which bits of string are the offenders in the case of syntax errors. Although the parsing bit is done for me, I still expect this to be pretty challenging.
  • Multiple Files - I plan to emulate/stub out the commonJS module system and simulate having multiple files in a "project", allowing imports, exports and inter-use of code.
  • React with JSX! - This will include rendering to HTML and sandboxing it somewhat to be contained within an editor pane.

Cyclo-tools

Cyclo Tools

Cyclo-tools is a tool I built to help cyclists analyse activities.

It identifies activities which are ridden on the same routes, and aggregates statistics for them. Plans for this tool in future include:

  • Auto-tagging your activities as a commute - I know I always forget to!
  • Highlight activities uploaded to Strava as duplicate. If you use Garmin and integrate your account with Strava, but upload directly to Strava, sometimes you might accidentally upload activities more than once. This is for my personal use, but have noticed several other people complaining about this in forums across the web

Personal Blog

I created a small blog which I occasionally post to. Topics included will largely be web related, but will sometimes be things that I think are really cool and want to share with the world.

Contact Me

Talk to me, the easiest way is through LinkedIn or emailing me.

LinkedInEmail