Sunday, September 30, 2018

Product feature called price drop

Sept. 30, 2018


I like to write a blog talking about the product feature called price drop. Here is the website I spent over 30 minutes to look up.

19567 64 AVENUESurreyBritish Columbia

One month price drops $20,000. 

$379,000 CAD 20.9K
  • 1 Beds
  • 1 Baths
  • 615 Sqft
Property Type
MLS® Number
Year Built
Date Added
11 August 2018
Parking Info

Understanding market price

Industry study -

Industry study - streamlabs

Industry study - infomine

Industry study - best buy

Industry study - Electronic arts

Oct. 3, 2018


It is so good learning experience for me to read the job description from Electronic arts. I like to write down some technologies, and make sure that I can bring those technologies into my current job as well.

It takes time for me to learn new technologies. But there are so many ways to learn and quickly I can do that.

Say goodbye to old technologies

I need to update myself with new technologies related to ASP.NET, Anuglar.JS, and a few of frameworks.

Software Engineer - Quality Engineering

This position is to help build the next iteration of our quality reporting and workflow platform which leverages a microservice architecture, .NET technologies, Angular, TypeScript, and Docker to support EA’s game teams in building high-quality games.
The Software Engineer is a member of the Central Development Services (CDS) team at Electronic Arts. The CDS team are at the forefront of emerging technology, creating and optimizing tools that enable our teams to code better and more efficiently. Working as one team they are pushing the envelope, striving for ‘Quality by Design’ wherever possible.
The role requires a personality type that is outgoing, dynamic, enthusiastic, and able to network across groups and individuals to be part of a larger community.


  • Bachelor’s degree or higher in Computer Science, Engineering, or Software Engineering or equivalent combination of education and experience.
  • A minimum of 4+ years of technology industry experience.
  • This role will be split between frontend and backend development, therefore experience developing with frontend web technologies: JavaScript/TypeScript, CSS, and JavaScript framework(s) such as Angular, React, or VueJS is essential.
  • On the backend our team primarily uses C# and the .NET Core framework but we’re looking for a developer with strong experience in one or more OO languages such as C#, Java, Python, Go, or Ruby.
  • Knowledge of HTTP and how to design and interact with RESTful web services.
  • Experience with and/or exposure to microservices.
  • Understanding and experience with securing web services and applications.
  • Experience with Git.
  • Experience with unit, integration, and functional testing.
  • Knowledge of architecting and building scalable, resilient, and performant web services.
  • Knowledge of test automation and/or development process improvements.
  • Knowledgeable of the software lifecycle, modern testing methods, and a solid understanding of continuous integration.
  • Demonstrated problem solving and innovation skills
  • Ability to work independently with minimal outside supervision.
  • Ability to multi-task, prioritize and be flexible – able to adapt plans and react to change.

Additional Skills and Abilities

  • Working knowledge of deployment and management systems utilizing containerization (Docker, Mesos, Kubernetes) is a plus.
  • Experience with Video Game development is a plus.
  • Experience with functional programming is a plus.
  • Knowledge of test automation and/or development process improvements.
  • Performance Competencies (Non-Technical Skills)
    • A genuine interest in keeping up with technical trends in the software industry and applying this knowledge to the role.
    • Excellent communication skills, including verbal, face-to-face, written, and presentation.
    • Excellent detail-oriented problem solving skills.
    • Experience working cross-functionally with teams that are distributed across multiple different geographic regions.
    • Excellent organization and time management skills.
    • Experience working in a Scrum/Agile environment is a plus.
    • Able to quickly assess situations, troubleshoot complex problems, and keep a calm head under tight time constraints and high pressure.
    • Self-starter and ability to quickly learn and apply new concepts, principles, and solutions with little supervision.
    • Ability to work independently as part of a distributed organization.

Industry study - douglas lighting

Oct. 1, 2018


It is time for me to catch up some technology related to C#, ASP.NET. I need to find some time to play with Restful API, and also learn some Angular.Js as well.

It is important to keep update with the trend.


I need to find those keyword and also understand the business as well.

Oct. 1, 2018

