Software Engineering Advice
🎈Switch to a yearly subscription and save 10% for a year!

Q&A with Senior Software Engineer Extraordinaire, Puru Dahal

Published: | Updated: | By Aimee Thompson

1. What inspired you to become a software engineer? 

I come from a DevOps (Linux Administration and Server Security) background. While I was working at a big enterprise hardware company, I was also helping small businesses in my free time around my community with their web presence. This included web development, social media, geolocation optimized ads and pretty much everything it takes to adapt, sustain and ultimately thrive. The feedback, sense of achievement and appreciation I received while helping small business grow online was addictive. That's when I decided to become a full-time software engineer.

You can feel the inspiration 🤗

2. How would you define Software engineering to someone unfamiliar with the field?

I feel like software engineering is basically creating both meaning and beautiful products. In layman's terms, it can be defined as a way of communicating through code. 

I too love creating meaningful and beautiful things! Maybe I should become a software engineer… 🤔

3. What are the main responsibilities of a software engineer?

At POWr, my main responsibilities include, but are not limited to: maintaining server stability, automating processes, writing code and mentoring other engineers to write sustainable, scalable code--overall, making POWr’s infracture faster, more stable and more scalable.

Ho! Ho!  Ho! And, I thought I had a lot of responsibility! 🎅🏻

4. How do you identify quality software engineering?

As I mentioned earlier, software engineering is a way to communicate. When writing code, this means it has to be modular, maintainable, and, more importantly, self explanatory. There are different ways to achieve these goals, however, what defines a quality software engineer is following the standard practices and style-guides defined by their community, especially when working with a team of engineers with different backgrounds and levels of expertise.

Not so sure I can tell the quality just by looking at them. I’ll probably have to taste test--all of them...😏

5. What are some of your favorite tools and resources for software engineering?

If I could only choose one, it would always be Github. But, a few tools I cannot code without are iTerm, VSCode, and of course my dotfiles. I also read Hacker News, Medium and other engineering blogs.

You’re telling me none of these will work for software engineering? And, here I thought I was so prepared 😑

6. What 3 qualities do you believe are most important in a software engineer?

The three qualities I have found to be most important for a software engineer are: patience, attention to detail, and commitment to quality.

Patient. Detail-oriented. Committed to quality. Yep, sounds like me! 😁

7. When it comes to your approach to software engineering, where do you find inspiration and motivation?

The problems and challenges people are facing everyday are what inspire me. If I think can solve these problems by creating a piece of software, that’s my motivation right there.

I also am motivated and inspired out of a desire to help others--I am also motivated by this coffee mug that reminds me I’m the BEST! 😎

8. It’s often said that we learn more from our failures than our successes. Have you found that to be true? Would you mind sharing an example? 

Absolutely, this is so true. Throughout my engineering career, I was fortunate enough to work for different companies (startups - enterprises), sometimes as a founding engineer or 500+’th engineer.

One of the most important things I have learned from my mistakes is to spec out a project into really small pieces and try to solve them one at a time without over-engineering. And, while at it, attention to detail is the key. 

Absorbing all Puru’s great advice. 👨‍💻

9. As a software engineer, what teams do you work with most closely? How does this help you towards success?

An awesome aspect of POWr culture I love is getting to collaborate with all of my team members with different expertise, backgrounds and experiences. Everytime we work on a feature, at least one team member from each different department is somehow involved, which helps me and other engineers a lot. This also ensures we avoid a lot of bugs and iterations.

Nice work team! 💪

 10. When you receive a new project, how do you get yourself in the right frame of mind to ensure the best outcome?

Before I begin, I do my research, collect information on the problem I am about to solve, and break it down into small pieces. Usually, to get a second opinion, we like to bounce ideas off each other and brainstorm about the project with project managers and other engineers. This helps us define the action items.

After all of that, I usually like to start a new project first thing in the morning. This helps me get in the right frame of mind-- I turn off notifications, tune into my regular Spotify playlist and start coding.

Ahh, Coffee, you always put me in the right frame of mind ☕️☺️

I am Puru Dahal, I turn caffeine into code 😉. I am originally from a beautiful country, Nepal. When i am not coding, you will either find me riding around the bay area on my beautiful Harley Davidson, or hopping bars.