Mithilesh Vaidya


APT Portfolio

My name is Mithilesh Vaidya, a 4th-year dual degree student in the EE department. I did my internship at APT Portfolio, an HFT firm that also develops special hardware for executing their stock transactions at insanely high speeds.

I had not heard of APT before it appeared on the internship blog. I spoke to a couple of seniors, and they were quite happy with their experiences. Also, the EE224 Digital Systems course in my 4th semester and the EE309 core course on Microprocessors which I was pursuing in my 5th semester had piqued my interest in digital systems and computer hardware in general. So, a hardware internship was a good choice to explore these fields in greater depth.
The selection procedure had two stages - a coding test followed by an interview. The questions asked in the coding test were simple and mainly tested basic algorithms and data structures. However, the catch was that each question had to be done in a specified programming language - either C++ or Python. One should revise the basic concepts of graph traversal, sorting algorithms, string manipulation, etc. Practising them on competitive coding sites such as hackerrank.com should suffice. The interview was mainly about digital design. I was asked questions about state machines, counters, minimizing logic circuits, etc. A good grasp of all the topics taught in EE224 will be helpful.
When I was finally selected, I was more relieved than ecstatic since I wouldn't have to look out for new posts on the internship blog and put on my formals at 10 in the night, and rush to the lecture hall complex for any more interviews.
The interviewer mentioned to me that almost everybody starts in testing - interns are too young and inexperienced to work on design problems. Add to it the fact that the trading algorithms are proprietary which means that HFT firms are hesitant about exposing interns to RTL designs due to confidentiality reasons.
IIT Bombay preponed the vacation due to the pandemic, but APT was one of the first companies to begin the internship after just 15 days of notice. Luckily, they already had the required infrastructure to carry out the entire internship online. We could work from our laptops - no special hardware had to be delivered to us. We were sent a link to an online training program which covered SystemVerilog and UVM Fundamentals, a week before our internship officially began. We had a smooth weeklong onboarding experience. The person who interviewed us helped us navigate the codebase and explained to us the problems we'll be working on. Then, my co-intern and I were assigned different projects. Due to confidentiality reasons, I cannot elaborate on the exact nature of the project but in a nutshell, the work I did help APT speed up their testing procedure.
I'd interact with my assigned mentor every day - the timings were flexible, and I could work whenever I wanted to. The only suggestion was to work whenever my mentor was online so that any doubts could be cleared up immediately. My daily routine was simple - wake up at 8.30 am, either continue working on whatever I was working on or have a short meet with my mentor to clear up some issues I was facing. An hour-long lunch break from 1 pm to 2 pm, followed by another coding session. At 5.30 pm, I used to switch off my laptop and call it a day. We did not have too many meetings, which helped me focus on the actual coding. I was also asked to document my work side-by-side. Documenting your work is one of the most important but underrated skills. I was constantly reminded that poor documentation would render my work worthless since it will be difficult for someone to work on it in the future.
The WFH experience had its pros and cons. I did not end up wasting time in the crazy Bangalore traffic. I had the comfort of home-cooked food. Since I was mostly writing code, it did not affect me much. Even in person, I would have spent most of the day in front of my laptop. However, we missed out on the in-office experience. Meeting new people, those exciting talks during lunch, sharing ideas with my co-interns, etc. would have been fun! People at APT were friendly and open - we could randomly ping people and ask them about their profiles and their experiences, which we did on our last day. The hierarchy is almost flat. Since the company is relatively small (~70 employees spread across offices in Bangalore, Delhi, and London), anybody can pitch an idea. It is almost akin to working at a startup. Which also means that the work we did was impactful. My mentor informed me on the last day that my code was already being pushed into production! It was so satisfying to hear that two months of an intern's work was already being incorporated into the master branch of their codebase!
Whether you should opt for an internship at APT Portfolio depends on your goals. If you want to pursue hardcore analog/digital design, go for TI or Qualcomm. If you like coding but with a flavour of hardware to it, you will enjoy the work at APT. Of course, the extra $$$ counts too :p. Feel free to reach out to me for any further queries. Good luck!