I've been practising professional software engineering through several product cycles at multiple companies. I've worked on simulations, 3D graphics, computer vision, robotics, and data analysis. I've worked on two compiler back-ends and written firmware in C, C++, and at least 5 different assembly languages. Please note the definition of firmware is changing to encompass the operating system (Linux has been firmware for years, now we are seeing iOS, Windows RT, …)
I design and like to work on robust systems. "Apps" are generally not robust because they don't need to be. If you are writing an "app," you don't need a software engineer. For example, while in graduate school, I looked at the code for the Solaris and HP-UX kernels. HP-UX was clean and easy to read, but Solaris (spaghetti code in many places) is better technology. The Linux kernel has caught up to Solaris (note I said the kernel) because Linus Torvalds emphasizes quality AND function.
People ask me what I do and I can't really tell them. Search Google for "EDN Efficient coding for ARM platforms" to find out what I do. That article states it better than I do.
I did some of the ground-breaking work in the analysis of program phase behavior and its application to computer architecture.
I enjoy the challenge of working in a cross-team setting. My broad background enhances my ability to contribute in that setting.
I have an excellent experimental background and the ability to avoid faulty experiments and invalid conclusions. I have worked with several simulation technologies used to explore new architectural designs.
I have worked with some of the best software/hardware/systems research people in the world, and I consider them my peers.
I enjoy augmenting the abilities of those around me and vice-versa.
-Todd
Bonus: I have the ability to learn not only from marketing material, but from the technical research literature, so you get the best, not the most highly recommended.
|