Year 2025 (Abridged)
“It was the best of times, it was the worst of times…”
– A Tale Of Two Cities, Charles Dickens
Contents
- 4 Books
- 3 Conferences
- 2 PRs
- A Shifting Mindset
- Djangonaut Space
- Arts & Wine Festival
- Radio Station
- Newsletter
- Reflecting On Writing A “Year In Review”
4 Books
These books stood out for the voices, experiences, and resilience they portrayed:
- Crying In H-Mart - Michelle Zautner, Alfred A. Knopf, 2021
- The World Of Nancy Kwan - Nancy Kwan, Legacy Lit, 2025
- Where Rivers Part: A Story Of My Mother’s Life - Kao Kalia Yang, Atria Books, 2024
- Melt Down: The Making And Breaking Of A Field Scientist - Sarah Boon, University Of Alberta Press, 2025
3 Conferences
North Bay Python
This two-day, one-track conference is oriented around community. I presented a talk on Djangonaut Space, met several people in-person whom I had only known from online, reconnected with people I met last year, and enjoyed the rainy albeit cold weather along with the views (and smells) from the barn.
DjangoCon US
This was pivotal for me. I felt more like myself than I had in the past two decades. I volunteered to stuff swag bags, helped out at the registration desk, said yes to delivering a morning announcement as well as the Sprint kickoff, reconnected with people from the previous year’s conference, presented a talk about Djangonaut Space, met new people and had many discussions. Seeing my mentors in person was a huge highlight. Helping out at the conference made me feel I was more part of the community.
I also had the chance to roam Chicago, enjoy the River Walk (and the river waft ;P), take in the morning sun at the lake, and experience the transportation system, which I think is superior to the system where I live in terms of the frequency of trains and affordability.
It’s crazy to think that I was having second thoughts about attending the conference just a month before. I’m glad I booked my flight and room and took on challenges that came my way. There were still moments of deep insecurity, but sharing my insights and experiences shaped my sense of place and purpose. There were lots of different aspects about participating in the conference and exploring a new city that allowed me to grow.
PyBay
I volunteered at the registration desk, met new people and also reconnected with people from previous conferences. The talk I found most interesting that day was Mason Egger’s Events are the Wrong Abstraction. It reminds me of the argument for monoliths and against microservices.
It was a long and fun day, starting with an early morning drive in the dark into the city for volunteer duty, good conversations during lunch and break times, followed by dinner in the evening with the volunteer team and speakers.
2 PRs
Most proud code contributions to Django so far:
It’s always a joy to bring clarity to something that can feel nebulous at times. While the code changes are small, the bulk of the work was in scouring the forum, repository issues, looking into existing examples in other communities, scraping data instead of relying on a data dump, taking on different aspects of the contribution process first hand (triaging, bug fixing, reviewing, etc.) and learning the nuances of the existing tools and workflows. Even then, I was just exposed to a small sliver of all the work that goes into maintaining the web framework. I did have fun (as well as frustrations) exploring Trac, and its configurable design is quite fascinating, despite not having data integrity. It relies a lot on string search.
The hardest part for me was presenting a logical argument for the importance of these initial changes and bigger changes down the line, especially to those who have this information so ingrained in them that they don’t see the need for the changes. Many people guided me along the way, from opening an issue to starting a forum discussion. I was able to demonstrate the value for these changes. The Django Fellows reviewed the PRs and helped get the changes merged in.
The change to the contribution workflow diagram broke the PDF docs builds in the 6.0 release. A community member filed the report, and another quickly submitted a PR fix for it.
I’m proud of these changes because I know there is at least one person who uses them very often: me. I reference the diagram whenever I talk to new contributors. I use the queue links to navigate to the tickets all the time. I’m also proud of these changes, because establishing a clear mental model of a “queue” versus a “triage stage” paves the way for more improvements. This is the tip of the iceberg.
A Shifting Mindset
Software engineering interview funnel:
- 9 invitations
- 6 screening rounds
- 3 final rounds
- 2 offers
- 1 accepted (1 rescinded)
- 3 invitations turned down after accepting an offer
Of the 9 invitations, 7 were through recruiters or referrals, 2 were cold applications. I lost track of the total applications.
Time spans for the two offers:
- Longest: 6 weeks
- Shortest: 11 business days
Non-software engineering role:
- 1 Sales Associate role
When things didn’t seem to materialize, I explored non-software engineering roles that would allow me to acquire customer-facing skills. I applied and was accepted for a Sales Associate role. I took the job… and walked out after 5 hours. Funny story, it was Louis Rossman’s video from a decade ago that inspired me to apply and take the job. It was also another one of Rossmann’s videos that helped me “flip the switch”.
Mail-in applications:
- 1
Yes, I sent my resume via snail mail for a software engineering role at a big food delivery company. Initially, I questioned it’s legitimacy, did a quick search on the mailing address, and then took a chance. Several months later their recruiter emailed with an invitation to schedule the screening interview. At first, I was very confused, because I didn’t remember applying to this company, and I couldn’t find any references to it in my computer files. Eventually, I did find a screenshot of the job post. I turned down the invitation as I had already accepted an offer.
–
It was a rocky journey, and I was hesitant to share this. However, my experience here is not unique, and it dominated the year. Besides, what’s the point of pretending the track record is pristine? The bumps and how they were handled are more interesting.
I have many people to thank for helping me along the way. Everything from encouraging me to create an online profile, to reviewing my resume, to tips on having social media activity (social proof), to encouraging me to negotiate (because negotiation IS part of the process and part of everyday life), to the many referrals. The most important part was having people believe in me when I didn’t believe in myself.
At the beginning of the process, I was afraid of letting people know that I was looking for opportunities, and I was afraid to ask for help. By the end, I was scheduling the earliest available interview slot for every invitation. I was excited to meet new people, learn about their busienss needs, share my experiences, and be myself. If I’m perceived as a Type-A personality by one of the interviewers, I know it’s temporary. Interviews can be awkward and exaggerations of reality.
The search process made me understand that there’s nothing to be ashamed of. A layoff, multiple rejections, and even a rescinded offer are nothing in the grand scheme of things. The fact that I hadn’t had more rejections shows that I hadn’t been reaching for more opportunities and aiming higher.
A few years ago during Salesforce Dreamforce, I met a high performing salesperson from Marketo. We were discussing the mentality of salespeople and what drives them to hit their goals in the context of gamification. This person told me, “Salespeople get a thrill when they see their numbers go up. They don’t care how many deals they lose. They care about how many deals they win.”
Djangonaut Space
I was a Navigator for Session 5. In my role as a mentor, I curated a list of tickets to help the Djangonauts get started. I exposed them to other ways of contributing, by showing them examples of triage work and PR reviews. When I was a Djangonaut, my Navigator had shared his own experiences of a ticket that he was working on at the time. I did similarly by sharing my work and experiences.
The Djangonauts not only got their PRs merged, but they also contributed by writing for Django News Updates, writing for the Django web blog, writing their own personal blogs, and posting on the forum. I introduced them to Space Reviewers, and the team participated in a live episode to review a PR. It was amazing to see how much the Djangonauts accomplished in the 8-week time frame.
The best part of any good mentorship is that we are all mentors to one another. I learned a lot from the Djangonauts and the Captain. It wasn’t always smooth sailing. There were moments where I wondered if I was being effective as a mentor. In the end, it was very satisfying to see that the Djangonauts have developed confidence as well as a growing appetite for making contributions. I look forward to seeing more of their work and hearing more about their stories.
Arts & Wine Festival
At an Arts & Wine Festival one summer weekend, I worked the ticket booth on Saturday and the beer booth on Sunday. For the ticket booth, it was challenging trying to keep the line moving while also trying to improve the setup. This reminds me of finding the balance between building new features and addressing technical debt on software projects.
My co-volunteer was very smart about handling the new ticket packaging system that was introduced this year. The festival attendees were very confused by it, but my co-volunteer would start by asking them how many drinks they expected to have, then worked backwards to show them the package that would get the best deal.
My co-volunteer and I also coordinated such that one person handled the payments and the other person handled the tickets, wrist bands, and beer/wine glasses. We still needed the festival organizer to observe from a distance to see the bigger picture of the bottleneck though.
The beer booth on Sunday was less hectic. I learned to pour beer (with the glass at an angle to reduce foam) and greeted the festival attendees who were excited to get their drinks. I also got to know my co-volunteers, a mother-daughter duo who live in my neighborhood.
Radio Station
I took a radio station training course, passed the exams, and completed my studio training sessions. I also volunteered at a few station-hosted events, including a live mic and a film festival.
For the live mic, I showed up unannounced. I had no idea what to expect. I bet I confused people when I showed up, too. I was just curious and wanted to help out at the studio before taking the exams or starting the training. The staff members were very welcoming. One of them patiently showed me how to operate the controls for the 4 video cameras. I ended up operating the controls that evening, trying to decide what shots looked interesting, when to apply the panning and zooming effects, and how to pace the transitions between the cameras. I also had the chance to meet the surf bands. They were very friendly. One was The Frigidaires, hailing from Atlanta. The other was LHD, traveling all the way from Croatia.
For the film festival, I helped put up vintage film posters to decorate the auditorium and set up the merch table. I managed the ticket admissions at the opening of the event. I applied a similar setup that I learned from volunteering at the ticket booth at the Arts & Wine Festival: one staff member handles the payments, while the other handles the tickets. During intermission, I helped people find their t-shirt sizes at the merch table.
It’s always fun looking for ways to improve the process ever so slightly, so attendees don’t have to wait too long in line in the freezing night. It was fun greeting the attendees and helping them buy t-shirts. I met more staff members, many who shared stories of their connections to the station pre-dating my existence. They, too, were excited to meet me and welcome new members to the station.
Newsletter
I attempted to write a weekly newsletter. I haven’t quite figured out the format and type of content. Do I share about my projects or dive into details of topics? Do I share more news-y content about other people’s works and events? At what frequency? Is a newsletter the right format for my interests? I’ll see…
Reflecting On Writing A “Year In Review”
I was on the fence between writing lists and having deeper analyses. Trey Hunner’s “My Favorite Reads Of 2025” inspired me to get going with a books section. For certain topics I found myself diving deep. Paolo Melchiorre took the approach of giving each topic its own dedicated blog entry, but my problem was less about writing, and more about sharing. I mulled over 5 different drafts across 5 days, and delayed publication several times over the period of a month. After working through those thoughts, I realized I don’t have to share them if I don’t want to. And yet, I want to!