I applied through an external recruiter because I was interested in the area. The original job posting highlighted requirements such as 'good knowledge of Linux, preferably embedded, standard networking protocols based on TCP/UDP, and some orientation in security.' I informed the recruiter of my current salary and expectations. (I asked for less pay due to a lack of experience in the embedded area, but as a Linux application developer, I believed I would fit in very well and was highly motivated to learn something new.)
During the interview, I completed a standard C language test (see below). Afterward, a senior person entered, looked at my personal profile on paper with a peculiar expression, and immediately stated: 'With your current salary and your expected salary, you should remain in your current area and job!' My expectation was 55,000 CZK.
I glimpsed the summarized personal profile he held, and it bore no resemblance to my well-formatted resume. It appeared the internal HR team had copy-pasted my original resume into a very unstructured document.
The remainder of the brief interview confirmed I would not be hired. While the interaction was quite rude and unprofessional, it was at least time-saving for both parties. One would expect Siemens and its external headhunters to have better communication and clear expectations regarding the salary range they were willing to offer.
I am very grateful for this experience and thankful that I was not hired!
I later discovered that the same job advertisement had been circulating on many job portals for an extended period, with an offered salary of 30,000 to 40,000 CZK, which is significantly below the average for Prague's IT industry.
A. Test Embedded C
Is C a case-sensitive language? Yes/No
Complete the function below for swapping two values given by pointers.
c void SwapValues(unsigned int *pVal1, unsigned int *pVal2) { assert(pVal1 != NULL); assert(pVal2 != NULL); }
c int a[10] = {1,2,3,4,5,6,7,8,9,10}; int *b = *(&a[3] + 2);
Write a macro that will return the minimum of two given numbers.
You have a value in "a" stored as big-endian; write code to change its value to little-endian.
Is the following function an interrupt service routine?
c unsigned int isr_timer0(int value) { printf("Output: %d\n", value); return value + 10; }
c unsigned int * fillNumber(unsigned int *pBuffer, unsigned int n) { unsigned int i;
for(i = 0; i < n; n++) {
pBuffer[i] = i + 1;
}
return &i;
}
B. Interview
The following metrics were computed from 1 interview experience for the Siemens Linux Embedded Security Developer for Railway Automation role in Prague, Czech Republic.
Siemens's interview process for their Linux Embedded Security Developer for Railway Automation roles in Prague, Czech Republic is extremely selective, failing the vast majority of engineers.
Candidates reported having very negative feelings for Siemens's Linux Embedded Security Developer for Railway Automation interview process in Prague, Czech Republic.