2023 was a turbulent year for me. I went to the lowest of lows and the highest of highs.
The year started with a bang when I lost my job.
I was let go, something that never happened in my previous jobs. I was shocked and disappointed. At first, I thought it was my fault and that I wasn't good enough. But then I found out that some other knowledgeable people were let go, too, so I realized it wasn't particularly about me and my skills.
However, looking back, it turned out to be a blessing in disguise.
I was planning on leaving anyway and getting back into engineering. At the time, I was in DevRel and wasn't enjoying it anymore. I missed coding, working with developers, and solving technical problems. If you want to know more, I wrote about why I switched back from DevRel to Engineering on my blog.
So, from 17 February 2023, I was on my own with no backup plans. Thankfully, I had consistent savings, so I could take my time to find the right job for me. I promised myself that I wouldn't take the first job that came my way, but the one my gut told me was the right one.
Over the next few months, I interviewed with several companies. Some went well, others not so much. I was rejected by some companies, and I turned down others. I could've taken a job in DevRel and engineering earlier, but I decided to risk it and wait for something better.
Then, one day, while scrolling through Twitter (or X, as it's called now), I saw a post from my friend Sergii. He was looking for someone to refer for an engineering job.
Since I knew Sergii and was looking for a role, I decided to ask him about it. As the image below shows, I approached him professionally (not really) and asked him about the opportunity.
We had a chat, during which he gave me some details about the opportunity. Then, I asked him if the company was interested in my profile. Shortly after, he sent me a link to set up a meeting with Timur, one of the co-founders.
I booked the meeting and started overthinking how the interview would go. As you might know, interviewing is a draining experience.
Thankfully, the call with Timur went really well. We talked about Documenso's goal to make document signing open-source, my experience, and why I wanted to join the team. It was a relaxed chat with no tech questions.
Soon after the initial meeting, I got an email saying that Lucas, Documenso's other co-founder and CTO, wanted to have a chat, too.
I was super happy to make it to the next step, but I was also worried about having to answer technical questions. The wait was nerve-wracking.
But my talk with Lucas was just as chill as the one with Timur. We discussed my background, Documenso's work, and the tech I use. The whole interview process was just these two calls, which was great.
A few days later, I got the amazing news that Documenso wanted to hire me.
It might look like a simple job offer, but it meant so much to me. As time went by, I started to doubt if I would get back into engineering. Plus, I really liked Documenso's team, mission, and how they handled the interviews. So, saying yes was a no-brainer.
After accepting the offer and completing all the formalities of starting a new job, I was ready to start. My first day at Documenso was 4 September 2023, exactly one year ago today.
Life at Documenso
Documenso is an open-source document signing platform that serves as an alternative to DocuSign. If you're an individual, team or enterprise company that needs to sign documents digitally, you should definitely check out Documenso. I admit I may be biased. 😅
Openness and Transparency
Documenso operates differently from all the other companies I've worked at. As an open-source company, we're committed to the open-source values of openness and transparency.
That means we try to make as much information public as possible, within legal boundaries. Like most open-source companies, Documenso's codebase is publicly available for anyone to view and contribute.
But our commitment to openness and transparency goes beyond the code. We also believe in being upfront about the business side of things. For example, Documenso's metrics and finances are publicly available, including our salaries. This is a level of transparency I haven't seen before joining Documenso.
We believe in the power of openness and transparency to build trust. By being upfront about how the company operates, we hope to create a sense of trust and confidence among the users, contributors, and the wider community.
Async & Text-Only Work
Documenso has a modern approach to remote working. As a fully remote company, we work asynchronously, which allows each team member to create their own schedule and work when it suits them best.
The focus is on the outcomes and quality of work rather than the number of hours spent at a desk. If you can deliver great work in 5 hours, that's great. If it takes 9 hours, that's fine too. This flexible and healthy approach allows us to work more efficiently and effectively. We have the freedom and flexibility to manage our time in a way that works for us instead of being forced to sit at a computer for a certain amount of hours.
Moreover, at Documenso, we have 0 mandatory meetings. All of our communication happens in written format. Yes, you read that right. The 1-on-1s, brainstorming sessions, help, decisions, and other interactions happen via text. We use Discord and Notion to communicate and collaborate.
That being said, we're aware of the importance of face-to-face communication, so we have the occasional fun meetings for team building. We occasionally schedule fun video calls where we discuss a wide range of topics, from work-related stuff to random topics. These meetings have no set agenda; we simply go with the flow.
While there's more about the work culture at Documenso, I wanted to briefly present some of the things that make Documenso unique. If you're interested to learn more about the Documenso culture, check out our handbook.
My Engineering Progress
In the past year, I've grown tremendously as an engineer. Cycle-based work and the work culture, in general, helped me develop my skills more than I would've done in any other job.
One of the ways we foster ownership and autonomy among our team members is through cycle-based work. Each team member runs their own mini-projects consisting of a moderately defined feature, and they're empowered to make technical decisions during implementation and rollout. This approach allows our team members to take ownership of their work and see their projects through from start to finish.
(source: Documenso Handbook)
This approach allows us to take full ownership of our work and implement the tasks from start to finish. By being responsible for an entire feature cycle, I've had the opportunity to make important technical decisions and see the direct impact of my work on the product and our users.
Match that with challenging and complex tasks, and you have a recipe for fast growth. The tasks I've worked on at Documenso pushed me out of my comfort zone in the best possible way. They allowed me to work with new technologies, figure out tricky problems, and help me come up with creative solutions.
Some of the work I'm the proudest of is as follows:
Public API
The public API opened a new world of possibilities. It allows our users to integrate Documenso with their applications and other third-party apps. Since the public API was released, there have been approximately 44,125 API calls.
You can read more about the implementation and choices behind the Documenso public API on our blog.
Webhooks
The Webhooks functionality came soon after the public API. It enables our users to receive real-time notifications when specific events occur in their Documenso account, such as when a document is created or signed.
At the time of writing this article, Documenso supports the following triggers:
document.created
document.sent
document.opened
document.signed
document.completed
For example, the document.created
event could automatically initiate a custom approval workflow in an external system. The document.completed
event could kick off post-signature actions, like archiving the document or triggering payments.
The Webhooks feature complements the API and enables even more powerful integrations and automation.
Up to this point, 64,684 Webhooks have been triggered.
Documentation Site
Taking the initiative and building the documentation site is probably the work I'm the most proud of. As you may know, documentation is a central and important part of most software, yet it's almost always inexistent, poorly done or neglected.
Therefore, we decided to build the documentation for Documenso, the last missing piece of the puzzle.
No matter how intuitive you try to make an app, there are always ways to improve the user experience and reduce friction. Instead of trying to figure things out on their own, users can consult the documentation to avoid frustrations and save time.
Moreover, as an open-source project, Documenso accepts contributions from the community. The contributors need to set up the project on their machines and understand the different parts of the codebase. The documentation provides all this information, as well as clear guidelines and best practices for contributing. This makes it easier for new contributors to get up to speed quickly and make contributions to the project.
Lastly, before the documentation, we received the same questions from users and potential contributors over and over again. The documentation significantly reduced the number of repetitive questions.
Overall, the community response to the documentation was overwhelmingly positive. It has also had a significant positive impact on our team since we have fewer repetitive questions to handle. As a result, we've been able to focus more on developing new features and improving the core product.
Advanced Field Types
Another important piece of work I shipped was the advanced fields. Before, Documenso supported five basic fields for document signing: signature, email, name, date, and a text field for additional information.
While these fields worked well and served their purpose, we realized there are scenarios that require advanced input types, such as checkboxes, numbers, and dropdowns. As a result, we've introduced a couple of fields, such as:
- (an improved) Text field
- Number field
- Radio field
- Checkbox field
- Dropdown/Select field
These new fields brought more flexibility and variety to Documenso, as they allow you to collect more specific or extra information from the signers.
The implementation of the advanced fields was probably the most challenging task for me up to this point. The development of these fields came with challenges such as:
- deciding how to store the new information in the database
- implementing the Checkbox and Radio fields in particular because they accept both empty and non-empty values
- taking the appropriate decision for storing the advanced settings on the frontend
- using different colours for each recipient
These challenges allowed me to dive deeper into the codebase and experiment with it. This, in turn, helped me learn and become even more familiar with the code.
Anyway, for more information about the introduction of these advanced fields, including more technical details about the development process and the challenges we faced, check out the "Introducing Advanced Signing Fields in Documenso" post.
I could go on about the other contributions I've made during my time at Documenso, but I don't want to bore you with too many details. I just wanted to highlight some of my most impactful and meaningful work since joining the company. And to show a glimpse into how Documenso's work culture has boosted my growth as an engineer. However, if you're curious to see more of my work, all of my work is public.
The End
After one year, I can confidently say that accepting Documenso's offer was one of the best decisions I've made in my career. This past year has been a period of huge professional growth due to the unique combination of Documenso's work environment, culture, and the complex tasks I've worked on.