2025 Q2/Q3 Review

Jaeyeol Lee @kodingwarrior@hackers.pub
I actually had content I wanted to include in the Q2 review, but since the most substantial content was concentrated in Q3, I ended up writing this combined review. While I did outline plans for the next quarter in my Q1 review, I couldn't follow through on several items because more important matters emerged. This period saw several significant events, which I'll enumerate one by one. There were legitimate reasons why the plans from my Q1 review didn't materialize (or so I tell myself as self-justification).
Timeline
From April to September (when I'm writing this), major events occurred every 2-4 weeks, ranging from personal (or work-related) matters to external activities. This could be seen as the traces of my struggle to reap what I had sown too abundantly—in other words, a history of karmic cleansing.
- 2025-04-10 (Income stopped flowing): I mentioned in a previous post about being dispatched to work in Gangnam. However, one day, my wages went unpaid. I attempted labor negotiations regarding the unpaid wages, but there were some concerning clauses in the newly drafted contract, so I decided not to proceed further, and thus began my days without income. This was during the period when Vibe Coding was gaining significant traction, so for almost three months, I lived by creating things based on ideas that weren't financially rewarding. In the end, I don't think there was much financial gain.
- With no source of income, I thought I should at least take on freelance work, so I proposed finding money through freelance platforms like Primoa/Wishket, and I submitted all the applications myself. I also created a site that generates freelance quotes and even spent some of my own money (part of the 4 million KRW I had lent to the corporate account) on Facebook marketing, but there weren't any significant results. For a two-person business to barely survive, we needed to earn at least 10 million KRW per month, but many of our projects fell far short of that. (Of course, I was primarily handling the practical aspects)
- ⭐ 2025-05-11 (Applied to speak at PyCon): I had been thinking, "I must definitely present at PyCon this year," and as I was experimenting with Aider at the time, I boldly submitted a CFP for a talk titled "Vibe Coding with Aider". Of course... this is where the heart-pounding days began.
- 2025-05-24 (Hosted the second sprint meetup for the Korean United Space Developers Community)
- It had been about 9 months since the first sprint meetup of the Korean United Space Developers Community, so we finally held another one. Managing multiple communities was overwhelming, and constantly wondering "where to hold the next meetup" also contributed to the delays. I think I should try to hold these "on a monthly basis" if possible. Of course, sacrificing my leisure time would be inevitable...
- However, subsequent meetups were postponed as I began contributing to Fedify, which I'll explain later...
- ⭐ 2025-06-19 (Selected as a PyCon speaker): I was half-doubting, thinking, "No way I'll get selected," but I was indeed selected as a speaker for PyCon Korea 2025. Up until this point, I was extremely confident. As for what happened next... I'll let the image below and the script from that time explain.
Really... the landscape kept changing as I prepared for this presentation.
I adopted Aider because I heard it was a tool just as good as Cursor for developing with LLMs in the terminal, and I even contributed to it enough to do Flutter development.
Other LLM agent tools have continued to evolve as well.
Claude Code improved somewhat around May 1st when they added a feature called Todo List. Of course, even then it wasn't as good as Aider.
So with full confidence, I submitted my presentation materials on Aider on May 11th, the deadline for PyCon CFP.
But then, on May 16th, OpenAI released an LLM coding agent and also launched a product that runs in the background on the web.
And on May 23rd, Anthropic released Claude Code as a globally available version, which received a lot of attention.
On June 13th, I started using Claude Code in earnest, and I think I ended up using it alongside Aider for comparison.
And while I was conflicted between Claude Code and Aider... on June 19th, I was selected as a speaker for PyCon Korea 2025.
Yes. Still, I thought Aider had the advantage of being able to use good models from Google, so I continued to believe it had differentiating benefits.
But a week later, Gemini CLI was officially announced.
While I was still reeling from this, another week later Cursor announced new features,
And yet another week later, a development tool called Kiro was announced.
They were saying it's a product that incorporates Spec Driven Development and so on.
LLM-based development tools are evolving at a pace that's hard to keep up with.
- ⭐ 2025-07-04 (Joined Fedify project as a contributor): I was selected as a Fedify team mentee in the Open Source Contribution Academy (OSSCA for short), a mentoring program organized by NIPA that enables contributions to open source.
- Fedify is an open source project led by Hong Minhee, which, simply put, is a framework that lowers the difficulty of developing web services that support the ActivityPub protocol. It can be integrated with TypeScript-based web frameworks like Express/Hono/Fresh/NestJS.
- For example, let's assume you need to create a decentralized SNS service like Mastodon. Creating a service that supports SNS features at an MVP level might not be too difficult. However, for services to be self-hosted in different environments and federated as if they form a single timeline, you need a protocol—that's ActivityPub.
- To implement software according to the ActivityPub protocol specifications, you naturally need to implement an inbox, an outbox, a message queue, a mechanism for delivering Activities, and interfaces that define how to handle specific Activities when received. Fedify dramatically reduces the effort required to define these numerous interfaces. If you're integrated with Fedify, you can simply use the interfaces it provides.
- Fedify has organized most of the considerations and implementation elements needed to create ActivityPub-based software, and Hong Minhee's expertise from developing software like Hollo and Hackers' Pub through dogfooding is embedded in the documentation.
- On 2025-07-12, I participated in the OSSCA kickoff ceremony and voluntarily took on the role of assistant mentor during the team kickoff. During the OSSCA Challenges period (~08/10), I wanted as many people as possible to contribute, so I conducted a simple survey to understand the mentees' specialties and helped distribute tasks evenly according to their skills. Timeline tracking was a bonus. The current Masters phase is dragging due to overlapping schedules, but the deadline (11/01) is already approaching (lol).
- Besides my assistant mentor role, I'm responsible for NestJS support (fedify/nestjs), starting with this PR, and I'm developing a fediverse software based on NestJS. Initially, I approached it by defining it as a package in my monorepo project, then switched to using it as a subpackage of Fedify. There were many twists and turns in this process. My project is a SlideShare for the Fediverse, and I aim to complete deployment during the Chuseok holiday and demonstrate the MVP at the OSSCA results presentation. I've already purchased a domain (cosmosli.de) and a Mac Mini with actual service in mind.
- NestJS itself runs on a CommonJS-based module system. Fedify was originally a library running on an ESM-based module system, but Hong Minhee provided a lot of help for CommonJS support... There were various issues, such as the Decorator syntax extensively used in NestJS not being supported in the Deno runtime, or needing to modify the tsconfig separately when building the library to support Decorator syntax. Especially, who would have known that
js-temporal/polyfill
would output differently in mjs versus cjs.....
- NestJS itself runs on a CommonJS-based module system. Fedify was originally a library running on an ESM-based module system, but Hong Minhee provided a lot of help for CommonJS support... There were various issues, such as the Decorator syntax extensively used in NestJS not being supported in the Deno runtime, or needing to modify the tsconfig separately when building the library to support Decorator syntax. Especially, who would have known that
- Fedify is an open source project led by Hong Minhee, which, simply put, is a framework that lowers the difficulty of developing web services that support the ActivityPub protocol. It can be integrated with TypeScript-based web frameworks like Express/Hono/Fresh/NestJS.
- ⭐ 2025-07-06 (First meeting for vimrc 2025 preparation): Starting from someone's tweet asking "Can't someone open a Vim correction academy?", gatherings of Vim users have been held at the end of each year in 3-year intervals (2019/2022) under the leadership of Park Hyunwoo (lqez). One day, wondering "Will it be held this year too?", I asked Hyunwoo about the vimrc plans via DM, and ended up taking over the baton to organize it under vim.kr. We had our first meeting on July 6th and decided to hold the event in mid-November.
- I had been planning to host a medium-sized conference under vim.kr but kept postponing it due to personal circumstances including the contexts mentioned above. At least I took over the vimrc event. I must definitely make this happen.
- 2025-07-31 (Resignation): Due to the financial difficulties of the business, with salaries being delayed for more than 3 months, I decided it would be difficult to continue and started my independence. There was also a considerable amount of money I was owed, and there were many problems in various aspects, so there was sufficient justification that it would be difficult (and should not be) to continue working together. It was a truly long yet short period of 3 years. And, I took the freelance work I was handling there with me.
- I felt compelled to finish what I had started, and it was better for me to handle it alone than through the business (though it was just 2 people), and I felt uncomfortable just leaving everything behind.
- I wanted to devote all my time to building my portfolio and preparing for employment, but it's disappointing that I have to spend half of each day on freelance work. I sometimes envy people who can secure blocks of uninterrupted time.
- 2025-08-09 (Personal business card design): I received a Figma lesson for creating personal business cards with the help of Haje. Haje did almost all of the business card design for me.
- The design turned out better than expected, and the feedback has been positive from everyone who received it, whether during coffee chats or at events.
- ⭐ 2025-08-10 (UbuCon Korea 2025 presentations): I gave two presentations at UbuCon Korea 2025.
- "Editors in the 2025 Ubuntu Environment, and the Future"
- Session page: https://events.canonical.com/event/126/contributions/671/
- The UbuCon Korea organizers had been suggesting that I host a Vim-related session for quite some time. Specifically, they suggested holding a BoF session. I looked into what BoF was, and to summarize briefly, it's a session where a moderator introduces a topic and people can voluntarily share their thoughts in a freestyle manner. I wanted people who use editors other than Vim to be able to share their perspectives as well, so I invited rangho, who is knowledgeable about Emacs, as a co-host, and boltless, a Neovim plugin craftsman who had just completed his military service, through personal connections. The result was successful.
- "Why Do Global OSS Developers Gather on the Fediverse?"
- Session page: https://events.canonical.com/event/126/contributions/700/
- This might be the first session introducing the Fediverse at a major conference in Korea. Overseas, there are many FOSS developers who have established themselves on Fediverse instances like fosstodon.org/hachyderm.io/floss.social/infosec.exchange, but they're not very visible in Korea and there's almost no influx. In Korea, developers are flowing into Hackers' Pub centered around Hong Minhee, and I applied to give this presentation to help boost this trend. As a moderator of the Korean Fediverse Developers Community, I had sufficient justification. Through this presentation, I hope the awareness of the Fediverse has broadened somewhat across the developer community in Korea.
- The presentation materials can be found here.
- Actually, the QR code for the Hackers Pub invitation on the last slide was the key objective (lol)
- And...... since it was the end of the OSSCA Challenges period, immediately after the event, I moved swiftly from Gwanghwamun to Seocho for a separate team dinner with the Fedify team.
- "Editors in the 2025 Ubuntu Environment, and the Future"
- ⭐ 2025-08-16 ~ 2025-08-17 (PyCon KR participation): This year, I participated in PyCon Korea both as a community sponsor and as a speaker. It was quite a hectic time.
- As a sponsor, I managed booths across three communities: Hackers' Pub, Korean Fediverse Developers Community, and vim.kr.
- The story of how I ended up managing booths across three communities is a long one. I had been planning to participate as a community sponsor this year, but it all started when PyCon's Twitter account posted a community sponsor recruitment announcement that was shared in someone's fan club Discord. In summary, it mentioned that community sponsorship was possible with a relatively modest amount. And so... along with another friend who is a vim.kr moderator, four communities from one Discord server ended up sponsoring PyCon Korea. Just because we could? We just went ahead and did it.
- I spent both days primarily at the Korean Fediverse Developers Community booth. I did occasionally manage the vim.kr and Hackers' Pub booths, but most of my time was spent at the Korean Fediverse Developers Community booth. While I was away giving my presentation or attending other sessions, Lee Chanhaeng and Kwon Jiwon, who are also Fedify team mentees, as well as Kim Muhun and Haje, helped manage the booth. I'm overwhelmingly grateful...
- And contrary to my optimistic expectations, I had very little time to focus on the vim.kr booth. sliver, Seong Jiho who was selected with an event ticket, and iblea worked really hard. Next time, if I set up multiple community booths, I'll need to establish more backup plans.
- As a speaker... the response was better than I had anticipated given how nervous I was. Despite my presentation becoming outdated content in real-time due to the rapid development of AI tools, the core message I wanted to convey remained unchanged: "People themselves need to become stronger, and they can give correct instructions based on what they know"
- Conference presentations have a rather long cycle from CFP recruitment to being confirmed as a speaker and then giving the presentation, so I learned the lesson that I should avoid covering rapidly changing content if possible. The same would apply to publishing a book...
- The presentation materials can be found here.
- As a sponsor, I managed booths across three communities: Hackers' Pub, Korean Fediverse Developers Community, and vim.kr.
- ⭐ 2025-09-14 (Hosted Hackers' Public): I successfully concluded the first Hackers' Public offline meetup organized by the Korean Fediverse Developers Community.
- There had been a consistent demand for offline meetups from Hackers' Pub. The question was, "How should we gather?" Ideally, the event should satisfy as many people as possible, be substantial yet stimulate intellectual curiosity, and leave a lasting impression while facilitating networking.
- Actually, rather than thinking about how to organize a meetup from scratch, there was an event format I had been keeping an eye on: NYC Systems Meetup. It's a relatively small-scale meetup where experts from various fields (compilers/databases/browsers/IDEs/...) introduce the challenging tasks they're working on in their respective domains. Their YouTube videos are publicly available. While I couldn't completely replicate this format, what I appreciated most about it was that it centered around 'moderately hardcore topics that provoke intellectual curiosity' and 'wasn't tied to any specific language or framework'. These became the core criteria for selecting speakers.
- The speaker recruitment Google Form can be found here
- Having come up with the meetup idea, I immediately put it into action with the mindset of "I've got the idea, so of course I have to make it happen!" Like NYC Systems Meetup, I recruited two speakers around topics that would interest people, with the rest of the time dedicated to networking on free topics.
- Lee Chanhaeng named it Hackers' Public and created the poster
- I had several candidates in mind who I thought would be suitable speakers for my ideal meetup. Among them were dalgona and Jake Seo, whom I invited as speakers for the first meetup. As expected, the response was positive. However, I was disappointed that there was less networking time than anticipated. If I organize another event, I'm considering allocating 4 hours.
- The event introduction page can be found here.
- ⭐ 2025-09-24 ~ 2025-09-29 (PyCon JP participation)
- This was my first visit to Japan in 2 years since attending RubyKaigi in 2023. Although I don't make a living with Python, I decided to go for it because I wanted to network with Japanese developers and take an overseas trip after a long time.
- For detailed information... I practically live-streamed it on my Mastodon personal account, so you can refer to this. I might publish another article about it, but that's not certain yet.
In summary.....
- I've become independent and am currently in job-seeking mode,
- I gave presentations at both PyCon KR and UbuCon KR,
- I launched the first of what I hope will be my ideal type of meetup at Hackers' Pub,
- I'm participating as a contributor to the Fedify open source project and working to expand the Fediverse ecosystem centered around Fedify,
- And I'm also handling freelance work alongside all this.
Good heavens, listing it all out shows just how much I've been doing. I may not be sure about Q2, but in Q3 I definitely spread myself thin and lived by doing everything I wanted to do. And since I still have many things to settle, I'll postpone job hunting until November.
So what's my current state?
I've gone on at length listing various things. I've enumerated what I did, what events occurred, and various factual relationships. So what's my current state?
I've taken on many projects, but I don't have much income. Still, I'm satisfied.
As mentioned above, my income has been almost cut off since April. While working on freelance projects within the business, I did receive 1-2 million KRW intermittently, and I can expect to receive 3 million KRW once I complete the ongoing freelance work and receive the final payment. Other than that, money is just flowing out. I had taken out a loan just in case, and I also invested some in US stocks, so I'm not completely without resources. It's enough to last until January.
However, I'm deliberately not taking on more freelance work because I might miss opportunities to find the job I want, and I could end up tied down if I enter into the wrong contract. I need to finish the projects I've already started by the end of this year, and I can't add anything more. I think my current state is the limit of what I can handle.
Still... I'm doing everything I want to do.
I'm preparing for job hunting, but it's no longer centered on frontend.
While I had resolved to prepare for employment centered on frontend in Q1, as I focused on Fedify, I realized that preparing for employment centered on frontend would be highly inefficient. As explained above, Fedify is a library designed to lower the difficulty of developing fediverse software in backend frameworks like Express/Fastify/NestJS.
Among these, I'm developing fediverse software based on NestJS using Fedify, and as I continue with the project, the situation has become one where I need to focus more exclusively on the backend rather than the frontend. Given the limited budget of time, I've come to the conclusion that it makes sense to look for jobs as a Node.js backend engineer or as a full-stack engineer. While jobs using FastAPI/Django are also open, due to the need for selection and focus, I'm currently maintaining a course of looking for jobs centered on Node.js.
Whenever I go for coffee chats, I always ask whether they want someone skilled in a specific framework or someone with excellent problem-solving abilities from a framework-agnostic perspective (though this criterion can vary depending on how it's defined). I understand both positions. Hiring someone who is somewhat skilled in a framework might be preferred because it ensures overall code quality and eliminates concerns about the learning costs of teaching the framework. From my position as someone with a Rails background looking for a non-Rails backend job, it could be considered a disadvantageous start. Nevertheless, I'm approaching it with the mindset that "I need to be good at at least one thing. Since I'm currently working on a project with NestJS, I should at least do this properly."
I'm also preparing for technical interviews intermittently. I've almost forgotten all the theory, so I'm studying mainly from two textbooks: OSTEP (Operating Systems: Three Easy Pieces) and HPBN (High Performance Browser Networking). In other words, I'm focusing on OS and networking. I'm thinking of studying databases through CMUDB YouTube lectures, but I'll consider that after finishing these first.... My algorithm skills have deteriorated, but they don't seem completely dead.
And...?
So, what will I do in the next quarter? I've learned one clear lesson. For the next quarter, I should first plan to scale up what I'm currently doing, and if I make side plans, I should first consider whether I have the confidence to handle them in an already busy situation.
At this point, facing Q4, looking back at what I planned last year:
-
Clearing Amazon Kindle inventory <- I haven't been able to settle this at all yet
-
Watching Coursera lectures before bed <- This has been pushed back in priority as finding and settling into a job is more urgent
-
Publishing 5 blog posts <- Fortunately, I think I can meet this goal. I just need to write 2-3 more posts in the next quarter.
-
Speaking at an overseas offline conference <- Unfortunately, I missed the timing
-
Reading books in fields other than self-improvement <- I should read at least one book in the next quarter....
-
Finding a party to attend VimConf in Japan <- I can't go because it overlaps with the OSSCA results presentation.
-
Contributing to a zig-based open source project <- I was really into this at one point, but now it seems daunting.
-
Contributing to a framework I like <- This is something I should consider after settling into a job, but I think I can try it next year.
Since it feels unsettling to make plans and not follow through on any of them, I feel compelled to properly accomplish at least one. And of course, I need to completely finish what I've started, and hopefully settle into a job before Christmas if possible.