Skip to main content

The Effective Engineer

I began reading The Effective Engineer by Edmond Lau. I really wish I had discovered (or looked for) the book 10 years ago! Back when I was starting out in my career, I spent a lot of time wandering. What I mean is that if I didn't know something, I wouldn't ask someone for help; I'd google and google until I found something. My rate of learning was pretty slow in the beginning and a lot of time passed before I had a good grasp of basic web technologies.

During my job search, I've heard feedback from hiring managers, and from time to time (much more than I wished to hear, but it's good that I heard it) I would get this: "You're not senior enough." It was rather frustrating for me to hear this because in all the positions I've held in the last few years, I was considered one of the "senior" members of the team. Naturally, I felt unsettled, at first. Then this unsettled feeling gave way to curiosity; of course, there was something I could do about this, but what?

I was driving to an interview (a good hour's worth of a drive away) and received a phone call that I didn't make the cut for an interview I did a week prior. It was definitely not great timing, but the good part was that the hiring manager was willing to chat with me about what being "senior" meant. Although I had touched a number of different technologies, I lacked the depth and efficiency that a senior engineer would have. I hadn't talked about things that senior engineers did; I hadn't done things that senior engineers can do without much thought.

This was something of a wakeup call, a turning point, whatever you might want to call it. I was always learning on the job, but sometimes, learning on the job just isn't enough. If I were young, I could devote a lot of time and energy to things I was interested in. I'm not exactly old, but I'm definitely at a point in my life where brute force is not fast enough.

Back to the topic of The Effective Engineer -- effective engineers don't waste time or effort. They think and plan ahead. They're always learning, always coding, always keeping themselves sharp. They stay sharp not only technologically, but also with their "meta skills". They write tools, tests, and whatever else to make their job easier and more automated. In essence, they maximize their "flow" state so they produce high quality work. Not only that, but they also work on the right things and set the right priorities.

That's the kind of engineer I have always wanted to be. It's not just about being a senior engineer, though that's really fine and dandy in my book. I'm looking forward to the next part of the book!

Comments

Popular posts from this blog

Compiling pgmodeler on Yosemite (with Homebrew)

Refer to  pgmodeler installation . Steps: Clone the pgmodeler git repo. Use Homebrew to install qt5 (5.4.2, see here ), libxml2, and postgresql. Edit the pgmodeler.pri (not .pro) file and change these variables: PGSQL_LIB = /usr/local/opt/postgresql/lib/libpq.dylib PGSQL_INC = /usr/local/opt/postgresql/include XML_INC = /usr/local/opt/libxml2/include/libxml2 XML_LIB = /usr/local/opt/libxml2/lib/libxml2.dylib Follow instructions to compile pgmodeler (you might need to put Qt's binaries in your PATH. I was lazy and didn't). $ /usr/local/opt/qt5/bin/qmake pgmodeler.pro $ make $ make install $ cd /Applications $ /usr/local/opt/qt5/bin/macdeployqt pgmodeler.app -executable=pgmodeler.app/Contents/MacOS/pgmodeler-ch -executable=pgmodeler.app/Contents/MacOS/pgmodeler-cli Then I was able to do $ open pgmodeler.app

pgmodeler build in Debian Jessie

This is my qmake version: $ qmake -v QMake version 3.0 Using Qt version 5.3.2 in /usr/lib/x86_64-linux-gnu I had to edit linuxdeploy.sh: 1. Add "-makefile" to the QMAKE_ARGS variable: $ qmake -h Usage: /usr/lib/x86_64-linux-gnu/qt5/bin/qmake [mode] [options] [files] where mode is either "-makefile" (default) or "-project" QMAKE_ARGS="-makefile -r -spec linux-clang" 2. Right before "Running qmake...", I added another line to include pgmodeler.pro in the qmake invocation: QMAKE_ARGS="$QMAKE_ARGS pgmodeler.pro" Then I ran ./linuxdeploy.sh -no-qt-libs (https://github.com/pgmodeler/pgmodeler/issues/674)

Building and installing CAN bus bundle on Kura/Eurotech Software Framework

The documentation is incomplete as of 11/25/2015:  http://esf.eurotech.com/docs/how-to-use-can-bus . It shows you how to setup the can0/can1 interfaces. I think I finally figured out the real steps to getting the CAN bus service working in Kura. I found this website somewhat useful:  https://tobiddev.wordpress.com/2015/03/23/one-bundle-project-modbus-and-eclipse-kura/ . It didn't tell me how to build a bundle, but I took a chance with the following and now I'm able to see my module loading the CanConnectionService in the Kura logs. First, build Kura from source following this guide:  https://wiki.eclipse.org/Kura/Getting_Started . You'll probably want to build it in Linux (I am using Debian Jessie) or possibly OS X (I didn't test it). For sure, it fails in Windows 8 at the create_installer.sh part, so I decided not to waste any more time on it. You basically need Kura built just enough so that you can load everything into Eclipse. I was able to do this using Eclipse...