My name is Joe, and I'm...
getting paid to write code as a professional engineer in Silicon Valley
renting a nice two-bedroom house with a backyard
able to afford the best private education for my child
able to gift my partner with the time to work on her own business idea
humbly invested in a hard tech startup and cryptocurrencies
working for one of the fastest-growing enterprise software companies in the US
To most people's definition of capitalistic success, my life might be considered average (tangentially, that also indicates how wrong our perception of success has become). However, I had started with many combined disadvantages compared to what you would consider as the stereotypes:
Born in an English-speaking world
I was born to a middle working-class family in a vacation country called Thailand. I only came to the US about five years ago.
Educated in tech or related fields
I had no formal education in tech or any US education at all. The closest were night classes, a month at Recurse Center, and a few MOOCs. All for which I never had to pay a single dime.
A genius
I've never been a tech whiz kid or a rockstar. I'm more of an artist/writer/humanitarian character. I just really love writing and digging into how things work.
Worked or interned with big tech companies
I had portered in a restaurant, filled shelves for Trader's Joe, and almost got a job handing out flyers at a strip club.
Single
I raised a family with my partner while doing all those things.
Ask Me Anything
My goal is to encourage people from different backgrounds to keep their chin up and celebrate their uniqueness. So, ask me anything about your tech career, life-long goals, obstacles, values, and just about anything under the sun. How can I help?
Top comments (7)
How do you realize that programming is your niche? And, after founding that, how did you plan your career and secured it? How did you get your tech job? How were the interviews with the listed disadvantages?
Hi Anower, that's a great question. The truth is I didn't. I was mesmerized by an interactive graphic I saw and it was written in Processing language. So I start learning Java just like that because I wanted to create something cool.
It had taken years of coding on the side while taking other jobs. When I was in other jobs, I looked for excuse to write code at work. For instance, when I was in architecture, I was exposed to a lot of 3D software. I knew they could be scripted, so I scripted away. Some other time I would write small scripts to do repetitive things at work, like importing images into a powerpoint deck. I never had a career laid out. My goal was always to build something cool and stick to that where ever life took me.
I got my first professional tech job because of my open source prowess. My Github heatmap was filled up every day at that moment and I was maintaining my very own project. My CTO called me and we chatted about what I worked on and just had a great time. After I completed an assignment in a language not specified in the requirement (I insisted on not using the required language because I was weak at it), I flew to California to attend an onsite interview.
I was fortunate because I was very convinced after a few failed interviews in New York City the tech companies there were more "aware" of the disadvantages than they'd like to admit. However, in Silicon Valley (or at least my company), the culture is more open to the outliers. They don't really care who you are, what you have majored, or where you're from. If you're good, they'd like to talk to you.
What was the path you took to get there? Classes, courses, books, videos, etc. What's your current language of choice? Editor/IDE of choice, and plug-ins to go with it? Any tips for someone pushing into the field after years out of it, basically starting new?
I took a long path to getting started so far, working sysadmin and netadmin for a few years before retail jobs to get an easy cross country transfer. Lucked into a field service job that was tech adjacent, then the same elsewhere in Portland. That lucked me into a startup with a former coworker doing a tech industry field service job. They recently tossed me in the deep end of relearning all the things I used to do, and a ton of new stuff. Feeling overwhelmed more and more each day as it takes me longer to get the result I want. Flip side is that I'm learning a ton and hoping to switch to a proper programming job of some sort in the future. Just curious how you pulled it off. Always nice to see the success stories.
Hi John, and thank you so much for sharing.
I think how I pulled it off matters much less than why I did and how I persisted. I have a strong belief that 99% of people just don't stick around long enough to learn. They only think they've learned something like they aren't good at it or it is not for them. That isn't learning, it's an excuse to quit. Everyone goes through the excuse stage. Not all can sail through.
I hardly had any books because I couldn't afford them. But luckily, the internet was already an abundant resource. Most physical books I cared to buy were not technical. They were subjects that would help me get through the day. Among them were the Prophet by Kalil Gibran and Powershift by Toffler which I still carry around when I travel.
The classes and courses I took were not out of because I wanted to do X with them but just curiosity. My first online course was from Stanford, building and deploying a Node.js app. I also took basic data science and R courses from John Hopkins on Coursera. Again, they were not immediately useful. I never successfully learned anything for the sake of practically use it. That's something you rip a page of a cookbook. Learning takes time, and you can't spend time without genuine curiosity.
I have no language of choice. I used to use Go a lot to the point that I've found a decent open-source Go library. I'm still using it for my projects when I need speed, although I've been trying Rust for command-line apps lately. My IDEs of choice are VSCode (who doesn't love it) and emacs. The most admirable programming languages for me are Lisp and Prolog. They transcend engineering.
My tips for you is to bumble into the unknown, quoted Frank Gehry. I love his work because most of his adult life he was a commercial architect doing goofy post-modern work until he tried something different and became a force. Most will do things for returns, and most will quickly quit because nothing yields that quickly and easily. If you can always maintain a core value and just keep blazing through while having fun and not being too logical, you will get somewhere interesting.
It is very common for me to feel intimidated. I feel that all the time. When I got criticized by a know-it-all punk who checked all the boxes I've mentioned in the post, I sometimes stuttered. I think the only difference is I bounced back hard and let them know I don't take shits. When you've literally mobbed the sidewalk of New York, you don't take shits from anyone.
You should strive to feel ok with yourself even when you aren't great at anything. It only comes when you know you are creating value.
Ah, I happen to be reading your post from Thailand right now!
In one of your responses you mentioned that open source played a big role in helping you secure your first dev job. Do you still contribute a lot to open source? If so, which projects?
I am 30 years old, asian guy living in an underdeveloped country and have tried several times to learn coding, I even paid for the techdegree on teamtreehouse in 2017 and 2019 but couldn't complete it because some reasons. Where would you like to suggest to learn coding? I hold a MBA IS in the US but absolutely clueless about coding. In the past, I tried to learn Java and then switched to python because some suggestions.
Figure out what you'd like to do first.
I started with web development (JS more precisely). I had picked web-dev as it 'seemed' (with my knowledge back then) to allow me to build many different things and to start of with no required prior knowledge (I did not know how to use a compiler properly -so no Java either xD - or how to set up a web server to use a backend language like PHP -side note when I 'bumped into' node.js I started figuring stuff out and turned back to php too xD -. That was my 'criterion'.
Later on I also 'discovered' python, rust and C, frameworks for native mobile development like Ionic/React Native, etc...
For reasources, I started with udemy courses (udemy and eduonix - a similar platform) thei are reasonably priced (so even if you grab one and it does not prove that useful, you won't lose a lot of $ plus they have a 30 day refund policy usually).
I currently work as a software developer so it did prove useful, and I learned a ton + discovered many other resources in the meantime.
Hope my story will help you.
Don't give up, you will love to do this job and best of luck!