00:00:05.420
Hello everybody, welcome, and thanks for coming to my talk. We will be discussing a topic that implies we will be talking about Talmudic gems for Rails developers—practical advice and applications from the wisdom of the Talmud that we can take for our lives as software developers.
00:00:12.000
In 1977, one of the foremost Hasidic masters of the 20th century suffered a heart attack on the night of the Jewish holiday of Simchat Torah. His followers were devastated and gathered to pray for him. The next night, with hundreds of his followers in the synagogue praying for his recovery, the rabbi wanted to address them, but the doctors wouldn’t allow that.
00:00:24.420
Instead, his followers arranged for an intercom to be set up from his room on the second floor to the synagogue in the basement. Being resourceful, they hooked up that intercom to a bunch of phone lines, enabling connections to many different locations around the world where his followers could listen in—from Los Angeles to Chicago, to Paris, Jerusalem, and all the way to Melbourne. Remember, this is 1977, before Zoom or even the internet was a household name. During his talk, the rabbi noted how what started as an impediment that prevented him from coming down to address his followers in person actually turned out to be an opportunity that allowed more people all around the world to participate and hear the message.
00:00:58.800
Of course, many of us find ourselves in a similar situation. We would all prefer to be crammed together in a ballroom listening to this talk in person, being able to shake hands and hug each other. But we can all realize the silver lining in this situation. In most years, there are many people who would love to be at a tech conference but are unable to attend due to family, personal, or professional obligations. This year, you all have the opportunity to attend from the comfort of your own living rooms, and you're all at RailsConf this year.
00:02:11.099
So while I would have loved to start with some kitschy greetings, like 'Hello Las Vegas' or 'Hello San Diego,' I will start, like many programmers have throughout the years, with 'Hello World.' A little bit about myself: my name is Yechiel Kalmenson, and I'm an engineer at VMware. However, I was not always an engineer. I spent the first few decades of my life studying Talmud, being ordained as a rabbi, and serving as a rabbi and teacher for a few years before eventually transitioning into the world of tech.
00:02:45.980
I learned programming, became a web developer, and now I write code. Interestingly, there is a similarity between rabbis, Talmudic scholars in general, and programmers: what we see as our professional vocation is also often taken as a hobby. We end up studying and practicing in our nights and weekends. Even while I transitioned to tech and became a programmer, I kept up my Talmud study regimen. I still learn today, and throughout this journey, I’ve noticed many parallels between Talmudic study and programming. The lessons I learned while studying the Talmud were very applicable and have helped me in my career.
00:04:07.379
Many of us are familiar with the trolley problem, where a trolley is barreling down the tracks toward five people who will be run over if nothing happens. An operator can pull a lever to divert the trolley to another track, but this will kill one person who is lying on that track. The trolley operator must make a choice: do they do nothing and let five people die, or do they actively kill one person by diverting the trolley? This problem has many versions and arrangements, but such ethical dilemmas do not only affect trolley operators; they affect developers and programmers as well.
00:05:29.580
The work we do often has major moral implications, and navigating these can be tricky. Oftentimes, there are no correct answers, and you may end up with more questions than when you started. This is, in fact, much of what makes Talmudic study engaging; it always leads to more questions. While I will not provide answers in this talk, I hope you will leave with a new appreciation for these questions and a new approach to asking them.
00:06:07.410
So, what is the Talmud? I’m sure many of you have heard the term. In short, the Talmud is the written record of the conversations of the ancient Jewish sages. It serves as the primary repository of the law, legend, and lore of the Jewish people and is the essential focus of rabbinical scholarship.
00:06:15.720
The Talmud is not a dry textbook; it is a living document. It does not merely provide laws or answers. It is a record of actual debates, and when immersing yourself in Talmudic study, you can almost hear the Talmudic sages arguing in the background. You can place yourself right in the study hall amidst these debates. It's almost like a living, breathing conversation.
00:07:01.500
As I said, I’ve been studying the Talmud for over 2000 years now, and upon making the transition into tech, I discovered many parallels between Talmudic study and software engineering. Both involve dealing with abstractions. The Talmud calls this idea of teasing out an understanding from one thing to another "mavindavar mitoch davar." When you take a specific example and abstract it into something that applies to many situations, you are performing a critical task in both Talmudic study and programming.
00:07:11.639
Similarly, both the Talmud and software engineering require analytical skills combined with a substantial amount of creativity. Each field demands intense periods of concentration and maintaining context over long periods. I’m sure we all know the frustration of being in the zone only to be pulled away for a two-minute question, causing us to lose focus completely—something I’ve often experienced during my Talmudic life.
00:07:48.540
While the Talmud is an ancient text compiled over 2000 years ago, the wisdom I’ve learned from it still holds relevance today. I aim to present the wisdom of the ancient sages in new contexts—like old wine in new vessels—hoping to convey their ancient wisdom through modern tools and applications for contemporary life. Throughout this talk, we will explore three parts: using Talmudic wisdom to help ourselves grow, to help our teams grow, and to improve the world around us.
00:08:14.160
Let’s begin with our own growth. As developers, we are always learning and evolving, and the field itself is constantly growing. The Talmud offers an interesting directive to assist us on this journey: "Appoint for yourself a mentor and acquire for yourself a companion." There are two parts to this directive, which we will address one at a time, starting with the first half—the importance of having a mentor. We all recognize the value of mentorship. I believe that the self-taught developer is a myth; we are all influenced by the guidance of others.
00:09:25.919
Whether through books, courses, or mentors, we all rely on others to reach where we are. Finding a mentor—a person with experience who can answer questions and provide a sanity check—is crucial. However, many might wonder, how do you find a mentor? In my experience, most mentor-mentee relationships begin more organically rather than through a formal request. Usually, it arises when you seek help on a problem or advice on code. The rabbi Hillel said, "One who is timid cannot learn." This means you should not be afraid to ask for help; it’s a compliment if someone seeks your advice. In the programming community, people are generally welcoming and eager to assist.
00:10:36.299
Moreover, Hillel also observed, "Nor can an impatient person teach." If you’re approached for help, even if you're busy, respond with empathy and direct them to someone who can assist if you cannot. The mentor-mentee relationship is a powerful motivator for personal growth. The second part of the directive is: "Acquire for yourself a companion." While mentors can guide you, it’s also important to surround yourself with peers who are on the same level as you. Engage in peer programming and collaborative learning.
00:11:51.540
Currently, I am at VMware, but I was originally hired at Pivotal, where peer programming is a significant part of our culture. In Yeshiva, the Jewish learning environment, our primary method of study was not traditional lectures but rather a system called "Havruta." This approach entails two peers studying together, challenging each other, and working through problems collaboratively. The dynamic I encountered at Pivotal felt natural to me; the collaborative nature of peer programming allows both individuals to learn and grow, which is essential for developing new members of a team.
00:13:12.780
The Talmudic sages used the metaphor of iron: just as two iron blades sharpen each other, so too do two scholars sharpens each other. The same applies to peer programming—working with someone on the same code will help you improve together much faster than if you work alone. Another directive that facilitates our growth comes from Hillel’s teaching: "Do not separate yourself from the community." Being part of a community is crucial; today, many tech and programming communities exist worldwide.
00:14:14.159
Regardless of your location, you can almost certainly find a programming community nearby. Online platforms also provide many opportunities for engagement, from Twitter to Slack groups and Discord channels, especially during conferences like this one. Engaging with a community enhances learning, enables networking for mentors and peers, and fosters a sense of belonging.
00:15:28.740
Consistency is vital for our growth as developers. You may have heard of the '100 Days of Code' challenge, which encourages coding daily for 100 days. While I personally think taking breaks is essential to avoid burnout, the key takeaway from such challenges is to build consistency and habits. The number 100 is significant in the Talmud, where it is said that "one who reviews their studies 100 times is not comparable to one who reviews their studies 101 times." Hillel’s point was not centered on the number but rather on the importance of what you learn after repetition.
00:16:57.180
When I did the 100 Days of Code challenge, I noticed my growth was not simply after the 100th day; it was the 101st day when coding became natural for me. By practicing consistently, you form habits, and true growth occurs when these activities become a part of your routine.
00:18:13.860
While focusing on individual growth is important, we must remember that no one is an island; we are part of teams, and each team has its dynamics. Every team comprises senior and junior members, with senior members expected to guide and mentor juniors. We’ve previously discussed the significance of seeking mentorship from the mentee's point of view; now let’s examine it from the mentor’s perspective.
00:18:59.940
Mentoring takes time, resources, and energy—time that could be spent on our projects. However, mentoring is immensely rewarding. The Talmud suggests that, in a mentor-mentee relationship, the main beneficiary isn’t always the mentee. The sage recognized that sometimes mentors learn more from their students than from their teachers or peers. When you teach others, you often gain a new perspective, and just explaining complex topics can deepen your own understanding.
00:20:12.480
Moreover, sometimes a junior scholar who asks questions can help sharpen a senior’s understanding. As engineers, we may sometimes do things out of habit, without questioning why. By being confronted with questions from mentees, we reassess our understanding and become better at what we do. It's essential to note that mentoring isn't limited to seniors; even if you only know a little more than someone else, you can still help them grow.
00:22:09.539
The Talmud teaches, "If you only know Aleph, the first letter of the alphabet, do not wait until you learn the whole Torah. Find someone who doesn't know Aleph and teach them the letter." In my journey, after studying at a boot camp, I liked to help students struggling with labs I had just completed. I found that teaching others helped reinforce my understanding and provided new insights into the material.
00:23:56.340
What if you can’t find a mentee or someone to teach? Going back to the lesson we discussed earlier—acquire for yourself a companion—consider how the Hebrew language allows nuances with its use of vowels. The Hebrew word for acquire, "ukene," can also convey that a pen could be your companion. Writing notes when learning or solving problems can be immensely helpful and reinforces your understanding.
00:25:27.240
In the digital age, starting a blog and sharing your thoughts has never been easier. There are many blogging platforms available for developers to share knowledge. Even if others benefit from your blog posts, the primary advantage comes from the process of organizing and articulating your ideas. This mirrors the growth we find from mentoring others.
00:26:21.540
As we shift focus from ourselves to our teams, we must remember that the code we write isn’t just for ourselves; it’s for the wider world. As developers, we have a unique responsibility regarding how our code is utilized, and we hope it makes a positive impact.
00:27:30.840
A story from the Talmud encapsulates this beautifully: Rabbi Akiva lived during a time when the Romans ruled Israel. The Roman Governor, Turnus Rufus, often challenged the sages with questions. He once asked Rabbi Akiva why God doesn’t directly help the poor. Rabbi Akiva explained that when we see someone suffering, it’s a prompt from God asking us to intervene and make a difference.
00:28:15.480
This conversation highlights the danger of assuming people deserve their plight, and certainly as programmers, we can fall into the trap of saying, 'That’s not my problem.' The Talmud illustrates this point through a parable of people on a ship, one of whom started drilling a hole under their seat. The passengers were alarmed, realizing that the resulting flood would affect everyone on board. In the same way, each of us should recognize that we are part of a larger community, and we cannot ignore the ramifications of our actions.
00:30:39.899
In times where individual actions can impact the collective, neglecting our responsibilities is not an option. The sage Rabbi Tarfon said, "It is not your duty to finish the work, but neither are you at liberty to neglect it." Many grand projects have required collaboration from countless individuals. While each aspect may seem small, the cumulative efforts create meaningful change, and we should be proud to contribute.
00:31:44.160
Thus, as we close, I want to express my gratitude for your attention during my talk. I encourage you to reach out through Discord during the conference or connect through my other channels. If you enjoyed this exploration of the intersection between Torah and technology, feel free to subscribe to my newsletter at torahandtech.dev. Thank you so much for coming; I appreciate each and every one of you.