While on a literal years-long journey to understanding REST, I happened upon RDF and the semantic web. What a load of crock.

I was absolutely ecstatic when I learned about the semantic web and the idea of having a world-wide machine-readable standard for data, only to realize it had to be tacked onto the current stack of web technology. When was the last time you saw any popular website expose a schema.org web page, or a Hydra endpoint?

The web is an endless morass of ad-hoc RPC endpoints, with nothing governing how you can interact with it, unless they happen to adhere to some bullshit Gooogle standard to enhance SEO.

    • buh [she/her]
      ·
      4 years ago

      It sounds like you already have a pretty good background. As far as skills go, it varies among companies and even among different jobs in the same company, but broadly I would say they're looking for people who are good with C, can write optimal and robust code, and know how to write code to operate the most common peripherals on a microcontroller (UART, I2C, SPI, DMA, ADC, timers, GPIO), as well as being able to diagnose and fix issues with interrupts, race conditions, and memory. Some companies also look for people with knowledge of protocols like USB, CAN, ethernet, wifi, the TCP/IP stack, the bluetooth stack, or things like sensors and motor control, but I wouldn't worry about trying to learn anything specific, just focus on making projects that employ a decent variety of technologies. I would say a good litmus test for being "employable" would be if you can be given a microcontroller, the datasheet for it, and a minimal template project (a Makefile, main.c with nothing in main(), and a header file that #defines the registers and important bit masks and sets up the interrupt table) and build it up into a moderately complex project with little external help.

      As far as places to work, I wouldn't try to think of it in terms of best cities or regions since embedded software isn't an end in itself but a means to an end, which doesn't lend itself to clustering in certain areas the way jobs like web development or finance has. Just think of what kinds of projects you want to work on, find some companies you are willing to work for who build that, and apply to them. There's probably something in your area right now if you look. If you really insist on pinning down the best areas for job quantity and pay, I'd say go for the Bay Area, Austin, and Seattle. There's also a few areas with niches, like Pittsburgh for robotics, or DC for the "defense" industry.