Skip to content
View iaincollins's full-sized avatar
:shipit:
:shipit:

Sponsoring

@leaanthony
@mastodon

Organizations

@Unity-Technologies @firebreath @tinata @Inkrato @InfoScribe @glitchdigital @nextauthjs
Block or Report

Block or report iaincollins

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Please don't include any personal information such as legal names or email addresses. Maximum 100 characters, markdown supported. This note will be visible to only you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
iaincollins/README.md

🧔 About me

I'm an engineering lead with ~30 years experience developing cross platform software for the web, desktop, server, mobile and routers with open source projects going back over two decades. I've worked in startups, large enterprises, on non-profit/civic-tech and started two companies (and way too many side projects).

✍ Side Projects

Most of my public work on GitHub is on personal side projects and spans different types of software. These are some of the smaller things I've worked on more recently. Most of the open source projects I've worked on over the last 20-30 years are lost to the wind (or maybe sitting around in an SVN or CVS repository, on sitting on a disk on a shelf somewhere).

A small collection of scenes in a first person perspective. The terrain and objects in each scene (trees, rocks, clouds, etc) are both created and placed at runtime using procedural generation. Features multiple real time lights (no baked shadows), instanced gemoetry with thousands of objects on screen at the same time and physics modeling for hundreds of objects at a time. It uses flat / vertex shading and a low-poly style to optimize for performance on mid-tier systems (and to avoid the overhead of requiring downloading of textures). It also features material shaders and particle effects.

It is built with Next.js and with custom components created for React Three Fibre - a wrapper for Three.js, which is in turn an abstraction for WebGL.

A live-updating database of over 100,000,000 locations, tracking millions of commodity prices across galactic trade markets in the year 3038, using data from players of the game Elite Dangerous (collected from game clients using an API provided by the games developers). It's a low-fi tech solution built entirely in JavaScript and SQLite with a similarly low-fi asthetic.

ICARUS Terminal is a companion app / second screen for the game Elite: Dangerous, the latest follow up to the 1984 classic space game Elite. Designed for both desktop/laptop computers and for tablets/phones, the app hooks into the game to provide context-sensitive real time information (event driven and socket based) by combining the game API with third party APIs. Built with Next.js, React, Node.js, Go and C++.

I created NextAuth.js a few years ago. It now has millions of downloads a month and is apparently of the top 1000 open source projects on GitHub (according to GitHub). It's an open source, community supported project based around interoperability with open standards. NextAuth.js has grown to support dozens of auth providers and a wide range of SQL and no-SQL databases. Originally developed for React - and specifically Next.js, hence the name - it has been ported to other popular frameworks, including Vue.js and Svelte and can be used with non-JavaScript frameworks, such as Drupal.

I've since moved on to other projects and am no longer actively involved, other than to look in and see how things are going now and then. To ensure it remains open source, collaborative and independent it has been spun off into a dedicated organization, with it's own core team.

🎬 Mercury

I developed Mercury with funding from Google DNI. Mercury is a web based video and transcript editor and translation workflow tool that lets you drop-and-drag a video in one language in and then watch it back in other languages, with an editable, timestamped transcript in each language, that can also be exported as subtitles or text.

Designed for news and media organisations, Mercury allows teams to upload, edit, transcode, transcribe and translate audio and video files (in a wide range of formats, including large, unprocessed files) from anywhere in the world on any web enabled device (including a smartphone) and share them in a secure and searchable way.

Designed to fill a gap in tooling in Google Lighthouse and Google's own Structured Data Testing Tool, by providing an extendible command line tool and API that includes out of the box support for checking both Schema.org entities and social media markup.

While useful for any website but especially useful for news and media organizations as ensuring markup quality can have a significant impact on traffic coming from Google News and Google Discover, as well as organic traffic from search engines.

A library useful for data scraping, originally created to support work on civic tech and data journalism. Table to JSON is used by dozens of other packages, in other higher level scraper libraries and in projects to track a wide range of things from COVID-19 data to TV shows, news and weather to class times for students. Table to JSON is now maintained by @maugenst.

Pinned

  1. structured-data-api structured-data-api Public

    A simple platform for managing structured data.

    JavaScript 25 8

  2. mono-webservice mono-webservice Public

    An example web service in C# - works in .NET/Xamarin/Mono on Windows, Mac & Linux.

    C# 7 4

  3. icarus icarus Public

    ICARUS Terminal for Elite Dangerous

    JavaScript 147 10

  4. structured-data-testing-tool structured-data-testing-tool Public

    A library and command line tool to help inspect and test for Structured Data.

    JavaScript 63 14

  5. bbc-question-time-data bbc-question-time-data Public

    Data (and scripts to fetch data) for the BBC Question Time TV show

    JavaScript 6

  6. nextauthjs/next-auth nextauthjs/next-auth Public

    Authentication for the Web.

    TypeScript 22.3k 2.9k