2025 Q2/Q3 Review

Jaeyeol Lee @kodingwarrior@hackers.pub

In truth, I had content I wanted to include in the Q2 review, but since the most substantial material was concentrated in Q3, I've ended up combining them in this post. While I had outlined plans for the next quarter in my Q1 review, several more important matters arose that prevented me from following through on those specific items. This reflects the significant events that occurred, which I'd like to detail one by one. There were legitimate reasons why the plans from my Q1 review didn't materialise (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 evidence of my struggle to reap what I had sown too abundantly—in other words, a history of working through my karma.

  • 2025-04-10 (Income ceased): I previously mentioned being dispatched to work in Gangnam. However, one day, my wages went unpaid. I attempted labour negotiations regarding the unpaid wages, but there were several concerning clauses in the newly drafted contract, so I decided not to proceed further, beginning a period without income. This was during the height of Vibe Coding's popularity, so for nearly three months, I focused on developing ideas without financial return, even though they weren't profitable. In retrospect, there wasn't much to show for it.
    • With no income source, I suggested we should at least try freelance work through platforms like Freemoa/Wishket, and I handled all the applications myself. I even created a site that generates freelance quotes and spent some of my own money (part of the 4 million KRW I had loaned to the company account) on Facebook marketing, but with little significant result. For a two-person business to barely survive, we needed to earn at least 10 million KRW monthly, but many of our projects fell far short of this target. (Of course, I handled most of the practical work)
  • ⭐ 2025-05-11 (PyCon presentation application): I had been thinking, "I must present at PyCon this year," and as I was experimenting extensively with Aider at the time, I boldly submitted CFP materials on the topic of "Vibe Coding with Aider". Of course... this is where my heart-pounding days began.
  • 2025-05-24 (Korean United Space Developers Meetup, second sprint meetup hosted)
    • It had been about 9 months since I hosted the first sprint meetup for the Korean United Space Developers Meetup. Managing multiple communities left me overwhelmed, and constantly wondering 'where to host the next meetup' led to continued postponements. I feel I should try to host these "on a monthly basis" if possible. Of course, sacrificing my leisure time will be unavoidable...
    • However, subsequent meetups were postponed as I began contributing to Fedify, which I'll explain later...
  • ⭐ 2025-06-19 (Selected as a PyCon presenter): While I had been half-doubtful thinking, 'No way I'll be selected,' I was indeed chosen as a presenter for PyCon Korea 2025. I was extremely confident at this point. As for what happened next... I'll let the image below and the script from that time explain.

The tearful journey to preparing the presentation materials

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 introduced a feature called Todo List. Of course, even then it wasn't quite as good as Aider.

So with full confidence, I submitted my presentation materials on Aider on May 11th, the PyCon CFP deadline.

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 acclaim.

On June 13th, I began using Claude Code in earnest, and I think I started using it alongside Aider for comparison.

And, while I was conflicted between Claude Code and Aider... on June 19th, I was selected as a presenter for PyCon Korea 2025.

Yes. Still, I thought, Aider has the advantage of being able to use good models from Google... so I still believed it had distinctive advantages and maintained my confidence.

But then, a week later, Gemini CLI was officially announced.

Just as I was thinking "How could this be...", another week later, Cursor announced new features,

And yet another week later, a development tool called Kiro was announced.

They said it was a product that incorporated Spec Driven Development and so on.

