In the previous article "Web2 is the end, Web3 is the destination: Introduction to Web3", I roughly reviewed my learning experience of transitioning to a Web3 full-stack engineer through the "Web3 Frontend Bootcamp".
During the early days of the bootcamp, I often saw people asking, "Can I find a Web3 job after completing the training?" Some even had the traditional mindset of wanting to find a stable Web3 job...
From my current understanding, the Web3 industry is unpredictable and quite volatile. There is no such thing as "stability". It is normal for a project to disappear overnight. If we have to say, exchanges may be relatively stable.
Therefore, if you want to enter the Web3 industry, you must accept the instability of the job and embrace uncertainty. Make yourself flexible and adaptable, able to learn new knowledge quickly and efficiently to cope with constant changes.
As a self-proclaimed "independent developer," I naturally don't want to limit my income to just "working (finding a job)". I want to diversify.
In addition to the "old topics" mentioned in the article "Developers, go independent!", there are also two interesting things in the Web3 community - "bounty tasks" and "hackathons". Being a "bounty hunter" is also great!
Hackathon Experience#
As OpenBuild, which has some influence in the Web3 developer community in China, besides the "Web3 Frontend Bootcamp," we have organized many activities, including the recently concluded "ETH Shenzhen".
This "ETH Shenzhen" consists of two parts: sharing and roundtable meetings, and a hackathon competition. If the hackathon team does not win a prize, there will be travel subsidies for those outside Guangdong Province.
Half a month before the conference started, there was an online hackathon exclusively for bootcamp participants, which can be considered as a link with the "ETH Shenzhen Hackathon". Both can use the same project, so I participated in both.
Before joining the bootcamp, I already had the idea of developing myself into a DAO-like organization centered around the community. When I was working on the NFT market during the bootcamp, I felt that the idea was feasible.
So, I took the opportunity to participate in the hackathon to make it more concrete, as a competition project and another work in my "Internet Freedom Manifesto" camp!
Introduction to the Competition Project#
After thinking for about a day, I established the name and positioning of the project -
The Chinese name is "吾界" (Wu Jie), and the English name is "Selfverse". They both express the same meaning - "self" is the "world" or "universe" itself.
The world we see is a manifestation of our inner world. If we want to live an exciting life, we must enrich our spirits first to form a more complete, systematic, and self-sustaining "ecosystem".
The true and complete "self" is often deeply hidden, and what we interact with others is the "personality mask" that has been filtered and somewhat embellished.
This is true in real life, and even on the Internet, where anonymity is possible, most people still have to follow the "unwritten rules" of interpersonal communication.
Daily life nowadays is increasingly inseparable from the Internet. Many people need to maintain a relatively stable "personality mask" online, especially those who rely on digital means to make a living or even get rich, such as freelancers, independent hackers, digital nomads, and so on.
Some popular and more easily understandable terms can replace the "personality mask" - persona, influence, personal brand, super-individual...
The positioning is to provide a series of tools as infrastructure to help those in need create their "personality masks" more easily and promote closer "connections" between people.
Using decentralized technology that is not limited to blockchain, the project solves problems for users in a decentralized manner, giving them the choice of deployment, hosting, management, and other aspects.
This project is an important part of my envisioned "decentralized and intelligent solutions for individuals and families" and will be deeply integrated with LinXoid and KnoSys in the future.
Online Hackathon#
Although the online hackathon of the bootcamp was scheduled from August 1st to 10th, the first day was basically over when it was announced, and the submission deadline was before 2 pm on the 10th. Therefore, the actual development time was probably less than 8 days.
Specifically for me, I started development on the 3rd day, writing a smart contract that supports RBAC (Role-Based Access Control), and passed unit testing on the 5th day. From the 6th day onwards, I started working on the frontend interface. I thought it would be done in two days, but I underestimated the complexity of role-based access control. Finally, it was completed on the afternoon of the 9th day.
Then I prepared the project introduction materials and submitted them to the bootcamp's GitHub repository as a PR. Time was very tight!
Since my project idea was too big, it was impossible to implement everything in such a short time. So I could only focus on developing a small part of the functionality:
To save development time, I chose to use the Ant Design and Ant Design Web3 UI component libraries, which I am more familiar with, and deployed them as a pure frontend single-page application using Vite.
Offline Hackathon#
Although the "ETH Shenzhen Hackathon" can be participated online, it is still better to go to the offline venue for a different experience.
This hackathon was held in Shenzhen from the afternoon of August 16th to the evening of the 18th. I needed to take a flight there, so I bought a ticket for the 15th to improve fault tolerance.
The first event on the 16th was the registration for hackathon participants, and we received exclusive paper wristbands to distinguish our identities. We also received a "goodie bag" with cultural shirts, hats, bags, etc., which was completely different from what we received during the bootcamp. It was a completely new design!
Then there were several workshops by sponsors in succession. The opening one may not have been well-prepared and ended up with some on-site debugging, which caused the presentation to not go smoothly. I forgot whether it was during the second or third workshop, but I left to write my own project code.
If you watched the video mentioned earlier, you would notice that the paid work is just an empty shell without actual content, just like buying a book with only a cover and no pages. The main focus during these competition days was to solve this problem.
To do so, I planned to:
- Add an article module for the webmaster to create, edit, and publish articles, and for visitors to browse and reward.
- Revamp the paid work module, with the webmaster associating articles as chapters, allowing visitors to see the table of contents and view the actual content.
- Add a fund module to centrally control the flow of funds for payments and rewards, consolidating them in the same smart contract.
- Add a visitor-exclusive personal center for visitors to view their payment and reward records.
First, I worked on the relatively simple visitor personal center. I felt that using only wallet addresses as user identification would be too pale and monotonous, so I added Jazzicon, which generates avatars based on addresses, similar to MetaMask, and changed all the avatars to this.
Next, I completed the logic for the token fund, system settings, user registration, and other smart contract code that I had already thought about. The only thing left was the ice-breaking party.
The organizers ordered kebabs, pizza, fried chicken, beer, soda, and other takeout to the venue. When the food arrived, everyone rushed to get some. It was quickly distributed, and there was no time for small talk... It seemed like everyone was starving...
I had some social interactions that day, meeting and exchanging ideas with people I had met and connected with in Hangzhou, as well as those I had established a certain level of connection with online. It was the first time meeting some of them in person.
After returning to the hotel, it was already late. There was still some development work to be done for my project, and time was tight. Since I didn't want to prepare a slide deck for the pitch, I had to finish the development in the next two days. I decided to work all night!
Listening to songs by Xu Wei, BIGBANG, and others, I completed the article smart contract and the parts of the smart contract related to fund flow without any issues. Then I went to sleep. It was already 4 am.
The next two days followed a similar routine:
- Arrive at the venue before 9 am, sign in, and then go to the coding area to work on the project.
- Have boxed lunches provided by the organizers at noon, which all come with soup and beef.
- Do project-related tasks in the afternoon, such as coding or giving explanations.
- Attend the dinner organized by the organizers in the evening and switch to social mode.
I hardly attended any of the guest speakers' sessions. Instead, I focused on preparing for the pitch on the last afternoon. I stayed up all night on the 17th to finish most of the remaining features. Now I could finally relax!
On the 18th, after wrapping up the project, I couldn't wait to share my project with others. So I brought my laptop to the front desk area and found a fellow bootcamp participant and assistant who was volunteering at the conference. Luckily, he wasn't busy.
I sat next to him and demonstrated the project on my computer while explaining its features. I also talked about some long-term ideas, such as attracting others to invest by using myself as a value carrier, issuing tokens to investors to prove their rights, and providing returns when certain conditions are met in the future.
This was the first time I introduced my project in such detail, and I felt excited while speaking. He listened attentively to my "bragging" and not only shared his understanding but also gave some suggestions.
Finally, it was time for the pitch. There were about 30 projects, each given 10 minutes. After all the projects were presented, including breaks and other interruptions, it would take about 5 to 6 hours. I was the 10th presenter.
Although it was impossible to explain my project completely within 10 minutes, I couldn't use that as an excuse. There is still room for improvement, such as:
- Even if the functionality is relatively complete, a simple application demonstration is not enough. The pitch deck is indispensable.
- I spoke a bit slowly, and the expression process lacked rhythm. The two projects that followed me had a great flow, and I enjoyed listening to them. I need to learn from them.
- I should have interacted more with the judges before the pitch, introducing my project to them. This would be like extending the time for my pitch.
Now I understand that participating in a hackathon is like playing another game - how to allocate the time between development, pitch preparation, socializing, and other activities throughout the competition will affect the actual workload and the design and arrangement of social interactions, thus affecting the chances of winning.
For me, the hackathon has two meanings:
- When working on my own project, it feels like starting a business, and the judges are like investment institutions. I need to impress them with elegant expressions to get the investment, which is equivalent to winning the prize money.
- When working on someone else's project, it's like a bounty task, using my professional skills to help them win and share the prize money as a reward. However, for bounty tasks, the reward has higher uncertainty.
In addition to coding, I also put more effort into socializing during these days. In the past, I didn't like to talk much offline. I mainly listened to others. But this time, I actively engaged in conversations, both passively and actively, with others, including strangers.
However, there is still room for improvement. Most of the people I socialized with were those I had already had some contact with. There were very few "new" connections.
Many technical people have a misconception about events like hackathons - they participate to learn technology. Those who hold this mindset will most likely be disappointed in the end.
I used to be one of those people. Before 2017, I would participate in various technical events, but I rarely felt like I "learned something". Most of the time, it was just "so-so". Therefore, until earlier this year, I hadn't participated in any events.
Now my perspective has changed. The most important thing about participating in events is to understand the industry trends, communicate with others, and establish deep connections, thereby increasing the chances of finding potential collaborations. These are the keys to success for someone like me who calls themselves an "independent developer".
Conclusion#
With this, my summary of the initial stage of my transition from a traditional web frontend engineer to a Web3 full-stack engineer, which took about three months, comes to an end.
For me, the technical aspect of the transition was not difficult due to the support of the abstract model network formed by my knowledge and experience. The real challenge was extracting a stable model from the complex blockchain ecosystem and the ever-changing Web3 industry, and accumulating valuable project experience.
To enter the Web3 industry, one must firmly remove the "stability" band-aid from their mindset. "Flexibility" and "efficiency" are their greatest and strongest weapons!
Read the full article on: Personal Website | WeChat Official Account