Developing iOS, Android and Windows applications that enable ground-breaking innovation including:
  • Energy reporting to verify the savings of our LED and Controls technologies
  • World-wide monitoring and control of smart buildings
  • Geo-positioning and relaying information to mobile devices inside a smart building using Bluetooth beaconing
  • Energy use optimization based on occupancy patterns and machine learning
  • Leveraging innovative technology and working with other Panasonic groups including
  • Bachelors’ Degree in Computer Science or related field with 3 yrs+ exp
  • Experience developing iOS and Android applications
  • Proficient experience using .Net C# (.NET 3.5+)
  • Presentation-layer skills using: HTML5/Javascript/CSS/ JQuery/AngularJS
  • Experience with RDBMS and/or NoSQL
  • Experience with PHP, Ruby on Rails, or other open source technologies and frameworks
  • Experience with using RESTful APIs for communication with other backend systems
  • Experience with Python, PHP and Java programming languages
  • Familiarity with Lean-Agile methodologies (Scrum/Agile/XP/Kanban)
  • Renewable energy experience
  • Experience working with SCADA/HMI
  • Hand-on experience in Visual Studio based development for Embedded and Server applications
If you’re a self-starter interested in working with a focused team targeting novel solutions for energy conservation in the lighting and building management space, we’d like to hear from you.

Saturday, September 29, 2018

Leetcode 910. Smallest Range II

Sept. 29, 2018


It is such a big surprise that I found an excellent player who also wrote blogs related to weekly contest 103. The algorithm 901 is so tough for me to come out the solution to pass all test cases in the contest.

Here is the blog written in Chinese.

Leetcode discuss

Here is the post to read.

Leetcode 911 online election

Sept.29, 2018


It is such a great blog related to the medium level algorithm 911, online election. Here is the blog.

A very good algorithm blog

Sept. 29, 2018


It is time for me to study leader board after weekly contest 104. Now it is 11:02 PM, I came cross this blog and I am so surprised that the blogger is such a great worker. The algorithm online election will be my most favorite algorithm in short future.

Here is the blog.

Very good writing

The player can rank up to top 400, here is one blog to document his experience. I also learn something from his blog related to hackearth contest.

915. Partition Array into Disjoint Intervals

Sept. 29, 2018


It is the medium level algorithm in the weekly contest 104. I wrote the solution using two iterations of the array, one is to keep maximum of prefix and minimum of suffix.

My practice

Here is my discuss link. I also learned to write one pass, and then I wrote the reply in one of posts here.

916. Word Subsets

Sept. 29, 2018


It is a medium level algorithm, and I solved it by the first submission using counting sort.

My practice in the contest

Here is my discuss link. I also wrote some reply in other's discuss. Here is the link.

Leetcode algorithm categories

Sept. 29, 2018


It is important to get organized and well-prepared for any trial, no matter it is onsite, phone screen, or project at work, weekly Leetcode contest, or any other activities. In order to get better on algorithm and data structure, I start to play Leetcode weekly contest, and also I take some time to study leader board after the contest. Today I finished Leetcode weekly contest 104, and then I spent time to look up the leader board, now it is 9:49 PM.

One blog

I came cross this Leetcode category, and then I added to my Leetcode github page. It is important for me to look up and get the idea how to get more organized.

One of my favorite is monotonic data structure. Here is the link called Monotonic queue.

It is also very important for me to understand how hard the young people are working.

I like to gather data how many algorithms players finish. Several profiles are very interesting to look up.

One is with a lot of ICPC contest experience.

weekly contest 104

Sept. 29, 2018


It is the weekly leetcode contest. I solved second and third algorithms, but the first algorithm is related to great common divisor, but somehow I did not get the idea. I tried over 20 minutes to think about a solution after one failed test case on the algorithm one.

There is a graph problem which is hard level, I did not have time to figure out the solution.

Progress report

My ranking is 1076/2579, score 11, finish time: 59:09. I could not score anything after the first hour.

Thursday, September 27, 2018

Having good time

Sept. 27, 2018


It is surprising to learn that I had good time to work on one algorithm. What I did is to work on the algorithm, first 30 minutes to think about all the ideas. And then I spent another 30 minutes to go over various ideas on leetcode discuss. And then I spent time to write some code based on ideas I chose from those sharings.

I worked on the algorithm called longest word in dictionary, I had such good time to learn how to write Trie data structure, and also learned one solution using quick and easy to write using HashSet.

I also studied grand yang blog and read some tips written in Chinese.

Have good time

Sometimes the programmer can be so easily satisfied and be happy. Sometime it helps me a lot to warm up my brain using an easy level algorithm.

Here is the folder I created on my github for the algorithm.

There are so many good ideas I like to try. I like the idea to sort by word's length. Maybe I should exhaust all possible ideas, and list 10 ideas here.