LLM-based development tools are evolving at a pace that's difficult 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 programme organised by NIPA that enables contributions to open source projects.
    • Fedify is an open source project led by Hong Minhee, which, simply put, is a framework that reduces the difficulty of developing web services that support the ActivityPub protocol. It can be integrated with TypeScript-based web frameworks such as Express/Hono/Fresh/NestJS.
      • For example, let's assume you need to create a decentralised SNS service like Mastodon. Creating a service that supports SNS functionality at an MVP level might not be particularly difficult. However, for services to be self-hosted in different environments and federated as if they form a single timeline, a protocol is needed—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 thoroughly documented what considerations and implementation elements are 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 launch ceremony and voluntarily took on the role of assistant mentor during the team launch. During the OSSCA Challenges period (~08/10), I wanted as many people as possible to contribute, so I conducted a brief survey to understand the mentees' specialties and helped distribute tasks evenly according to their skills. Schedule tracking was a bonus. The current Masters programme is dragging on due to various scheduling conflicts, and the deadline (01/11) is already approaching (haha).
    • Besides my assistant mentor role, I'm responsible for NestJS support (fedify/nestjs), beginning with this PR, and I'm developing a fediverse software based on NestJS. Initially, I approached it as a package within my monorepo project, but later 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, which I aim to deploy during the Chuseok holiday and demonstrate as an MVP at the OSSCA results presentation. I've even 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 complications, 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.....
  • ⭐ 2025-07-06 (First meeting for vimrc 2025 preparation): Starting from someone's tweet asking "Won't someone open a Vim correction academy?", gatherings of Vim users have been held at the end of each year at 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 host 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 those mentioned above. At least I've taken over the vimrc event. I must make this happen at the very least.
  • 2025-07-31 (Resignation): Due to the financial difficulties of the business, with salaries being delayed for over three months, I decided it would be difficult to continue and began working independently. There was also a considerable amount of money I was owed, and there were many problems on various fronts, so there was ample justification for anyone to see that it was difficult (and inadvisable) to continue working together. It was a truly long yet short three years. And, I took the freelance work I was handling 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 two people), and simply walking away left me with several uncomfortable loose ends.
    • While I wanted to devote all my time to building my portfolio and preparing for employment, it's frustrating that I have to spend half of each day on freelance work. I sometimes envy those 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 help from Haje. Haje did almost all the design work for the business card.
    • The design turned out better than expected, and everyone who received it, whether during coffee chats or at events, seemed to appreciate it.

Business card design

  • ⭐ 2025-08-10 (UbuCon Korea 2025 presentations): I delivered 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/
      • For quite some time, the Ubucon Korea organisers had been suggesting I host a Vim-related session. Specifically, they proposed a BoF session. I looked into what BoF meant, and to summarise briefly, it's a session where a moderator introduces a topic and participants can freely discuss it in an unstructured format. As I wanted people who use editors other than Vim to share their perspectives as well, I invited rangho, who is knowledgeable about Emacs, as a co-moderator, and through personal connections, I also invited boltless, a Neovim plugin craftsman who had just completed his military service. The result was a success.
    • "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, many FOSS developers have established themselves on Fediverse instances like fosstodon.org/hachyderm.io/floss.social/infosec.exchange, but they're rarely seen in Korea with almost no influx. In Korea, developers are joining Hackers' Pub, centred around Hong Minhee, and I applied to present partly to give this movement a boost. As a moderator of the Korean Fediverse Developers Meetup, I had ample 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.
        • In truth, the Hackers Pub invitation QR code on the very last slide was the key objective (haha).
    • 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.

