Reach out for an audit or to learn more about Macro
orMessage on Telegram
Macro Logo

An Interview with Noah Litvin

Aug 26, 2022
Author avatar
Smart Contract Engineer

[smart contract developer, polymath]

Welcome to the first Macro alumni interview! In conducting these interviews we hope to provide insight into what kind of problems developers are solving in web3, as well as learn about tips and tricks they use in their everyday work.

Where do you work and what team are you on?

I’m a Core Contributor at Synthetix, and I primarily focus on V3

Tell us about what libraries and tech-stacks you’re working with :)

Everything is open source. Synthetix’s stack is primarily Solidity with Hardhat and React with ethers. There are some subgraphs and various off-chain tools (typically written in Typescript) as well.

Synthetix uses Cannon and Synpress, both maintained by Core Contributors. I’m also a fan of Chakra UI, Foundry, wagmi, and Rainbowkit.

What types of problems do you solve day-to-day at your job?

Fundamentally, the engineers implement SIPs, though many are involved in authoring them as well. At a high level, the core contributors and the broader Synthetix community work to improve all aspects of the protocol including user experience, developer experience, scalability, capital efficiency, cross-chain functionality, composability, resilience, security, and decentralization.

What is the coolest thing you've shipped in web3? What was cool about it?

I built Cannon with dbeal and mjlescano for the most recent ETHDenver hackathon, where it was a winner in the infrastructure and scalability track. Cannon is a tool to specify protocol deployments with Cannonfiles (inspired by Dockerfiles) and package deployment data. And, since Foundry added functionality to import and export a chain state, it’s super fast.

It’s cool to work on dev tools because you need to do some “meta” thinking about software engineering. The design decisions in the tools need to be opinionated enough to be useful, but flexible enough to accommodate software design patterns that might not even be in use yet. We’re still actively developing Cannon while using it with Synthetix, and we’re interested in gathering more feedback/pull requests from the broader web3 community.

Tell us about something you’ve had to troubleshoot recently, and what tools or techniques you brought to bear on the problem.

Nothing interesting enough to share comes to mind, but I’ll usually reach for Tenderly first if something weird is going on.

Seasoned web2 engineers are very familiar with implementing the "-ilities" (maintainability, extensibility, scalability and so on) in a web2 context. How have you found these system characteristics to play out in a web3 context?

I think there’s a fantasy that you can just write an immutable smart contract, deploy it, and then walk off into the sunset with your bags of cash. Maybe this works in some cases but, even without upgradeability proxies, during development you’re typically doing multiple deployments to local and test networks, performing automated and manual QA, tracking issues, adding features, and iterating. At the end of the day, it’s just software engineering so all of these more abstract concerns are just as applicable.

What excited you about web3 when you first took the plunge, and what excites you about the space now?

If you like building things, web3 is exciting because there’s still so much to improve! The dev tools are very immature compared to web2. And even the most basic use cases for crypto—like storing and sending assets—are only just now catching up to TradFi services like Venmo in terms of user experience.

The pace is also very stimulating. The space is evolving rapidly, with many smart people shipping quickly and large amounts of money at stake. Assuming everything becomes more robust and usable, I’d anticipate that the creation of a fully permissionless financial system will be considered one of the most significant technological breakthroughs in my lifetime.

What aspects of your pre-Macro experience prepared you for the work you're doing?

I was previously working on a TradFi fintech start-up which helped me better understand the contours of the problem space that crypto/DeFi is addressing. If you’re exclusively a consumer of fintech, it’s not obvious how much could go into something like an ACH transfer, let alone that there could be viable alternatives.

How did your experience at Macro prepare you for the real work you're doing?

Macro did a great job of highlighting real use cases for smart contracts and relevant security considerations. Solidity syntax and patterns were covered throughly, but it was especially valuable to dig into the idiosyncrasies of blockchain development and the practical applications of protocols.

What tips would you give to a web2 developer who is looking to join the web3 space?

Most legit projects are open source and have active Discord servers. Build stuff relevant to whatever you’re most interested in and share it with the people involved.

Huge shoutout to Noah for joining us as the first Macro alumni interview :) If you enjoyed the read and want to keep up with Noah, considering following him on twitter.

If you have thoughts on how we can improve these interviews in the future, feel free to DM me.

Thanks for reading!