Ideas about training

I always like to find good ideas to train myself in daily basis. I trained the easy level algorithm using hashset, trie, queue, and then use recursive function.

One of ideas is to train myself every week based on how many times I write on recursive function, hashset, or trie, or tree.

One way to get better is definitely to write code all the time. 

I wish that I can do more to make Leetcode discuss community better, it is very comfortable for me to stay in and continue to practice.

720. Longest Word in Dictionary using Trie (II)

Sept. 27, 2018


It is my best time to enjoy coding and learn Trie implementation. I wrote one using more than 30 minutes, at the end of practice, I still am not sure the idea. The recursive idea is hard for me to figure out somehow.

My practice

Here is my discuss link.

720. Longest Word in Dictionary using Trie

Sept. 27, 2018


It is an easy level algorithm tagged by HashTable. I had good time to learn to write a solution using Trie.

Solution using Trie

I understand that there must be an quick and easy to write solution for the easy algorithm. To write a Trie is not so easy, and I have to think carefully and then need 10 to 20 minutes to come out code.

Here is my discuss link using Trie. I also wrote some comment in one popular discuss, here is the link.

Wednesday, September 26, 2018

Customer obsession, one extra reputation

Sept. 26, 2018


It is called customer obsession principle. I like to serve leetcode discuss community, and then I started this September to share as many as possible my practice of Leetcode easy level algorithm. today I found out that my reputation is 10, one addition vote from 9. I had reputation more than one week.

It is tough for me to serve Leetcode discuss. I try to find which post I wrote helps me to gain one reputation. It is so hard for me to find out.

I did not have all the discuss link I shared before. I have more than 50 posts, I can certainly go one by one to look up.

I found the vote 

Here is the post I got one up vote and my reputation now is 10.

Longest univalue path algorithm

Sept. 26, 2018


It is 10:00 PM and it is time for me to be an interviewer on I chose to use longest univalue path algorithm again.

I gave a few hints to the interviewee today, and then I also tried to catch up some reading from discuss of the algorithm.

Suite season 7

Sept. 26, 2018


It is 10:06 PM. I like to write a blog related to a small topic, how often I should spend time to watch Suites. It is such a great show for me to have some good entertainment.

As a software programmer, I find out that we do not have chance to practice talk like actor/ actress in the show. I really like to meet other talent software programmers, one way I can do that is to work on easy level algorithms, and then go over some ideas. I can find so many talent programmers in Leetcode contest global ranking, and also in discuss as well.

I like to find 30 minutes show times at least one or twice in a week. It may help me to develop some good habit to learn to speak very well, and also expand my vocabulary.

720. Longest Word in Dictionary (I)

Sept. 26, 2018


It is an easy level algorithm. But I did think about Trie for a few times in my first 20 minutes brainstorm to find all ideas. Here are things I thought about.

1. Sort the words by length
2. Check word by word by length, starting from length = 1, maximum length is 30
3. Use Trie data structure

It is definitely a good algorithm to work on. I like to get some experience from all the sharing first.

My practice

Here is my practice using hashset only. It is easy and quick solution.

Here is my practice using Queue.
Here is my practice using recursive function.

Full-Circle, Twice Around: my Big Refresh

Sept. 26, 2018


It is time for me to watch some videos from Microsoft employee, here is the link. Family trip 9 months to tour the world, here is the link. Here is the summary.

Full-circle, twice around the world, the link is here.

Tuesday, September 25, 2018

18 easy level hashtable algorithms

Sept. 25, 2018


It is time for me to work on 18 easy level hashtable algorithms. I am so excited to work on algorithms, I like the habit to write code every day.

138. Copy List with Random Pointer

Sept. 25, 2018


It is a medium level tree algorithm. I practiced once and also used this algorithm to interview a few times on as an interviewer.

I like to write a C# solution for this medium level algorithm. And also I like to share my experience to encourage players to work hard on basics. I had chance to work on the algorithm in the meeting, I solved the algorithm in less than 28 minutes. Since I solved the clone graph and also worked on copy a binary tree with a random pointer, I was able to solve the algorithm quickly. Another reason is that I use a few simple test cases to help me reason and develop the code.

My practice

I will write the code and also share my analysis as well.

Sunday, September 23, 2018

28. Implement strStr()

Sept 23, 2018


It is time for me to review the algorithm. I like to spend time to read the discuss. I wrote the first submission more than three years ago.

