I graduated with a bachelor degree in computer science and information engineering. For me, learning new knowledge and solving problems really matter. As a result, I keep improving my skills in web technology.
[email protected] / 0937-931-289
Beside bugs fixing and new features developing, colleagues and I added frameworks to make our work be done quicker and easier to maintain. We used Next.js to handle CSR and SSR, and also chose Typescript as our type checker. For easier use of Graphql, we used Apollo-client to control data flow in the front end. Based on Graphql and Typescript, it's easy for us to create fake data before the back end engineers finish their jobs. As a result, we could minimize development with Storybook.
On the other hand, we had many components. So, Lerna is picked to manage our component packages. Lerna is a completely different development model. Though we spent time adapting it, it greatly improved our jobs.
Due to the change of frameworks, we spent a lot of time adding those frameworks to our projects and it's a very challenging job. For example, Redux was used to control data flow in the past, but Apollo-client is more suitable with Graphql. Thus, to avoid breaking change, we replaced Redux with Apollo-client step by step. It's a hard challenge for me but I enjoy the process of building a more maintainable project.
During this period, many frameworks were announced, but authorities still don't know which one is the best. As a result, when I was a freelancer, I tried to use those frameworks to find the best way to make my projects faster and easier to maintain. In 2015 - 2017, I wrote about five projects, but most of those websites were written by the new maintainers. So I don't list those websites here, and just summarize how I build those projects. At the beginning, React, babel and Webpack were just used in websites, and I also used those frameworks to build a website. In this project, I learned how to use Webpack and code splitting.
The next project, I used Redux to handle the data flow, React-router to handle client routing and Express to handle the server-side rendering. In the past, we didn't have any framework to implement SSR and CSR. However in this project, I tried to implement those concepts and use Radium to handle the style of the website.
Next projects, I started to build some npm packages to accelerate my jobs. I build a components library, a server-middleware library and a database library. Most of those projects aren’t maintained, but I learned how to build npm packages. This stage is very important to me. I start to think about how to build a system, not just a single project.
In the final project. I used Graphql and Relay to handle the data flow. Eslint, Prettier and lint-staged kept my code style consistent. Jest tested my code to avoid unexpected problems. Circleci and PM2 deployed my code continually.
At the end of being a freelancer, many frameworks appeared and helped us build websites more easily. Learning new frameworks needed lots of time. It's difficult to strike a balance between exploring new technology while writing a project. So I decided not to be a freelancer, and tried to be a technical staff.
Solve problems
Spending the time to find the best solution is more important for me than just barely finishing projects. When people encounter problems, they would try to google them to find solutions. However, they don't know the core issues. This may cause other problems. I don't think this phenomenon it's a good thing as an engineer.
As a result, I often try to find the core issues and the best solution. During the process, I can learn much knowledge and advance my skills. If, unfortunately, there are no solutions online, I would try to read source code in Github, reading source code not only helps find the core issues but also lets me master those frameworks and libraries.
Do something
Sometimes, frameworks and libraries aren't suitable for our projects. Therefore, I am keen to develop side projects and make them more simple and maintainable. When we just blindly follow frameworks, it would cause projects to be difficult to maintain.
When developing side projects, reading source code is important. Sometimes, documents aren't enough. I go through source code to find the additional way to complete my goal. By exploring source code, I could think about whether I should use this framework or not? Is this framework suitable for projects? Though I couldn't find the best way to write websites, I could keep seeking the best solution and it should be the most important goal of a front end engineer.
Keep learning
Because of the continuous rapid development and innovation of web technology, learning is important to a front end engineer. By keeping learning the latest technology, I could use those new technologies in new projects. At the same time, it would keep improving my skills.
Beside web technology, I am also interested in other technologies. Like yarn berry, this couldn't only be used in websites, but also in developing other programs. As a result, I read technology news every day to keep learning and exploring new things.
I graduated with a bachelor degree in computer science and information engineering. For me, learning new knowledge and solving problems really matter. As a result, I keep improving my skills in web technology.
[email protected] / 0937-931-289
Beside bugs fixing and new features developing, colleagues and I added frameworks to make our work be done quicker and easier to maintain. We used Next.js to handle CSR and SSR, and also chose Typescript as our type checker. For easier use of Graphql, we used Apollo-client to control data flow in the front end. Based on Graphql and Typescript, it's easy for us to create fake data before the back end engineers finish their jobs. As a result, we could minimize development with Storybook.
On the other hand, we had many components. So, Lerna is picked to manage our component packages. Lerna is a completely different development model. Though we spent time adapting it, it greatly improved our jobs.
Due to the change of frameworks, we spent a lot of time adding those frameworks to our projects and it's a very challenging job. For example, Redux was used to control data flow in the past, but Apollo-client is more suitable with Graphql. Thus, to avoid breaking change, we replaced Redux with Apollo-client step by step. It's a hard challenge for me but I enjoy the process of building a more maintainable project.
During this period, many frameworks were announced, but authorities still don't know which one is the best. As a result, when I was a freelancer, I tried to use those frameworks to find the best way to make my projects faster and easier to maintain. In 2015 - 2017, I wrote about five projects, but most of those websites were written by the new maintainers. So I don't list those websites here, and just summarize how I build those projects. At the beginning, React, babel and Webpack were just used in websites, and I also used those frameworks to build a website. In this project, I learned how to use Webpack and code splitting.
The next project, I used Redux to handle the data flow, React-router to handle client routing and Express to handle the server-side rendering. In the past, we didn't have any framework to implement SSR and CSR. However in this project, I tried to implement those concepts and use Radium to handle the style of the website.
Next projects, I started to build some npm packages to accelerate my jobs. I build a components library, a server-middleware library and a database library. Most of those projects aren’t maintained, but I learned how to build npm packages. This stage is very important to me. I start to think about how to build a system, not just a single project.
In the final project. I used Graphql and Relay to handle the data flow. Eslint, Prettier and lint-staged kept my code style consistent. Jest tested my code to avoid unexpected problems. Circleci and PM2 deployed my code continually.
At the end of being a freelancer, many frameworks appeared and helped us build websites more easily. Learning new frameworks needed lots of time. It's difficult to strike a balance between exploring new technology while writing a project. So I decided not to be a freelancer, and tried to be a technical staff.
Solve problems
Spending the time to find the best solution is more important for me than just barely finishing projects. When people encounter problems, they would try to google them to find solutions. However, they don't know the core issues. This may cause other problems. I don't think this phenomenon it's a good thing as an engineer.
As a result, I often try to find the core issues and the best solution. During the process, I can learn much knowledge and advance my skills. If, unfortunately, there are no solutions online, I would try to read source code in Github, reading source code not only helps find the core issues but also lets me master those frameworks and libraries.
Do something
Sometimes, frameworks and libraries aren't suitable for our projects. Therefore, I am keen to develop side projects and make them more simple and maintainable. When we just blindly follow frameworks, it would cause projects to be difficult to maintain.
When developing side projects, reading source code is important. Sometimes, documents aren't enough. I go through source code to find the additional way to complete my goal. By exploring source code, I could think about whether I should use this framework or not? Is this framework suitable for projects? Though I couldn't find the best way to write websites, I could keep seeking the best solution and it should be the most important goal of a front end engineer.
Keep learning
Because of the continuous rapid development and innovation of web technology, learning is important to a front end engineer. By keeping learning the latest technology, I could use those new technologies in new projects. At the same time, it would keep improving my skills.
Beside web technology, I am also interested in other technologies. Like yarn berry, this couldn't only be used in websites, but also in developing other programs. As a result, I read technology news every day to keep learning and exploring new things.