About

Hi there,

My name is Fang-Pen Lin. I am a Master Generalist Software Engineer. Currently working at Niantic AR team, opinions are my own.

I taught myself programming since I was 12 by building a hobby MMORPG from scratch 7 times. It has been twenty years since I started programming. In twenty years, I spent almost every single day in programming. You can get a sense of it by looking at my recent GitHub history in the recent ten years:

Screenshot GitHub history in recent ten years
Screenshot GitHub history in recent ten years

These are just the part on GitHub. Yep, I heard what you say, this person has no life. Well, yeah, maybe I am actually a robot sitting behind the screen 😂

In the past, I’ve been working on software projects in very different fields, be it games, GUI apps, large scale networking servers, web backend servers, front-end websites, mobile apps, embedded system, DevOps and even security. For example, recently, I found and disclosed a critical security bug CVE-2019-13132 in ZeroMQ. You can also check out some of my works.

It doesn’t necessarily mean I am an expert in all the fields, like, I won’t claim that I am an expert in security. It’s more like a superpower I’ve learned in the twenty years of intensive programming, it allows me to focus on solving the problem, is it backend or frontend or anything else, I don’t actually care. By Master Generalist, it means I can learn new things quickly, and build different ends of software in a vast range of aspects, from end-to-end, prototype to production.

Oh, besides building software, I also like writing. I love to share the lessons I’ve learned from building software. I am also authoring a book about building software engineer career from the ground up. Hope you enjoy my articles, feedbacks are welcome 😊

PGP key:

-----BEGIN PGP PUBLIC KEY BLOCK-----

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
=if8B
-----END PGP PUBLIC KEY BLOCK-----