Confidence ......

Sept. 23, 2018


It is 9:42 PM. I like to write a blog related to the topic called confidence. How to have confidence to make a living in the city of Vancouver? I played tennis this evening over one hour from 6:00 PM to 7:00 PM, I thought about a lot on tennis court. I knew that it is time for me to relax and also enjoy the sports.

Bible study

I spent one hour to watch the pastor Hua Xin's video. Here is the link.

40 medium level tree algorithm 26 to solve

Sept. 23, 2018


I like to start to work on medium level algorithms. I choose to work on tree algorithm, 40 medium level algorithms, I solved 14 algorithms before, I need to solve 26 medium tree level algorithms this time.

I plan to work on those 26 medium tree level algorithms together. It is much better to learn those algorithm together.

893. Groups of Special-Equivalent Strings

Sept. 23, 2018


It is time for me to post my code and also study discuss on I chose one of 10 string algorithms I worked on today.

My practice

Here is my discuss link. I also added one reply to give me comment on a post to point out a bug in the code. Here is the reply.

Say goodbye to easy level string algorithms

Sept. 23, 2018


It is a normal Sunday, but I wrote 10 easy level string algorithms. I completed all 31 easy level tree algorithms, last few days I completed around 20 of them.

It is time to make this day special. I will remember that number 230. 

Make it special

I chose to share a few of algorithm on Leetcode discuss, and also wrote some answers for the questions in the discuss. 

893. Groups of Special-Equivalent Strings, my blog link is here

Leetcode 788. Rotated digits - dynamic programming, my blog link is here.

Leetcode weekly contest 103

Sept. 23, 2018


I like to write a blog for Leetcode weekly contest 103. I played the contest but I learned that it is tough experience. I only felt frustrated very short time, I like to get back to my Leetcode easy level algorithm practice as soon as possible.

The idea of training is to work hard, and work on my target. My target is to solve more problems using existing talent as quick as possible. Meanwhile I will try to build a good habit to solve problems every day.

Saturday, September 22, 2018

Leetcode 788. Rotated digits - dynamic programming

Sept. 23, 2018


It is so surprising that I have chance to learn a dynamic programming solution through the discuss. Here is the link to study dynamic programming solution for the algorithm. I will write one using C# as well. 

My practice

Here is my discuss link. I also answered one of questions, here is my answer. 

learn Java design pattern

Sept. 22, 2018


It is time for me to learn Java design pattern. Here is the link.

Leetcode 788. Rotated digits

Sept. 22, 2018

I wrote the first submission using my own thinking. Here is my Leetcode discuss link. After that, I studied Leetcode discuss, and then I wrote an elegant one. Here is the second discuss link.

Object-oriented programming

Sept. 22, 2018


It is time to document my practice over 10 hours. I learn to design classes using Abstract, Virtual, override, and also Interface. It is very good exercise and I learn to work hard to make it work as well.

I will share my C# source code here.

Solve easy level algorithms

Sept. 22, 2018


It is easy to find blogs related to topic using keyword: solve easy level algorithms. Here are blogs for me to go over and review.

I find out that I finished 50 easy level array algorithm from August 14 to Sept 4, 2018. I found out that my experience of 5 easy level algorithms a day, 10 easy level algorithms a day. I learn to rush to do more work after I complete those practice.

How to measure my practice? 

It is an interesting topic to look into. I learn to work on 5 easy level algorithm, and then 10 easy level algorithms a day. What is maximum number I can reach in one day? Can I solve 20 easy level algorithms a day?

August 14 - Sept. 4, 50 easy level array algorithms
Sept. 4 - Sept. 20, 2018, 20 easy level math algorithms

Amazon prime video

Sept. 22, 2018


It is time for me to continue to learn Amazon prime video. I have chance to learn so much about the group this June 2018. I like to continue to learn things by myself.


Sept. 22, 2018


It is time for me to study one business a time. I think that it is best for me to learn more business. Stream service is so popular and I just had experience to learn Amazon prime video this past June 2018.

I just read one article written by a software engineer in Spotify.

Everyone can be ambitious but action speaks its own

Sept. 22, 2018


It is most common talk in the mock interview on I usually ask the interviewee what companies to prepare for the interviews. A lot of times the players tell me that eventually they like to work for big 4 software companies. I also like to say that over years as well.

Action speaks its own

