Skip to content
Go back

From Good to Great: Enhancing Developer Experience for Maximum Team Performance

As software engineers, we’re always looking for ways to optimize our processes and improve the quality of our work. But have you ever stopped to consider the importance of creating a great developer experience for your team? In a world where time is money, developer experience is the key to unlocking your team’s potential, and I’ve spent over a decade specializing in this area, focusing on dev tools and architecture and helping companies like The New York Times, The Browser Company, Bumble and my solutions have been used by more than 80,000 apps.

So let’s talk about what does that imply and how I usually work on it with clients.

But what does it mean to create a great developer experience, and why should you care?

Let’s look at some stories from my consulting experience just to illustrate the effect focus on developer experience can have on already high performing teams!

Story 1 - Hot Reloading

To illustrate, let’s consider an example: a software development team that spends a significant portion of their time wrestling with complex and time-consuming iteration cycle length. Waiting significant time after each code change, even the smallest one…

The frustration and loss of productivity are palpable. Now, imagine if that team had a streamlined process. The developers would be more productive, happier, and focused on delivering business value rather than getting bogged down waiting for Xcode to finish building and deploying their app.

To solve this issue within The Browser Company I designed the Hot Reloading workflow with Inject, and it had huge impact not only on the already high performing team of BCNY, but also the Swift community as whole (more than 20,000 apps are using it daily). BCNY team commenting on Inject workflow effect on their productivity

Story 2 - Leaks

During my tenure at The New York Times, we frequently encountered memory leaks that diminished our users’ experiences. Although Apple provides tools to identify such leaks, by the time a user reports a crash, it’s too late for diagnosis.

Compounding the issue, Apple’s tools struggle to pinpoint leaks caused by closures, leaving engineers to tediously sift through numerous changes to find the culprit—hardly an efficient process.

To tackle this challenge, I asked myself: what’s the simplest way to detect if an object in our app is leaking? The answer was surprisingly clear-cut: in most applications, it’s possible to establish an upper limit for the number of instances of a specific type (e.g., ViewController) that should exist simultaneously.

This revelation led to the development of LifetimeTracker, a versatile open-source solution now used by tens of thousands of companies worldwide, including Monday.com.

Story 3 - Boilerplate

As a seasoned consultant with years of solo experience and leading a talented team, I’ve had the opportunity to work on myriad projects that frequently required similar code. Committed to enhancing developer efficiency, I found it irksome that my team at DF and I had to repeatedly solve the same challenges for each client. This frustration fueled the inception of Sourcery—the undisputed gold standard for code generation in Swift.

Today, over 50,000 apps, including household names like Airbnb and Bumble, have harnessed the power of Sourcery to streamline their development processes.

What can you expect from my approach?

My expertise lies in optimizing development tools and architecture for teams, ensuring your projects progress seamlessly and effectively. Envision this: your team is immersed in a intricate task, hindered by cumbersome tools and a tangled architecture. Much like a skilled chef sharpening their blades, I’ll swoop in to refine those tools and restructure your system, enabling your developers to slice through tasks effortlessly.

Existing codebases

I commence by meticulously examining your project and team workflows, pinpointing bottlenecks, inefficiencies, and hurdles. Equipped with this insight, I devise practical enhancements tailored to your team’s distinct requirements—be it custom dev tools or architectural adjustments to better suit your objectives and expertise. The outcome? A streamlined, collaborative space where developers can concentrate on crafting exceptional software.

As these improvements take root, I transition into a supportive capacity, offering ongoing code reviews and Q&A sessions to ensure the changes are seamlessly integrated and efficacious. This sustained guidance preserves the momentum generated by the initial enhancements, empowering your team to persistently refine their processes and developer experience over time.

New Projects

When starting from scratch, I begin by collecting business requirements, scrutinizing designs for potential UX or platform-specific enhancements, and subsequently developing an architecture proposal tailored to the project and team. Depending on the project’s scale, I can either implement the proposal independently, join your team, or, if needed, introduce my own team to execute the project with utmost efficiency.

Maximizing Return on Investment

Let’s emphasize that an exceptional developer experience is not a mere extravagance—it’s the key to unleashing your team’s true prowess. By allocating resources to the appropriate dev tools, architecture, and workflows, you enable your team to operate more effectively, yielding superior software, heightened productivity, and a fortified bottom line.

Moreover, these improvements can yield substantial cost savings. For instance, when I revamped the NYTimes build pipeline, the company reclaimed 45 hours of developer time per week. Similarly, my design and implementation of data snapshotting significantly streamlined bug reproduction and resolution.

In Conclusion

To encapsulate, if your objective is to boost your team’s performance and foster a truly remarkable developer experience, partnering with the right expert is vital. With over a decade devoted to this field, I am confident in my capacity to help you establish an environment where your team can truly thrive. My foremost goal is to deliver value to you and your team through my proficiency, and in doing so, I hope to contribute to your collective success

Please don’t hesitate to get in touch if you’re keen on exploring how we can collaborate to enhance your team’s developer experience and yield significant outcomes. Bear in mind, the secret to unleashing your team’s potential resides in striking the perfect equilibrium between tools, architecture, and workflows—and I’m here to assist you in accomplishing precisely that.


Share this post on:

Previous Post
iOS Developer Tips