UbuCon Korea 2025 introduction page

  • ⭐ 2025-08-16 ~ 2025-08-17 (PyCon KR participation): This year, I participated in PyCon Korea both as a community sponsor and as a presenter. It was quite a hectic time.
    • As a sponsor, I managed booths across three communities: Hackers' Pub, Korean Fediverse Developers Meetup, and vim.kr.
      • The story of how I ended up managing booths for three communities is a long one. While I had intended to participate as a community sponsor this year, it all started when PyCon's Twitter account posted a community sponsorship recruitment notice that was shared in someone's fan club Discord. In summary, it mentioned that community sponsorship was possible for 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. Simply because we could? We just went ahead and did it.
      • I primarily manned the Korean Fediverse Developers Meetup booth throughout both days. I also covered the vim.kr and Hackers' Pub booths intermittently, but spent most of my time at the Korean Fediverse Developers Meetup booth. While I was away giving my presentation or attending other sessions, fellow Fedify team mentees Lee Chanhaeng and Kwon Jiwon, 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 attend to the vim.kr booth. sliver, Seong Jiho (who was selected through an event ticket), and iblea worked incredibly hard. Next time, if I set up multiple community booths, I'll need to establish more backup plans.
    • As a presenter... despite my nervousness, the response was better than I expected. Even though my presentation was becoming outdated content in real-time due to the rapid advancement of AI tools, the core message I wanted to convey remained unchanged: "People themselves need to become stronger, and can give proper instructions based on what they know".
      • Conference presentations have a rather long cycle from CFP recruitment to confirmation as a presenter to the actual presentation, and I learned the lesson that it's best to avoid covering rapidly changing content if possible. The same would apply to publishing a book...
      • The presentation materials can be found here.
  • ⭐ 2025-09-14 (Hosted Hackers' Public): I successfully concluded the first Hackers' Public offline meetup, organised by the Korean Fediverse Developers Meetup.
    • There had been consistent demand for offline gatherings from Hackers' Pub. The question was, "How should we meet?" Ideally, the event should satisfy as many people as possible, be substantial yet intellectually stimulating, and leave a lasting impression while facilitating networking.
    • In truth, rather than thinking about how to organise a meetup from scratch, I had been keeping an eye on a particular event format: the NYC Systems Meetup. It's a moderately 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 centred around 'moderately hardcore topics that provoke intellectual curiosity' and 'wasn't tied to any specific language or framework'. These became the key 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 should make it happen!" Like the 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.
    • 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 organise 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 two years since attending RubyKaigi in 2023. Although I don't earn my living with Python, I decided to go to network with Japanese developers and enjoy 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.....

  1. I've become independent and am currently in job-seeking mode,
  2. I've presented twice at PyCon KR/UbuCon KR,
  3. I've launched the first of what I consider an ideal form of meetup through Hackers' Pub,
  4. I'm contributing to an open source project called Fedify and working to expand the Fediverse ecosystem centred around it,
  5. And I'm also handling freelance work alongside all this.

Goodness, listing it all out shows just how much I've been doing. While I'm not sure about Q2, I definitely spread myself thin in Q3 and did 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 activities. I've detailed what I've done, what events occurred, and enumerated various factual matters. So how am I doing now?

I've taken on many projects, but have little income. Still, I'm satisfied.

As mentioned above, my income has been virtually cut off since April. While working on freelance projects within the business, I received 100/200 intermittently, but I can expect to receive 300 once I complete the ongoing freelance work and receive the final payment. Beyond that, money is simply flowing out. I had taken out a loan just in case, and I also invested 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 as it might cause me to miss opportunities for the jobs I want, and I could end up tied down by poorly negotiated contracts. I need to wrap up 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 at the limit of what I can handle.

Nevertheless... I'm doing everything I want to do, in my own way.

I'm preparing for job hunting, but no longer focusing on frontend.

While I had resolved in Q1 to prepare for employment with a focus on frontend, as I concentrated on Fedify, I realised that preparing for frontend-centric employment 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, I find myself needing to focus more on the backend than the frontend. Given the limited budget of time, I've determined that it makes more sense to look for jobs as a Node.js backend engineer or as a full-stack engineer. While jobs using FastAPI/Django are also available, due to the need for selection and focus, I'm currently maintaining a course of looking primarily for Node.js-centred jobs.

During coffee chats, I always ask whether they're looking for 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). In truth, I understand both positions. Hiring someone proficient in a framework might ensure overall code quality and eliminate concerns about learning costs, making it preferable. Coming from a Rails background but looking for non-Rails backend jobs, I'm at a disadvantage in some ways. Nevertheless, I'm approaching it with the mindset that "I need to excel 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. Having forgotten much of the theory, I'm studying primarily 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 considering studying databases through CMUDB YouTube lectures, but I'll think about that after finishing these first... My algorithm skills have deteriorated, but they're not completely dead.

And...?

So, what will I do 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 plan anything on the side, I should first consider whether I have the confidence to handle it in an already busy situation.

As I approach Q4, looking back at what I planned last year:

  • Clearing Amazon Kindle inventory <- I haven't managed 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 for this

  • Reading books in fields other than self-improvement <- I really should read at least one book 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 quite interested in this at one point, but it seems daunting now.

  • Contributing to a framework I like <- This is something I should consider after settling into a job; I think I might be able to attempt it next year.

I feel uneasy about setting plans and not following through on any of them, so I do feel compelled to properly accomplish at least one. And of course, I need to completely wrap up the projects I've started, and hopefully settle into a job before Christmas if possible.

19

1 comment

If you have a fediverse account, you can comment on this article from your own instance. Search https://hackers.pub/ap/articles/0199795b-18d1-74d5-ad8d-aed827bf38cc on your instance and reply to it.

2