Sharing a post here https://medium.com/hackernoon/feels-like-faster-vs-makes-us-faster-828686facc7e

Very inspiring profile of Tracy Chou’s journey to build Block Party tool to combat online harassment.
This blog post reminded me to write down my argument against using heavy process to do planning. “The Case for ‘Developer Experience‘” or full link https://future.a16z.com/the-case-for-developer-experience/?
This particular quote is my inspiratioin
So if I were to coin a law, it would be this: Any system of sufficient size and maturity will always involve multiple languages and runtimes. Software is heterogeneous, and until we as a community accept this fact, we’re upper-bounding how far we can get with developer experience. I call this The Software Heterogeneity Problem, and it has significant consequences for software development, management, and performance.
I’ve argued that building software is much more of an Art than Science. The teams who follow the agile manifesto strictly over plan this artistic endevor of birthing software from nothing with T-shirt sizing, rule of thumb and or fibonacci numbers in 2 week increments of a sprint. What I’ve observed in the real world of software engineering in 20 years is that during the planning and estimation process:
My recommendation for high performing software engineering teams is to try:
Some disclaimer and background here
See this post from Casey Newton’s Platformer newsletter about Twitch engineers leaking the entire source code.
I wonder if there any effective way to prevent this from happening?
We don’t even know this problem exist. How do we know it is even needed? How do we get to a better state with these unknown unknown problems?
My co-worker Michael L. wrote an internal page about how he thrives on these type of Unknown Unknowns problems.
I’m reminded recently that I get a lot of my energy and fear from unknown unknowns, because they are the most interesting ones, but also very likely to fail.
This is quoted from his internal page
If you want to be an effective engineer in our industry, get ready be good at the following
Basics 0 – This is the basic toolbox as an engineer
Level up 1
Level up 2
Level up 3
Specialize positions
I’m sure I’m missing a ton of needed skills, ping me on http://linked.com/in/tonytamsf
I’ve had 39 submissions to my favorite Podcast App – AntennaPod in 2020. Which makes me #7 on the contributor list. That was a good learning journey for me. For the next leveling up to be #6, 140 of my submissions would have to be accepted. That would take 2.5 years given my current rate of submission. If I wanted to get there in 2021, that would mean 1.9 submissions per week.
20 years ago, while I was the lead engineer for Yahoo News, I was asked to build a very basic feature to allow users to send news articles via a simple email link. That feature was simple: let users click on a link to send the news article with the URL, title and a brief summary and email it to one or more people.
With this simple request, I built a generic ‘Mail To Friend’ feature that any web site at Yahoo could use with a simple set of parameters URL, property, country and everything else (spam control, sending the email, tracking what was sent).
After launching the simple feature, I was doing some validation of the system, looking at the data around what was sent. I looked at how many articles were sent, aggregated it by the top articles sent and I noticed that the top 20 articles were ‘interesting’ news stories that I normally won’t see on Yahoo News as a daily reader myself. Then I noticed the photos that people emailed, where the cute, or outrageous.
I built a script where I looked at moving window of the top 20 news stories and 20 news photos in the last 36 hours to keep the content fresh and showed it to my news producer (product manager) and that is how the most-emailed feature was borned. (NYTimes) https://www.nytimes.com/2001/01/29/business/new-economy-yahoo-charts-spread-e-mail-what-it-finds-itself-becoming.html
What portion of your team’s time is spent planning vs. designing and writing and testing software?
Even when you did a great job in planning, how often is your plan exactly on target?
When you hit the target of what you plan after 3 months, is that plan still the right thing to solve?
My team recently had an idea for a metasearch engine. We had a vision document, explored different options to solve the problem, and then did a 2-day hackathon. With zoom audio, 4 engineers, and 43 pull requests later, we have a working prototype that answered these questions.
Our hackathon’s team outcome was that we learned to work with each other much better, intensely with 43 pull requests. The 4 people have a better sense of ownership and understanding of the technical and product vision. The team is much more excited to move forward with the next steps.
What we need to solve?
As software engineers, our job is to create useful services for other humans or other services that depend on our services.
In the idealized world, we write software, deploy, and move on.
In the real world, we have to think about
This is the world of a software engineer beyond just writing code. As an engineer writes more code, they have more ‘legacy’ to support. For an engineer to be effective, what they create needs to be continually groomed and tend to. How they enable others to help is an important factor to help them scale. How they enable their future self to look at code they had written 1-2 years ago can be done through rigorous automated testing and up to date document and knowledge sharing.
At work, someone wanted to talk with me about answering the question of “Do people at work feel zoom fatigue?” What would be a good way to look at this question from a data perspective?
I proposed the following question, now that we don’t have to commute, shouldn’t we
I am exercising a lot more because of 90 minutes of tennis in the morning, but I’m not having lunch with family because we are on zoom during lunchtime. After work, I’m still working because I don’t have a clear boundary of when to stop working.
To bring life at work to a new normal:
First of all, my own team and myself, I think we are zoomed out, and we should not work as if we were face to face, but replace the same way of working as if we were in the office. Even without evidence, we have implemented the following changes to our team of 14 people.
For 1:1’s. – For our team’s weekly 30 minutes 1:1’s, we are doing phone audio only on traditional phone calls, and I will offer a chance to do walking outside meetings. We can take interesting pictures along our walk and share them back with the team Slack channels. Here are some of my photos along the walk with my direct reports.
Standups: First, we are no longer doing scrum standups via Zoom. We will send via Slack our statuses, and people who have an interest in the status will reply in a thread to ask questions or offer help. We will use Zoom only for those people who need to get unblocked or do troubleshooting with the team or me.
On Mondays, we will just do demos and code walkthroughs and use that as a learning experience.
On Tues – Wed – Slack updates and Zoom unblocking (optional)
On Fridays – no face to face meetings on Zoom
Software Engineering Daily: Cloud Native Computing Foundation with Chris Aniszczyk and Dan Kohn Holiday Repeat http://softwareengineeringdaily.com/2020/11/24/cloud-native-computing-foundation-with-chris-aniszczyk-and-dan-kohn-holiday-repeat/?utm_source=rss&utm_medium=rss&utm_campaign=cloud-native-computing-foundation-with-chris-aniszczyk-and-dan-kohn-holiday-repeat [00:36:41]
My superpower in life and at work is “troubleshooting.” I’m an engineer who helps other engineers when they are stuck.
This could mean very detailed technical issues that engineers run into that takes them hours to solve. They will bring that problem to me, and usually, through some questions and answers with me, we can narrow down the problem and figure out the root cause.
For example, this week 3 separate engineers reached out about
On my 50th birthday, at 6:27am my father at 81 years old, sent me a happy birthday message! He has been my role model, his quiet way of being there for the family, showing and doing rather than talking, his love for me and his expectation that I should reach my potential and his beaming pride of his son; I am the man because of his love. I thank my dad for showing me the way, taking care of our family and also that I feel his love for me every day. | ![]() |
![]() | My mom sent me a message as well. I thank you for how she is kind and generous with people and situations and her calmness is what I aspire to learn. I feel her love for me every single day. |
On my 50th, I will celebrate with my wife and daughter. I will also celebrate for the next 7 days
Day 1: I will join the ACM lifetime membership. A true engineer, I will fully embrace this part of my life, I am proud to be able to give back to others because my engineering training and 30 years of practice. I will spend the day with my family, with no work. | ![]() |
Day 2: I will spend the day with the love of my life.
Day 3: I will start a new bullet journal for my 50th birthday year.
Day 4: I will help my nephew learn Python programming.
Day 5: I will send an email to 9 people who are most important to me in my life telling them why they have impacted me. (TBD)
Day 6: I will contribute to AntennaPod towards my goal of becoming the top 10 contributor in 2021.
Day 7: I will setup a scholarship for Chinese immigration children in highschool who want to combine software programming and art, music, prose to contribute something that is meaningful and inspiring for others. (TBD)
I love listening to podcasts, all 111 podcast feeds. In 2020, I wanted to go deeper and understand the podcast ecosystem. I first generated a set of RSS feeds for 12 categories and submitted to Apple’s itunes podcast directory.
While trying to implement a feature for AntennaPod to allow users to auto skip intros and endings in this pull request #3975, I need to be able publish the event when a preference has changed and for a previous object with state that has already read the value of the preference to refresh it’s content.
I’m starting to learn on org.greenrobot.evenbus, and came across this funny term POJO
We used to have shareware and that was how programmers could give you software for free. When 2% of people pay for ‘free’ software, the rest of the world could get the benefits of free software.
Because people don’t pay for mobile & desktop apps developers started adding very annoying ads into software causing some unintended consequences.
This is my call to action
When I started working on a hackathon project to publish the Splunk .conf videos from our conf.splunk.com site into a podcast form, I learned a lot that I didn’t know. This learning through hands on work has led me to contributing software code to an open source project call AntennaPod. I will write more later about what I learned about contributing code to open sourced software, bug me if you are interested.
As Mary Meeker writes in her 2019 State of the Internet report, page 50, Podcast Listeners will grow 2x in four years from the base of 70MM.
https://www.levels.fyi/2019/ – I have no idea how accurate this salary data is, but it’s pretty outrageous how much software engineers are paid.
Before googling for the answer, what do you think is the % women who receive computer science bachelor’s degrees in the United States in 2019?
See answer here
Splunk is a company of thousands of talented individuals, distributed across product development offices in 8 offices in the U.S., AUNZ, Europe, and Asia.
How do we do our best work collectively and continue to push innovation while expanding at hypergrowth rate? How do we overcome the boundaries of timezone, physical location, and organization rigidity in order to create the most innovative products and solutions for our customers?
After working on Engineering Productivity at Splunk for the last 3 years, I struggled to understand WHY I chose which projects I devote time and attention to. There was a common thread, there was something there to the madness.
The list of seemly random efforts all have some type of common theme that my beloved wife, Katherine point out this weekend when I ask her for her always piercingly accurate perspective.
Here is the laundry list of random efforts:
In my next post, I will try to talk about the common themes I have identified
I’m looking for a list of best practices, (maybe mechanics) with data to back up recommendations:
For example, starting with resume reviews all the way to closing the candidates. (some random thoughts )
1) In the resume tool: Do you create a set of standard templates to send? Do you try to respond by a certain number of days? Do you contact the candidate directly, or always let the recruiter do it?
2) In the resume review, what assumptions do you make? Do you assume that you have biases, the resume may not present the candidate perfectly? Whose time do you optimize for? Meaning, would you rather cast a wider net and have your screeners pick out the candidate from the phone screen?
3) Each part of our funnel (resume review, technical phone screen, recruiter phone screen) what are we optimizing for?
4) When we are hiring for a single position, do we keep the hiring panel the same so we can easily calibrate? Who are our best interviewers, and why are they good?
5) For the interview panel, which managers make you feel your time is well spent? And why? Is it because they set the expectations, they give you good questions to ask? Does the hiring manager have good follow up, clear decision-making process on whether they move forward with a candidate?
6) Finally, within our own company, who has gotten this hiring pipeline down to a science and doing it really well? (and how do we know when we are doing a good job for ourselves and for the candidate applying?)
7)
I geeked out listening to this podcast following along the career of the creator of one of most successful compiler platform LLVM.
I started reading the book The Pragmatic Programmer, published In 1999!
It is such a fantastic book with very relevant tips for professional software engineers.
I am just on chapter 2 now, but I have already marked up the book about important ideas that I need to follow up.
How did I skip this vital book to help us in our craft?
6 offices in San Francisco, Santana Row, Vancouver, Seattle, United Kingdom, Boulder and Sydney are received 145 copies of 3 books.
Pragmatic Programmer, The Code Complete & 97 Things Every Architect Should Know.
Happy reading fellow engineers!
Everyone needs maker time at work.
Otherwise either you work more at home, or you often feel unaccomplished.
My maker time is about 60%.
(The photo is one of my favorite pencils I borrow from my daughter. I finally used up all the lead in the pencil)
20 minutes, that’s all it takes. “Could you show me how you work?” Let’s turn on screen capture. Oh, interesting, what else? Why do you like this over, let’s say this other thing X?
Oh, that’s interesting you do it this X way. I always thought people doing it the Y way.
(This post is not for you, it’s for me)
It started out as 5% of my time. Just a 4-hour hands-on workshop with new hires once a month. Now it’s the following
Last week a senior software engineer who has deep knowledge in a very specialized and high value skill (Machine Learning) for our company asked me for advice on getting more exposure and impact for her work. She was in a situation where her skills and opinions are sought after by senior leaders in engineering, product management and individual contributors.
I suggested that she start drafting up a 2 year plan, pretend that she has already been promoted 2 levels higher than she is now, and when she meets people at different levels, she can talk to them about that specific level that fits the audience. The most interesting part of my proposal is that she mentally get over the hump that she is not senior enough. I have seen very high potential individuals who are not as qualify as her really shine by operating in the next level. She is uniquely qualify because she is so deeply knowledgable in her area.
The artifact of this 2 year plan, is that she is able to pull it up and talk to product mangers to plan what the next step is, it’s a way to communicate an idea and roadmap clearly, it’s a great way to talk with VP of engineering about what to invest in and an anchoring document to validate whether new architectures align well with the plan. The plan should spell out very clearly the gap between where the company wants to be and where we are now. It should also spell out the level of investment that is needed to get from point A to point B.
I do hesitate whether this is way too bold. Whether this is even possible to operate at 2 levels removed. I personally have not done it, but I also never process the skills needed to be deep in one area. My suggestion would collaborate with someone who is the right place organizationally and also already operating at 2 levels above.
As an engineer, I’ll give you 4 attributes to define your work to choose from
You have to chose at least one of these to drive your work. Pick one and focus.
(The art piece is done by a SF local artist of migrant workers working in California central valley)
Yesterday, my direct report, a principal software engineer who is an expert in our C++ code base presented to over 150 engineers on a piece of code walk through of a “Life of a single data event as it is indexed and searched”. This is a very detailed, meticulous piece of work over the span of 3 months. 3 practice runs (with me, my team of 3 engineers and with 6 beta students). 5 interactions of content to clarify the content and presentation. 1 trial post production video editing.
After the 1 hour and 30 minutes of video content, we are doing one more round of post production editing to get better audio, camera and webcast material spliced together.
All this work is in preparation for
All this work might go under appreciated if we also don’t invest in
It is a lot of work to prepare, but hopefully worth the effort
(The photo is a piece of in store made of thick bacon from Luke’s, Cole Valley, San Francisco)
A potential engineer doesn’t have to like math, abstract thinking, typing on the computer all day creating software. I head an interview with a IBM Fellow, who happens to be a woman say that she didn’t fit the well known profile of a geek.
What she likes to do is to solve puzzles. The harder the puzzle, the more interest she had. Hard problems pique her interest. This statement really resonates with me. In software engineering, we have problems that are not deterministic. The folks who don’t let that frustrate them, succeed and make the largest impact.
Here is a small problem, how to prevent the grease from cooking bacon keep on forming around my morning bacon. This is a hack, but now I am wondering whether there is a cast iron rod I can get to solve the same problem. By elevating one side of the skillet underneath?
Last week at work, I learned that an executive has been working on a diversity and inclusion effort monthly. They really care about moving the needed to increase the gender and under represented diversity in our engineering ranks.
I was pleasantly surprised that they are so active in this area. I personally have not heard it from my direct chain of command. I have not heard individual contributors mention that they felt the leadership care deeply enough. We do hear it from our company’s top leaders. We see it in our campaigns. Now that our division leader also express their deep engagement, this is very positive news.
This brings me to my point. If you are a leader, and there is something you are actively working on and you care about it, please communicate! Communicate directly via email. Communicate directly in a blog post.
After you communicated once, next month, communicate again.
( my opinions are my own and not my employer)
I just read this article:
NY Times: Facebook Did Not Securely Store Passwords. Here’s What You Need to Know. https://nyti.ms/2YdyAKj
As an engineer, I don’t understand how it could happen to a company like Facebook.
I write a lot of internal documentation, blogs to convey ideas for my future self as well as for engineers internally to reference.
Younger engineers often are reluctant to write anything other than code.
Here are reasons to write
Write often.
Our VP Of Engineering asked us to think about this at work. We are all busy at work, but are we adding value to our customers with what we are doing now?
What is the next most important item on our backlog that add value to our customer immediately?
It’s a great way to prioritize relentlessly. I struggle with knowing how to prioritize in most of my career. I tend to work on a lot of projects all at once and taking a long time to deliver value.
If you send an email to me, it’s very likely (95% chance) I will reply
My full time job is to work on engineering productivity.
Often folks ask me what I do every day / every week?
I often tell them what I’m working on this quarter.
Well, the first quarter in 2019, my focus is on creating coding labs and content for new engineers that join Splunk so they understand what tools are available for them that is uniquely only available at Splunk.
Every week, I will meet with all newly hired engineers for 2 hours and show them the tools available to them. Every 2 weeks, we will meet for 6 hours and they will do the coding labs we have created for them. I will likely talk with them for 30 minutes about the products at the company, the community, my own story at Splunk and what makes for an effective and impactful engineer. What is the culture in the engineering organization?
On an ongoing basis, I will solicit internal and external folks who have worked on interesting problems to present during our weekly tech talks. The purpose is to share the work so other might learn and make use of the work themselves. Or the talks are to inspire them to think bigger and beyond their daily work.
Anther part of my work is just listening to engineers and they may reach out to me to help them get their work done. This could be a wide range of topics. It could range from just looking for the name of someone who could answer a technical problem. It could be just brain storming with me about a problem they have in finding a solution to replicate a problem with a particular mobile app. It could be helping them finding a solution when they feel overwhelmed with too many meetings.
When I listen to an engineer on a specific problem, I often would try to help them solve the initial problem. Make sure they are unblocked. Then my real job kicks it and I need to figure out whether this is a more systemic problem. I would reach out to other engineers and other engineering managers and figure out who else has the same question or problem. Or I would write a document so that others could benefit in the future. I could also create a backlog EPIC so the team of 3 engineers might brainstorm with me on a more longer term and thorough solution.
Still to be written, Saturday badminton awaits
Still to be written, Saturday badminton awaits
Still to be written, Saturday badminton awaits
Two and a half years ago, when I joined my current company I was attending a new hire training and the last slide showed a very long URL to a document that we were suppose to remember for more information.
I asked the presenter whether there is a URL shortener so that we URLs are easy to remember, easy to share verbally and it’s meaningful. The presenter was puzzled and said no.
I researched online and found an open sourced project called YOURLS, asked IT for 2 machines for me to prototyped the solution, launched it and demoed it to my team and emailed an internal list promoting the idea and get feedback.
The feedback was immediate but mostly negative
There were a few folks who supported the idea because they used URL shorteners like http://bit.ly/ and said to give me a chance.
I continued to work on the project, demo’ing the http://GO/ URL shortener along with enhancements during our quarterly hack weeks. I started sending easy to remember URL’s to common thinks like go/food, go/wifi, go/printer, go/tony
Slowly the serviced gain traction and adoption, but very slowly. After about 2 years, I noticed there was some was drastic changes
So what did I learn from this experience?
In June, the two engineers will formally accept a Turing Award, the computer science equivalent of the Nobel Prize, in recognition of their work. Hennessy later became president of Stanford University and is now the chair of Alphabet; Patterson is a professor emeritus at U.C. Berkeley and a distinguished engineer at Google
Listen to the podcast: John Hennessy and Dave Patterson, winners of the Turing Award 2018
I’m celebrating a milestone for a personal 10 year project and I’m seeking your time and attention.
Impactful Engineer shares the stories and journeys of women and men who are making significant impact in the software industry. The purpose of Impactful Engineer is to inspire young software engineers to see that are many paths they can take to move forward in their careers and grow their impact wherever they work
As I promise to my readers, I embargoed interviews until the first woman engineer interview is done.
The finished version is now published and I can’t wait to share it with my supporters and core audience (young engineers looking to grow and esp. women)
When you have 24 minutes to spare, please read the interview with Lyn Campbell who is a corporate VP, and she graduated an English major. I am looking for feedback on how I can make the site and interviews better.
Here is our first interview with Lyn Campbell, Corporate VP, Global Operations at Proofpoint
This post is not meant for you, it’s meant for me; So no need to read.
People ask for advice. “What should I do, I’m running into this situation where I don’t know whether I should choose A or B?”
Rather than telling them what they should do, I have been realizing that I don’t have the right answer either because I’m not an expert in the area that they person is asking. Instead, I ask them to take a leap of faith with me and imagine the world 6 months or 1 year from now.
I would ask the person, to imagine what success looks like, regardless of which path to take. A or B. This definition of success, would the most hard to please person also agree that the success is undeniable? Would your team agree that this success is also so obvious that it would drive them toward this goal?
Now given this picture of success, which path should you take, A or B?
If the answer is obvious, then we have a winner!
Alright, now it gets fun! Let’s say option B sounds more like the ultimate solution, but it’s not perfect yet. What if I ask you to take B, and instead of finishing 100% of the work, but executed at average quality. Take option B, do only 50% of what you originally sign up for, but do it really well, teach another team, have the other team accept responsibility for the work and your team can move on and do the same for a new team? Even though you could only accomplish 50% of the work, the team you taught is now self sufficient, you are not weighted down by the work as you move from team to team to help them.
When I have been taught how to think through a problem, and ultimately come up with a solution on my own, I have come away learning one of the principals of how to think about problems. With this way of thinking, most class of problems can be solved the same way over and over again. This is why, with the right person, I also try to pass on this technique.
Recently there has been news reporting about #deleteFacebook, #metoo, #marchforourlives and #nevergain. You can track the interest over time at Google Trends
For me, I wanted to know the relative traction each of these movements are actually making. Looks like #deleteFacebook is gaining traction, check back in 7 days to see if the internet meme continues.
While I’ve done #deleteFacebook a few years ago, I got back on recently just to connect to one person but now, I’m deleting it yet again.
#deleteInstagram https://help.instagram.com/370452623149242
This page is http://bit.ly/delAllFacebook
http://calnewport.com/blog/2018/02/09/facebooks-desperate-smoke-screen/
The Smoke Screen
In my opinion, the first problem — the engineered addiction — is the more pressing issue surrounding social media. These services relentlessly sap time and attention from peoples’ personal and professional lives that could be directed toward more meaningful and productive pursuits, and instead package it for resale to advertisers so the value can be crystalized for a small number of major investors.
Thank you Justin Baldoni, because of your speech I *know* I need to dedicate 10 years of my life to mentoring women engineers!
In this blog post, Tim Ottinger shares his thoughts on what we should measure in the software industry and more importantly on what not to measure.
https://www.industriallogic.com/blog/what-should-we-measure/
When social media sites like Facebook requires businesses to pay to show content to their own followers, it is time to rethink how businesses engage with their customers. Facebook puts a limit that only 2% of followers will see shared content if a business does not pay.
Give this article a read:
Social Media is dead. Long live social media. – https://lnkd.in/gwUAzHp
Dear LinkedIn,
You are the only service out there to discover data about companies both private and public, what type of employees work there, which universities the employees graduated from and lots of other useful data about the professional lives of the workers.
LinkedIn is a fantastic service for professionals.
There have been many articles in recent years published about the lack of diversity in technology. Even the Federal regulators call on tech companies to improve diversity. (sfgate article May 18th, 2016)
Many top technology companies voluntarily publish annual reports on diversity. For example in 2016 Google has 19% women, 1% Black, 3% Hispanic in tech roles. (2016 data from Google on diversity). Pinterest (2015) has 21% women, 1% Black, 2% Hispanic in tech roles. Twitter (2015) has 13% women, 1% Black, 3% Hispanic in tech roles). Facebook (2015) has 16% women, 1% Black, 3% Hispanic.
While voluntary data from companies like Facebook, Google, Twitter is great. This data is not available from all companies and the data is not consistently published to make it easy to compare data across companies.
What if LinkedIn actually made diversity data transparent and real time to the public?
Would this encourage different long term behaviors for tech companies now that the data is no longer just voluntary?
Would this transparent diversity data lead to a much interesting interaction between job seekers and employers since this data could be extra dimension for job seekers to judge the type of companies they want to work for?
Tony T.
Readers: What do you think? Would you like to see diversity data published by LinkedIn? Share and tag on LinkedIn please.
This is worth listening to learn about how Facebook thinks about software and expecially how they are trying to push software developer forward for the entire industry.
React and React Native are being called out as very successful open source projects from Facebook. Cassandra has also been a huge winner. The interesting take away for me is that Facebook thinks that if a project thinks about open source from the start, then the right abstraction and design will be done correctly from the start.
Give it a listen with your favorite podcast app. Subscribe to ‘Changelog’
This week we’ve got a big show with James Pearce, Head of Open Source at Facebook to talk about that very subject — open source at Facebook. We talked about his path to software development, why he’s the person to lead open source at Facebook, their view on open source, their culture of open source, how they choose what to open source, and more importantly — how they focus on, support, and nurture the community.
I like the simple and clear mission:
Update: Oct 24, 2018
2 years at Splunk so far
Personal
Professionally
My original post
I joined Splunk as a software engineer helping internal engineers be more productive, build tools, processes, documentation to make their lives easier. I have only been at Splunk since April 2016 so I have focused on observing how software development works here and trying to absorb and learn from the smart people here.
Recently I have been focusing my time on hiring engineers into my team as software automation engineers and when I talk with them, it started to crystallize in my mind why I love working at Splunk.
I like the simple and clear mission:
We make machine data accessible, usable and valuable to everyone
People who use Splunk love our product. This is important to me personally and hopefully also important to engineers who work on the product. It started out as a product to let system administrators and developers analyze their logs and quickly grew into a product that is used up and down across an organization to get insights into all the data spurring out of all of our ‘machines’ (web servers, point of sales systems, key entries, thermometers, mobiles devices). It lets you make decisions based on real time data your current machines already emit without being overwhelmed.
The core product from Splunk is our forwarder and indexing software with a REST API. This core software has been hardened over 10+ years and its cross platform (Linux on various CPU platforms, Mac, Windows, Solaris). We work in C++, Python and JavaScript. The software is shipped to customers on premise, so they have to be rock solid and well tested. The C++ programmers here are hard core.
I came from Yahoo, where scale matters. Splunk is also building scalable software because the demand of our customer requires us to scale to huge amount of data with real time requirements. Think of how much data is generated by a customer with a simple N tier architecture. Now Splunk has to index and search across all that data, in real or near real time.
Splunk has been in business for a long time, since 2004. So far, I have noticed a few common traits. We are
We have a strong culture from our founders and now our employees have carry this culture forward. Everyone I have met at Splunk really enjoy being here, we pride ourselves in helping each other as well as challenging each other to innovate and disrupt.
We Splunk ourselves. We use the Splunk product internally to measure ourselves. It took me a few weeks to get use to this new way of thinking. “If it is not worth measuring, it is not worth doing”. While we are not perfect here, it’s ingrain in our culture.
Instead of selling advertising or user data like many consumer internet companies, we sell a product that people use and are willing to pay money for because there is a value proposition. This is personally important to me after working at Yahoo for over 16 years where the core business was about harvesting user behavior and targeting ads to users. I have finally install ad blockers to say goodbye to online ads.
You can browse for engineering careers here http://www.splunk.com/view/SP-CAAAGMJ and get in touch with me at tonytam.engineer@yahoo.com for a quick referral.
From Edmond Lau’s The Effective Engineer blog
1. Optimize for iteration speed.
Quick iteration speed increases work motivation and excitement. Infrastructural and bureaucratic barriers to deploying code and launching features are some of the most common and frustrating reasons that engineers cite during interviews for why they’re leaving their current companies.
Read the rest of the 9 things that a team can do to build a good engineering culture: What makes a good engineering culture?
(The photo is of my sister and I in China 1975)
I was listening to Leo Laporte’s Tech Guy podcast and he was commenting on the FBI vs Apple case about unlocking an iPhone used by the the shooters.
He was pointing out the following misconceptions in the popular press. Inspired by his comments about all the privacy fallacies, I wanted to point out what you need to do in order to have true privacy.
If you have iCloud turned on, where it syncs your email, photos, text messages, Apple will hand over the information to the FBI, much like the phone company will turn over phone right records. The shooter’s phone had a 1 month old backup to iCloud.
turn off iCloud
Apple and Microsoft have a backdoor to your phone if you have auto update turned on. The auto update can completely replace the software and security on your phone.
turn off auto update
Everyone has a GPS, camera, phone with cell signals in their pocket with all their emails and documents synced. The government can track anyone who has a cell phone.
turn off GPS, cover the camera with tape, turn off cell. Buy a disposable phone with cash
The 4 digit code to unlock your phone is not secure, but it is very convenient.
change it to 16 digits
Fingerprint readers are also not that hard for FBI to hack.
turn off finger print reader
If you use Gmail, Yahoo, Outlook, Box, Dropbox, Evernote, even if your data is encrypted, they have private keys that can unlock your data and the FBI can force them to unlock. When you send an email, the receiver has your email content.
do not use hosted email. do not send any emails to anyone
If you use Google Maps, it knows where you go, how long you stay in one place, and it is able to know if you are in a restaurant, any local businesses and can guess where your home and work place is based on hour of day.
delete Google Maps, turn off GPS
Now you have a more secure phone, that does nothing and impossible to use :) But you are more secure and you have more privacy.
Tony
–
Tony Tam
The Internet Engineering Task Force (IETF), the body responsible for overseeing the internet’s technical standards, has approved HTTP 451, “an HTTP Status Code to Report Legal Obstacles”. The new status code will show viewers when a web page is being blocked for legal reasons.Source: Error 451 is the new HTTP code for online censorship (Wired UK)
“I suspect that censorious governments will disallow the use of 451, to hide what they’re doing,” Nottingham wrote, on a similar note. “We can’t stop that (of course), but if your government does that, it sends a strong message to you as a citizen about what their intent is. That’s worth knowing about, I think.”
We do not pay for cable, never did and do not have a TV. We do have a movie projector and a 90″ drop down projection screen.
Looking at our digital entertainment obligations:
We get the recent DVD ‘s free from the San Francisco public library.
We pay for Comcast for 6mbps for faster internet than AT&T, this is not entertainment but a utility.
We used to pay for Pandora, ads-free but the ads are not that annoying and our family is okay now with free Pandora.
My daughter buys songs from iTunes.
We pay for Netflix for a few months and it became too hard to find movies to watch or many movies were not available, so we canceled.
We pay for Hulu Plus, letting us watch TV shows and now we pay for Hulu ads free as well because the ads take away from the experience. $11.99 / month is our monthly obligation.
Other areas we have paid, is $3.99 / movie from Amazon (iTunes is always $1 more expensive). iTunes for movie download because it is so simple for airplane rides.
–
Tony Tam
2018 update: Now I have box.com for long term storage, dropbox for daily syncs
update: box.com is not doing any better either after my switch. The box.com sync app hung and I had to kill it.
Recently the dropbox.com sync app on my Mac has been chewing up 100% of my CPU causing my machine to heat up. While I am a technologist and I can take the time to try to figure out the problem, the cost of switching to box.net is pretty much zero.
Also I’m taking this time to move only the files that I really care about over to box.com.
While I did love dropbox.com when they first started, I feel like they’ve taken their eyes off the ball when they started adding all these extra features like Camera Upload, Screenshot upload that they’ve not done a great job with their core product which is just plain file syncing.
As a software engineer, I had one of the most rewarding day in recent months. When I got into the office, a developer from Flickr filed a ticket about UI browser testing into another Jira queue (bug tracking) and I happen to see that it’s related to the SauceLab project I now own as a technical product owner.
There was an error message she was reporting so I asked her to get on HipChat or find me on instant messenger so that I can help her. She asked if we can meet face to face and I happen to have time at that moment. We sat down and I told her I was just working on a similar issue last night and was going to document how to get SauceLabs working using an open source testing framework, Protractor. So I deeply understood how cryptic the error message was but I was confident I could help her.
I open up the source code for Protractor and showed her the code path of why her functional test was not using SauceLabs, but was trying to use local Selenium. Here is the code for the nerdy reader. runner.js. I talked her through how to get her test running, what code needed to be changee. She ran the test and I could see how happy she was that she could get her functional test finally working. I create an account for her team and I asked if I can meet up with her team in San Francisco to talk with them as well. She was very joyful that I was able to helped her in real time and get a meaningful roadblock remove. For 1.5 hours of work, one person’s pain point was removed and I also saw first hand how difficult it was to get SauceLabs working inside Yahoo.
What I learned: document better for a newbie, have a sample application setup that people can copy from and meet with people 1 on 1 to help them through their roadblocks, have open office hours.
Now the next meeting I had was a 2 hour session with the developer for Yahoo Sports who really really wanted to get functional testing working in the build pipeline for a internal application as well as for running functional tests on her local development machine. We agreed that we would not leave until this was fixed. I spent the better part of an hour understanding what I need to fix, working with a co-worker in Yahoo Search who solved this problem with me before and testing the solution. Once I was certain the problem would be solved with my prototype, I sat down with the Sports engineer and I talked her through what code needs to be changed, how she can best use SauceLabs by structuring her accounts. When she was finally able to get her functional tests to run locally, she gave me a big hug and thanked me for fixing months of frustration. She later told me this was the best thing to happen to her in the last 2 quarters.
After I went back to my desk, I really felt really fulfilled in my job. I’m currently doing what I best at: using my interpersonal skills, my experience in software engineering and being able to dig really deep into a problem, my empathy for engineers’ inefficient workflows and my current deep knowledge of how to get SauceLabs working for developers.
I have not felt this good about my direct contribution to the developers at Yahoo in a long long time. As a software engineer, I spend my time writing documentation, answering questions, writing code and going to meetings. But for me, the time spent to help another fellow engineer and then figuring out ways for hundreds of other engineers never to encounter the same problem again is the most fulfilling time spent.
–
Tony Tam
My co-workers and I were doing some user studies with an internal developer who was using our tools in order to see how he was using it daily and also asking him how he debugs problems with our tools.
It was amazing to see the developer go to the homepage of the tool, he noticed a giant 302 error page, and he quickly reload. Then he jump to another page and got a 500 error and quickly reload again. I let him do this for a few more minutes and then asked him if that is his normal reaction when he sees these error pages. He said, ‘yeah, a reload usually clears up the problem‘
I had to stop my self from pulling my hair out! This is the world our developers live in where they accept that these errors are normal. This is the quality of service they’ve come to accept of our tools. Where errors are now the ‘norm’ and not the exception.
And this is just 5 minutes into to the user story interview.. Part 2 to come later.
What I’ve learned after this user story is that if the owners of the service do not personally get offended and treat errors as totally unacceptable, their users will treat the ‘error’ state as the new norm.
–
Tony Tam
Really enjoyed this background of DevOps as a movement to remove friction from a product idea to a feature making it to the end user. Not focus just on continuous delivery, not focused on specific tools. Worth listening to for anyone who cares about how to increase the velocity and quality of software releases
On August 08, 2015 my wife and I decided to get out of the stock market 75% into bonds. Leaving 25% in the market. We made this decision because my daughter will be going to private high school for 4 years and very shortly she will need money for college.
We asked ourselves 3 questions
I pull up the chart for S&P 500 over the last 20 years and I feel very uncomfortable with the current bubble in tech and the stock market in general. You can see the 2000, 2005 bubbles compare with the recent highs made in S&P 500.
Then a week later, when I was looking at my Yahoo Finance app, the YHOO and AAPL stocks showed YHOO at $34.04 and AAPL at $112.08. my daughter asked me what does the price mean? I haven’t taken the time to talk with her about stocks and money in general and thought that it was a good chance to do that.
So I explained the price of stock doesn’t mean anything except for those people who bought the stock at a higher or lower price. The worth of a stock is in it’s Market Cap, which is the price times the number shares. Based on AAPL’s value, it’s roughly 18 times more valuable than YHOO. Google is roughly 10 times more valuable.
She asked why don’t people just buy the stock and sell it again immediately. I pulled up the charts for GOOGLE, YHOO and told her that it’s not possible to know when it’s a good time to sell or buy in the short term. It’s just like gambling, you cannot tell the future.
Also I told her that working for a company that is publicly traded, like I am for Yahoo, it’s best not to pay attention to the stock price or you will be up for an emotional roller coaster ride.
For example, for GOOG from AUG 2014 to July 2015 the stock was down or just flat and did nothing. If you were an employee who paid a lot of attention, then you were basically left with zero gain. Only the recent euphoria did the stock pop. If you bought Google stock, would you sell at the low, sell at the high or keep it for future gains?
The people who buy the stock are mostly in it to make money and do not really care deeply about the product or the work that is done within the company. So an employee should have the intrinsic motivation for the great work instead of the stock price.
Look at Twitter as another example. Great product, great engineers. But now that they are having a crisis because of the CEO stepping down, no user growth and a sinking stock price. Does that make the work any less valuable and interesting? Probably not. But the morale in the company is sinking. As a public company, the motivations can become too focused on the outside press and the stock price.
I think told her how much my wife and I have saved up for her tuition for college and since she is only 4 years away from college, I told her that I do not want to risk her college fund and I pull 75% of my S&P 500 stock investments into bonds. I have a feeling that the stock market is heading for a correction of at least 25% to 50% because the ridiculous tech euphoria that is out there. There are plenty of privately own tech businesses that are burning cash, loosing money and have no viable business plans. There are people graduating from 8 weeks of tech training classes and getting offer 6 figure salaries. This is a sign of an over heated market.
Finally she asked me if I was good at picking stocks. I said I was horrible at picking stocks. Because it requires high discipline, removing the common human weakness of not wanting to loose money. That is why I told her I buy the S&P 500. I told her, I’m pulling out of market based on my own uneasiness with the stock market and that we have to pay for college.
As for all stock market predictions, this a 50/50 gamble. I could be right or I could be wrong, but I sleep better.
Slides: http://www.slideshare.net/jedi4ever/code-but-not-as-we-know-it-infrastructure-as-code
Book Preview: http://shop.oreilly.com/product/0636920039297.do
”
With Early Release ebooks, you get books in their earliest form—the author’s raw and unedited content as he or she writes—so you can take advantage of these technologies long before the official release of these titles. You’ll also receive updates when significant changes are made, new chapters as they’re written, and the final ebook bundle.
This book explains how to take advantage of technologies like cloud, virtualization, and configuration automation to manage IT infrastructure using tools and practices from software development. These technologies have decoupled infrastructure from the underlying hardware, turning it into data and code. “Infrastructure as Code” has emerged alongside the DevOps movement as a label for approaches that merge concepts like source control systems, Test Driven Development (TDD) and Continuous Integration (CI) with infrastructure management.
Virtualization and cloud make it easy to rapidly expand the size of infrastructure, but the habits and practices we used in the past with hardware-based infrastructure don’t keep up. Teams end up with hundreds of servers, all a bit different, and find themselves unable to fully automate their infrastructure.
The book will go through the challenges and problems created by all these wonderful new tools, and the principles and mindset changes that a team needs to make to use them effectively. It describes patterns, practices, and ideas that have been adopted from software development, especially Agile concepts, and brought into the IT Ops world as part of the DevOps movement. These ways of working have been proven in many organizations, including well known names like Netflix, Amazon, and Etsy, and also in more established organizations including publishers, banks, and even the British government.” – from http://shop.oreilly.com
While chatting informally with some co-workers, I heard some of them talking about their frustrations about not feeling recognized for their work or working on projects they don’t think makes a difference.
Corporations, which usually mean people in management roles, value those individuals who go beyond doing what they are told to do and look up from their daily work and try to plan for what they want to accomplish in the next 9 months.
As engineers, we are judged on our productivity but more importantly for our potential and influence. For any piece of work we produce, how many other engineers does it influence? Is the engineer helping others to be more productive? Can the engineer take on bigger projects?
When we work on any project, we should ask ourselves what is the BHAG? What is the elevator speech if I happen to be standing next to the CEO and she is asking me what my project is about.
If you are working on a project that you think is not adding a lot of value, finish up the project, document it well and ask to be assign to something else. Better yet, dream up something you are really passionate about, and pitch your idea to as many people as you can.
I sometimes say in jest that in the corporate world the “humans are the problem”. Communication, expectation and difference in perspectives are some of what causes executions of projects to not work.
This is a response to frustrations expressed by people on my team that “other” people are doing things the “wrong” way. I find it fascinating there are such divergent views of the same project. Thus happens often when a project spans across multiple teams and multiple timezones. Also when team members play very well defined roles, it may be difficult to see gaps which don’t fit these roles.
For example, when a customer reports an issue, and he has already done a lot of troubleshooting on his own but has hit a wall. He reports a ticket as a bug, with very cryptic message such as “feature X” is not working. His expectation here is that someone will respond in less than 24 hours and maybe even provide a fix for the problem. The team that is assigned the ticket 1) may not be the right team 2) may be fully committed to other tasks 3) may not be looking at incoming requests on a regular basis. In a scrum environment, the team also is highly incentivized to deliver what they started the sprint with and ignore all incoming request unless it’s a spike item.
The original ticket may not even get looked at for 2 days. Meanwhile the customer is frustrated with lack of confirmation. This is when there may be a start of escalations to various management and eventually the original team will have to spend time looking at the item anyways, but precious time will have been wasted on escalations.
Humans are inherently flawed in the way we perceive the world. We can only see the world in a limited number of perspectives. In the corporate world, that often is the perspective of our well defined role. When we can see more than one perspective and if we do this for a small amount of time everyday, it goes a long way to solving and filling the gaps in expectations, having empathy for the person on the other side of the team boundary and the other side of the world if that person is in another timezone.
A corporation is a mini version of everyday interaction in our personal life. When we think there are problems, it usually means “humans are the problem”. Which to me means: we should look to ourselves to see what we can do personally to change and fix the problem.
T
April 21st, Google will rank sites higher if they are mobile friendly.
Check out your site’s mobile readiness with Google’s tool
Nicholas Zakas take on consensus building.
http://www.nczonline.net/blog/2015/04/14/consensus-driven-development/
I am working on an Android app which takes the menu data from Locu.com API display the dinner, drink, dessert menu and allows a customer to add items they are interested in into a ‘cart’ for the wait staff to look at and discuss the item the customers are interested in.
I’m using the project as a learning experience. In the last week I was struggling with getting Android Fragments to work properly because I have nest Fragments. The app has a main Activity, with a tab viewer, 3 Fragments and Fragments inside those 3 Fragments. My app would often crash when I swipe back and forth and it looked to me like the Fragment::onCreateView() was called multiple times which was what the Fragment lifecycle was suppose to do.
I traced this down to the Android core code dealing with Fragments and thought maybe the problem is with the v4 API.
I have tried these 3 routes and I’ve finally found the fix this morning
What I’ve learned
When I’ve found things to be useful, I have been adding the to my bit.ly Android bundle
Think Like A Freak – Currently just started, but already loving the way the authors encourage us to use data instead of intuition to understand the world.
A good graphic to have handy if you are using git
What are the best life hacks to tackle procrastination? – Quora.
“Work expands so as to fill the time available for it’s completion”
My daughter C. designed the logo, intro video and the entire app screen for this fun math game. Try it out and let me know what you think.
download on
The 24 Game is an arithmetical card game in which the object is to find a way to manipulate four numbers so that the end result is 24. Addition, subtraction, multiplication, or division are used.
The game has been played in Shanghai since the 1960s, using ordinary playing cards, but now it comes to your iPhone.
You can play by yourself or head to head with another player for a unique 2 player challenge.
Example:
If you get 3, 5, 5, 6 then a correct answer would be 3 * (5 + 5) – 6.
Other easier 3*8, 4*6 combinations are (2+1) * (4+4) or (2+2) * (1+5)
Difficult ones are the ones where division comes in 6*8/(7-5)
3 Levels for all age groups
Easy for 6-8 : 1 point
Medium 9-12 : 2 points
Hard 12-99+ : 3 pionts
Father Daughter team
– Designed by C.
– Music by Will – featured on https://www.youtube.com/user/thesecuritycame
– Engineered by Tony
I want to learn from others on how to maintain good habits, one of those is to code everyday.
I have missed a few days, but I’m very happy with my progress so far. It has resulted in 3 mobile apps published on the Android and Apple Appstores
Nice article about some of the differences between development in iOS and Android.
A quick follow up to the simple tipping app for Andoroid
This is the iOS version of the How To Tip app
I use Trello to keep track of my long term life goals. I setup ‘organizations’ for ‘health goals’, ‘work goals’, ‘money goals’, ‘family goals’.
Then setup boards for each goal.
I still use Remember The Milk for single task todo. Using Trello allows for multiple taks for each goal. I also look over all the goals to remind myself what my long term goals are to keeo me focused.
One change I am making is to copy what Marissa M. does with writing down a list of todo for the current day on paper.
How To Tip Calculator – Android Apps on Google Play.
Calculate how much tips to pay. 10%, 15% or 20%
Also includes a guideline on tipping in restaurants, bartender, barista, delivery person, hairstylist, cab driver, chauffeur, hotel housekeeper
In trying to pick iPhone 5 or Samsung Galaxy S3 to replace my Blackberry.
I was torn and have switched back and forth for the last 4 days. I finally found an old document written on November 1, 2011 7:52 AM in Evernote. I wrote this document when I had the Blackberry and why I actually enjoyed having it. It’s nice to have an objective document written before any of these phones were released.
The winner is Gallaxy S3 for me personally
Must Haves
– replaceable battery S3 wins
– easy to type up emails S3 wins
– allow for internet tethering S3 wins
– easy to read screen to read nytimes, software documentation without eye strain tied
– easy to type up tasks and capture meeting notes tied
Nice to have
– easy to deal with large volume of emails tied
http://radar.oreilly.com/2012/04/computer-book-market-2011-part4.html
It’s that time of year for me to reflect on why we are here working everyday. Please chime in with your thoughts.
What motivates us to be happy and motivated at work?
Money is a great motivator, it’s an enabler for future security, giving our family what they need and want and a validation of our worth in society. There have been a lot of studies online which show that incremental increase beyond your basic needs do not increase happiness.
From personal experience, throughout my work life, I have received large bonuses, increase in pay, stock option pay outs. The increase in happiness has lasted at most a few days. Surprising even myself. I told myself to enjoy the increase in monetary longer, but it fades quicker than you expect.
Recognition by your peers and your upper management can have a much long lasting affect on your happiness. As more people recognize your good work and actually regularly make comments about it, this can contribute to your long term happiness because it contributes to your sense of purpose in society.
Being valued by others as a source for advice goes beyond the output of your work. You are being seeked out to help others to grow their own career. This will have lasting impact to the people you affect. Sometimes this will even create life long bonds after both of you leave for different companies.
Making a difference in the world and self motivation would be the highest level of sustained happiness. When you feel like your work is your life calling, then your happiness is fueled by the opportunity to work. Your work increases your happiness. Your happiness makes you want to do better work. And the cycle fuels your growth of happiness.
Keep in mind this doesn’t mean you have to work more hours. A balance between work and personal life will lead to happiness long term.
T
Heads up…
Do you communication enough with your direct reports?
What about your peers in the same group?
What about other peers across the company?
And your management chain, 1 level, 2 level and ultimately up to your CEO?
How often should you communicate? What is the most effective way to communicate (email, face to face, blog post, tech talk?)
The Livestand from Yahoo! iPad app launched on Nov 2nd and became the #1 News iPad app and #2 overall app on the iTunes AppStore in 1 day. Today on Friday Nov 4th, it became the #1 app in 3 days on iTunes. You should try it yourself and compare it with Flipboard and Zite and see for yourself which one you like. Perhaps it’ll be another app on your iPad to satisfy your reading needs alongside those other great apps. There is always room for 3.
It’s testimonial to the great work done by the Livestand team, Alison, Jin, Mike, Ric and the engineering members whom I don’t know personally. I know internally it was great feat for the following reasons.
Why am I re-energized to work for Yahoo!?
Thanks Livestand team for injecting more energy in this 12 year Yahoo! veteran !
You might also like: Why I Came To Yahoo! And Why I Am Still Here?
In June 2011 this year, when I was looking at my investment accounts, I noticed that it had fully recovered from the nearly 40% drop since March 2009.
I was in the middle of selling my house, moving into a new rental, planning for a wedding for next year and starting an investment in a restaurant. I asked myself how I would feel if the market dropped another 40 percent. Was I mentally ready?
The answer was that I was going to very stressed *and* I might be tight on cash flow.
I immediately liquidated all stock mutual funds out of my 401K, 529 plan,education plan for Cate, Cate’s custodial account and my investment account. I moved everything into the Vanguard Total Market Bond fund.
The reason I am writing is that I had put a note for myself in remeberthemilk.com to evaluate the decision 2 months later. And today is that date. This is how using a GTD system with tools like RTM is helpful.
In hind sight, I was very lucky to be out of the market when I am in need of feeling less stressed.
T
Something I started doing last year is to ask for recommendations on my LinkedIn profile while I’m still working at the company. Instead of only doing so when I have already left the company.
LinkedIn’s value is the business contacts and also an online resume with real recommendations from people who are also on LinkedIn. To maximize the value
Of course this is not a common practice. In order to not scare my current co-workers that I might be leaving, I preface my email honestly. “I’m not looking to leave any time soon, but I want to keep my LinkedIn profile up to date. Please write a recommendation for me….etc”
How many meetings have you been in, or email exchanges with a selected small number of people. What you discuss and decided doesn’t get surfaced to the right people? How do you know where to send the information to?
In general, how do you get the right information to the right people?
I’m trying something new, that is model after how w3c setup their email lists. They have a working group <email list> and a public-<email list>.
I’ve started a t####-public@yahoo-inc.com list internally at yahoo to try this out where I will forward emails decisions that is of value to others.
I have been wanting to be a proficient iPhone programming for 1 year now. I have tried 3 times to start but have stopped for various reasons.
My most recent attempt has worked, and here is what I’ve changed
Focus, pay attention to only one thing at a time
I have created a separate account on my machine named ‘Tony Tam iPhone’ so that when I’m learning or doing my homework for the iTunes U CS 193 class (iPhone class), my context on the computer is all related to that task at hand. The Xcode project, my Evernote, email my email address is related to iPhone programming. Multitasking doesn’t work for humans
Daily Habbit
I work on this every day, even if it’s just 10 minutes a day. When I take the bus to work, I always watch the podcast or work on my homework. Have a daily commitment helps, and I respect myself more when I stick to my commitments
Do the homework, follow instructions
I take the class online as if I was there. I do all my homework assignments and even try for a few extra credit. I even try to finish the homework in the same timeframe like the real students do.
That was my thought last year… however, I have changed my stance. The most successful way to get children and adults to change is to model the behavior yourself consistently.
If you want people to act a certain way you model it over and over again. Don’t ask them to change though, just act on it. For those who can change, they will slowly follow, for those who do not have the ability to change, they won’t.
You can only accept this, be happy if your behavior changes at least one person.
I have seen this multiple times being successful
I have a reminder to myself to review whether I’m doing what my job description is defined as
Here is the job description and how I rate myself from 1 (needs work), 2 (meets), 3 (exceed)
• Evaluates new technologies; builds prototypes if necessary
• Writes documentation and provides training on technologies and solutions
• May own shared code components
Responsibilities as a Solutions Architect
• Maintains visibility into properties and platforms
• Recommends solution architectures to properties and advises on best practices
Responsibilities as a Technical Product Manager
• Defines engineering requirements for platform teams
• Performs strategic planning and analysis for her/his area of expertise across Media
• May act as primary Media point of contact for platform teams; or, works closely with Product Manager in that role
Responsibilities as an Evangelist
• Ensures that Media property engineers are aware of recommended/mandated solutions
• Ensures that platform teams are aware of Media requirements and mandates
• Advocates best practices and solutions inside and outside Yahoo!
See Also: Solution Architect: 2nd week iteration on my job at Yahoo!
I have been mentoring several engineers and a common theme has emerged.
We often don’t spend enough time actively managing our own career.
These are the positive steps you should ask yourself.
1) The things I am working on right now, are they important and will they help further my career?
2) If they are not, perhaps I should stop doing them or hand them off to a junior person who wants that responsibility
3) Who in the organization would give me an honest opinion besides my manager?
4) What do I want to be in 3 years and is what I am doing getting me there?
Another good exercise is to write your year end review in the beginning of the year and you will notice what is glaring obvious.
I will not try to repeat what a software architect is, you can read it here at wikipedia
There are various types of architects.
A large part of the duties of an architect in a large organization is to design and to communicate. In my experience as an application architect and in my observation of other architects, I believe the following are the soft skills that are needed in being a successful architect in a large organization.
Run Effective Meetings
It’s rare to see a meeting that is small in size when an architect is in the room. This is actually a good thing. This means the architect has a forum of people who are there to listen. Make sure you prepare ahead, arrive early, get the logistics all setup. Prepare the agenda ahead of time, prepare the material ahead of time and make sure to set the context for everyone in the room. If there are people in the room who need extra time to catch up, you can either prep them ahead of time or it’s worth the extra time in the meeting to make sure they are caught up. Try not to cram a lot of information, but focus on the most important decisions or information. It’s better that people walk away in agreement on one thing rather than being confused with 5 things.
Understand How Decisions Are Made
Often times, there are more than 1 way to solve the problem. There are usually tradeoffs in picking any one solution. Make sure to communicate these tradeoffs and also avoid jumping into the solution you prefer. Layout the tradeoffs, allow others to weight in, clearly communicate who the ultimate decider is. When the decision is going to be made, expect there will be people who will not agree, that is OK. But make sure to talk with the people who disagree that you understand and ask for their help to implement the decision if they want to prove you are wrong.
Listen, Stop Talking
This is one of the hardest thing to do. In a meeting, as an architect, after you get your 15-20 minute, shut up and listen. Let others talk and you make sure to listen. Capture what people say, listen and understand why they are saying it. Think about the outcome of the meeting, would it be better served for you to talk or let others talk. Most of time, I try to let others talk and ask questions. When there is silence, this is the perfect time to go around the room and ask for a vote or an explicit consent. Leave 10 minutes at the end and focus back on getting the outcome I hope to achieve.
Recently I’ve taken up a role, which I have written about My New Role At Yahoo! : Solution Architect
This article from NYT has been on the top 10 technology most emailed since December 29, 2010. Almost 16 days now.
Read it at 10 Ways to Get the Most Out of Technology
Here is my take and I’ve added 2 more
1. GET A SMARTPHONE
Also Why: I use my Blackberry for calendar, music (Pandora and podcasts), Evernote to capture all notes (text and photos), maps. No brainer.
Beware: that you can spend too much time on the smartphone and not enough time on self reflection. Listen to this TED talk by Amber Case on Amber Case: We are all cyborgs now
2. STOP USING INTERNET EXPLORER
Beware: There are still sites out there that only support IE, especially the ones in Asia markets that need active X for watch videos. Also Firefox can become bloatware and many others are switching to Chrome. 5 years later, when we have 3 big browsers, the simple, nimble browser maybe the next browser of choice
3. UPLOAD YOUR PHOTOS TO THE CLOUD
Also Why: Having your photos online allows you view them anywhere
Beware: Picasa charges you for $5 a year for 20 GB of storage, where flickr is free. Picasa does have a nice desktop application.
4. GET MUSIC OFF YOUR COMPUTER
Beware: I haven’t seen many people do this on a regular basis. There is nothing wrong with filling your digital devices, use an AUX cable to play it on your portables. I have 2 Apple airports, but seldom use it to stream music. It’s still too much hassle and I use Pandoro most of the time.
5. BACK UP YOUR DATA
Also How: I buy 2 hard disks (2TB) from Amazon for less than $100 and keep one at home and one at work and use Time Machine to backup. The online backup solution is expensive, eats up your CPU cycles and also eats up networking bandwidth. As hard drive price goes down, it makes sense to have the individual do it themselves
6. SET UP A FREE FILE-SHARING SERVICE
Also Why: I put all documents I create myself into dropbox. There is no way I create more than 2 GB of content, so this guarantees I have access to the document on any mobile device. I also also immediately get to work on my documents on any computer I happen to be on.
7. GET FREE ANTIVIRUS SOFTWARE
Beware: Antivirus software kills alot of CPU and makes your machine slow. I tend to turn off virus checkers, backup my data, use Firefox and restore my computer if its gets really infected. I make this trade off because I trust my backup. If the virus kills my backup, that’s another story.
8. GET A BETTER DEAL FROM YOUR CABLE, PHONE AND INTERNET PROVIDER
Also Why: you should consider canceling cable, go with Hulu and Netflix. Don’t use landlines and use cell phone.
9. BUY A LOT OF CHARGING CABLES
I agree. Also I am researching mobile solor power USB chargers
10. CALIBRATE YOUR HDTV
Also Why: I don’t have a TV, how about calibrating your computer monitor?
TT 11: Put your reading list, task lists on the cloud
use Google Reader to subscribe to blogs. Put your task lists into rememberthemilk.com
TT 12: Store your notes on the cloud using Evernote
I enter my text notes and capture web page on Evernote using email, Blackberry app, my computer and I have access to it anywhere. You can also take photos of text from newspapers, magazines and Evernote allows you to search on the text in the images.