Tips for my next trip to Korea
I recently returned home after a memorable 3-week trip to Korea with my parents and my youngest child. This was my 7th trip back to Korea after immigrating t...
Since landing my first programming job when I was a junior in high school until now, I recently realized that I’ve now worked at 10 different companies, including my current employer. I thought I’d take some time to reflect on lessons learned from each of the places I’ve worked at (from oldest to most recent):
Give someone a chance: I was a 16 year old high school student who knew a few things about computers and could write code in BASIC but was a very ordinary student. As someone who is now responsible for making hires, it somewhat blows my mind to think that a legitimate for-profit company took a chance on an ordinary high school kid like me and invested in me. Between me and this company I’m certain I got the (much) better end of the deal. They gave me a chance and not only did I gain valuable skills and experience, I’m convinced it gave me a huge edge when it came to my ability to land my next few gigs afterwards. IMO relevant work experience is the single most important asset when you’re an entry-level person in your field.
Be patient with those who need your help: Taking technical support calls was a big part of my job while working at this local ISP. During my time with the company I talked to a lot of customers who really very desperately needed my help with getting connected to the internet. This was back in the late 90s when everyone was on either Windows 95 or 98 and being on the internet was still sort of a new thing on the block, especially for the older crowd. And getting connected to the internet wasn’t very straight forward (it’s STILL not as straight forward as I would like it to be). There were a few instances when I gave up trying to help people over the phone because it was as if I was speaking Martian to them. In these situations I ended up making home visits and they were so happy to see me. I still remember an older individual tipping me $20, which was like 3 times my hourly wage. The lesson learned at this job is that when people who are clueless about technology are utterly dependent on you to help them out, be gracious and demonstrate extra patience. Once you help them out and resolve their issue, 9 out of 10 times you will be their hero and they will be extremely grateful to you for your help and for being extra patient with them. You just need to accept the fact that not everyone is as technically savvy as you would like them to be… but guess what? I’m sure there are things that they are very knowledgeable about that you are completely clueless of.
Who you know matters as much as what you know: I landed a pretty sweet gig with the Federal Reserve Bank while in college. My hourly pay was double what I was making at my previous job and the hours were super flexible–I could pretty much work whenever I wanted to. This was an especially great perk as a full-time college student. As much as I would like to believe that my web development skill set was what got me this gig, it was my friends who were working there that got me the job. Without them I wouldn’t even have known that the job existed and probably wouldn’t have been qualified enough to even get an interview.
It’s possible to be a part of a wonderful community of Christians in the workplace: This was my first job after graduating from college and it was very typical of a large corporation. It involved working with an outdated set of technologies (PowerBuilder, for example… which I can’t believe is still actively being worked on today), it was a very slow moving culture (I got yelled at by some union worker for attempting to relocate my desktop PC because that wasn’t my job), and it just wasn’t the kind of company that’s set up to help you grow in your skill set. I have a lot of complaints about my time with the company but there’s one aspect of working there that I am so grateful for, which is the fact that I got to be a part of a wonderful community of Christians, all of whom were employees at the company. I didn’t know that such a community was even permitted to exist in the workplace. I regularly met with one or more of these folks and we studied the Bible, prayed together, sang together, and engaged in spiritually enriching times together. Unfortunately I’ve yet to experience this again after leaving the company; however, I hope and pray that this is something I’ll get to experience again at some point in the future in my career.
“Years of experience” is way overrated: I don’t think I’m exaggerating when I say that the 17 months I spent at this company were THE best 17 months of learning in my life. It was at this company where I got to work closely with some of the most skilled developers I’ve personally encountered (to this day). This is the place where I wrote my very first unit test and the first time where I got to lead a project professionally. This is the place where I was introduced to test driven development and pair programming. I got to write a ton of SQL queries. This is the company where I first experienced Agile development. This is the place where I learned that you can get REALLY good as a developer (not me, the others) and have an opportunity to teach and mentor others how to excel as a developer. This is when I started to get really interested in picking up technical skill set on my own time for my own enjoyment. This is where I realized that “years of experience” is an extremely poor way to guess at how good someone might be at his or her job. I can almost guarantee that I had I stayed at AT&T for 20 years, I would not have picked up the kinds of skill set that I gained during my 17 months at this company. When I phone screen and interview candidates, I remind myself that years of experience is not all that meaningful. It is tragically too easy to rack up some very useless “years of experience” by doing the same things over and over again, working with technology that is all but dead, or spending time investing in a non-transferable skill set (see right below).
Don’t waste time investing in a non-transferable skill set: This company shall remain nameless. I pretty much wasted a month of my life there. Within my first week there I knew I had made a big mistake in joining this company when I learned that I was going to have to develop within some portal/CMS tool created by Vignette Corporation. It was a clunky and overly complicated piece of software that often left me confused and frustrated even after I was flown to Texas to partake in their training course. I started looking for another job pretty much as soon as I started there because I realized very quickly that the vast majority of what I learn at the company will only be useful if I develop within this horrible vendor-locked software that I do not ever want to go near again.
Face to face communication is a wonderful thing: My time with this company was unique in that during my 19 months there I did not have a single face-to-face interaction with anyone at the company. Even the interview was completely remote. If you were to drop me off in a room full of my colleagues from this period in my life, I would probably conclude that they’re all complete strangers to me because I don’t really even know what these people look like. The only pictures I’ve seen of these people are their LinkedIn profile pictures.
Anyhow, I really enjoyed my first year with the company because I could work from the comfort of my own room every single day and the hours were really flexible. However, once the honeymoon period was over it was really quite depressing to work with people you felt such little connection with. By the second year, I got really sick of always having to talk to my co-workers over the phone or via online chats. While there were significant time savings by working remotely, I also knew that we were wasting a lot of time by not talking face-to-face. There are commonly stated statistics which say that 90+ percent of communication is non-verbal. While I’m not sure how accurate this is, I can tell you that face-to-face communication is way more efficient, effective, and engaging versus online chats, phone calls, or even video calls. So much of the enjoyment that comes with being a part of a team comes from sharing in a sense of connection with others you work closely with and this is so much more easily gained in-person versus remotely. It doesn’t mean that people should come into the office every single day; however, not creating a semi-regular (even if once a year) opportunity for people to get together in person was a big mistake that this company made, IMO.
Get things in writing: Another company that shall remain nameless. Another company where I ended up staying for only about a month (hopefully the very last time this happens in my career). I took this job a few months before I got married and during the interview process, I told them that I was getting married soon and was going to need to take some extended time off for my wedding and the honeymoon. They agreed. Fast forward several weeks. I started working there and reminded my boss that I was planning on taking an extended vacation for my wedding. And quite unexpectedly I got some serious push back, which shocked me. Well, I wasn’t going to let them get in the way of my once-in-a-lifetime experience so I quit. And I’m very glad I did. When I told them I had decided to quit, only then did they agree to let me take the extended time off and if my memory serves me right they were going to throw in some money as well. By then it was too late. I was pissed and the damage had been done.
I learned a very important lesson of getting things in writing. It wasn’t my fault that they wanted to ruin my wedding (ok, I’m exaggerating now) but I should’ve been smarter about getting the extended vacation agreement written down somewhere on the offer letter.
Don’t let money be a strong motivator: When I decided to accept the offer that was extended by the company, it was a rather difficult decision. I had another offer on hand and including salary, perks, and benefits this other offer was going to result in about 20% more money per year–not an insignificant amount by any means. I made the decision I did, though, because I had to remind myself that as long as I’m getting paid fair market value, I should not let money play a bigger role than is warranted in my life. I have no idea how things would’ve turned out had I taken the other offer but to this day, I’m very happy with the decision I made and I think it turned out well for me.
Fast forward a few years and it was announced that the company was going to be acquire by Oracle. Of course I considered sticking around post-acquisition. They told me they would pay me extra money if I stick around for a year after the acquisition is completed. I decided not to stick around because working for Oracle simply did not excite me and I knew there was a very good chance that Oracle was going to come in and ruin a lot of what I really enjoyed about working for this company. From having spoken with some of the folks who stuck around, I’m very happy I made the decision I did and didn’t allow money to play dictate my decision.
Always operate with a career plan in mind: During my first 9 months with the company the team that I was a part of (the only engineering team within the company) went through 4 different bosses. It was quite jarring to have to cycle through so many bosses that quickly. No one on my team (including myself) was fond of these changes and a few members of the team left the company because of these changes. During these repeated changes in leadership, I could’ve very easily concluded that I would like to be a part of a more stable team and that the only way I was going to obtain this sort of stability would to quit and join another company. I decided to stick it out, though, because it became very clear within my first few weeks at the company that if I stuck around, there’s a decent chance that I could have opportunities that I never had before. For several years prior to joining the company it had been my goal to be a technical manager. Not that I wanted to be a technical manager for the rest of my career… but I did want to at least experience what it’s like to be a manager. I thought there was a chance that I could be pretty good at it. I went from having zero experience as a technical manager to managing projects, process, people, and ultimately the entire technology organization–all within a span of 2 years. It’s really amazing when I think about it. It’s scary to think that had I decided to seek stability I still may not have had any technical managment experience.
I recently returned home after a memorable 3-week trip to Korea with my parents and my youngest child. This was my 7th trip back to Korea after immigrating t...
After 4 weeks of very aggressive job searching, I was able to wrap up my job search late last week and I decided on an offer yesterday. Hooray! This is the f...
I spend a lot of time at work in meetings. I regularly think about having effective and efficient meetings and here’s a list of things that I think are impor...
Several weeks ago I wrapped up conducting employee performance reviews for the 2020 calendar year and it’s the first time that I can remember in my career wh...
Over the last several months I’ve become increasingly convinced that one of my most important responsibilities as an engineering manager is to provide clarit...
Something that is personally very important to me is that I stay fit and healthy for as long as possible in life. While I wouldn’t label myself a “fitness nu...
Being organized is a skill I personally value and at least for me - it’s a no-brainer that being organized can help everyone do their jobs better. It was imp...
During my time at Venmo as an engineering manager (since October of 2019) there are some note-taking / documentation things that I started doing that I hadn’...
I drove about 2 hours west to Stockton, IL - to a place called Christ in the Wilderness (CITW), to spend a few days (Friday evening - Sunday morning) to myse...
I recently returned home from attending Deconstruct along with a bunch of my co-workers. I thought I’d jot my thoughts down while the experience is still fre...
I recently had a need to write a simple script that writes to a Google Sheet document once a day. I decided to write the script in Ruby and host it on Heroku...
When I started at Braintree I was given a new 2017 15” MacBook Pro with Touch Bar. It’s a really nice laptop overall and I don’t mean to sound ungrateful… bu...
I’ve been at Braintree now for almost 3 weeks and I can’t believe it’s only been a few weeks because I’ve experienced a ton of new things and have met a lot ...
In the last several weeks I’ve had the opportunity to speak with numerous companies as a job candidate. While the experience is still fresh in my mind, I tho...
I started 2017 with a ton of excitement over the opportunity to build Cappex’s very own college application product. I knew it was going to be an extremely c...
A very large chunk of my life from the very beginning of this year until the end of July was focused on launching a new college application product. Thanks t...
I’ve had several people ask me over the years what’s a good & cheap way to set up a static or a dynamic website on a custom domain. One of the best thing...
Coming into 2017 I had a lofty goal of hiring 10 people by the end of February. 10 is the number of people I had hired up to the end of 2016 when I had been ...
I’ve done what I think is an insane amount of phone screens since December (well over 100) and in the last few weeks there’s something I’ve been noticing whe...
Once I built out my custom dashboard using Google Sheets (read my blog post on this topic) I decided that I wanted to look at the data for only the last 30 d...
I was looking for a way to build a custom dashboard that’s relevant for me and the team (especially my DevOps team), which at the very least, includes the fo...
I think this is going to be a pretty short post.
Yep, hiring is tiring. Very much so.
NOTE - This is a blog post that I started writing when my wife and I were at the hospital this past August waiting for our daughter to be born. I started wo...
Ever since I started managing people several years back I’ve practiced giving Christmas gifts and a hand-written Christmas card to everyone on my team. I in...
I know that it’s often convenient to have your personal files stored on your work computer, especially If you’re like me and you spend a lot more time on you...
Since landing my first programming job when I was a junior in high school until now, I recently realized that I’ve now worked at 10 different companies, incl...
I really wish Daylight Savings Time would cease to exist. I can’t possibly imagine that DST would go away in my lifetime due to the sheer complexities and c...
Last 2 weeks at work have been rough. This most recent sprint as well as the release ended up being much more difficult than what my team is normally used t...
Stop forcing your programmers to perform mindless manual tasks that could be handled via programmatic means. And if you’re a programmer who is in the unfort...
If you’re looking to upgrade from Java 7 to Java 8 you may not be aware that there are some rather significant differences to how ordering is maintained for ...
Lately I’ve been thinking about the simplest possible ways to distinguish between different levels of engineers, which are typically something along the line...
When I was promoted to my current role of VP of Technology a little over 2 years ago, one of my biggest fears was that my technical chops would quickly deter...
I just finished “converting” my music website from Heroku to utilizing Jekyll + GitHub Pages. And by “converting”, I mean I killed off a project that was se...
Earlier today I attend a webinar hosted by Gradle, Inc. where Gradle Build Scan was introduced. If you’re already using Gradle as the build tool for your pr...
I recently discovered Spark, which advertises itself as a “micro framework for creating web applications in Java 8 with minimal effort”. Like many developer...
I’ve been working on a rather massive refactoring work that involves changing how Java properties files are organized. It’s vitally important that the prope...
I decided to conduct some simple page load speed testing. I hope the following info might be of some value to some folks out there.
I was running low on my 13” mid-2012 MacBook Air’s SSD, which had me pretty concerned. Thankfully I recently discovered that the SSD inside this thing is re...
Yesterday at work I had a need to copy a single from an existing Git repository to a newly created Git repository while maintaining all of the commit history...
I’ve been busy doing a lot of phone screens and interviews as of late. Actually, I’ve been doing a lot of interviewing during my time at Cappex. Since join...
One of the things I hate the most about my job is having to deal with losing good people on the team. I run a small organization (currently 10 people includ...
I’ve been reading through the book ‘Lightweight Django’ by Julia Elman and Mark Lavin and I was having a lot of trouble getting the final example in Chapter ...
Here’s something I just posted on Hacker News - https://news.ycombinator.com/item?id=11643390
At Cappex.com, we do formal employee reviews twice a year and being that it’s already May, I’m starting to think about writing reviews for folks on my team. ...
I spend roughly an hour and a half Monday through Friday commuting to and from work and my laptop is tethered to my phone probably 90% of the time I’m on the...
I had a couple of AWS Glacier vaults that I had been meaning to permanently delete for awhile. When I tried deleting them via the AWS dashboard, I got the f...
One of many things I had been wanting to accomplish in the 2nd half of 2015 was to start making some hands-on contributions to my team’s functional test auto...
I was curious as to the performance improvement of Arrays.parallelSort over Arrays.sort.
Whoops. I started working on this blog post all the way back in mid-February and it’s now mid-April. Life has been busy. Work is busy. Being a dad to a 9...
Android sucks. At least my experience of it has. Now, I’m NOT saying that Android-sucks-therefore-Apple-is-way-better. All I’m saying is that I’ve had 3 A...
Something I’d like to start doing in 2015 is to write a blog post after finishing a book, provided that there are at least a few key takeaways. I’m thinking...
I saw in Google Analytics that I’ve been getting a lot of hits on junhopark.com/index.php, which isn’t a valid page. I decided that it’d be best to set up a...
In July of last year, I stepped into my role as the VP of Technology at Cappex where I oversee software engineering, QA, operations, and corporate IT. Now th...
My first album Acoustic Worship is now available for purchase on CDBaby.com! Recording an album is something I’ve wanted to do for a very long time and I’m g...
I upgraded both my MacBook Air and MacBook Pro to Yosemite over the weekend and I saw that both my laptops were unable to connect to internal systems at the ...
Being that I’m a Ruby on Rails newbie, I was looking for a way to add page-specific JavaScript files on a Ruby on Rails (Rails 4) project. Here’s one way to...
A few days ago, I phone screened a QA Manager candidate that ended up being extremely memorable. It went something like this:
Ever since my son was born in late June, it’s been a challenge trying to find time to work out. Since I record every one of my workout sessions, I thought I’...
A couple of weeks ago, I had to merge one codebase into another codebase and after a lot of searching for solutions on the web, I came across a solution that...
My wife and I met through a (very) random suggestion from a mutual friend 3 and a half years ago. It was suggested to us that we should meet up, get to know...
Here are some pictures I took while I was in Turks and Caicos earlier this month with my wife.
A skill that is often overlooked amongst developers and development managers is the ability to write good comments in code, which is understandable I suppose...
I frequent Hacker News (news.ycombinator.com) pretty often throughout the day and I realized that my eyes were almost always drawn to posts on the first page...
I’ve been meaning to get something up on GitHub and here it is at last:
I thought I’d give Adobe Lightroom a try and play around with editing some pictures. Well, here are the results.
I noticed that Heroku supports Java applications running on Jetty and since I’ve never worked with Jetty previously, I thought I’d give it a go. Please note...
Just paid off my student loans, which took me about 9 years and 3 months. I was planning on letting it drag on and on because of the super low interest on i...
I got hold of some really nice looking single page website templates earlier last week (from here) so I thought I’d go ahead and redo the website for my pare...
After years and years of writing software for the web, I decided that it’s about time I start tinkering around with mobile apps. I decided to use the follow...
Thanks to Plugable I’ve now got 2 monitors hooked up to my Lenovo laptop at work and I’m absolutely loving it. I definitely should’ve done this way sooner.
My wife recently decided that she wants to learn how to code and of course, I’ve volunteered to be her teacher. She has absolutely no experience with progra...
It’s been quite awhile since my last blog post and I had a sudden itch to write about things I’ve been learning (mostly at/through work) over the course of, ...
I purchased a Synology NAS DS213 last week and here are my thoughts after using this device for about a week now:
Big things I want to accomplish in 2013:
I’ve got a lot to be thankful for. Here are some that stand out for me:
Last Thursday, my team made a successful transition from Subversion to Git. Here are some thoughts after having been on Git as a team for about a week now:
I just spent 30 minutes on Google trying to figure out how to debug my Play application in IntelliJ when it should’ve taken me 1 minute, tops.
Earlier today, I had a web design candidate who informed us that he would be able to provide us with an up-to-date portfolio of his design work for a flat fe...
Here are my notes from ChicagoWebConf 2012 (Oct 6, 2012).
This coming Sunday will be my last Sunday at Lakeview Church. I’ve been a part of this church since summer of 2006 and I’ve been blessed to experience such ...
Yesterday I got to represent Cappex at a career fair that was being held at the Illinois Institute of Technology in Chicago. I had only attended a career fa...
As I noted in my blog post from 9/15, I decided to recreate my site using Ruby on Rails + Postmarkdown and deploy to Heroku. FYI, my site is a super simple ...
Decided to ditch PHP + WordPress + Lithium Hosting for Ruby on Rails + Postmarkdown + Heroku.
It’s been about 6 weeks since I started working at cappex.com and while I’ve been really enjoying the work, I’ve also been guilty of bringing work home. I’v...
Earlier this year I decided that it’s time for me to look for another opportunity outside the company. The company executives decided on being acquired by O...
I gave moodyshoerepair.com a (much needed) facelift over the course of this past week and it’s now live online. This is the first project completed on my n...
I wish I had waited to get the new iPhone (whatever is gonna come after the 4S) instead of picking up the Galaxy Note.
I shall never ever fly Spirit Airlines again. My reasons why?
I’ve had my Samsung Galaxy Note for about a month now and I’ve been loving it. It was a HUGE upgrade over my old phone (Blackberry Bold 9000) and it beats t...
The last time I wrote in this thing was 10/22 of last year, which is also the time when wedding preparations got crazy. Well, thank God the wedding is now ov...
I arrived in San Francisco last night with Jenny and a friend of ours at around 10:30 local time to attend Jenny’s friend’s wedding which takes place later t...
One of the main purposes for keeping this blog is for me to think through and reflect upon things and to remind myself of the lessons that I’m learning. I k...
My office moved from Westmont to Chicago about 2 and a half months ago and ever since then I’ve been taking the Metra train to get to work. There are some t...
While reading my Bible this morning before work I came across the following question:
This past Wednesday, I paid a visit to my alma mater (UIC) to be among the panelists to share my post-college experiences of working in the corporate world. ...
One of the main motivations behind why Jenny and I wanted to start this blog in the first place was so that this blog would (eventually at some point once th...
On Saturday, I got engaged to the most amazing girl I know. :) It still hasn’t quite hit me yet. To be honest, I’m guessing it’ll hit me once I get used to...
I’ve been wanting to convert my site to a single-page design and after working on this on & off for the last several weeks, I’m glad to have the site fin...
It sure has been a long time since the last time I updated my blog. Here are the different things that have been occupying me in these last couple of months:
One of the things I’ve been enjoying about work since I made the switch last November is being able to get my hands dirty with front-end web development and ...
For some time now I’ve been really interested in going overseas for the purposes of doing missional philanthropic work. And by “missional philanthropy” I am...
Do you remember how in college there were classes that were actually below 100-level? The classes that some folks were required to take but they didn’t coun...
So… I’m scrounging around the internet looking for some TDD-related tidbits and I came across the following at www.artima.com.
Band rehearsals–some love ‘em, some hate ‘em, but there’s no denying that they are very much necessary, even for bands that are comprised of phenomenal music...
At work we have a huge product release coming up very soon. There are a lot of new features to the application, which means that there has been a ton of cha...
Over the weekend I started re-recording a song which I had written a few years back. Vocals, acoustic guitar, electric guitars, bass, keyboards, drums-via-k...
After lunch @ Sweet Tomatoes with some friends I came back home and took a much needed nice, (too) long nap. Fast forward a few hours and it was around 11: ...
This upcoming Sunday is going to be a pretty big & important day at the church I’m serving as a worship leader–it’s the grand opening day at our Vernon H...
I have a few minutes to spare while my Ubuntu workspace is being patched up with some security updates so I thought I’d share a little blurp or two about Rim...
Almost every Sunday morning, I am needed to provide live background music, either on the guitar or the piano, at church worship services. Usually this takes...
Yet another rendition of junhopark.com is done… at last! I decided to forsake my old Blogger posts since it’s been quite awhile since my last blog update an...