Skip to main content

Growing up

... as an engineer.

I've spent some time reading and thinking about my career. One of the hiring managers I talked to recently in an interview took some time to tell me what he considered a "senior engineer" according to his criteria. It was probably the most humbling but insightful experience during my job search (the whole job search was quite humbling, but not always so insightful) and I am really thankful he took the 10 minutes to tell me what I was missing.

1. Depth. The tools I had the most exposure (in terms of time) to, I wasn't actually an expert in any of them, like Java or Javascript. Just because you write a lot of code doesn't mean you're really good at it.
2. Breadth. I had a lot of exposure to a lot of different technologies, but I certainly could learn a lot more.
3. Communication. Be direct, succinct, and honest in all things, especially when responding to questions.

I think I can sum it all up in one phrase: Always be coding and always be reading.

Here are areas that I am pretty sure I can start improving right away:

1. Java/JVM -- getting up to date on the latest JDK, learning about GC/JVM tuning, etc.
2. Concurrency -- this isn't something I've done a whole lot of work on. This is the year I am going to get further with my self-study on operating systems.
3. Optimizing my workflow -- e.g. continuous integration/deployment, unit testing, developing tools... stuff we all claim we don't have time to do, but after watching/listening to Edmond Lau's Google Talk, I really have to do this if I want to increase my output and effectiveness. I picked up The Effective Engineer as well and will be reading through it.

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...