GraphQL APIs need authorization rules that prevent traversal attacks and granular rules to determine if a Viewer has access to a field.
I love solving problems and building quality software that delights users. I'm currently a Lead Software Engineer, building software for doctors, at a modern Telehealth company that offers instant virtual care with lower access cost (fancy way of saying "see doctors online").
Whenever I'm not failing at building a side project (domain registrars love me), I try my best to make little contributions I can to the community via open source work and writing. Outside work, I'm an avid runner and reader.
I'm also a husband to my dearest Caroline and a Father to the spunky rascal, Theresa.
The odd full stack duck
I really love building application features that solves problems and delight users. That jolt of satisfaction of seeing someone use a feature you built is amazing. However, I also love building backend services, improving CI, working on domain modeling and tuning the databases. Perhaps I haven't found a focus yet 🤷♂️, but what I do know is that I still don't know how to vertically center an element using CSS.
These are some of the random things I have the privilege of working on that are memorable to me.
- Building a modern Applicant Tracking System (that was the pre Greenhouse / Lever era) that helped our lean recruitment team screen over 32,000 candidates a year. It had a killer video interview process and an interview scheduler feature that was ahead of its time. I was proud to eventually suggest that we move over to Greenhouse as it became easier to buy good recruitment software.
- Leading a Knowledge Search team that revamped the company's core search process. ElasticSearch is essentially just a token matcher, the real challenge was thinking around the problem of finding the right information.
- Building modern web applications for Doctors and adopting GraphQL APIs to power these interfaces.
- A little Jira extension that made it less painful for my colleagues to get to a ticket.
Every hero has a genesis, in my case, it was called the Sega Mega Drive (😉 hint at the obscure bad reference). I started out just like as an ordinary kid in Singapore, but my Dad agreed to buy me a computer (an Aztech Pentium 486 with 4mb of ram!) because I wanted to do “e-learning”. By learning, of course I meant installing shareware games and bootlegged ones from dodgy sources (yes we traded floppies).
I broke the computer frequently. This is the pivotal moment. There was an unnamed Aztech technician who picked up all my support requests. He was very kind at explaining how things got screwed up to a 11 year old kid. Even sent me to school once when troubleshooting took longer than expected.
He taught me it was ok to tinker and was understanding about all my adventures in “autoexec.bat” (usually to configure himem.sys for games).
He was candor about not knowing everything and showed me it was ok to learn along the way.
Thanks to this cool dude whom I never got to know his name, I was proud to be the tinker around the house, spending a big chunk of my childhood satisfying my curiosity about how stuff worked without any productive outcomes.
I ended up in Aerospace Engineering and Finance initially as an adult for one vain, shallow reason: “It didn’t pay well or garner much respect to be an engineer”.
Somehow I gravitated to being "the guy" who builds stuff to improve lives for other people, regardless of whether I was a financial analyst or a business owner. Eventually I started my "lost period" as a contractor, trying to learn how to code professionally to anyone who was willing to pay me for it 😛. Rock bottom came when I realized that bootstrapping Wordpress was the highest revenue to time ratio activity in my life.
Thankfully, I eventually found my way back to software engineering because Tor and Tadas from AlphaSights decided to give me a chance to join the team as a junior dev.
And the adventure begins...
The opportunity resulted in a bold step to leave the comfortable Singapore I knew my whole life for London.
I lucked out again. AlphaSights' software engineering culture was top notch. From day one, I was trusted to take end to end ownership of engineering problems. It was a fast growing company so there were plenty of opportunities to work on diverse problems from deploy ops, database optimization, BI analytics all the way to building brand new products.
Before I know, I ended up the company's New York office, trying to build a new scrappy team. This gig led all the way to its logical conclusion, where I was given the privilege to head the NY engineering team.
At the end of this journey, I realized the responsibilities I've been given have outpaced my growth. It was time to take a step back, so I took on a role where I could be a lead closer to the metal once more.
I'm still trying to be a better coder, a better mentor and a better leader. I also have this goal of being the best husband and Father I can be.