Almost everyone uses software daily. Whether it’s to send a message, order food, or check the weather, software is everywhere! All these experiences are created by code, and that code is written by software engineers.
Ridgeline isn’t just a software company, but it’s a huge part of what we do, and has been since the company was founded.
We rely on our software engineers to create custom solutions for clients to connect to the world and do business securely. We’re unique in that a lot of our work is on the cutting edge of digital signature management, and we own the data and infrastructure end-to-end.
But what is it like to work as a software engineer at Ridgeline? To find out, we spoke with Tim Powers, who has been on our software team since 2021. He shared the details about his journey, from teaching himself how to make his first app, to his work on one of Ridgeline’s flagship products.
We also talked about how to stay up-to-date with new technologies, what it’s like to collaborate with coworkers online, and how it’s different working at Ridgeline compared to other companies where Tim has worked.
Tim, what motivated you to become a software engineer, and how did you get started in this field?
I didn’t go to school for computer science, so most of my education with software development has come on the job. I first got started because, early in my career, I was managing a large team of people and needed a better way to track metrics than by using Excel. My first app was an employee tracking app that I built by teaching myself ASP.net. My client at the time loved the app so much that they asked me to expand it significantly. Over the next few years, I became just as much of a developer on that project as I was a project manager.
So, it was all about seeing a need that could be met more quickly and efficiently with software than it could be done manually and then building it. That really resonated with me, and my career quickly skewed in the direction of software engineering.
What are your typical daily tasks as a software engineer at Ridgeline?
A lot of my time is spent discussing and reviewing requirements, both on paper, so to speak, and directly with the people who created the requirements or who will be using the final product. To be able to solve a problem, you have to first understand the problem.
From there, it’s rolling up my sleeves to do some hard-core software development. I’m a full-stack developer, which means I’m designing front end web pages using Angular or building all of the complex logic that goes on behind the scenes in Spring/Java. All of this stuff interacts with a variety of databases and other data sources, too. Ultimately, the goal is to make sure that we’re presenting an end user with the information that they need in the way that they’re expecting to see it. In many cases, we’re presenting it in a better way that they didn’t even know was possible.
For me, it’s also about building systems that people can “live in.” We’re creating systems that people could be using all day long, for hours on end. With that kind of use, it’s the little things that make or break the user experience. So, it’s not just about making sure it works, but also making sure that it’s comfortable to use.
Can you walk us through a recent project you worked on and your role in it?
Sure, I’m currently working on a project that’s adding features to one of Ridgeline’s flagship products. I’m the Technical Lead on a team responsible for one of the capabilities that is being integrated into the software platform.
One part of this project is making sure that all of the existing functionality that we’re providing to our customers is also available in this new tool. But the really fun part is enhancing all of that with new technologies available today that allow us to do so much more than we were able to do in the past. One of the other engaging parts is redesigning the user interface to look really slick, with so much more packed in, but in a way that still makes sense.
This is a pretty complex undertaking and has many stakeholders, from other development teams, to our design teams, and our executive staff. In the end, everyone wants to create something truly great in the end, but it’s going to take a lot of work across the company to get there.
How does your work as a software engineer contribute to the overall mission and goals of Ridgeline?
My work on this current project touches so many elements across Ridgeline’s product line. As a Software engineer, working on this tool not only lets me see how my piece fits into the overall goals of the company, but it also gives me insight into all of the other areas of the company that I may not have been familiar with. It’s interesting to see how each separate piece fits nicely into the overall plan.
How do you collaborate with other teams and stakeholders at Ridgeline, such as designers and product managers?
During the pandemic, Ridgeline was quick to embrace the remote work culture. When meeting in person in the office is possible, we’ll do that. But, a lot of my day is spent in video conferences with people from all over the company – and all over the country.
Ridgeline has also invested in a variety of collaboration tools, from video conferencing, to real-time chat, to shared development tools, to collaborative design tools, to document sharing systems. Almost every function I perform at Ridgeline has a related tool or a process meant to facilitate collaboration for everyone, both in the office or working remotely.
How do you stay up-to-date with the latest developments and technologies in the software engineering field?
For me, it’s by doing a lot of reading online. Sure, it may start off with Googling an error message or looking at a web forum to see how others out there are trying to solve the same problems. But, that usually leads to going down a rabbit hole of tech articles and release notes.
I will say that perhaps the most important resource is my colleagues. I mentioned that I did not formally study Computer Science. The majority of my education has come through the support of the people I’ve worked with – whether that’s seeing their code, or them correcting mine. I learn a LOT about the new stuff out there through discussions with them. I’m by no means an expert on a lot of things, but by having access to a group of experts in several different areas at Ridgeline, I learn a lot more than I could ever have on my own.
What skills and qualities do you think are most important for success as a software engineerat Ridgeline?
First of all, communication. Being able to communicate is important in any role, in any career. But, in a field where details matter tremendously, being able to clearly explain how a system is supposed to work, or how something on a website should look goes a very long way. Likewise, half of communication is listening, so being able to ask the right questions about something that’s being described by someone else can prevent a lot of issues before they start.
I’d also say a skill that I call “learning to learn” is very important. The technologies I used just a few years ago are already obsolete, so it’s less about being really good at one thing and more about being able to quickly pick up new, complex skills, and apply them to a new situation. In a lot of ways, software engineering is more about being able to think logically than it is about being able to develop.
You can learn to speak French, and the French you speak is, for the most part, the same as the French that was spoken 20 years ago, and that will be spoken 20 years from now. But with software engineering, in five years, the technologies that we’ll be using and the languages that we’ll be developing in will inevitably be incredibly different from the ones we’re using today.
If you are skilled at thinking logically and if you are comfortable with change, you’ll be able to adapt to new technologies and new approaches to problem solving for years and decades to come.
How do you prioritize and manage your workload, and how do you deal with unexpected challenges or roadblocks?
There are always shifting priorities and issues that arise on every project. The most important part of dealing with challenges or roadblocks is communication. On one hand, that means letting those relying on you know the effects that changes or issues will have on what they’re expecting from you. On the other hand, it means being able to clearly explain to others what’s going on, to minimize the time it takes to change a team’s direction or so that issues can be fixed quickly.
I also think that having a good understanding of your own abilities is tremendously important. Knowing how long something is going to take you to do, or learn, or teach, is key to being able to know whether you’ll actually have time to do it. Every person works differently, so it’s not just a matter of knowing how you work, but also being able to express this to others. Likewise, as a Team Leader, it’s a matter of getting to know how each of the members of your team work so you can create realistic expectations and quickly adjust things on the fly, when needed.
What do you like most about working at Ridgeline, and what sets it apart from other companies you’ve worked for in the past?
Ridgeline has a very holistic approach to things. Everything that everyone is working on is meant to fit into the bigger picture. With other companies I’ve worked for, I often didn’t understand how what I was working on contributed to a goal or mission in the end…or if it even did. At Ridgeline, the leadership has done a great job communicating the company’s overall plan and then breaking it down, in some cases literally by person, to give everyone an understanding of exactly where they fit in.
I also enjoy working with people in different locations and working in different locations myself. I work with people on a daily basis in North Carolina, Texas, Wisconsin, and Colorado to name a few. In my time at Ridgeline, I’ve embraced the opportunity to work remotely and have been able to work from Florida, Connecticut, Colorado, California, and even the U.S. Virgin Islands. For me, the ability to experience new places while also having the corporate resources and support to actually work from these locations for an extended period of time is a major benefit that I’ve never had before in my career.
What advice would you give to someone interested in pursuing a career in software engineering at Ridgeline?
Ridgeline strives to be at the forefront of today’s technologies. Take a look across all of our job openings to see what technologies we’re currently working with. Anyone interested in pursuing a career in software engineering at Ridgeline should focus on these technologies.
Many of our software engineers are full-stack developers, so if you’re someone who is great at front-end development, try to learn some Java. If you’ve spent your career working with Java, learn some Angular. Play around with Docker or Elastic. It’s not just about being able to write code in these languages or use these tools, but it’s also about being able to communicate effectively with someone who might be working on something completely different from what you’re used to.
Overall, in software engineering, there will always be something new, so perhaps the most important thing is to practice learning to learn.
You can learn more about the Software Team here, or click below to check out Ridgeline’s current openings.