Spotlight on Engineering: SamvelRaja Sakthivel

Exactly what is it you do around here?

I’m a Product Engineer working on the Postman app team. I recently helped out with a revamp of the data layer and the app update process.

You’ve been with Postman about 2 and a half years now. How did you get started working at Postman?

I was a former Postman user who became a developer on the Postman team. At my old company (ZOHO), I was the person responsible for adding their APIs into a Postman collection and sharing it with teams and customers. At that time, I would provide feedback and feature requests to the Postman team. When I was looking for something new, I thought of Postman, and was fortunate to grab the opportunity.

What tech do you get to work with?

I’ve had the chance to work on all the layers of the Postman app. Our app is an Electron App, with the front end development in ReactJS, Mobx, Backbone, Redux and our team’s own architecture.

What’s something cool you’ve worked on recently?

Working on new things in Postman is cool in itself. One of the recent interesting projects I worked on was a database migration.

As a part of our 6.0 version release, the team made a huge effort to standardise the way we store the data in the IndexedDB. Since IndexedDB doesn’t have strict type checking, we had accumulated lots of stale and wrongly formatted data in the users database over Postman’s lifetime. This forced us to write code assuming lots of scenarios which never existed in our development environment.

After the 6.0 version release, we used our new ORM to add more schema-level checks to the data. To resolve the existing data in the user database, we created a new database for 6.0 users, moving all data from the old database to the new database through a filtering process. This went well. The tension over accessing millions of users' data on a completely wild environment was really interesting to work on.

Anything else you’ve worked on recently that you’d like to share?

Linux auto-updater. Yes, you heard that right. The ability to auto-update the Postman app on the Linux OS is coming to Postman.

Since Postman is built on Electron, the Electron team had various ways to update the Linux app. We didn’t have enough control over the update managers available in the market. Postman needed more control over its updates as each release instantly impacts millions of users’ data. Hence, we implemented our own for Linux.

Looking through Electron’s building updater module and implementing a similar solution for Linux users with the help of our team was a great experience. This feature is just released in version 6.1, so now our Linux users will have a similar update experience just like our other platform users. Postman users on Mac and Windows don’t even know what I’m talking about.

What is one thing everyone should know about the Postman app?

Postman has many other features other than the classic way of sending requests and testing them. It supports the complete cycle of API development. The mock servers and monitors are really a must for API developers who like to completely standardise and automate their API workflow. I would recommend people to try it, as it saved the Postman team a lot more in time and productivity than we expected.  

Also, Postman ships features early in its Canary builds. If people want an early bird experience on features and improvements, I recommend downloading the Canary version of the Postman app.

Besides Postman, what are some other dev tools that you love?

VSCode for obvious reasons. It is also an Electron app with a very interesting architecture. I always have their codebase open for getting inspirations and patterns.

Any productivity hacks that you tell your friends about?

The first is for VS Code. You can use .vscode/extensions.json to help define the recommended extensions for your project. This will pop up in the VS Code editor as recommended extensions when others open your project in the VS Code editor.

You can enable the Windows environment for Linux in Windows 10 and install any distribution of Linux shell. You can also point the shell to the terminal shell in VS Code using the “terminal.integrated.shell.windows”. This helped me for running test scripts written in unix commands in our project on my Windows dev machine VS Code without any trouble.

What is something that we don’t know about you?

  • I am in the one percent of people who prefers the Marvel cinematic universe but prefers  DC characters.
  • I am currently restoring my 1998 Yamaha Rx 135 motorcycle.
  • I recently switched my dev environment to Windows from Mac 😀
  • I often hunt for varieties of biriyani during my weekends, and I don't mind traveling to get a good biriyani.

Author: joyce

Developer Evangelist. Makes dank memes.