Thoughts of a Singaporean software engineer, writer, singer and rapper in San Francisco. http://letitialew.com The views expressed here are mine alone and do not reflect those of my employer.
Following our recent launch of the Decision Makers feature, decision makers are better equipped than ever to respond and work with petition creators to help improve their circumstances. Helping people target their petitions at the appropriate decision makers has become more important than ever.
Unfortunately, targeting decision makers is difficult because many leaders, politicians and other decision makers share names with different people.
Anya is live and ready to show you everything. Watch her strip, dance, and perform exclusive shows just for you. Interact in real-time and make your fantasies come true.
âś“ Live Streamingâś“ Interactive Chatâś“ Private Showsâś“ HD Quality
Anya is LIVE right now
FREE
Free to watch • No registration required • HD streaming
A month ago, I attended a wedding for the first time. Ling has been a lifelong close friend (知己) of mine, and I am overjoyed to know that she has found an equally godly man who credibly loves her more than he loves himself. At Ling's (half-joking) request, I wrote her a mashup of some of her favourite songs plus a coupla rhymes for her beautiful day. This commemorates 14 years of being schoolmates, where our favourite media to present homework assignments was performing rewritten songs in front of the class! I've resolved to write more in the coming year (prose, verse and rhymes – in addition to code), and this was an incredibly fun way to start. Thanks Ling for the inspiration, and for letting me perform it in front of your friends and cousins at the wedding dinner! I will not post future ukulele covers on here (unless I write original lyrics), but you can watch the rest of my ukulele videos on my YouTube channel or get the news on Twitter.
Management Pearls, Plays and Protesters with Marissa Mayer (Dreamforce 2013)
Mayer emphasizes clean design in her house and raves about Yahoo's beautiful redesigned mobile apps (which boast over 400M monthly users), but insists she is not a qualified designer. Her challenge is to design the organization – to design the experience of working at Yahoo! and the user experience for their products. Her job is to listen. She listens to long-time Yahoo! employees and grants permission for them to make the changes they deem necessary. The biggest mistake executives make, she says, is fooling themselves that they "do things". No, you don't get to code, you don't get to design. Your job is to play defense. "Your team is on offense, they're going to move the ball." The CEO is responsible for clearing the way and getting rid of obstacles and naysayers so their team can run as fast as possible. At Yahoo!, she started the PB&J program – Process, Bureaucracy & Jams. If >100 people vote on a procedure as being PB&J, she nixes it. The moment she utters "play defense", I decide that I really, really, really like Marissa Mayer. (Her first sports analogy of the night explained Yahoo's pumping-the-board commitment to mobile. "Platform shift is a way to reinvent yourself," she said, but it's scary because you have to really believe there's a wave in order to ride it. But make no mistake, she is majorly mega-stoked about mobile to the max.) But I won't omit the humiliating moments of the evening. The mic picks up protesters in the auditorium yelling and waving signs for Walmart worker welfare, brashly disrupting Benioff and Mayer's conversation with the finesse of a drunken ex. Yeah, Mrs. Director, ma'am, you know it's awkward when a Walmart in Ohio has to organize a charity Thanksgiving dinner drive for its own employees. ("Please donate to our employees! If you don't feed them, who will?") Benioff cracks the tension by sending his "general counsel" to escort the activists out, and belatedly advises them on a distributed implementation solution for more effective results in future. At the end of it, I appreciate that Marissa Mayer is learning how to operate with greater transparency. She thought she was "shaking things up" at Yahoo! when she decided to show board meeting slides to her employees, but was one-upped by Mozilla's CEO, who lets his employees write his slides. Now she gathers feedback from Yahoo!ligans to write the "Highlights" and "Lowlights" slides for her board meetings. That is very cool and progressive. Let's just not talk about the W-word, yet.
Friends often ask me this question. Â So I will take you on a journey with me on this SQ flight.
When you first step onto the aircraft, you are greeted by ridiculously good-looking flight attendants (the Singapore Girl sarong kebaya is just unfair) as well as with the distinctive "cabin smell". Â I almost teared up yesterday when I caught a whiff of this, partly because of the nauseating chemicals, but mostly because it reminds me of my childhood when I got to fly Singapore Airlines with my parents and I rarely get to anymore. Â Okay congrats, the worst is over.
First up are the movies. Â SQ offers about 300 films, 60 of which are Hollywood and the rest indie or foreign. Â My goal was to watch:
Django
Rise of the Guardians
Silver Linings Playbook
Hannah Arendt
Life of Pi
Trance
Gangster Squad
Les Miserables
Skyfall
Populaire
Zero Dark Thirty
but unfortunately the plane landed before I could finish Hannah Arendt. Â Okay, maybe I saw Silver Linings Playbook twice.
And I didn't even try to tackle the TV section, which includes:
Game of Thrones s1 & 2
Mad Men
Walking Dead s3
Dexter
30 Rock
Family Guy
Modern Family
The Office
How I Met Your Mother
And the Games, which include 160 classic video games like Fallout, Worms Armageddon, Bejeweled and Poker / Backgammon etc.  When I was a kid, maybe half my hours playing Super Mario were logged on an SQ plane.  You can also opt to learn a language using their Berlitz World Traveler (TM) software, or browse a library of hundreds of music albums, from the latest releases to classics.
For lunch I had bulgogi beef, chap chae and ice-cream. Â When I'm hungry an hour later, they give out BBQ chicken buns, Mrs Fields cookies and Snyder's pretzels.
Did I mention all of this comes free?
Cue Dos Equis joke about wanting to fly SQ whenever I fly for 20 hours. Â I really don't enjoy being on airplanes, but at least SQ makes me feel like I'm making progress towards my entertainment goals. Â Hope you've enjoyed this small look into a Singaporean icon!
Anya is live and ready to show you everything. Watch her strip, dance, and perform exclusive shows just for you. Interact in real-time and make your fantasies come true.
âś“ Live Streamingâś“ Interactive Chatâś“ Private Showsâś“ HD Quality
Anya is LIVE right now
FREE
Free to watch • No registration required • HD streaming
When you upload a standard creative (an image, text or Flash file), DFP automatically tracks whenever a user clicks on it, so you can view the number of clicks and clickthrough rate in your DFP dashboard.
But of course, things are not so easy when you want to use custom creatives for an ad –– you need to insert a Click Macro for DFP to track clicks on that ad.  Some third parties will give you ad code that DFP recognises (in which case you can just click an "Insert macros" button as shown below).
But unfortunately Kika's Hula Skirts (like many other advertisers) did not do that for us. Â In this case, we have to manually insert the Click macros. Â The macros are simply snippets like this: Â %%CLICK_URL_UNESC%%
In some cases you may even need to use an escaped Macro (%%CLICK_URL_ESC_ESC%%), so play around with that as well.  If you're still stuck, contact your ad network for instructions on placing Click macros.  It might help to check out the Macro guide in Official DFP Documentation for more info, and keep testing by clicking on your ad and tracking the click numbers in DFP.  Best of luck!
How to pass variables into your DFP Creative (Pattern Matching macro examples)
I worked on ads for Hipmunk a few months ago using Google's DoubleClick For Publishers (DFP), and was appalled at the lack of documentation for implementing custom creatives ("third-party creatives" in DFP terms).
Fortunately, the Google technical staff were helpful in replying to our emails and I thought I'd share what I learnt here in a series of 2 posts.
This is part 1. Â Imagine we are trying to put ads on our site, www.myukulelereviews.com.
Where to put your Third-party Creative
(Unforch i don't have a screenshot so had to borrow one from the internet. Â Source)
This is where you include the HTML or script content your advertiser client (e.g. Kika's Hula Skirts) gives you.  This third-party content will go in an <iframe> on your site, so you cannot access www.myukulelereviews.com's styles or scripts within this code.
Your Third Party Creative Code will look something like this:
Sometimes you want to pass variables from your website into the ad to customize the ad.
To pass variables from www.myukulelereviews.com site into your third-party creative code in DFP, you can use the Pattern Matching macro.  (I mean, obviously.  It's named so well.)  In your site's code, after you've included the www.googletagservices.com/tag/js/gpt.js script, add some code like this:
Essential reading (link in title).  This is something I have always struggled with; my mind loves anticipating and escaping into my future.  While this may seem more "productive" than dwelling in the past, it still means that my time and my thoughts are not truly under my control.
I've noticed that another close friend A is naturally mindful, though he does not meditate –– he is mature, does not flip from tab to tab or flit from girl to girl like many guys his age do, though it may take him a few moments to respond when I interrupt him.  Most of all:  when he is listening to people, he actually drops everything he is doing and really listens to them.
They inspire me.  If you're convinced on the merits of mindfulness, here's the guide on How to Be More Mindful from ZenHabits as well.
(I'm really good at eating slowly and savouring my food –– cheers to a great start!)  But as H has reminded me, I must be wary of approaching this as yet another "future plan" where I begin fantasizing about how my life will change after I incorporate this into my routine.  Remember to live in the present, Letitia.  Breathe.
Anya is live and ready to show you everything. Watch her strip, dance, and perform exclusive shows just for you. Interact in real-time and make your fantasies come true.
âś“ Live Streamingâś“ Interactive Chatâś“ Private Showsâś“ HD Quality
Anya is LIVE right now
FREE
Free to watch • No registration required • HD streaming
Last Thursday I went to a Wharton Women's event, A Special Evening with Carol Bartz. Thanks Nadia for the hookup!
For those who don't know, Carol Bartz was the CEO of Autodesk, where she successfully grew the company from $300 million to $1.5 billion. Following that, she was appointed CEO at Yahoo!, where she was quite publicly fired in 2011. She started her career at Sun Microsystems, where she rose to become a senior executive.
Some of these stories from when she was a senior executive at Sun Microsystems (in her late 30s) made me hold my breath in shock. She knew this beautiful 25-year-old woman at Air France who told her, “Carol, this senior guy I work with keeps asking me out for a drink. I'm going to report him to HR.”
And what Carol told her was, “You haven't earned the right to make a big hullabaloo like that.” [me: ODAMN. Where is she going with this...] “When you get to where I am, then you can release your inner bitch.”
She went on to say: Sure, if you are actually being threatened or violated by a guy, of course stand up for your rights. But otherwise, keep your mouth shut.
She learnt this lesson from one of her fellow executives at Sun, whom she had been close to (they would both be at the office on Christmas Eve). He told her one day, “Carol, you should stop speaking up at our staff meetings.”
She was shocked. “What do you mean, just stop talking?”
“Yes,” he said. “Don't talk. You're always right, and we're sick of hearing it.”
So she kept her mouth shut. After a while, the general manager Neil Knox noticed that she had been very quiet and asked her what was up. (I extrapolate that she eventually began to join back in on the conversation.) She says the whole incident made her realize that she had been overstepping her boundaries, she had been a smartass, and she needed to watch and learn more before she could earn the right to go off and say whatever she wanted.
At first I judged her (“that's kind of traditional-minded and sexist...”), but I am also fortunate enough to work in the industry in the year 2012, and I have not experienced the work dynamic in the higher ranks as she has. I also haven't experienced sexism as she has – at one company, she was fired because somebody thought she had slept with her boss. She had barely even met the guy!
I think she's saying, if it's something that is arguably a minor affront, just let it go. Don't be a loudmouth, know-it-all or drama queen.
Carol Bartz is a character, she's a hardass, and she attributes it to her farm-girl beginnings in Wisconsin. She did not attempt to give advice that evening, because people are all so different (she doesn't believe in mentorship), but instead to share her experiences in the context of her life.
Her insights on careers were useful to me:
We can improve much more through bad experiences than good ones. So don't run from bad bosses. Through them, you will remember exactly what not to do, whereas you may not remember what exactly made your good managers good.
One of the worst habits of a manager (or parent): After telling someone what to do, telling them how to do it. Employees find it incredibly demotivating to be micromanaged. Instead, be prepared for them to fail the first time.
Not every career move you make will be a promotion. There is value in making lateral moves, especially early in your career, because it's much more difficult for a Vice-President of Marketing to decide that she suddenly wants to start from scratch learning about finance. (Carol Bartz doesn't like to think of careers as ladders, as those are unstable. Pyramids have a much more stable base.)
Don't do the same job over and over again for a bit more money every year. You'll only know the same thing, and that thing won't last you 50 years. (Look how fast industries have shifted in the past 10 years.)
Don't be in a hurry. This work thing goes on forever.
So were her insights on relationships:
Hang on to the good people. Not the pretty people, not the party people, not the people you wish you were. It takes a lot of energy to be somebody you're not.
Don't feel guilt, from a mother's perspective. She never called home every day, because then they would come to expect it. And kids don't remember a lot of the effort you put into doing things for them when they were young.
Hearing all this makes me feel grounded, in some way. Like I can strive hard for my ambitions and know that I am probably going to end up okay, the way she has. Some may judge her for that nasty public firing, but so what? Male CEOs get fired all the time. She is obviously a very capable executive and her phone is still blowin' up with job offers, board appointments, etc. She has grown much closer to her kids now that they're in their 20s. She seems reflective, but content. And that is good enough for me.
I read this book Clean Code on my break between Flixster and Hipmunk, on my coworker's recommendation.
"After reading this book, you will curse the code your coworkers write, the legacy code you have to work with, and all the code you've written in the past."
- Mattias P. (who is an exemplary programmer, teacher and invaluable asset to any employer)
Clean code is: Â simple, direct and does one thing well. Â Elegant and readable, and efficient. Â Written with care to keep the code base maintainable, so that other coders will also take care.
NB: Â The book examples are all in Java.
My Thoughts
It's the first book I've read on the philosophy of writing code, so I liken it to the Strunk & White of programming. Â It mentioned lots of problems I am familiar with, and gave me a pithy set of rules to follow.
The main thing I need to keep in mind, after over a year of work experience, is: Â My code not only needs to work, but it needs to be usable by whoever comes next. Â That code is my offspring, it will live on after I'm gone. Â Other people will need to read it, use it, play nice with it. Â If I leave a dirty legacy, people will be afraid to touch it.
SUMMARY
1. Â Use meaningful names.
2. Â Functions: Â Each function should do one thing only.
Keep them small, max. 4-5 lines long.  One level of abstraction per function.  Have no side effects.
Take 0, but at most 3 arguments. Â Use an argument list if more than 3.
How Do You Write Functions Like This? Â Get your thoughts down first, with a suite of tests that cover every line of clumsy code. Then massage and refine that code, while keeping the tests passing. Â "I don't write them that way to start. Â I don't think anyone could."
3. Â Use comments only if you absolutely have to.
If your code was well-written and expressive enough, you wouldn't need comments. Â Too many comments interrupts the flow of your code format. Â Don't comment out code, delete it (remember you have version control!)
4. Â Formatting
Leave vertical whitespace between concepts. Â Concepts that are closely related should be kept vertically close to each other. Â Most important concepts at the top of the file.
Keep horizontal line widths short.
5. Â Objects vs Data Structures
Objects hide their data behind abstractions, but expose functions that operate on that data. Â Data structures expose their data and have no meaningful functions.
Procedural code (code using data structures) makes it easy to add new functions without changing the existing data structures. Â But makes it hard to add new data structures because all the functions must change.
OO code makes it easy to add new classes without changing existing functions. Â But makes it hard to add new functions because all the classes must change.
Law of Demeter: Â method f of a class C should only call the methods of these:
C
An object created by f
An object passed in as argument to f
An object held in an instance variable of C
6. Â Error Handling
Write your Try-Catch-Finally statement first. Â Use unchecked exceptions. Â Don't return null. Â Don't pass null.
7. Third-Party Code
Write Learning Tests to explore the boundary and test when it has been changed.
8. Â Unit Tests
Test code needs to be as clean as production code (but doesn't need to be as efficient).  Tests enable change.
One assert per test. Â One concept per test.
Tests should be Fast, Independent, Repeatable, Self-validating (output a boolean), Timely
9. Â Classes
Organization: Â public static constants, private static variables, private instance variables. Â Public functions, private utilities right after the public fn that calls it.
Single Responsibility Principle: Â classes should have only one reason to change. Â (Wikipedia example). Â Avoid vague names like "SuperDashboard", call your class "ReportFormatter".
Cohesion means most methods in your class use most of the instance vars. Â Maintaining cohesion results in many small classes.
On Saturday I led a workshop with my partner-in-crime, Amanda, to teach middle-school girls how to program.  It was called "Learn to Code Hangman", and we led three 70-minute sessions of the same workshop at the Expanding Your Horizons Conference 2012.
The helper code and solutions, all in Python, are on Github here.
Our presentation covered:
What programmers do every day
Programming basics: Â variables, if / else statements, lists, while loops
Due to administrative hiccups, Amanda and I spent the first 15 mins helping the students get set up with the starter files and Terminal.  Then I went through my presentation too slowly, as it was the first time and I was uncertain of how quickly they would "get" the concepts.  Midway through the presentation, we ran some examples in the Python interpreter, such as:
  age = 11
  if age > 16:
   print "I can drive now!"
  else:
   print "I am too young to drive :("
By the time we were done helping them debug their examples from the presentation, there was only 5 minutes left to code Hangman. Â I'm afraid that most of those girls left thoroughly confused and daunted.
Challenges they faced
Many of the girls were restless, did not pay attention to our instructions and made the following mistakes:
Case-sensitive variable names, or putting a space in a varname. Â Next time I'll try to use single-word varnames.
Spelling errors
Confusion about why you need quote marks around words (string literals)
Multi-line code blocks in the Python interpreter is really tricky. Â Even I mess up the indentation sometimes, then you have to re-type from the start of the block.
When we switched to putting code in an external *.py file, many of them were confused between the TextEdit and Terminal windows. Â Many forgot to save their hangman.py before running in the Terminal.
Some were really slow at typing.
Dismay, intimidation. Â "Do you do this all day? Â But you have to type so much!" Â "This is so complicated, there's too many things to know." Â I had to reassure them that they were doing high school-level work and that it was okay to find it difficult.
My fault on time management -- I took too long on the first session's presentation.
Iterate, Iterate
For the second session, we ran through the presentation and examples faster, then got them to the point in Hangman where they had a specified number of guesses (lives), and after each guess it would tell you whether your letter was in the secret word or not. Â About half of them managed to get it to display the updated word, like:
  S Y __ P A T __ E T I C A __ __ Y
By the third session, every pair of girls had managed to write a working version of Hangman that detected whether their guess was correct, deducted lives accordingly, and displayed the updated word. Â They followed my instructions better and paid more attention than the first session of girls, probably because Amanda and I were more confident instructors. Â They were all engrossed in playing their Hangman, cheering when they won and groaning when they lost. Â Many asked us how to fix bugs or add new features such as revealing the secret word if they lost that round.
The most rewarding part was the 2-3 students during each session who were fast learners, who had tinkered around with computers before, and who actively answered questions and experimented in the Python interpreter. Â Things they said to us:
"I've taken a programming class before but they only talked about these languages and we didn't actually get to do stuff. Â This is so much better than those classes I took!"
"I want to take a picture of my screen so that I can know how to do this again and play it on my home computer." (I helped them take a screenshot, but also told them to google for "python tutorial".)
Improvements for Future
Consider using other languages like Ruby, which is more forgiving with whitespace and indentation.
Full dress rehearsal of the presentation, preferably with a demo audience.
Plan a convenient way to distribute the starter files before the session begins.
Shoutout to Amanda, Fiona Tay and her friend Ryan for spending their Saturday volunteering with me!
Anya is live and ready to show you everything. Watch her strip, dance, and perform exclusive shows just for you. Interact in real-time and make your fantasies come true.
âś“ Live Streamingâś“ Interactive Chatâś“ Private Showsâś“ HD Quality
Anya is LIVE right now
FREE
Free to watch • No registration required • HD streaming
Our initial Flixster Store Homepage also met with lukewarm reviews, but the product team went back to the drawing board and came up with a new design centred around “movie discovery”. I'm grateful for the opportunity to have been lead developer on that project, with only 8 months of work experience under my belt, and the new version finally went live last week!
People
I'll never forget...
The day Steve C. brought 15 live dungeness crabs to the office that he had caught from his crabbing boat. Chad brought his propane burner and stockpot and we boiled them in the parking lot, then had Flixsterites picking crabs apart with our saucy hands, slurping and squirting crab butter all over the office.
Getting to see The Dark Knight Rises in a private pre-release screening with my coworkers!
       Flying to Burbank on our company trip to Warner Bros headquarters and boarding the same plane as Kreayshawn! And my coworkers may not have known who she was, but were open to hearing her music!
The Sundays last season when Jason R. opened up his home to me so I could share his NFL Sunday Ticket, even though I'm a Pats fan and cheered more rowdily than he would probably have liked.
The day Eugene kindly drove me back to get my ID when I'd forgotten it for the Colo tour, and we talked about our families in the car.
My first Flixster karaoke session with Hendy, Hector and my housemate Ben P. at the Mint. I still remember the songs we sang – Wonderful Tonight, F**k You, It's Only Rock 'n Roll, and Sexual Healing.
The Monday and Thursday nights we would gather in the TV room to watch football and trash-talk each other over our fantasy players or who had gone to Cal.
The Flixster Ping Pong Tournament, where we got terrific action shots of Ed, Steve N., Akhil, Yuntao, etc flying fearsomely with their paddles.
Going rock climbing at Planet Granite with Hendy, Yuntao and Mike, and doing handstands and cartwheels on the springy floor.
When I walked into the office on my birthday to find a beautiful bouquet of flowers on my desk from my birthday twinsie, Alexis!
When we bought a set of Angry Birds plushies in the old office and set them up on houses of DVDs for target practice. And the Angry Birds war that Jason started against me, and the day I launched one clean across his field of view between his face and his monitor. #win
When Lily and I wanted to bring the Product and Engineering teams to House of Air and made it happen – everyone had fun bouncing and playing competitive trampoline dodgeball for a day!
The days when coworkers asked me about my weekend snowboarding or about my family, and I realized that I had friends here who knew me and remembered the things that mattered.
Our February company meeting at the Grand Pu-Bah when I gathered enough drink tickets with the help of Joe Jordano, Steven Martel, Thien, Peter, Joe Greenstein, etc to buy two cocktails, a $35 bottle of Spanish wine and making it rain on the bar to buy the $90 top-shelf Italian vintage!
The nights I drank a little too much and some kind Flixsterite made sure I got home safely :)
Winning Certified Fresh Employee of the Month in February for working day and night on the Flixster Windows 8 app for three weeks.
Watching Friends With Benefits, Drive, 21 Jump Street, Prometheus, etc. in theatres on spontaneous Flixster outings.
The day I interviewed a female candidate, Nikita, and tried to demonstrate rapport with the team by poking fun at my product manager Jason and he totally played along. She is now happily working as an Android developer for Flixster :)
The day I told Eugene, trembling, that I was leaving Flixster. When he told me “Tish, it's gonna be okay” I let out a big sigh, and when he said that he was proud of me, for taking charge of my career, I almost teared up.
I'll write another post on why leaving this wonderful place was the right decision for me.
I will start out with why I feel fortunate to have landed here for the past year and 3 months of my career.
Culture
Flixster has a really positive, happy work environment. There are no egos, no blame, only the team. I remember the day I broke code on production. I had underestimated the risk of spreading a single file to www – code that could still have included other engineers' commits and dependencies. I was the only person who blamed myself – I hung my head the whole day, but my managers and teammates tried to help me lift my head back up high. They immediately conducted a workshop teaching us how to detect and fix problems like this in the future.
Feedback is a gift here. Every employee must take a valuable 4-hour feedback training workshop, and we're encouraged to give peer feedback. You may only talk about other people's behaviour, or your own feelings, but cannot make any assumptions about their feelings. An example in action: My boss Eugene to me,
“You make good points in our meetings, but when you end a sentence in a questioning tone or by trailing off, it makes me feel less confident about the point you are making.”
This was especially helpful for me, a fresh grad who was anxious to know how she was doing one month on the job, rather than have no idea what to expect from an intimidating, year-long accumulated performance review.
Flixster managers are some of the best managers in Silicon Valley. They love Flixster, and know how to motivate us to do our best work without sacrificing the rest of our lives. They take 1-on-1 meetings seriously, giving good feedback and advice that I will carry with me for the rest of my career. They tell the best jokes and have helped create this wonderful, collaborative, accepting culture. And they look out for their employees – if I am being pressured too much by the product team or external partners, my manager will help me push back against them or teach me how to push back myself. It is a well-run organization where we do not have to waste time on destructive politics, and many engineers stay here to learn great management skills.
I've had the opportunity to learn from top engineers here. I barely knew any JavaScript when I started, but my mentor, Bryan E. set us up with BackboneJS, and has given me valuable code reviews to help me become a solid JavaScript engineer. Our engineers share their expertise in Lightning Talks and “Best practices” meetings, got us onto GitHub and Bamboo for Continuous Integration, and frequently research the newest technologies that will help in our work.
It's a really special group of people. We appreciate every individual we have on this team. Our lunch conversations range from fantasy football to TechCrunch Disrupt to fashion advice to Apple-Android patent wars to our dating lives to making fun of a coworker's obsession with pumpkin drinks, to racing cars to telling stories about the old days of Flixster.
My manager's review of the Denzel Washington film Deja Vu:
Not Interested
I think all movies made by Denzel in the last 10 years should be renamed "Deja Vu".
My next post will be about the product and people, then I'll write another about why leaving this wonderful place was still the right decision for me.