Chad joined the ApostleTech team nearly four years ago, after spending eight years as the lead developer for a logistics company. Chad was initially hired as a Senior Developer at ApostleTech and quickly rose to his current position of Principal Engineer. Chad studied computer science before starting his career in software development and he holds multiple Salesforce certifications. As Principal Engineer, Chad sets the technical direction, standards, and practices that are instrumental in the success of our development team. We recently talked to Chad about his experience in the industry and role at ApostleTech to learn more.
What does the job of Principal Engineer at ApostleTech entail? Can you give us a little insight about what you do?
I am responsible for setting and enforcing the organization’s development standards while providing guidance on the overall technical direction of the company. This includes items such as coding standards & guidelines, application lifecycle management (ALM), system/application architecture documentation, etc. Since starting at ApostleTech, a primary focus of mine has been to shift our development team towards writing code within a structured development framework. This framework promotes code reuse by employing multiple design patterns and best practices that are intended to help our developers write code that is robust, easy to navigate, self-documenting, and allows applications to scale in a predictable manner. This is accomplished through a core set of classes and components that act as the base of our framework. When we begin a new project our first step is to deploy this base from our repository into the Salesforce org and we can instantly start building enterprise-level applications. On any given day you can find me curating and/or documenting our base framework, performing code reviews, designing applications and integrations, and mentoring our development team. Of course, I love to write code myself, so I always try to fit this in each day too!
Can you tell us a little about some of the interesting projects you and your team are working on?
For me, the most interesting aspects of our projects are the “mini projects” within them that can be isolated into their own standardized features within our framework. For instance, after working with multiple customers whose projects required outbound integrations with RESTful services, we identified a need to have a standard set of classes/components to reuse for future integration work. Out of this, our framework feature that we collectively refer to as “REST Connect” was created. This feature leverages Custom Metadata Types that are responsible for persisting authentication, host, endpoint, and parameter metadata related to any RESTful service that we may need to integrate with. Then, we built out a set of generic Apex classes (adhering to our framework standards of course!) that consumes this metadata, transforming it into a valid authentication or endpoint request, executes it, logs it, and handles the response. Another interesting example is our Exception Logging feature. Using Platform events, we have baked in a standardized error logging feature that is capable of recording critical data points related to unhandled exceptions, including the full stack trace, the class/method/line where the exception occurred, and Governor Limit information. This has proven to be invaluable when troubleshooting or debugging an issue.Both come standard in our development framework and are currently used in many production orgs.
What are the biggest challenges of a CRM implementation and how do you and your team overcome these challenges?
Data integrity is typically a challenge. Most often, our implementations require some sort of migration of data from an existing system to our new one. Our project team does a great job of ironing out requirements for business rules to apply within our solution. However, these requirements may not have been written into an existing piece of software. The result is typically a dataset that requires a bit of massaging before it can be brought into Salesforce. This takes time. We need to understand the existing data model, how and where to transform it into the new model, and then take the steps necessary to ensure no data gets lost or left behind in the migration and the customer’s standards are upheld.
What advice would you give someone considering a career in software engineering?
I have learned that being a successful software engineer is really more about problem solving than writing code. The ability to break down a large, complex problem into small, simple ones is paramount. Learning to think in parallel is important, also. Sometimes, tasks need to be performed sequentially. Other times, this isn’t efficient. Identifying the dependencies in each task will determine how to tackle your workload.I know all developers love to write code! From this perspective, understand that there are a ton of languages/platforms to choose from. Start with one you’re most interested in! There is no wrong answer. Once you’ve done that, begin by learning the basics before you dive into frameworks. Find a good book, or online course, follow the examples and start building something! Then use it a bit and try to identify where you can make adjustments in order to create a more fluent user experience. Once you’re ready to apply for a job, look for a good mentor. I was lucky enough to find a Sr Developer to work under for my first developer job to learn the ropes.
What do you enjoy most about working at ApostleTech?
ApostleTech offers a lot of benefits! Beyond the industry standards, I appreciate the space to grow and encouragement from the executive team to take on new challenges. If I had to pick a favorite thing, it would definitely be the people I get to work with. There are always new things to learn, new ways to implement solutions, and new challenges to tackle. The best part is coming together as a team and finding a scalable way to solve a problem.
When you are not at work, what do you enjoy doing to relax and unwind?
I’m an avid baseball fan. When it’s baseball season you can find me watching anything MLB related. My wife and I live in sunny Chandler, AZ with three outstanding kids. We like to hang out by the pool in our backyard, spend time with friends and family that are in the Valley, and hit our favorite vacation spot – anywhere with a beach! My wife and I also enjoy staying fit so we’re usually finding fun new workouts to do or just going with our favorite – yoga!To learn more about how Chad and the ApostleTech development team can help your company with its data integration and CRM needs, contact us.