How Does A Compiler Engineer Compare To A Regular Software Engineer? Technically, Day To Day Job, Skill Set Etc.

Asked one year ago
Answer 1
Viewed 80
0
I am a compiler engineer. That means I have a specialty. I know a few things most other software engineers don?t. And, I probably know some obscure corners of the language, you can?t even imagine. I can even imagine corner cases for languages I don?t know, because I know the underlying technology and what the implementers are likely to have done. However, that comes at a trade-off. There are things I know less about than your average engineer. I don?t know a lot about writing a UI, especially not a graphical one. I may not know as much about the web or networking or databases or most relevantly about business logic. Those are all things I haven?t done a lot of. That turned out to be an issue at Google. It wasn?t that they wanted me to program first in Python, then in Java, two languages I hadn?t used before working there. Many competent engineers can pick up a language in the time it takes to understand the application, especially if there are existing samples of related applications to look at. This is why, people tell you the programming language doesn?t matter, don?t fixate on it. No, it was they asked me to design an algorithm for load sharing after I had worked at Intel where we had telecom customers with real-time load sharing requirements. And at Intel, we wanted to prove you could solve them with COTS (commodity off-the-shelf) computers, i.e. whatever chip Intel was pushing for their market segment. That required some very clever algorithms. So, I sat down to design one of those systems. That wasn?t at all what the sister team wanted built. They just wanted a simple database to use as a queue for waiting jobs and that hooked into their accounting system. However, they didn?t realize (nor did I at first) that I was seriously over-designing the solution. I think they saw all the things I was concerned about making the system do as ?bells and whistles? and just assumed under all that was their simple database. So, they didn?t let me build what I had designed, and it took 9 months to get past that communication gap. By that time, the project was late. So, if you want a compiler engineer, you probably truly want one. You can even tell your boss to look me up and if I?m not available I may know one who is. But, if you don?t want a compiler engineer, I am probably not the person you should hire. You want someone who knows the area you are working in. That?s why so many job announcements list so many requirements. A person who does the right kind of work, will often meet most of those requirements because that?s what they did at their last job and the one before that and so on. And while I can design a simple database system, you need to be certain that I know that?s what you need. Don?t assume that I understand your database requirements just because I have built parsers for SQL. What I know about SQL has little to do with designing tables in normalized form.
Answered one year ago Mercado Wolski