4 Engineers Share Top Tips for Unlocking Productivity and Preserving Flow

These technologists share strategies for unlocking problem-solving skills and preserving flow states.

Written by Olivia Arnold
Published on Jun. 15, 2023
Brand Studio Logo

With #productivitytok garnering more than 160 million views on TikTok, it seems like everyone is pitching their so-called perfect productivity hacks for nearly every aspect of personal and professional life. 

For engineers and developers — who spend their days tackling complex technical problems and navigating context switching — no one knows the unique path to productivity quite like the talented technologists actively working in the field.

In pursuit of delivering high-quality code, engineers and developers from four New York companies — Grow Therapy, EliseAI, adMarketplace and Trumid — have learned the importance of collaborating with peers, prioritizing tasks and minimizing distractions. They urged new engineers to break out of isolated work siloes, ask for help from team members when needed and set aside time for critical reflection. 

With recent advancements in artificial intelligence, many engineers are also increasingly embracing AI-powered tools as a means of maximizing productivity. 

“Don’t hesitate to use GitHub Copilot, ChatGPT, Stack Overflow or anything else that makes your life easier,” said Zachary Gottschall, an engineering lead at EliseAI. “If it saves time, it’s a winner in my book.”

The featured engineers and developers connected with Built In New York to share these tips and more on unlocking exceptional problem-solving skills and preserving fruitful flow states. 

 

Image of Sepehr Ansaripour
Sepehr Ansaripour
Senior Software Engineer • Grow Therapy

Grow Therapy helps mental healthcare professionals launch tech-driven, in-network practices. 

 

What is the top productivity tip that has improved your ability to deliver high-quality code?

Structured pair programming! As the name suggests, pair programming is the act of programming with someone else. When you’re pairing, ensure that you switch off who’s driving at regular intervals — this is where the “structured” bit comes in. 

A simple but effective way to do this is to set 15- to 20-minute timers and then have the driver push up their changes after the timer goes off. It’s OK if the changes aren’t perfect; push up what you have! 

The purpose of pairing isn’t necessarily to make the most progress on a task in the shortest amount of time but rather to spread knowledge and write quality code. Say your pairing partner doesn’t have a desired system working on their local machine. In that case, It may be tempting to have only one person drive for the full duration of the session in order to make progress on the task; instead, help set up your pairing partner so that they can run the system on their local machine too. 

By disseminating knowledge, you’re helping create an environment where everyone can benefit from collective wisdom, learn from shared experiences and foster a culture of collaboration and continuous growth, helping everyone deliver high-quality code.

 

What are some mistakes that you see newer engineers making when it comes to productivity?

Issues like imposter syndrome may internally pressure newer engineers to not ask for help and work in a silo. Reaching out early and often is an invaluable skill, but the onus is also on the team to ensure that newer engineers have ample avenues to get the help they need or may not even know they need. 

By fostering a supportive and inclusive environment, team members can overcome imposter syndrome, break free from isolation and cultivate a culture of open communication. Pair and mob programming, in particular, are powerful practices to support newer engineers. They allow new engineers to collaborate closely with more experienced team members, providing real-time guidance, mentorship and an opportunity to learn from their peers. 

Pair programming not only accelerates the learning process but also builds trust and camaraderie within the team, ultimately mitigating burnout and minimizing technical issues that may arise due to knowledge gaps.

 

Pair programming not only accelerates the learning process, but also builds trust and camaraderie within the team.”

 

How do you minimize distractions and deal with the friction of context switching?

It’s important to realize what your biggest sources of context switching are and apply remedies at the root. Things like being on too many projects and being inundated with meetings are usually process issues that can often be resolved through open dialogue. Retros and one on ones with management and leadership are great places to raise and discuss these sorts of issues. 

That being said, it’s hard to avoid at least some level of context switching. Even within one project, simply viewing a different file can be a form of context switching. In my experience, navigational keyboard shortcuts and tools are paramount to reducing the friction of context switching. Learn and utilize keyboard shortcuts for your most frequently used actions in your integrated development environment, text editor or other tools, especially when it comes to navigating around. 

