Hey, I am Jonathan.
Staff software engineer at Lindy, an AI agent platform. I wrote its first line of code in 2023 and have been building agents, and the framework they run on, ever since: the layer that talks to every LLM vendor, tool calling, memory and context, sandboxes where an agent gets a shell and a filesystem, and the coding agents we now point at our own backlog.
A good part of my week goes into making the team faster than me: reviewing pull requests, running lunch and learns, automating whatever gets done twice, and turning what worked into guides and agent skills so the next person starts from the answer. I do most of it in the open on Slack, so when I unblock one person the context becomes team context: the next person can find it, and so can our Lindy teammate.
Lately most of that effort has gone into AI coding for the whole company, so that everyone, not just engineers, can make real changes to the product themselves, and into a Reviewer Agent for what became the next bottleneck once everyone could ship: reviews and the validation loop.
The rest of the job is everything around that: the product people actually click on and the platform it ships through, so a normal week goes from a Relay component to a Temporal workflow to a Kubernetes node pool, and I kinda like it that way. Before Lindy: real-time collaboration at Teamflow, backend and DevOps at HelloMD, the Gol Linhas Aéreas app at Entria, and five years of freelancing.
Self-taught in Software Engineering, but with a degree in Accounting. Based in Foz do Iguaçu, Brazil. I also love open-source and try to contribute anytime I can. I maintain node‑libcurl since 2016.
- Teamflow2021–2025
- Croz2020–2021
- HelloMD2018–2019
- Feedback House2018
- Entria2017–2018
- Freelance2012–2017
Writing
Planning to get back to writing again, some time, soon. For now these are some posts I wrote back when LLMs were not really a thing, heh.
- 10 min readUsing CircleCI Workflows to Replicate Docker Hub Automated BuildsCircleCI workflows is a powerful feature that can be used to make your deployment process simple and intuitive.
- 4 min readIntroduction to GraphQL Mongo HelpersIf you are using MongoDB and GraphQL, you probably have some arguments on your resolvers to filter the data returned from MongoDB. Using those helpers you can reduce the amount of code duplication when doing that!
- 3 min readClient-Supplied Custom Sorting Using GraphQLIt’s not uncommon the need to sort/order data returned from an API, based on arguments sent by the client. With REST we could just use query-strings, but how to do it in GraphQL?
- 6 min readGraphQL Mutation Arguments Validation with Yup using graphql-middlewareRecently, I found out about the awesome library by Prisma called graphql-middleware, which allows running arbitrary code before/after your GraphQL resolvers are called.
- 2 min readParallel testing a GraphQL server with Jest and MongoDBThis is a follow-up to the awesome post written by Sibelius Seraphini: Testing a GraphQL server using Jest
- 5 min readUsing Fastlane Match With Existing Certificates Without Revoking ThemFastlane match improves drastically code signing, even for small teams, their only issue is that by default, it does not work with existing certificates, and that is a show stopper for anyone trying to use it on existing projects.
- 3 min readEncapsulating data on GraphQL using LoadersIf you have already used GraphQL, you probably saw that it can consume data coming from the most varied sources, be it a local database or an external API, while centralizing them in a single, self-contained, API.
- 4 min readAccess Control List on GraphQL with LoadersIn our previous post, we saw how to encapsulate data from any data source to be used on our GraphQL resolvers using Loaders, now let’s see a more robust example of that, on how to create some access control rules directly on those loaders.
- 1 min readRe-utilizing React Native styles with Styled ComponentsHaving to refactor some components to use styled-components I felt the urge to reuse some existing styles created to be used with React Native StyleSheet, directly on styled!