About

Hi there,

My name is Fang-Pen Lin. I am a one-person-army software engineer.

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 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, you probably have 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.

By one-person-army, it means I am not limiting myself by any particular tool, language or fields. I learn new things quickly, focus on solving the problem, and can leverage different available open source tools to build different ends of software products in a vast range of aspects: mobile to web, client to server, single node to cluster, development to devops, prototype to production and user experience to security.

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 😊

🚀 Hire me

Do you have awesome software product ideas you would like to build? Do you need a great software engineer with over 20 years of experience on your team to help with different software projects? You are in the right place! As a one-person-army software engineer, I can build variants of software products from the ground up. Front-end Engineer, Backend-Engineer, DevOps Engineer, and Mobile Engineer, it will be very expensive to hire all of them, and the communication would be challenging. But if you hire me, I am the only person you need to talk to, and I can do all of it by myself. See some of my works here to get an idea of how wide the scope I can cover. Please get in touch with me via the following email if you are interested in the software development contracting service I provide:

[email protected]

PGP key:

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

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