Over the last 5 months, I’ve worked as a Software Engineer at TenX, where I helped to build the fabric for the decentralised world. During my tenure, we launched the TenX Card, which makes cryptocurrency spendable anywhere, anytime.
This post just contains some of my reflection, looking back at what I’ve learnt over the past 5 months, and what I aim to do better in the future.
Back in July last year, I learned about the existence of Rust, probably while scrolling through Reddit or Hacker News. A systems programming language, Rust aims to empower its users to build reliable and efficient software. I picked it up by building a few small projects in it, as is my usual method of learning programming languages.
It was difficult at first, due to its novel approach to memory management and its statically, strongly typed nature. Fortunately, finally getting it to compile, and watching the resulting program run blazing fast, was extremely rewarding. And rewarding it was, when I was contacted thereafter to join the TenX team, thanks to the work I put on GitHub.
What I’ve gained
TenX has been my first experience working in a larger company, with more established processes and a pre-existing codebase (my previous gigs had me start a new project). Thus, a lot of what I learnt stems from the typical “first job” experience that all of us have had/will have.
I also got to know about the various workflows that help a team work together effectively, like organising the tasks on a project board and having focused meetings for grooming and retrospectives. I had an incredibly diverse group of coworkers; it was really fun getting to know them and working with them.
I was also very fortunate to get to use many modern tools like Nix and Kubernetes, alongside Rust, in production. Working with a solid development pipeline with CI and CD set up was a refreshing experience; it allowed me to focus on my code a lot more. Shipping production code was also pretty exciting, as I got to see how many changes affected users in the real world.
What I’ll do better in
In hindsight, there are lots of things that I want to do better in, in my future internships/jobs. For one, during my next internship, I want to dive deeper to learn more about the other aspects of running a business, like product, finance, customer success, and even the executive team. I've come to realise that even as just an engineer, having a bigger perspective on the company as a whole, is important to building good software.
I'm also looking to learn more about DevOps, and their role within the engineering team. I took a lot of the development pipeline for granted, failing to recognise the immense skill and required to set it up and maintain it. Eventually, I want to get more involved in the whole development cycle, and I think DevOps is a good place to start.
Most importantly, I want to ask more questions. I feel that throughout the last 5 months, I haven’t asked enough questions, which led to me re-discovering many things that I should’ve just asked for in the first place. Of the questions I asked, some of them weren’t good ones, which led to a lot of wasted time and energy. For my next internship/job, I want to ask better questions.
In overall, I think my time at TenX was fruitful, and I’ve grown a lot from the experiences I had. I really wish that I had more time to spend at the office, to make full use of this once-in-a-lifetime opportunity. I still feel incredibly grateful, though, to have had the opportunity to contribute to them, and to have worked with so many amazing people.