My BSc and MSc Degrees not strictly focused on CS or robotics. In fact I'm mainly in the robotics/embedded area and I happened to do a ton of C and some C++. Started appreciating Python a lot (coming from a MATLAB/Simulink background). I love designing algorithms that make robots move, and writing software interfaces to bring everything together, yet I feel at a great disadvantage when aiming for FANG-like jobs where the selection process seems very CSey. Do I really need to be a C++ expert to get a robotic software job? People that work at Google X, Waymo, Tesla.. is there a big split between who does algorithm work and who does implementation? I never thought that specialising in one or the other (i.e. being pure CS Vs being pure roboticist) would bring any advantage (nor it's interesting to me) yet, sometimes I get the feeling the I can be perceived as if my skills are spread out thin. It's probably just Thursday paranoia, but I would like to fill gaps rather than further spreading thin, so I can resume my job search. YOE 5years (spread between commercial software, embedded, and robotics) TC 55k🥜 (UK)
I'm in a same boat MS+5YOE - have worked across HW and SW in computer vision. I think SW skills in any language are definitely the most important skill that top tier employers look for. Beyond that you should look at strategically moving to roles that interest you while building core competency. Eg - moving to drone industry and improving on embedded c skills with a navigation usecase.
Health & Wellness
2d
41807
High performers, how often do you have slack off days?
Working Parents
Yesterday
729
What do you think is wrong with a kid who got rejected by 9 colleges?
Tech Industry
Yesterday
1926
The end of Backdoor Roth?!
Tech Industry
Yesterday
2417
Quitting this Slave life
India
Yesterday
813
Modi is a legend, will be remembered for centuries to come
The first rule of Blind: TC or 🖐️ What are you best at or feel most confident doing?
I'm confident in modeling and simulating a physical system behaviour and design a control algorithm for it. Then, I can use C/C++ or Python to implement the algorithm, and get the overall system talk to external hardware to validate the system behaviour. The system can be a robotic system, or a simulated behaviour. I'm happy in designing/writing embedded code but it's frustrating when a lot of time goes in reinventing the wheel (e.g. writing and testing a bare metal UART/SPI/I2C interface) instead of drag and drop a block (Simulink style) and focus on the higher level application behavour... I want to write simple, readable, maybe even slow code (hence Python) that focuses on getting the "thing" do its thing. And if really really really need that hard real-time performance, use automated C codegeneration. Do I need to change the algorithm? Back to high level, then generate code again. I've seen months wasted by my colleagues to redesign/reimplement embedded code just to avoid nasty race conditions when dealing with flash memory and custom data record controllers... Sometimes it's inevitable, it happens, but it feels like there is a little value for me and the company in focusing on low level implementation details when a C or C++ guru could solve the same problem in 2 hours for me. On the other hand, a roboticist will do a much better job at designing and simulating and making the algorithm, but then be shite at implementing the thing in a sensible way in the real world hardware/software. Maybe Intel has a point, that I should refine my SW skills as much as possible while still gain expertise in a certain domain...
Damn. Genuinely interesting. Mentor me, I'll give you half my TC when I'm quant.