top of page

A Day in the Life: Software Developer Edition

Writer's picture: Anna DavidsonAnna Davidson

Welcome back to our Day in the Life series, where we give you a glimpse behind the scenes at IMA. Last time, we spoke with a Data Cleansing Specialist and found out what they do to deliver cleansed, usable data to our clients. Today, we’re bringing you our chat with one of our in-house Software Developers!


IMA’s Software Development team is responsible for creating and maintaining the technology that IMA’s clients–as well as our own Data Cleansing Specialists–rely upon for world class MRO Master data. In such an ever-changing industry, that requires a lot of vision and innovation to find new ways to meet client needs.


We spoke with IMA’s Haosheng Zhang to learn more about Software Development and what a typical day looks like. Haosheng started at IMA in 2023 as a co-op student and joined the team full time after he completed his Master’s degree. In his time at IMA, he has greatly contributed to our flagship governance solution, uManage Pro, and has become one of our experts on the tool. We were excited to sit down with Haosheng and learn more!


Software Developer, Haosheng Zhang

What does a Software Developer Do?

Before we jump into the interview, let’s start with the basics: what does a Software Developer do? The easy answer to the question is “develops software,” but I’d wager many of us don’t exactly know what that means. 


Software Developers are the ones who code the software itself to create it, update functionality, or fix bugs. That process also involves a lot of time spent researching, designing, gathering user feedback, testing, and revising. As much as it’s a technical job with coding skills required, there’s a huge creative element to envisioning and creating new software!


Haosheng gave us a rundown of what he’s been working on lately to give an idea of the different types of tasks a developer is responsible for:


  • Doing full-stack feature development and supporting uManagePro on a daily basis for any bug fixes and quick changes.

  • Supporting relevant tools, like databases and cloud platforms. 

  • Monitoring the status of instances, especially after feature releases.

  • Brainstorming with teammates and colleagues for new features.

  • Meeting with developers for feature discussion and to develop release plans.

  • Assisting with rules and documentation creation for our development process, such as merging local codes to our main branch and endpoint documentation (what’s the usage, explanation of parameters, etc.). 

  • Providing guidance and help to new developers (setting up development tools, troubleshooting, and giving codebase rundowns).

  • Finding new tools or services to improve performance and user experience like introducing cloud functions to handle logins and reporting.

  • Updating production instances for scheduled releases.


Interview with a Software Developer

Now that we’ve had a primer on what Software Developers are, let’s get into our interview with Haosheng.


What does a typical day look like for you? 

First, I turn off my three alarms–it’s so hard to get out of my bed during winter–and start with a cup of coffee. (Personally I prefer iced coffee, it’s refreshing.) Once I log in, I open my chat and check if there are any new messages in the IT space. If there is anything related to uManagePro, I will prioritize that to get any issues solved ASAP.


If we have deployed a new feature, I will probably monitor its status first. For example, we recently released a new Auto Registry feature, so I kept monitoring the registry data for a while whenever I saw a governance request to verify the newly created tickets have been successfully captured by the Auto Registry database.


The IT and Development team has a daily standup meeting to go through what everyone did yesterday as well as today’s plan. After that, I usually will spend all my time focused on R&D. Sometimes I will meet with other developers for new feature development. Other than that, it’s all about researching and coding.


What is the number one thing people don’t understand about your job?

People normally want to get changes and features done quicker than possible and think their requests are straightforward and should be simple. But in the codebase, sometimes multiple files are required to be touched in order to fulfill the requirements. Extra time is also needed for redesigning the codebase to avoid code redundancy and to make sure it will be simple to maintain or extend in the future. If the changes are related to fundamental data structure, a comprehensive retest for all core features also needs to be performed to make sure we don’t accidentally break something.


What do you enjoy most about your job?

As a developer, I am able to start something from scratch and can do my own research and development. uManagePro is actually a relatively new solution in the area; there aren’t too many existing solutions in the market for reference. Its development was all driven by IMA's past experience and user feedback. I enjoy identifying effective solutions to address new challenges and take pride in having full control over selecting tools and services. I particularly enjoy the process of setting them up step by step.


What prepared you for your role?

I have a strong educational background in computer-related programs which prepared me with advanced programming skills and essential soft skills as a developer, like self-learning and the ability to quickly adapt to new technologies.


Additionally, in my previous role, I gained hands-on exposure to enterprise-level software development processes and codebases. It is a significant transition from working on academic projects to contributing to large-scale, professional systems.


Tell us about a challenge you’ve faced and overcome.

One challenge I faced was writing and deploying a cloud function for the first time, despite having no prior experience in this area. I had to rely on extensive research, including reviewing posts from the internet and studying official documentation. 


The difficulty was amplified by encountering outdated and vague information in some of the documentation. I compared multiple sources and tested with different configurations. Testing cloud functions locally is the trickiest part. It’s all about ensuring the local environment mirrors the cloud setup as closely as possible. My cloud function is supposed to be triggered whenever a new user is created. To test it, I have to set up an emulator properly in my local environment to simulate the user creation process.


Is there anything new and exciting you’ve been working on?

We are preparing for the release of uManagePro 2.0 in the coming months. Based on the valuable feedback we've received, we decided to refactor the current codebase to address all identified issues and deliver an improved version.


The big change will be a newly added internal web tool. Our internal web workspace will be separate from the client's web view, which also will include all current core features but with an improved UI and some new features like a duping tool. 


What does it take to become a Software Developer?

Now that you know more about the job and got an insider’s view, you may be wondering what the steps are involved in becoming a Software Developer.


Every position is different and companies look for different skills and experiences. Some of the common requirements include the following:

  • Degree in Computer Science, Software Engineering, or a related discipline; or equivalent practical experience

  • 1+ years of experience (depending on the seniority of the role)

  • Knowledge of programming languages such as Java, C/C++, Python, and Go

  • Analytical, troubleshooting, and problem-solving skills


At IMA, what we look for most in potential developers is two things: do they like to solve problems and can they learn. We believe those are the most important traits to have as a developer, and that shared focus is what makes our Software Development team so successful.


If you’re interested in working with IMA, contact info@imaltd.com to hear about available opportunities.


Wrap-up

Thanks for joining us for a look behind the scenes at IMA. Let us know what roles you’d like to hear about next!


For more information about IMA and our services, check out our website or email us at info@imaltd.com.

Comments


bottom of page