My journey to Vigilant wasn’t a standard software developer path, since my undergrad and masters were in biochemistry. After I finished, I decided to change domains, getting a graduate diploma in computer science. I first worked for startup where we were developing a machine learning system applied to online advertising. While it’s not the same subject matter, working for a firm that trades in the financial markets is similar to the learning system as it deals with capturing and processing a lot of data quickly and efficiently.
As a software developer I write a lot of tools, but often I’m not the one to use these tools most extensively. When I came out of school, I thought that you build a project and you’re done with it, given you do some work to eliminate some user reported bugs. However, I found out that’s not the case. Now I understand that it takes iteration to make a performant, stable and easy to use product. It doesn’t happen on the first try. You have to take time to do multiple rounds of reflection and refinement, and even sometimes start over to get something right. Getting user feedback in this process is critically important.
My day at Vigilant starts with reading emails and reviewing code made the previous day or checking the status of our overnight data processing jobs. Then we usually have our team standup and, depending on what comes up, I may follow that with pairing with a teammate or responding to an issue that required team consensus. Being a team that provides a historical market data API to the rest of the company, we’re fielding questions and bug reports daily. We’re also keeping an eye out for issues, keeping alert for any potential crashes. If there are no issues in our stack, I’ll turn to my projects for the rest of the day, like writing decoders for financial exchange data.
I really enjoy problem solving and learning – something that hasn’t stopped since I’ve been at Vigilant. I’m now using two new languages and have learned a lot about trading. The tools I use daily include vim, debugger, git, Java and different IDEs adapted to the languages we use. Learning to use the debugger correctly was a great time investment, since it’s now one of the first things I turn to when facing a bug.
Curiosity is an important skill for a software developer. You have to really love taking things apart and looking inside to see how they are made. We’re doing this all the time as developers, and you have to be driven to dive through all of the layers. Developers also need to have a strong imagination. Software development is sometimes like trying to put together an abstract puzzle for which we may only have a certain set of pieces and need to make our own pieces that fit. Holding a mental model and imagining how to connect and interact with many different APIs is just like that.
Coding is a craft. It requires discipline, attention to detail, and a willingness to constantly correct and improve. Working as a software developer at Vigilant was unexpected when I was in school, but I’m glad my path led me here.