In six years, the architect has worked at two of the four major portals, completing the engineer to architect transformation. I have been responsible for the development and growth of several zero-to-one products, and I have also been involved in the architecture design and optimization of hundreds of millions of traffic and users on the largest social platform in China. With clear thinking and serious and responsible attitude, SHE is an excellent Problem Solver in the eyes of colleagues.

** Years of work: 8 years

Service companies: 4 (including 2 of the 4 portals)

Most recent occupation: Java architect

Keywords: social platform, high concurrency system architecture design, technical team management, many products from zero to one city!

From ordinary Java programmer to Ali senior architect, he spent six years! **

Q: Tell me about yourself

A: After I graduated with a master’s degree in 2008, I worked in a traditional IT company for the first two years and in an Internet company for the last six years, successively serving as Java development engineer, senior engineer and architect. In terms of work content, I have experienced the birth and development process of several products from zero to one, and also worked on the structural transformation and optimization of social/community products with the largest users, content and traffic in China. I have rich experience in the research and development of social products, and currently work as a technical partner in a start-up company.

Q: What are your technical areas of expertise?

A: I’m good at Java, Golang, and Scala, in descending order. Focus on high performance, high concurrency system architecture design and implementation.

Q: How do you explain your job to your family?

Answer: generally do not explain in detail, even if explain is futile. So they would describe my job according to their own understanding, like repairing computers, like selling mobile phones.

Q: Do you think you can be a programmer forever? Ever imagine what you were doing when you were 40?

A: I think I will work in development. There are many older programmers in foreign companies.

Q: What do you think are the three most important qualities of a good product manager when working together?

A: Logical thinking ability; Sensitive to data; Good verbal and written communication skills; Of course, it would be nice if you could write some code…

Q: Who is your favorite software engineer?

A: Linus Torvalds and Doug Lea

Q: What qualities do you think make a full stack engineer?

A: I think to become a full-stack engineer, first of all, I need to have good learning ability. I can discard prejudice on new technology and quickly understand the problems it solves and how to solve them. Second, be curious about technology. Finally, I have a strong hands-on ability. I do not delay and do as I say.

Q: What do you think is the most valuable quality of a good CTO?

A:

1. Broad technical vision, allowing advanced technology to solve practical problems;

2. Be familiar with the business field, and determine the system architecture and system capacity according to the actual situation of the field;

3. Team management ability, building team talent echelon and building a technology-based team.

Q: Do you think the world’s best programming language exists? If so, in what language?

Answer: there is no best, only the most suitable. Any language is to solve a certain aspect of the problem and appear, so it is not good or bad.

Q: Who are the designers you like or discuss most at work?

A: Designers who have product thinking and can work with product managers to confirm interaction details and even product direction.

Q: If a JAVA software engineer had 3 pieces of advice, what would you write?

A:

1. Focus on basics (algorithms, operating systems, networks, etc.)

2. Broaden your technical horizons. Go to tech salons and see how other people blow their shit. Focus on open source projects that interest you

3. Protect your cervical and lumbar vertebrae (⊙o⊙)…

Q: After eight years as a software engineer, where do you see yourself now? What are your expectations for your next job?

A:

1. Currently, I position myself as an architect or a team Leader;

2. For your next job, either work as a screw in a large company with strong technical atmosphere and high concurrency platform; Or lead a promising startup.

3. The company stage should be in round B or later;

4. Everything in the industry is OK except games.

Q: What do you think Java architects know?

A: Beginner Java programmers focus on writing code and working with frameworks -> Intermediate Java programmers focus on writing code and frameworks -> Advanced Java programmers focus on technology, performance tuning -> architects solve business and technical problems

The most important points for mid-level backend programmers to raise their salary are:

Project experience: Payment, notification, IM, SMS and other public module fast implementation.

Code quality: abstract encapsulation, logging specification, release process, quick location.

Performance optimization: server memory, hard disk, data growth, bandwidth, the most performance consuming places in the system, which services need to be called for a request, how long it takes to access DB each time.

Architecture capabilities: distributed, load balancing, read/write separation.

Selection ability: JMS, SOA/SCA/services, directing/Redis/Memcache, Java/Go/NodeJS, etc.

Management ability: team technology sharing organization, project risk control, task and work allocation

Requirement review ability: give feedback and suggestions quickly, how long it will take to complete, technical risks, and whether there is a requirement that takes a long time but is not important.

Geek ability: An in-depth study of a particular technical point, such as Nginx configuration, design, architecture. ElasticSearch design, advantages.