About

This site

Begun as a thrown-together free WordPress blog in 2011 to have somewhere to post my experiences in travelling to Finland. It's now a catch-all personal site for me.

More generally speaking, the site is also my own reaction to the growing trend of massive, bloated websites, which is something I am not alone in being annoyed by. Architecturally, this website would be right at home in the 90s–it is little more than a collection of static HTML pages. You'll find no NPM packages, Webpack shenanigans, or user tracking silliness here. The only exception to that is the comment system, which is a stitched-together abomination of a single JavaScript file, a handful of serverless functions, and a cloud-hosted NoSQL database.

Me

I'm Neil McAlister, a software developer living in Helsinki, Finland. Born and raised in California, I moved to Finland in 2015, and have been here ever since. I program stuff for fun and, if the title of this blog didn't make it abundantly clear, enjoy travelling.

You can also find me on GitHub as PingZing or Twitter as @pingzingy.

Want to hire me?

Click or tap here to check out my resumé!

Neil McAlister

Senior Server Software Engineer

About Me

(but professionally, this time)
I'm a skilled software developer with over 7 years of experience in both consulting and product development contexts. I strive to deliver quality work, and care about the craft of software development. I excel at Microsoft technologies and Windows development, and thrive in both the full stack and the cloud. I'm experienced with agile methodologies, and DevOps workflows.

I'm proficient in a number of programming languages. I'm most comfortable in C#, Rust, and TypeScript. I have a great deal of experience with Microsoft's modern XAML-based UI frameworks, including WPF, UWP and Xamarin. Other notable technologies I have experience with include Azure, AWS, Entity Framework Core, MongoDB, Azure Service Fabric, ASP.NET Core, NestJS, NodeJS, and Angular (with the usual smattering of HTML and CSS).

Outside work, I enjoy hacking on personal projects, reading, weird indie video games, and writing fiction. I'm comfortable with public speaking, and love travelling (at least when there's not a pandemic about).

Work Experience


Next Games Oyj

Helsinki, Finland
Senior Server Software Engineer
Jan 2020 - Present
In my current role as a Senior Server Software Engineer at Next Games, I work as a part of a team responsible for the development and maintenance of the platform that power the games' online functionality. The platform serves multiple games, and thousands of concurrent players.

In this position, I have:

  • Worked extensively with C#, .NET Core, Service Fabric and Azure
  • Helped migrate the system from a multiple separate repositories and .NET Core 2, to a monorepo and .NET Core 3
  • Extensively reworked the platform's CI system as part of the migration
  • Rewritten the system's bootstrapping process, streamlining and simplifying it
  • Enhanced the platform to automatically provision and deploy notification services
  • Collaborated with various game teams to address their needs
  • Been part of the regular on-call rota for platform support
  • Been scrum master

Futurice Oy

Helsinki, Finland
Software Developer
Apr 2015 - Jan 2020
At Futurice, I was a consultant, and worked on a wide variety of teams and projects. The scope of those projects ranged from small, solo affairs to large teams with userbases in the tens-of-thousands.

Some of my accomplishments there include:

  • Development and maintenance of a large ASP.NET Core backend that served several hundred thousand requests per day
  • Development of Windows Phone applications for large telecoms
  • Development of multiple cross-platform applications using Xamarin Forms and Unity 3D
  • UWP development for apps with user bases in the 10,000 range
  • Frequent, close collaboration with clients and stakeholders
  • Technical blogging and public speaking

Avadine

Bakersfield, CA, USA
Software Engineer
Jun 2013 - Apr 2015
At Avadine, I worked in close collaboration with clients and stakeholders at various levels.

In this role, I:

  • Rewrote a WPF application with frequent stakeholder input
  • Introduced version control to semi-technical clients' workflow
  • Modernized an ASP.NET Web Forms application

Zindagi Games

Camarillo, CA, USA
Quality Assurance
May 2012 - May 2013
At Zindagi, I was a games tester for console and mobile games.

Responsibilities included:

  • Manual testing of the games
  • Communicating issues to developers and producers
  • Managing the issues backlog

Education & Certifications


B.Sc. Computer Science

California State University Channel Islands
2008-2013

Microsoft Certified Azure Developer Associate

Obtained June 30, 2020
Valid through June 30, 2022

Projects


Trippit
Creator
https://github.com/pingzing/trippit/

Trippit is a journey planner for the greater Helsinki metro area. It hooks into city-provided APIs, and is written as a UWP app. I attempted to follow best practices in MVVM architecture and overall design.

It was originally meant to be a phone-first app with desktop capabilities, but then Windows 10 Mobile went the way of the dodo. It's probably my most complete application, though it never found much success due to the abrupt death of its target platform.

Offprint
Core contributor
https://github.com/OffprintStudios/dragonfish

Offprint is a community-driven, open source website for writing fan fiction, original stories and blog posts. It strives to foster an inclusive, welcoming environment, and actively polices content counter to its policies.

Offprint's backend is written in TypeScript on top of NestJS, and its frontend is written TypeScript on top of Angular 2. I've been contributing to Offprint since mid-2020, and contributed across the stack, and have written significant parts of the infrastructure as well.

Solene
Creator
https://github.com/pingzing/solenecyoa

Solene is a text-based choose-your-own-adventure game. This was a more recent project undertaken as a creative exercise, and an attempt to see if I could make a monorepo project using .NET from top to bottom. I'm happy to say that I was!

It's a full-stack .NET application. It uses Xamarin.Forms for the Android and UWP applications, Azure Functions as a serverless backend, and has a pure-UWP admin client. One big advantage of the shared stack was the ability to share data models, and even some business logic between all the components.

Scannit
Creator
https://github.com/pingzing/scannit-core

Scannit is a Rust-based library for reading NFC-based travel cards used by Helsinki Regional Transport in the greater Helsinki area.

It has a C-based FFI that any other language that can "speak C" is capable of interfacing with. It also has C# bindings in the form of ScannitSharp (https://github.com/pingzing/ScannitSharp), and an unfinished Android app implemented in Xamarin Forms in the form of Scannit (https://github.com/pingzing/Scannit).