Hi there from Michael Lee, alias michaellee8 👋
I am a self-taught Software Engineer from Hong Kong who have strong interest on engineering backend system, particularly low level, distributed, networking and optimization stuffs. I have previously done and accquired skills across the full application and web development stack, including frontend, backend, mobild and devops. I have worked for 3 years in a full-time software enginerring role across different fields remotely. I am a exteremely fast learner, who learnt from never touched native mobile development to developing and maintaining mobile SDKs on multiple platforms in less than 10 months.
I would describe myself as a technical focused problem-solver who prioritize quality over quantity. I have a passion to solve hard technical obstacles that others would have gave up, both obstacles from work and from open-source projects that I often work with. I also value taking extra time to submit carefully structured and tested bug-free code rather than submitting buggy non-maintainable code to shorten development time. I always believe that quality code would boost productivity hence quantity in the long term.
Please have a look at my resume at https://resume.michaellee8.com/ on my work experiences and skillsets. Also please feel free to pay a visit to my website at https://michaellee8.com and my GitHub profile at https://github.com/michaellee8
Some of my recent personal projects:
- dynproxy: A dynamically reconfigureable raw TCP proxy written in Golang.
- SafeIsolator: An prototype mobile app that allows one to completely isolate an untrusted app from other apps in the phone and the internet.
- flutter_blue_beacon: An Flutter library to implement iBeacon and Eddystone scanning on top of
flutter_blue
. - fluuter_fuchsia_toolchain: A set of scripts to allow easier development of Flutter apps in Google's Fuchsia OS.
- pubenvconfig: My daily working environment setup, populated with a set of configs and scripts for tools that I use frequently, like Neovim and Tmux. You can see my setup for developing Flutter apps on (not for) Android devices here.
Some of my recent open-source contributions/participations:
- react-native-web-browser: A React Native library that allows one to open web browser sessions with the same API they use for Expo.
- Web3Auth Mobile SDKs: Web3Auth Mobile SDKs as mentioned in the resume.
- Flutter: Contributed to Flutter's tooling on Fuchsia.
- Dart: Patched an ipv6-induced bug in Dart SDK.
- vifm: Contributed an AppImage generation script.
Contacts
- For recruiters: Please kindly PM me via LinkedIn
- General contact: Email address is not put here to prevent spammers, but it should be easy to retrieve if you know how to use GitHub API
Fun facts
-
I love eating tasty food, but meanwhile, I am unable to eat most of them since I am suffering from allergies.
-
I embrace open source and open ecosystem hence I always use an Android phone, and I more or less dislike Apple for their closed ecosystem. However, I still had to buy a cheap iPad for developing iOS apps and I am running an OSX-KVM instance on my Ubuntu Laptop for the same reason. I also exchanged my girlfriend's old AirPods with a new AirPods pro since AirPod was the only decent earbuds on the market that won't make my ear itchy.
-
I started programming about 10 years ago when I borrowed a very outdated Visual Basic 6.0 book from a local library. My first project was a "Michael Explorer" that embeds IE 7 with a few buttons for navigation. I actually got my first job at a learning product company that provides my Secondary school's e-Learning platform by discovering multiple security flaws in the platform (and fixed all of them after joining the company).
-
I don't really like studying in Academica so I spend most of my effort in actually software engineering work and open source contributions, and didn't
wasteinvest much time in studying during my University and Secondary school time. I am literally paying about 20K USD to get a piece of paper with the word certificate on it. Still, I got quite a good result in my secondary school public exam and it grants me a Bachelor of Engineering entry in HKU which has a QS ranking like 20-30.
I am currently job seeking!
I may be the engineer you are looking for if you are finding someone who:
-
Takes software engineering seriously, not just care about whether that feature works, but also care about whether that feature has been implemented correctly and cleanly.
-
Cares about long term productivity by embracing clean code structure, code review and testing, rather than short term productivity by submitting code that barely works.
-
Passionate about software engineering, loves to read source code on open source projects and then contribute actual code to them instead of filing feature requests.
-
A fast learner with a T-shape skillset. I am more specialized in Flutter and Golang but I know a bit of pretty much all those "popular" technologies. I have previously worked in development roles that involves React.js, React Native, PHP, Node.js, MySQL, Redis, RabbitMQ, Docker, Kubernetes and AWS. I am a daily user of Ubuntu Linux and I mostly develop backend applications in GCP VM instance running a combination of tmux and neovim. I have also learnt a bit of C/C++ and Python.
I believe job seeking is mutual so I am also looking for a comapny that:
-
Offers a Remote Engineering role that allows something living in GMT+8 (Hong Kong). I am looking forward to relocate to Canada or United States after two or three years but currently I am unable to do so.
-
Practices a proper software development process, in which you expect engineers to write well-structured code, and you embrace code review and testing. You have a well-formed healthy codebase that doesn't put global declarations everywhere. Preferably you open-source some of your code or even running on an open-source business model.
-
Offers an in-depth technical engineering role rather than CRUD development one. I like engineering challenges and I am the kind of people who likes to pick up the problems that my collages faces and then work on them, but then it also means that I don't really like those boring code glueing copy and paste tasks that should have been automated via some code generation tools instead of done by bare hands, so I hope that you will offer me challenges instead of mechanic tasks.
-
Understands the "myth of man-month" and "tech debt", hence values long-term productivity over short-term output. Some management doesn't understand why would their development team just stop typing code and spend time doing those code architecture planning, code reviews and tests, when adding an HTML button and adding and changing "a few lines" in the backend codebase would have "apparently" done the job. I hope that you would be the kind of company who would invest
2t
of time for developing code with a proper development process so you only got 1 bugfix that would cost you0.3t
of time later, so it totally takes you2.3t
, rather than pushing engineers to develop features with0.8t
and then got 5 bugfixes that each one takes you0.7t
, so it takes you a total of4.3t
. You prioritize code quality over quantity. -
Has a flexible workplace culture and judges by the value created. I am not really in favour of micro-management and certainly won't be sitting in front of a webcam 8 hours per day. I hope that you will be allowing me to work when I am feeling energized so that I can produce the most value for you. I also hope that you will be judging my performance by the value I have created for you rather than the time I have spent or the lines of code I have written.