Spotlight on Engineering: Kamalakannan

Kamal, you're a Product Engineer at Postman. What would you say … you do here?

I get to work on the Postman native applications, which are built on Electron. I usually work on the non-UI parts of the apps, but also build ops and build infrastructure.

I’ve worked a bit on the postman-runtime project that powers collection execution on our Postman app, the Newman command line tool, and monitoring. If you didn't already know this, the project is open source and available on the Postman GitHub org among our other open source projects.

You've been with Postman for 1 year now. How did you get started working here?

I started as a front end engineer at Zoho Corp at their Chennai campus. That's where I first started using Postman.

I came down to Postman’s Bangalore office for an interview, and I was spellbound by the engineering team. I joined, and ever since, have been part of a team that’s building interesting things and learning lots of stuff along the way.

What tech do you primarily work with?

Our development environment is mostly JavaScript across projects and the team. This allows us to onboard ourselves to new projects easily.

Extending this, we’ve been working on bringing Waterline ORM into the native apps. Our backend services already use this as part of Sails.js.

Apart from this, I spend most of my time working with Electron APIs, MobX stores, React, and Mocha and Chai tests.

Tell us something cool that you’ve worked on recently.

Our most recent project with the native apps is an overhaul of the data access and storage layer. Our adoption of React helped us organize, optimize, and iterate quickly with the views. For the models and controllers, we stuck with Backbone for quite a while, waiting for the right time and the right alternative, within the limitations of the web + Electron APIs.

We’ve had success bringing in Waterline to interface with IndexedDB and MobX observable stores to back our views. What’s more interesting is the interface we’ve created in the process for data access independent of the views. This will allow us to interact with the data reliably through views, sync, and maybe plugins later. 

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

The Postman native apps use the Node-based postman-runtime project for sending requests and running collections. From the command line, you can start the app with the NODE_DEBUG=request flag to see all the debug logs for every request you send.

Besides Postman, any other favorite devtools?

I like Visual Studio Code and use it as my primary editor. I really like their git integration and inline terminal feature.

We were looking for a non docker based multi platform CI for building and testing apps built on Electron, which is when we found BuildkiteThis allowed us to set up agents for any platform on campus and orchestrate our CI systems. We’ve made a nice review and deploy step with their block step.

Any tips or tricks that you want to teach us?

In Chrome DevTools, you can use the copy() function to copy anything to the clipboard. Right click -> Store as global variable, copy(temp1) and paste gives you a nice JSON formatted object output.

What is something we don’t know about you?

My development environment is quite bare metal. I have very few customizations installed. I rarely use shortcuts. All I need to get set up is VSCode and git 😂.

Also, I'm a big Star Wars fan. I am filling my time waiting for the next movie by reading Chuck Wendig's Star Wars: Aftermath trilogy and collecting Star Wars bobble heads.

 

Author: joyce

Developer Evangelist. Makes dank memes.