It's true that employment has collapsed.
This interview was on August 28th. It's been a month since my last interview and 2 months since I started looking for a job. Not having much experience in job hunting, I have also realized what it means toEmployment has collapsed.。
After reading the interview program of the first-line coder, I also listed Suzhou as one of the places to look for a job. I Chengdu feels like the company is flipping out
- Either the salary is high, 15,000, but requires a development, testing, operations and maintenance team, what
.netcore
,devops
,CICD
,unit test
respond in singingintegration test
,scrum
Agile development.k8s
,Front-end and back-end separation
,RabbitMQ
,Redis
,microservice
The whole thing is on. I've studied CICD, unit testing, but I've never worked on a project, and Agile development is common in foreign companies, so where else can I get access to it? I can't go up, I really can't go up. - Either that or it's a relatively high salary, around 12,000, for the industrial development piece, but with experience, which I could never get my foot in the door.
- Either the salary is low 8000 or even 9000 to start, I think this is a freshman? There is no difference between my salary and mine, so why should I jump over there?
I find that I'm currently kinda awkward at this current stage of my skills. The skill and experience is so deep and shallow that I can't go up or down.
The company for this interview isSuzhou Stryker Precision EquipmentThe company's base should be located in Sunwu Road on the edge of Taihu Lake. HR introduced the company as a Chinese founded by Tsinghua graduates, and I wondered if it would be a high CR person, right? The main business is the manufacturing of can cap production equipment. In recent years, it started to design battery caps for new energy vehicles. It is said that the technology migration application.
Before the interview, HR asked about the salary for the first time, and I answered 140,000 dollars a year. The first test is Tencent video online meeting interview, agreed at 6:30 pm. One should be a business manager, a technical engineer, age are on the older side of the bar, may have more than 40.
Questions from technical engineers
-
First, I'll introduce myself.
My name is XX, I am 27 years old, graduated from Southwest Petroleum University in 20 years. After graduation, I have been in the current XX company. My major is software engineering. Basically, I have been doing software development here. In the early stage, I was doing operation and maintenance, and after about a year, I switched to development. Early is to do winform operation and maintenance, of course, also participated in a little bit of the back of the development, but participation is relatively small. Then I turned to development. So far, I've developed about 3 projects. That's about it. -
You've recently developed a project that uses the vue framework and nuxt for the front end, and webapi for the back end. let me ask you a few questions about vue. do you know how to communicate between vue components? Just briefly describe the general process, the process of communication between parent and child
The vue parent component passes information to the child component through kind of a html-like tag, of course he doesn't call it html, and then by setting the properties of that tag, it gives the data data to the child component. Then u child component internally accepts it through that defineProperty (defineProps). As for the sub-component to call the methods of the parent component, this learning is not very in-depth, the whole framework is built by the front-end. -
Well, that nuxt, he'll generate the directory for you and then you add the images in the project's directory. And the page first as with you guys just press on the front end to call some back end interface? Then the front-end interaction and so on, page action you write your own? For example, the drop-down box ah and so on
In the case of a dropdown box, we are using theelementui,elementplus
, so that custom component piece is not well understood. -
Is that the equivalent of a front-end artworker getting that page done for you guys and you're directly responsible for the API?
Artworker, he only gives us the design drawings, we transform the design drawings into pages by ourselves, and then actually the back-end is also written by ourselves. (The so-called front-end and back-end separation, people do not not separate) -
Okay, so what is the main way the webapi communicates with the front-end vue?
How many kinds of communication does http consist of? Do you mean http method methods? The most commonly used is get, and then when it comes to forms, we use post. of course, there is also put, delete, but we don't use these, the most commonly used are still get and post. -
How are these methods bottom-of-bed parameters?
get is to write parameters directly in the url, post is to store parameters in the request body after the header. -
You use efcore for the first two projects and sqlsugar for the last one, how do you prevent injection in the sqlsugar project?
When does injection occur? First of all, the backend is directly using sql query, and secondly, if sql is used and no parameterized query is used, there will be sql injection. But we usually write linq directly, and only write sql if the query is more complex and can't be written, or if it's a pain in the ass to get down. -
That multi-tenancy, that's sqlsugar multi-tenancy have you guys used it?
I have not used multi-tenancy, what does multi-tenancy refer to? -
It's the database, do you have the same database server? Multi-tenancy is when the database has several servers, and the same sqlaugar client accesses different servers
Oh, got it. We just have one database server, and all the corresponding applications go to that server, so that's not the case. I'm guessing there are a lot of servers to run into this need. -
sqlsugar has some of its own methods, such as transactions, what does a transaction look like inside? What is the situation of what is included in it?
I don't know much about locks. I've only heard of pessimistic locks, optimistic locks, I wonder if that's what I'm referring to? Transactions, I think, sqlsugar doesn't want to efcore, there is a saveChanges method that saves all changes to the database in a transaction. But sqlsugar, I don't see that method. But sqlsugar still needs to create a transaction manually if it involves multiple table modifications, but we don't use it yet. -
So tell me about one-way binding and two-way binding.
For one-way binding, the most used is theref
object, and thereact
object, but is used less often. Then referencing this object, the variable, in the tag enables one-way binding. As for two-way binding, he is actually a callback, the callback function is called after changing the data on the interface, but vue provides av-model
The directive encapsulates this and can be used directly to implement two-way binding. -
A word about the using keyword
The first serves to introduce the namespace, the second serves to alias the namespace. Then there are the unmanaged resources.
For example, let's say we write a function inside C++ which uses new to request unmanaged memory. In C# it would be possible to usedllimport
Importing functions in C++ also allows you to encapsulate these functions using a C# class. The class then inheritsIDispose
interface, releasing the unmanaged resource inside the dispose method. Of course, this dispose method is a function exposed in C++. Then we don't have to worry about memory leaks when we create the object in the using block, and we don't have to call the release function manually, but we can release the unmanaged resources automatically, which is more convenient. -
You guys were working on that project where you used that big data statistic.
Big Data, I'm not sure what this concept refers to? -
It's the kind of data table that generates maybe a couple million pieces of data a day.
No, the most I've come across is a real-time data table, but it's just over 50 million pieces of data in total, but it's not as dramatic as saying it generates millions of pieces of data per day. -
So how do you make him more efficient if you are trying to look at a lot of data?
Well, first of all it's a paging query. And then there's depending on the table, if there are a lot more fields than necessary that are not queried out. Especially with vue, I should say elementui, when there is a lot of data, he is more stuck. It is necessary to use paging, about 800-900 entries should be divided once. -
Can you say something about front-end virtualization?
I'm not so sure about this concept? -
It's a one-time query that also, it's all on the page, um, in memory, and then when it's rendered, it doesn't render all the data out of memory. That way, it's more fluid, and it doesn't need to be paged, like a scrolling load
I haven't used this kind, but I think it's similar to the paging one. Because we sometimes query the data, but also all the query, and then click on the next page, from the memory to filter out the corresponding position of the data. Instead of going to the database query side of the paging. -
Have you done device communications before?
I haven't communicated directly with the hardware because we do have a hardware group over here. They specialize in going to the hardware and collecting data and then there are two directions. One is to store it in sqlite on site, and one is to send it back to the server in the center via MQ. -
OK, so you've used message queues before, right?
I haven't used specialized message queues, just redis emulated message queues using lpush and rpop,as notifications are also provided. But haven't used RabbitMQ. -
What if there's a request that takes a long time kind of thing?
If it's the kind of data that doesn't need to be shown back immediately, you can use a handful of method interfaces and then pull a queued hosting service and leave the requested operation to the hosting service to process slowly. Then the request is returned directly. This is the first kind. The second kind, like the ones that need to show data back, sorry, I kind of forgot the question? -
If there's a request that's taking a long time kind of thing, how do you deal with that? It's a bad experience, how do you optimize that request, just for a single request, think about why the request is taking longer
In the first stage, than if the concurrency is relatively large, the request may be stuck in the queuing stage, this is best to make asynchronous method interface. Theoretically it is useful, but we have not encountered this kind, may be the business volume is relatively small.
Single request time is longer, in fact, the most is stuck in the database query above, then may need to pay attention to the sql has gone to the index above. This situation we used to pop up more, and then is a unified treatment. -
Ever written a stored procedure? You know, the complicated kind of sql.
It's not written, we use materialized views. There are other programs running on the server to update this view.
Questions from Business Manager
-
Question for you about the business side of things. Do you work manually or do you collect directly up through the well setups
Our equipment mainly picks up real-time data, that's one aspect of it, and then there's also, for example, some of the operational data that's on the fracking truck, which has sensors on it itself. And then they have technicians that look at that data. The acquisition software is filled out manually by the technician. Only the real-time data is collected automatically. -
That support center project, you're mostly doing operations and maintenance work here, right?
Yes. I don't even know how long this project has been going on, because I came in a long time after it was developed. When I came in I was mainly responsible for the operations and maintenance of the functionality of this part of our business. -
There's real-time data, video surveillance in there, ah. Is that video monitoring real time or is it recorded? And that monitoring, is that engineering work directly monitoring the underground work in real time, or is it just for dispatching?
It's real-time video. The monitoring is mainly based on real-time data. There are also some early warnings in combination with the information that the technicians fill in before starting the work. If they are sent to work, they will start working only after the center sends them to work.This pattern of assignments, in effect, means that the person who gets paid to do the work has been divided into two companies from the original one.
-
Have you ever been to this site? Have you been involved in the work at the site?
No. I haven't been to the site, just doing development. A couple of people in the onsite group have been there, partly to install equipment and partly to debug software and all that. -
What about the field operations system, this type of system, where the underground operations are just on the surface, or are they involved in the well as well?
Well, there is one part of the underground that is involved, the pumping piece. It will look at the addition of water and sand to where it goes and show it on the interface, more similar to what you said about the well. -
For mobile, were you involved in the development?
I mainly provide the interface to the cell phone, and the job is not the main function of the cell phone. It is mainly used for on-site management, such as pre- and post-shift meetings, check-in and inspection. When it comes to real work, they use computers. -
Has that real-time data been considered to get displayed on mobile?
Available. There is also a real-time data display function on the cell phone. But that's for the center's leaders, and it's easier for them to look at it on their phones while they're working. There is no such function on the cell phone in the field.
Then it's time for the technical engineers to ask questions.
-
Do you use web or Android or WeChat apps for your mobile development?
For web, there's a specialized kind of shell, well, what's it called (electron), which encapsulates a browser core, I think. But we're using native Android development on our side, which is done by the mobile team. -
Which ones are used more often for databases?
The most used in the center's business is Oracle, the field is mysql, their database table structure is the same. After filling out the data, through the trigger, recorded in a table. There is a program to read the table trigger records, and then find the corresponding data, put into the MQ, back to the center of the database above. For real-time data, we use sqlite, which has a lot of data, one file per month, a few hundred megabytes each, probably a few gigabytes, so I'm not sure if it's appropriate to put this data in mysql. -
MQ this process of sending data back to the center, the
I'm not too sure about this aspect, there's a local uploader, but it's not made by me. But I do know that there are problems in this area, MQ used to lose data when passing it back two years ago, mainly due to message backlogs. -
Do you accept business trips?
Accepted. -
Is your family in Chengdu?
I plus not in Chengdu, my family in Bazhong, also Sichuan, a relatively small city. -
You came out so far, did your family accept it?
I think they probably won't interfere too much. -
Have you ever traveled? For example, over in *, over in Urumqi
I've been out, also on the * side, it's a city next to it, Korla, which is still quite close. About four or five months. -
Most of our work is done by people on the Suzhou side, and there are some specific projects that we have to follow on site. So I was thinking, we have a project that's quite suitable for you
I know that C# engages industry to go to the field to avoid it.In that case, I'm guessing they're also trying to get live apps with separate front and back ends. Then use Electron to mess with the front end using SPA. It just so happens that I've developed both front and back ends here. But how to say, I hope the most is to practice WPF, after all, it is the .Net programmer ah. If MAUI+Blazor familiar with the blessed, desktop, web, cell phone also do it together. Unfortunately, I've only used a little MAUI8 natively on the mobile side.
And it's hard not to suspect that the minute I'm asked to run on-site to work on that project, it's just so I can rush the project, and I'll be fired as soon as I get back from the site. And it's not connected to their current business as their company HR says. Is it building a factory in *? -
Are you still with the question?
Am I considered a pass for tonight's interview? -
Because it's a video interview now, there are some written tests that we've prepared and some interview questions. But that's all we can do for the video interview. After that, HR will notify you
Okay.
Evaluate it.
-
I did not pay too much attention to vue, in March and April, every day at noon lunch break it vue official documents and read the end, but also looked at the vue-router. then the project switched to vue. But the work of building the application is actually provided by nuxt. I focused on wpf and this side, the interview questions were out of my expectation. The only difference is that I haven't used WPF at work, but I have used vue at work, and the latter is obviously more experienced in how to build an app from scratch. But the responsive performance of vue/elementplus, or the browser for that matter, sucks, a table with 1000 pieces of data gets stuck.
-
Is this a normal salary in Suzhou? I've never seen the market. I don't know the labor market here.
-
Interviews are always, either not available for a long time, making me very anxious, or they pile up and challenge my schedule. I don't know why, is it like that for you guys too?
-
None of the things the tech officer asked were of the in-depth variety - eight-question questioning, and it felt very different from the previous two interviews. If someone says they're here for solutions, I'm going to believe them. I'm not sure if this interview is reliable?
-
Is employment in Chengdu really so difficult now?
-
Is this really an awkward stage for programmers at my stage where I can't go up and I can't go down?
-
I'm also picking up English, thinking that after two years of foreign language conversation, can I enter a foreign company. But this year there has come a wave of foreign companies to withdraw, afraid to become 49 years into the national army