I started my career in tech in 2014 as a research assistant at an aerospace corporate research laboratory, developing proof-of-concept experiments for advanced manufacturing techniques for additive-manufactured aircraft engine components. While I fretted over getting the required metallic test pieces to conduct experiments and was getting increasingly frustrated at the budgeting and lead-time, I became envious of the research associates and research fellows working on computational projects whose research progress depended less on materials lead-time and could work on other aspects of their projects while waiting for their simulations to run.
During that low point of my career, I thought to myself:
How do I switch from conducting physical experiments to conducting simulated experiments as a career?
Dissatisfied with the state of my career, I resigned from my job towards the end of my 2-year contract with no clear path forward, knowing that my journey in pursuing a Masters in computational science and modeling would be far from smooth-sailing. I may have learnt to code in C and MATLAB during my undergraduate studies, and I did pretty well in writing numerical codes for my projects (with plenty of help from googling and reading sample codes). However, it had been more than 2 years since I wrote a line of code - how do I brush up on my coding skills to survive a computational Masters?
It certainly did not help that I was also going through a very low point in my personal life, escaping from an abusive relationship and struggling with physical pain. Nevertheless, I decided that I had to move forward with my long-term goal of becoming a computational researcher, and I had to start somewhere.
While waiting for the first semester of my Masters program to commence, I did a refresher and started writing my first lines of code for the first time in 2 years. My coding skills had gone rusty from lack of use, but I felt free for the first time in 2 years - free to experiment, and free to make mistakes in the process. The pressures of trying to upkeep a front of perfection and invulnerability in the name of trying to be extraordinary slipped away as I encountered error messages and fixed the bugs in my code.
It's okay to make mistakes in the process - you're not going to destroy the computer with your syntax errors.
When I am reminded that syntax errors are part of the learning process and do not necessarily make me an impostor, I stopped beating myself up for making mistakes.
It has been more than 3 years since I came back into coding through computational science, and I have been working as a data engineer at a government-linked corporation since 1.5 years ago.
I'm very thankful that I was given a chance despite having learnt Python on my own just a few months ago, because they saw the value in the computational and research skills that I learnt through my Masters project and research stint. I have spoken at 2 regional tech conferences last year in Asia, and I am excited to be making my European speaking debut at DragonPy in Slovenia this year (assuming COVID-19 does not derail plans, fingers crossed). I have also made my very first contribution to the documentation for pandas 1.0 release, and got onto the waitlist for OSCON this year (phew, not rejected yet I guess).
I still feel very much like an impostor in tech, because I don't see enough of people like me in tech events and conferences. I still fare badly at technical interviews especially for data structures and algorithms, and struggle to understand all the big data tools that are highly sought after and talked about in the data ecosystem. I still feel a great sense of fear and shiftiness when I attempt to write technical posts in my developer blogs or deliver talks on stage, worrying that I would be exposed as a fraud if I make mistakes in my writing or mess up my talk.
Nevertheless, I'm still here in tech and I'm still coding.
Despite my own insecurities in my tech capabilities and having to contend with implicit discrimination in male-dominated workplaces with entrenched biases, I learnt the value of community in tech.
Even as I felt drained when attending tech events and conferences alone initially, the act of showing up and being radically honest in my intentions helped in making myself feel part of the tech community when people start noticing and reaching out to me.
Even with COVID-19 leading to a string of cancellations of major tech events, the local tech community came together to move the meetups online so that members of the tech community could continue to share their experiences and connect with each other while staying safe.
Most importantly, it is through getting involved in the tech community and staying in tech that I learn that it is okay to be imperfect and vulnerable even as a person from an underrepresented community. I write code and do tech, but I am also human and I am still learning how to improve myself everyday. And that has given me permission to make mistakes, learn from them, and grow to become a better person in my career and personal life.