Hi, I'm Dmitri. I've been developing embedded and mobile systems for the last 15 years for large corps and startups. I hold a degree in Computer Engineering. My past experience includes VM internals, porting firmware across wearable and embedded systems, Android UI, image and video streaming and processing, security, AOSP development. I can build a system or an app from scratch, or refactor/robustify an existing system.
In Search of Stupidity: Over Twenty Years of High Tech Marketing Disasters by Merrill R. Chapman. I came across this book upon one of the discussions here on HN and it provided me with historical insights about driving forces in our industry, which seem to be timeless.
Having worked more than 15 years in the industry and having completed several OB courses during my MBA, I cannot point to a better resource than this book that helps understand what actually drives organizations and how they function.
I've been working remotely as a contractor (low-level mobile and platform embedded development) for over two years now. I find that engaging in sports activities regularly in a group setting helps with mental well-being. Diversifying work locations also helps. My preferred places are the public library, and a local coffee shop.
I have been working a Software Developer / Independent Contractor in Toronto for the last five years doing mobile-related projects. I had gigs with a bank, a telecom company, a VC-funded startup and a couple of development studios. Here are a few insights.
* You earn more than full-timers, the performance expectations from you are also higher. If working with other devs in your area, you are expected to be stronger and more efficient than full-timers to justify your salary and status of a contractor. If working on the project alone, you are obviously expected to be the technical authority and go-to person regarding any issues related to the technology stack you are working with.
* Once you are on a project, you have less freedom of choice than the full timers what kind of work to do. Usually, you will get what the full timers don't want to or don't have the expertise to do. For example, at a bank, the full timers usually implement new features, while the contractors clean up the bugs. Also, banks and big telecoms have separate dedicated budgets for contractors.
* So far, I have been lazy looking for gigs, finding them mostly through recruiters. My biggest gig and the one I mostly enjoy has been lasting intermittently for almost three years. I got that far with the client by delivering over and over again results above and beyond the client's expectations.
* The mindset of a contractor is different than the mindset of an employee. You will no longer care about meetings, "promotions", titles, asking/getting vacation days, Monday Syndrome/TGIF, performance reviews etc. In fact, your "performance review" will be whether or not your contract gets extended. You will care about getting your own (best) hardware equipment and software/dev tools licenses, assuming responsibility over professional development and delivering the best results you can. Also, as a new adopted mindset, you need not care what kind of work you get given by your client, your goal is to deliver excellent results for any kinds of projects.
* Starting rate on a gig is usually determined by the market with ~10% negotiation room. For example, the recruiter will call you and have a second or third question "so what is your hourly rate?". If you name a figure 10% higher than what they have in mind, they will usually say that is above their range. From what I know, the reason for that is companies have fixed budget for contractors and when starting the search, during the conference call with recruiters, they set their rate expectations.
* So far, contracting proved to be so much more fun and intellectually and financially rewarding than full-time employment. Once you start, there is no going back :))
Continue doing your best at your work at your current job as you will need your employer for future references. At the same time, do your research as to what you want to do as well as what is on the market out there. Once you have identified your target companies/roles, start the recruiting process. The period from between when you start exploring other options and until you land an offer you like and want to accept is going to be stressful and the challenge is to manage your emotions and behavior in your interests. Politics exist largely because people who own the company and those who run the company are not the same. Owners want profits and efficiency and managers want titles and bonuses.
Remote: Yes
Willing to relocate: Maybe
Technologies: Android, AOSP, Embedded Linux, firmware, C, C++, Java, Kotlin, Bash, Python, Cryptography, BLE, Networking, OpenGL, IoT
Résumé/CV: https://www.linkedin.com/in/techpathfinder
Email: embedded.aosp [at] gmail.com
Hi, I'm Dmitri. I've been developing embedded and mobile systems for the last 15 years for large corps and startups. I hold a degree in Computer Engineering. My past experience includes VM internals, porting firmware across wearable and embedded systems, Android UI, image and video streaming and processing, security, AOSP development. I can build a system or an app from scratch, or refactor/robustify an existing system.