319 karma · joined September 18, 2015
I recently cut back on my drinking significantly after listening to this podcast. Give it a listen and maybe you’ll find something that resonates with you as well.
[1] https://podcasts.apple.com/us/podcast/what-alcohol-does-to-y...
The Violence Project makes the argument that it’s not just mental health and availability of firearms that causes mass shootings. It’s a confluence of many contributing factors that all need to be addressed.
This is why I found the book so enlightening given the typical mental health and gun control debate that is going on now. This is not a simple problem to solve in my opinion.
For me, the most surprising takeaway was how many shooters exhibit signs of trouble prior to the shooting and how difficult it is for teachers and law enforcement to do something about it.
[1] https://www.goodreads.com/book/show/56969516-the-violence-pr...
Things get really interesting when she talks about how her mom stole all her money and now she’s basically starting over (in the original link).
[1] https://open.spotify.com/episode/2TRBNGScfO2K3RWRIYJedJ?si=R...
I found the hourly rate of tradesmen to be comparable to software engineer rates ($150-$200 per hour). But because I work on salary, one hour or my time does not directly increase my cash flow. Also, I’m senior enough in my career that effort alone does not equate to salary increase.
Your mileage may vary of course.
- Electrician U: https://m.youtube.com/channel/UCB3jUEyCLRbCw7QED0vnXYg
- Home RenoVision DIY: https://m.youtube.com/channel/UCnorhjQR4zJkT7AVNhu395Q
Here are some more ideas to consider. Source: 18+ years of experience as an engineer, manager, and director.
The theme is make your manager's life easy and he/she will do whatever they can to help you out.
Depending upon the size of your company, your manager may have more or less discretion with WFH. Whatever you do, don't put him/her into a corner with an all or nothing demand. Be clear with what you want, but be willing to negotiate how it happens.
If you've consistently delivered in the past, you have a tremendous amount of leverage. Believe me, the last thing a manager will want to do is lose one of his/her top engineers especially given this job market. Make sure they know you have options and you're willing to exercise them, but you really want to stay put.
Be patient, but hold a hard line. Most managers are inundated with bureaucracy which means almost nothing moves fast. Don't be surprised if your request gets pushed down the stack due to the latest fire that needs attention. Keep offering up options that make their life easier. I know, I know, this is about you not them, but trust me on this one. Make whatever solution you want easy for them. HR says no? Talk to HR, find the loop hole (private healthcare decision sounds perfect).
Alright, this one may be a bit more out there. Reader discretion advised. Just do it. Don't come back in the office. Don't make a lot of noise about it, make sure your productivity stays up, and have numbers to back it up. If your manager catches heat, do whatever is necessary to relieve him or her then go back to WFH.
"Programming from the Ground Up" starts at the bottom with CPU architecture and goes up from there to how functions work, dealing with files, code libraries, high-level languages, etc. Having a solid understanding here will provide immediate benefits in coding and serve as a strong foundation for some of the other recommended texts.
If you're interested, I recommend buying directly from Bartlett Publishing [1]. Bartlett published the book under the GNU Free Documentation License and there are multiple copy-cat versions on Amazon.
[1] http://www.bartlettpublishing.com/site/catalog/programming-f...
"History reports that the men who can manage men manage the men who can manage only things, and the men who can manage money manage all."
In my experience, a management role has typically come with 10-20% more compensation versus a comparable individual contributor role, but 100% more responsibility and accountability. I wouldn't worry too much about parity between the two tracks, focus on what you truly enjoy doing. Besides, the money guys can fire us all ;-)
[1] https://www.amazon.com/Lessons-History-Will-Durant/dp/143914...
* Who is my customer in this situation? It could be your boss, your boss's boss, an important stakeholder, end users, etc. Make sure you have clarity on your customer so you can focus on their problems first. If you have find you have multiple "important" customers, then prioritize the most important first. This is likely the person who has the most influence on your immediate success.
* Are any of the problems you identified "your" customer's problem? If so great, time to get to work. If not, consider reprioritizing. You should reach out to your customer and get their feedback on priority. Be careful not to lose sight of the big picture.
* How do I know the other engineers aren't right? If you work with smart people who know how to get things done, then you should take their feedback seriously. Maybe they're right and you're wrong. Always validate your assumptions.
* What would happen if I just solved the problem myself? If you can then do, seriously. Submit a PR with your solution or build a proof of concept. Default to taking action. Don't wait for someone else's approval to get shit done.
* How can I measure and bring transparency to these problems? You'd be surprised how powerful emails with data are. If you can measure the problem (e.g., MTTR, rate of failure, response time) and more importantly the impact on customers, then you may be able to indirectly "motivate" others to solve their own problems. Send regular updates to managers, Directors, VPs, Execs, anyone important who will listen.
* At what point should I just let this go? Time box your efforts and once that time period has been reached, just let it go. This very well could be a situation where the "problem" is not the top priority. You may have to let this one burn so you can focus on other things.
OPP is also a forcing function for leadership. It forces true leaders to step up and make the hard choices.
If you're faced with OPP, here are a few things I found useful in my career.
## Do Important Work for Important People
The best way to be successful in any organization is to do important work for important people. Important work for unimportant people will get you no where. Same is true for unimportant work for important people.
Take a look at your OPP and ask yourself:
* Is this work for someone important?
* Is this work important to that person?
Both answers should be yes, otherwise it's just OPP.
## Let Fires Burn
Once you decide the work is OPP, then you need the courage to say no. You must let that fire continue to burn without it distracting you. Masters of Scale has a good episode on this topic [2]. Easier said than done of course. I found Stoic practices to be very helpful here [3].
## Customer Obsession & Ownership
OPP should always be evaluated through the lens of the customer. Bottom line, the customer is always the most important person and they trump all. True leaders are obsessed about providing a better customer experience and they're willing to pay the price in order to do so.
If you have OPP that's important work for someone important, but it's not important to the customer, then you may just have to let that one burn too. And once you make that call, you have to own it. Always take responsibility for the decision and defend it on the customer's behalf.
I've found Amazon's leadership principles to be invaluable when making these type of tough decisions [4]. It's no coincidence that Customer Obsession and Ownership are #1 and #2.
[1] http://amzn.to/2niWhO9 (Camille's link not mine)
[2] https://mastersofscale.com/selina-tobaccowala-let-fires-burn...
[3] https://www.amazon.com/Obstacle-Way-Timeless-Turning-Triumph...
For those interested in a practical approach to positive thinking, check out “How Full is Your Bucket” by Tom Rath and Donald Clifton [1]. They discuss the 5:1 ratio of positive to negative interactions and how it’s the key to a happy relationship [2].
[1] https://www.amazon.com/How-Full-Your-Bucket-Rath/dp/15956200...
[2] https://www.gottman.com/blog/the-magic-relationship-ratio-ac...
CloudWatch have provided me all the visibility necessary to troubleshoot issues. I think the important thing here is to have a good logging strategy (logs are only as good as what you put in them). In my case, I made sure info messages were logging for the start and end of use cases (e.g., "reseting password", "password reset successfully"), warn messages for non-fatal errors (e.g. "username not found"), and error messages for fatal errors (e.g. "unable to connect to database").
The only frustrating limitation I've run into is when the Lambda function times out before receiving a response from the downstream service. At one point, the downstream service was having major performance issues and responses times were crazy high. This meant I couldn't get a response code and had to run the downstream calls locally to troubleshoot.
Performance is not great (most requests are in the 400-500 ms range), but it's more than adequate for my use case. A large portion of the response time is likely due to the downstream service, but there are cold starts that spike response time way out of normal range.
Overall, I'm really happy with AWS Lambda and it's definitely top of my list when taking on a new project. I'm really interested in experimenting with AWS Mobile Hub in the future. It doesn't get much better than one-stop serverless shopping.
I used Newport's recommendations to reclaim 4+ solid hours of deep focus and it's had a tremendous impact on my productivity and general quality of life.
Here are a few strategies I found successful:
* Create a TODO list each day and separate tasks into shallow and deep categories
* Block off each hour of the day and and fill it with one of the TODO items
* Restrict shallow work to 2 hours (after 2 hours, say no to everything shallow)
* Create a scorecard and track the number of deep hours each day (this number should increase)
* Experiment with Newport's recommendations for two weeks and see which ones increase your deep hours
* Become comfortable saying no
[1] https://www.amazon.com/Deep-Work-Focused-Success-Distracted/...
The screen size is 14", which compared to a 15" MBP is no where near enough screen real estate. That and the bezel is too damn big.
The touchpad is just awful. The buttons are way too slim to hit accurately (I think they're about 1/4") and I always inadvertently hit the touchpad with my thumbs moving the mouse to random locations. I could probably fix the later by toning down the sensitivity, but there's nothing I can do about the button sizes.
Finally, the unibody case as a very sharp edge and tends to cause discomfort when typing for an extended period of time.
As for the OS, Mint went on without any driver issues. This is my first experience with desktop Linux in a long time and I'm very impressed with how mature it's become. There's just no way I could go back to developing on Windows. In fact, I've become so accustomed to developing on Linux that it's a pain to go back to macOS.
[1] https://www.youtube.com/channel/UCY1kMZp36IQSyNx_9h4mpCg
[1] https://www.omscs.gatech.edu/prospective-students/faq
[2] http://grad-schools.usnews.rankingsandreviews.com/best-gradu...
[1] https://github.com/mncoppola/suterusu/blob/master/main.c#L12...
[2] https://github.com/mncoppola/suterusu/blob/master/main.c#L10...
[3] https://github.com/mncoppola/suterusu/blob/master/main.c#L15...
[4] https://github.com/mncoppola/suterusu/blob/master/main.c#L17...