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.
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é!
About Me(but professionally, this time)
I'm a skilled software developer with over 10 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 with a variety of backend technologies, and have lots of experience with concurrent, highly scalable and available services. I'm experienced with agile methodologies, and DevOps workflows. I also have a great deal of experience with Windows GUI development, particularly with WPF and UWP/WinUI.
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).
Technologies I'm Familiar With
GUI / Frontend🔗
Xamarin / .NET MAUI
.NET Framework/.NET Core
Cloud & Containers🔗
MS SQL Server
Entity Framework Core
DevOps / CI & CD🔗
Azure ARM templates
F-Secure / WithSecure Oyj🔗
Senior Software Developer
May 2021 - July 2023
At F-Secure (now renamed to WithSecure), I was a Senior Software Developer. In this role I was part of a team responsible for the development of a cloud-native product that performed real-time scanning and protection of services such as Microsoft Exchange and OneDrive.
In this position I:
- Worked extensively with C#, .NET Core/.NET 5+, TypeScript, NodeJS, AWS and MySQL
- Drove from concept to completion a project where customers were moved from a single-tenant architecture to a multi-tenant architecture, saving approximately 50% in annual hosting costs
- Performed a major overhaul of an internal subscription system, requiring significant code changes in all of the team's subprojects
- Regularly on-boarded and mentored new team members
- Assisted our manager with recruitment by reviewing technical 'homework', and participating in technical interviews
Next Games Oyj🔗
Senior Server Software Engineer
Jan 2020 - April 2021
In my role as a Senior Server Software Engineer at Next Games, I worked as a part of a team responsible for the development and maintenance of the platform that powered the games' online functionality. The platform served multiple games, and thousands of concurrent players.
In this position, I:
- Worked extensively with C#, .NET Core, Service Fabric and Azure
- Helped migrate the system from a multi-repo .NET Core 2 setup, to a monorepo and .NET Core 3
- Extensively reworked the platform's CI system as part of the migration
- Collaborated with various game teams to address their needs
- Was part of the regular on-call rota for platform support
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
Bakersfield, CA, USA
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
Camarillo, CA, USA
May 2012 - May 2013
At Zindagi, I was a games tester for console and mobile games.
- 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
Microsoft Certified Azure Developer Associate🔗
Obtained June 30, 2020
Valid through June 30, 2024
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.
Solene is a text-based choose-your-own-adventure game. This was a 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 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 (
A tiny WPF and Win32 application that registers a global hotkey which, when pressed, pops up a small chromeless window, which plays a cute animation of a bat pony squeaking at the user. Created entirely for fun, and because it was cute.