Interning at DocuSign Israel
by Chen Ostrovski
About me
My name is Chen and I'm a third-year student of Computer Science and Math at Ariel University in Israel. During this past summer I participated in DocuSign's internship program at the Israel office. The internship was my first experience in the tech world. I was able to learn many new technologies that I wouldn't have seen as a student. The internship has advanced me both professionally and personally, and prepared me for the software development industry, beyond the theoretical knowledge I’ve gained from university.
About my project
My project during the internship was to create DocuSign Connect Worker AWS code examples for our developers in four languages. The examples are available to our customers on GitHub: C#, Java, PHP and Python.
The code examples enable webhook notifications to be received and processed behind corporate firewalls without requiring any changes to the firewalls.
The goal is to receive and process webhook notification messages sent via an AWS SQS (Simple Queueing System) queue. The notification contains all of an envelope’s data, such as when the envelope was created, its status, and the envelopeId. The notification message also contains information about the signer, including the signer's name and email address. The applications pull the DocuSign webhook messages from the SQS queue and then process them according to certain criteria. The applications then use DocuSign’s OAuth JWT Grant flow to obtain an access token and retrieve each envelope's combined set of documents to store locally.
The envelope documents are not included in the notification messages because the messages would then exceed the SQS maximum message size. In addition, including the documents is not recommended since it can lead to brittle applications.
To demonstrate filtering, the notification message is only processed if the envelope’s status is Complete, it means that the envelope’s signers have signed the documents and all other recipients have completed their actions.
For each of the four languages, the applications include tests that send envelopes via DocuSign and then check that the envelopes’ webhook notifications have been properly received via SQS.
The webhook notifications are received from DocuSign and added to the SQS queue by an AWS Lambda listener application.
What I learned
Most of the technologies I engaged with during the internship were totally new for me. The internship has exposed me to new technologies, software, and languages.
The first technology that I learned during the internship was Amazon Web Services (AWS) and the services that it offers to developers. The main service I worked with was the Amazon Simple Queue Service (SQS), which can be used to send, store, and receive messages between software components at any volume without losing messages or requiring other services to be available.
I also learned about configuring DocuSign eSignature REST API applications via the DocuSign Admin tool. To integrate DocuSign into my programs, I created and configured an integration key (also known as a client ID), as well as other app parameters. An integration key is needed to make REST API calls whether you are calling an API directly or using an SDK—which I used in my programs.
As part of the project, I learned two new languages, C# and PHP. For C# I learned the Visual Studio IDE. For PHP I used Visual Studio Code. I also improved my skills in Java and Python, which I knew only theoretically from my university studies.
And lastly, in addition to the technical skills I learned, I also progressed in my personal abilities, and my confidence increased; I learned that I am independent, goal-oriented and responsible.
Difficulties
The main difficulty I had at the internship was my inexperience with different technologies. When I first learned about AWS and how it connects to DocuSign, it was difficult, but slowly I started using it, figured out how things work, and then how to link them into my code. I didn't imagine that at some point I would feel like an expert.
Working with software languages that I had never used before was also difficult for me. Java and Python are languages I have programmed in the past in a learning context, so working with them was easier.
There was more to learn with C# and PHP. But I soon saw that they were, in fact, very similar to the languages that I already knew. So, I was able to quickly overcome the difficulties. Overall, I enjoyed the process of learning these two languages.
A difficulty that soon became an advantage was having no team except for my mentor and manager, Larry Kluger, DocuSign's lead developer evangelist. Having no one to consult with on the small things (since I tried to save Larry for the really hard issues) nor anyone to lean on forced me to deal by myself with the general problems in a more open-minded, creative way. It enabled me to think outside the box, read more, and learn more by experimenting with different types of solutions until I found my preferred one. In addition, it allowed me to connect and have more conversations with the other programmers in the office from all the different teams by asking them for advice.
But even though I have made new friends around the office who have helped me, Larry's advice has always been the most helpful and useful. At all times of trouble, he was always there to help professionally and always knew how to bring a good word when needed to be encouraged. Especially as an inexperienced programmer, I felt how much I learned from him and was inspired by him. He became my role model for the type of programmer I want to be in the future.
DocuSign in my opinion
The environment in the DocuSign Israel office has always been positive and inviting. All my coworkers from the different teams were very professional and prepared to help with any question. The people in the office welcomed me very generously; from day one, I felt that I belonged as if I had been in the company for years and not days. I couldn't have asked for more accepting, sociable, and helpful coworkers, and I am blessed to know each and every one of them and learn from them.
My opinion about DocuSign in general is that DocuSign provides training to its employees, which is a huge benefit as you gain more experience and "lean in" to your field.
As a new employee, you can progress at your own pace and learn from the experience of the veteran employees around you. Explanations that I received for each of my questions were really meant to move me forward, and my colleagues really made sure I understood the deeper meaning of things. I think that DocuSign helps its employees to self-evolve not only in a professional way, but also in a personal way.
DocuSign and fun
In DocuSign, not everything revolves around work and there are plenty of fun moments.
My main activity for breaking the routine was the company’s Pilates class. It was a great opportunity to get up from the chair and move your body in the morning. I think it's very important that the company ensures that its employees are engaged in sports. In addition, most of my co-workers attended this class so it was fun to do a non-work-related joint activity with them.
Another moment I really enjoyed was the toast for Rosh Hashanah—The Jewish New Year. We all gathered in the conference room and made a toast for the New Year, accompanied by greetings and, most importantly, some good food. It's safe to say that all the coworkers and I enjoyed that warm moment.
The end of the journey
Time flies by, and my wonderful experience in DocuSign is coming to an end. I'm glad that I have been able to be a part of the DocuSign family and to get to know all the amazing people that worked with me during that time. Thank you, DocuSign, for the opportunity. I hope our paths will intersect again. I miss you already!