This will allow you to context switch with minimal friction, as translating your thoughts to actions will just be a matter of some simple keyboard presses. The more you do this, the more it becomes muscle memory and the more effectively you can context switch.

 

 

Image of Zachary Gottschall
Zachary Gottschall
Engineering Lead • EliseAI

EliseAI builds conversational artificial intelligence technology to automate business conversations in the housing and healthcare industries.

 

What is the top productivity tip that has improved your ability to deliver high-quality code?

Just value your time and try to save as much of it as you can. There are four strategies that work well for me. 

  • One, use every tool at your disposal. Don’t hesitate to use GitHub Copilot, ChatGPT, Stack Overflow or anything else that makes your life easier. If it saves time, it’s a winner in my book.
  • Two, if you find yourself doing the same thing over and over, try to automate it. For me, I have this homemade Python package called “zac_utils.py.” It’s just a bunch of Python shortcuts that help with my debugging work.
  • Three, don’t forget to take a breather now and then. It’s too easy to lose track of time when you’re deep in a problem. Sometimes, a quick walk outside or a loop around the office, maybe via the kitchen, can recharge your batteries and get your problem-solving skills back on track.
  • Four, check in with yourself every so often. Ask yourself, “Is this the best use of my time? Am I making this more complicated than it needs to be?”

 

What are some mistakes that you see newer engineers making when it comes to productivity?

One is not asking questions. In big projects, there are a ton of details. The best engineers know when and from whom to ask for help. Sometimes, you have to power through a challenge on your own, but other times, it’s crucial to tap someone on the shoulder and ask.

Another is running on empty. Late nights can be part of working at a startup. While it is exciting, being “on” 100 percent of the time just isn’t sustainable. Taking breaks isn’t slacking off, it’s necessary recharging time.

A third common mistake is over-committing. When you’re starting out, it can feel tempting to say “yes” to everything. However, a critical part of the job as an engineer is understanding how to prioritize. With competing priorities and deadlines, it’s crucial to distinguish what’s urgent from what’s important and what can wait. Knowing when to say “no” isn’t about shirking responsibilities, it’s about managing your workload effectively. If you try to do it all, it’s a recipe for mistakes.

 

With competing priorities and deadlines, it’s crucial to distinguish what’s urgent from what’s important and what can wait.”

 

How do you minimize distractions and deal with the friction of context switching?

First, I am mindful of Slack and other apps. I used to let these tools dictate my day, but now,  I use them when needed. I have specific check-in times, and I let people know they can call me if it’s super urgent. That way, I control the interruptions, not the other way around.

Second, I adapt to my surroundings. We have two floors at the EliseAI office, and each has its own vibe. If one gets a bit too loud, I know I can find some quiet on the other floor. On days when I really need to dig deep into a problem, I head over to a local coffee shop or a library. Switching up my environment helps me refresh my focus.

Third, I keep my purpose front and center. There’s always a reason why I’m working on a certain task or feature. Remembering that “why” helps me stay on track. It’s like a little mental sticky note that keeps me focused on the goal, even when there are distractions around.

 

 

Image of Arun Rajagopal
Arun Rajagopal
Senior Director, Engineering and Optimizations • adMarketplace

Marketing technology company adMarketplace provides a consumer search platform. 

 

What is the top productivity tip that has improved your ability to deliver high-quality code?

Productivity stems from a well-defined sense of purpose in one’s professional life and a commitment to creating value. Like others, I occasionally face a crisis of purpose. During such times, I turn to the concept of “ikigai” for guidance and combine that with my organization’s mission. 

For those who may not know, “ikigai” is a Japanese term that represents the intersection of one’s passion, mission, profession and vocation. It’s essentially the sweet spot where what you love, what you excel at, what the world needs and what you can be compensated for converge. Identifying your purpose is the first step; the next is focusing on value creation.

Although building intricate solutions is tempting, most real-world business problems can be addressed with simpler engineering systems, as long as they prioritize addressing customer pain points. To enhance productivity, I also leverage various tools, including AI applications, to overcome any initial inertia of ideas, concepts and code.

The emergence of AI has made solving technical problems easier than ever before. All it requires now to have a stellar productivity level is purpose alignment, a passion for value creation and having fun solving problems. 

 

