Change website theme:

Jia Liang

Software Engineer

Summary

  • 5 years Experience
  • Full-Stack JavaScript
  • Exceptional Frontend
  • Information Systems Graduate
View my Resume

Personal Projects

FAQ

CURRENT JOB

We're a multinational marketing technology company involved in the renovation and furnishing industry.

We help interior firms increase their business' visibility, drive leads to them and offer lead management tools.

We also assist homeowners in the renovation process through various services and digital tools.

At the moment, our tech team consists of 6 people.

My tasks are split fairly evenly between frontend and backend.

I propose solutions to business problems, develop new features, fix bugs, do code reviews and generally help with matters related to tech.

My tasks generally come with the goals of:

  • Improving conversions (e.g. website redesigns, A/B testing).
  • Improving efficiency (e.g. automation, data transformation).
  • Improving traffic (e.g. SEO improvements).
  • Improving data collection (e.g. event-based tracking, journey analytics).
  • Improving business intelligence (e.g. dashboard and reports).

I mainly work with React, Redux, NextJS, JavaScript, HTML, Sass, PostgreSQL and Git.

I'm currently on a hybrid work arrangement of 2 days in the office and 3 days from home.

CULTURE FIT

I try to break down and tackle large tasks into smaller independently releasable chunks. These tasks are then worked on in order of importance and urgency.

Frequent communication with stakeholders helps manages expectations. E.g. time estimates, current progress, blockers etc.

My ideal work environment prioritizes work-life balance along with a balanced pace and an outcome-oriented culture.

I thrive in a collaborative, supportive team with a focus on quality over quantity and open communication.

I appreciate direct and honest feedback, both positive and negative. I believe it helps me learn and improve my performance. I also value the opportunity to provide feedback to others in a constructive and respectful way.

I send each application after careful consideration rather than relying on large numbers.

I am interested in working for your company because I believe I would be able to contribute meaningfully. I also feel positive about the product and services offered by your company as well as its business model.

I see myself as a valuable member of your company with extensive knowledge and understanding of its business and technical domain.

I aim to become a trusted resource for colleagues and a key driver of progress.

EXPERIENCE

I keep myself informed by engaging in online communities like Reddit. A diverse range of articles and projects related to web development are shared and discussed there.

I also build personal projects from time to time to solve problems in my daily life. These projects sometimes lead me to trying out new tools, technologies and methods.

Automated tools like PageSpeed Insights and the Wave Browser Extension makes for a good first pass.

But ultimately the proof of the pudding is in the eating. The best way to ensure accessibility is first hand experience. E.g. using the website with a screen reader and keyboard-only navigation.

Yes, my most recent experience is implementing bearer token authentication for a new web frontend.

Some best practices I implemented include:

  • Setting the HttpOnly flag on token cookies to prevent access by client-side code;
  • Setting the Secure flag on token cookies to limit their transimission to secure channels.
  • Implement an expiry date on the bearer token and require a refresh token to obtain a new bearer token.
  • Sign tokens with server-side secret to prevent tampering.
  • Keep track of the validity of tokens through the database.

The first step would be to determine where the bottlenecks are.

For the front-end, PageSpeed Insights can serve as a great guide. The biggest culprit tends to be total blocking time (TBT) and largest contentful paint (LCP) time.

For the back-end, inefficient database queries and poor caching strategy can often be the cause of poor performance.

The next step would be to optimize processes and resources contributing to the bottleneck to be more compute and bandwidth efficient. At the same time, critical resources needs to be prioritized while non-critical ones are deferred.

At work, I use Jest and Mocha for functional testing of API endpoints; Puppeteer is used for end to end testing.

There's also a staging environment for stakeholders to perform user acceptance testing.

NEXT JOB

Generally I prefer front-end work but am fine with both.

I'm happy with my current situation but am always open to new opportunities.

My current job requires a 2 month notice period.