It is hard to act on it. I learn how to manage the practice, use metrics to read data and then analyze my progress, submission in the last 12 months, contest global ranking, solved algorithms.

I started to work on Leetcode algorithm from January 2015. But I did not learn how to solve more algorithms in short time. After one year, second year, third year, now it is fourth year. I got a coach in June for two weeks, and then he gave me advice in July 10, 2018.

One thing I like to do is to work on Leetcode easy level algorithm, solve 200 easy level algorithms first. I started this July 10, 2018, right now I have solved 120 easy level algorithm. Still I have 80 algorithms to go.

The secret - talk to the best player

I learn to talk to the best player, and be humble, take advice.

Leetcode contest study

Sept. 22, 2018


It is the study called Leetcode weekly global contest ranking.  I studied top 300 global ranking of Leetcode contest, and then I found some article to read.

Leetcode progress study

Here is my Leetcode progress: 37762, contest ranking 14347.

I know that next 200 algorithm to work on, 50 will be easy level algorithms, rest will be medium level or higher.

Compared to the author of article, I learn that I have to work on another 200 algorithms at least, and also I need to push myself work hard on Leetcode algorithm. I need to advance my global contest ranking to top 5000 first.

Leetcode easy level algorithms

Sept. 22, 2018


I like to get a list of easy level algorithms to work on first.

Easy level algorithms

Here is the list of easy level algorithms for me to work on.


11-bit manipulation
10 - design 
8 - linked list
7 - stack 
3 - sort
3 - greedy
2 - backtracking 
1 - heap 

The link to get Leetcode easy level bit manipulation is here. And then click difficulty to sort by easy level to hard level order. 

There are 45 easy level algorithms for me to practice first. I should be able to easily solve another 45 algorithms in short future. 

Leetcode progress report

Sept. 22, 2018


It is the learning process for me how to handle frustration and failure. I learn to read my own data first. Here is my Leetcode progress report. I finished 219 algorithms, and played four contests. My ranking is 14347/ 69980.

I know that I have to be patient and then work on more Leetcode algorithms.

A comparison

I had chance to meet a new graduate from university in China, and he finished over 400 algorithms, and his contest ranking is around 2000.

He started to practice Leetcode from 2017 Oct., before that he worked on BOJ and worked on more than one hundred algorithms.

My Leetcode ranking is 37762. Contest ranking is 14347. I checked in Sept. 22, 2018, 11:11 AM.

I like to find ways to complete another 200 Leetcode algorithms in next 6 months.

I like to work on two targets, the first one is to complete another 200 Leetcode algorithm practice. The second one is to advance ranking of contest to first 2000 as well. The young graduate is my role model.

My fourth interview on

Sept. 22, 2018


It was my 9:00 PM mock interview, and it was my fourth interview as an interviewee. I had chance to work with the interviewer, and I answered the first three algorithms and explained the ideas in the first 12 minutes, and then moved on the fourth algorithm which is the hard level Leetcode 212 Trie. I explained the idea how to solve the algorithm, and wrote the code until we reached 45 minutes mark. We chat about 15 minutes about practicing and learning.

I had 10:00 PM mock interview as an interviewer, and I did not explain to the interviewer of 9:00 PM until 10:01 PM. I rushed to say goodbye and then started my 10:02 mock interview.

My performance

Group anagrams

Minimum meeting rooms

Find words in the dictionary

My feedback as an interviewee

Would you want to work with this person? *


How excited would you be to work with them? 

Where do I sign?!!?

How good were the questions? 

Really useful/awesome!

How helpful was your interviewer in guiding you to the solution(s)? 


Help your interviewer get better! 

Interviewer's feedback

Do you want to advance this person to the next round (e.g. onsite)? *


How were their technical skills? 

Could use improvement

How was their problem solving ability? 

Could use improvement

What about their communication ability? 


Help your interviewee get better! 

Thursday, September 20, 2018

Number of segements in a string

String easy level algorithms (shared 9) 
14. Longest Common Prefix
38. Count and Say
345. Reverse Vowels of a String
434. Number of Segments in a String
443. String Compression use count variable to avoid backward lookup
443. String Compression My idea -look ahead and backward
443. String Compression Elegant solution to learn
459. Repeated Substring Pattern
680. Valid Palindrome II Optimal solution
680. Valid Palindrome II 418/460 test cases passed Time limit exceeded
686. Repeated String Match memory limit exceeded for last test case 
686. Repeated String Match memory limit exceeded for last test case
859. Buddy Strings