By collaborating and sharing ideas, engineers can amplify their productivity and solve problems more efficiently.”

 

What are some mistakes that you see newer engineers making when it comes to productivity?

Newer engineers often overlook the importance of breaking down projects into smaller, more manageable tasks that release incremental value. This approach not only simplifies complex problems but also allows for continuous progress and improvements.

It’s also not uncommon for newer engineers to focus on building intricate, cutting-edge solutions without paying adequate attention to value creation. As I mentioned, most real-world business problems can be addressed with simpler engineering systems that prioritize addressing customer pain points.

Additionally, many new engineers may not fully leverage the collective knowledge and experience of their team members. By collaborating and sharing ideas, engineers can amplify their productivity and solve problems more efficiently.

Finally, newer engineers may lack an organizational mindset. Developing an organizational mindset ensures that one’s efforts contribute to the overall success of the team and company, ultimately fostering a more productive and fulfilling work experience.

 

How do you minimize distractions and deal with the friction of context switching?

Working in a mid-sized company enables us to foster an organizational mindset, gain a holistic view of the customer journey and interact with other teams on a given day. Though these are great perks to have, they may push us to switch contexts often, leading to productivity loss. However, we can be trained to embrace, regulate and extract value from it, since every new day presents opportunities that pave the way for our career journeys.

Excessive interactions and frequent context switching can lead to distractions, loss of productivity and even burnout. One strategy I have found effective in minimizing these issues is to create buffer periods between different tasks. For instance, taking 15 minutes to reflect on what I’ve just completed and prepare for what I will tackle next can provide a mental reset.

These buffers serve a dual purpose. First, they allow me to absorb and process information from the previous task, preparing my mindset for the next one. Second, they empower me to consciously assess tasks and decline those that may not align with goals. This way, efforts can be directed toward value creation, allowing more efficient, effective and fulfilling work patterns.

 

 

Image of Ashley Davies
Ashley Davies
Software Developer  • Trumid

Fintech company Trumid brings technology and product design to corporate bond trading. 

 

What is the top productivity tip that has improved your ability to deliver high-quality code?

One of the biggest tips I swear by for productivity is taking the time to learn the necessary tools and processes upfront, which helps to streamline projects, reduce costs and move through the day more efficiently. It’s not an uncommon sight to see people fighting against their tooling, particularly for version control. Some of the challenges that engineers encounter are artificially harder to solve because of a lack of understanding around the underlying tooling, causing them to unknowingly swim against the tide and resulting in lost productivity.

I was drawn to the fintech space because of its fast-paced environment, energy and the constant innovation happening at every corner. However, with complex projects and tight deadlines, it can often feel like there isn’t enough time to learn the more intricate parts of, say, git, your shell or your favorite text editor. When you pause and take the time to do this, it pays dividends. 

At Trumid, everyone is encouraged to learn and develop their skill sets because it isn’t just about getting things done, but getting them done right. This attitude and approach help me stay on track and maximize my productivity.

 

One tip is setting up clear boundaries around where and when you work, which helps tune out life’s distractions.

 

What are some mistakes that you see newer engineers making when it comes to productivity?

We tend to overestimate how good our long-term memory will be. One of the easiest and most beneficial changes to make is learning to ignore that impulse of simply cranking out code. Instead, take the time to document everything that is important to remember. 

When making an engineering decision, note the “why” behind the decision and be sure to link your code to relevant sources. That way, when someone comes back to the code, it will be easy for them to follow and track back through your thought process, which saves valuable time.

 

How do you minimize distractions and deal with the friction of context switching?

One of the best things I did when I started working from home full-time was creating a dedicated office space. This has done wonders for my ability to focus, and I can get a lot more done in a shorter time. There is always a balance with remote work, but one tip is setting up clear boundaries around where and when you work, which helps tune out life’s distractions much more easily than when one is in their usual living space. 

That said, not all distractions are from home life. The most productive work is done in a flow state, and for most of us, that’s easily disrupted and hard to slip back into. Creating a disciplined approach around how you prioritize work and minimizing context switching where possible are the most valuable skills for ensuring you make the most of that time.

 

Responses have been edited for length and clarity. Images by Shutterstock