Orbifold.io (Remote) 2018-2019 (3 months)
Strawberry Media (Remote) 2013-2017
Research in Motion / Blackberry (Toronto) 2011-2012
My code is mostly work-for-hire and closed-source, but I wrote some in my own time that I can publish.
I recently used React and TypeScript to implement several pages of Stack Overflow's user interface:
React seems like a neat tool, and so is TypeScript.
I like Orbifold's blockchain project -- it's system programming. After I finished what I was hired for (new code) with time to spare, I was allowed to refactor existing code and learned most of it. Their implementing it on Node.js was an interesting choice.
I had learned to use SQL previously, at LANSource.
I studied the principal Web front-end specifications thoroughly -- for ModelText I wrote an HTML editor, including a DOM with a CSS parser and a render tree.
I liked my recent experience with React and Node.js.
My formal education was Mathematics. My first job was as a "software engineer" with BNR in Ottawa -- software for a packed switched data network, used by Bell and banks. They had a lot of equipment, a well-organised development process, good training. That was good experience to have had, before my next work which was mostly with startups, where training is minimal and "process" might be undefined or implicit.
After BNR and before starting with LANSource, I had a few years as a contract technical writer for IBM, writing manuals for their software products, for network administrators and programmers etc.
I had years of experience doing "system programming", using C++, C, and assembly:
That means thinking about memory, multi-threading, I/O, concurrency, reliability, and system architecture.
I also learned object-oriented design and "patterns".
I have experience with starting new ("greenfield") projects, and working with large ("mature") systems. In any case I'm used to frequent integration and incremental delivery.
I usually stay with a project, with a team or code-base, if that's possible; and of course I try to write software well enough that any programmer can maintain it.
I can work alone, reporting to the head of a startup, or a product manager for the specifications. Equally, I look forward to working with other developers again!