Our office space part 2
Decided to take some more shots of the office in use. As you can see,
we are running low on computers.
Entrepreneur Dinner Meetup 1 at UIUC
Today a bunch of UIUC entrepreneurs met up at Za’s on Green St. to
grab dinner and talk about the stuff we’re working on. I can’t wait
until the next meetup.
First Few Weeks at OrangeQC
So 2 weeks have passed since we first started working on OrangeQC. I
wanted to post some random ideas and opinions about stuff at OrangeQC
and starting up in no particular order.
Early Mornings:
I love getting into work first thing in the morning (5 a.m.-). I can
knock out all my email for the day, catch up on some last minute
tasks, plan out my day accordingly, etc. It is a lot easier to get
things done when you don’t have distractions to divert you from work.
Also the sunrise out of our windows is pretty nice in the morning too.
Test Driven Development:
Should have started with this. Writing tests afterward is a pain and
defeats the purpose of agile development. I think I’m going to find
myself writing more tests and fixing more code than if we just started
by writing tests.
Food:
Eating healthy. Enough said.
Afternoon workout:
This is a must for me. Getting in early and working till ~noon is
pretty exhausting and I need a break in the day. Hitting the gym and
doing a solid workout has been great in clearing my mine and helping
me solve problems that I couldn’t get before. After the gym, I grab a
healthy lunch and head back to work.
Deadlines:
You work fast when you have a deadline to meet. You work even faster
when the deadline is set by the customer.
Dual monitors:
This is a productivity must. I’ve found myself programming and
working much more efficiently than with just a single monitor. The
SongAlive team has a pretty nice 24 inch monitor. I might look into
one after we get a few sales. Right now, we’ll use the free 17 inch
monitors.
Fire at Five (Event):
Fox Development Corp. has a once a month event for all the tenants at
Research Park and EnterpriseWorks. Fire at Five is a time to relax,
enjoy a bonfire, grab some food, and socialize with employees at other
companies. This being my first Fire at Five, I was pretty impressed.
There were a ton of people, great food, and a very social atmosphere
(not to mention the weather was great).
Fitness and Measuring Everything
After spending a good portion of my life not caring about keeping track of my exercises, calories, weight lifted, miles ran, etc. I've come to the conclusion that that just doesn't suffice anymore. Without a doubt in my mind, I'm pretty healthy: I eat good, excercise frequently, and enjoy rock climbing. When trying to enact change like gain weight, losing weight, run a 6 minute mile, and climb harder routes one must properly measure the progress being vs the goals.
Generally speaking, one can't efficiently change something they can't measure. The same holds true for workouts, health, lifting, you name it. Students gain a clear understanding of their performance by receiving grades on homework and tests. Although debatable, this is an objective way for students to tell if they are meeting their goals. I'm going to test the methodology and apply it to my physical activity.
I read an article by Tim Ferris that described his "arguably exaggerated" journey in gaining 34-lbs of muscle in 28 days. Despite this incredible feat, he brings up some very interesting points; namely, he says "6. Record every workout in detail, including date, time of day, order of exercises, reps, and weight. Remember that this is an experiment, and you need to control the variables to accurately assess progress and make adjustments." I'm also keeping track of food (carb, protein, fat) intake as they are useful measure to gauge progress of change as well.
I'm attempting to keep track of the variables by using a service called Gyminee (www.gyminee.com). It does a pretty decent job of keeping track of food, workouts, and personal goals. I'll be experimenting with the service for the summer and see how it works out for me. Initially, I can tell that it doesn't have some basic excercises in its database and it has been ridiculously slow for some reason, but I'm going to stick with it and see how it works for my lifestyle.
Finished with Final Exams
I am finally finished with final exams for the semester. Taking all
CS theory classes was difficult as I didn’t get a chance to do some
solid programming. Luckily, that will change this summer.
The summer is here and it is time to hustle and get OrangeQC.com up
and going. I’ll be getting situated and moving everything into the
office space this weekend. The team officially starts on May 18 and
will be “crushing it”. Stay tuned for updates.
Code Refactoring, Optimization, and Pareto’s Principle
Any successful programmer will say that they would love to write the cleanest and most optimized code around. Unfortunately, bugs arise, code is ambiguous, or you don’t have the time to rethink an algorithm to optimize its performance. This leads me to the three points in the title:
Code Refactoring, simply put, is rewriting already working code “to make it amenable to change, improve its readability, or simplify its structure, while preserving its existing functionality.” [Wikipedia] In a lot of cases this is a good idea. Especially if others need to review your code, maintain functionality, or add new features in the future. This starts to become a problem when you try to do too much at one time. I’ve noticed that a lot of people group refactoring and optimization into one large category of chaos. In my experience, it is best to optimize then refactor or at least take your time optimizing so that refactoring isn’t needed. This will allow you to create more efficient working code then make it readable to others. Doing them both at the same time will confuse you, reviewers, and the compiler (error, seg fault, …ah).
Example [Wrong way]:
Coder: Wow, I could really use a HashSet instead of an ArrayList to optimize this code. [Start rewriting...] Function xyz is really messy, I’ll clean it up then come back to the HashSet structure. Function 123 is messy too …
Example [Right way]:
Coder: Wow, I could really use a HashSet instead of an ArrayList to optimize this code. [Start rewriting ... Finished with change in structure ... unit tests were successful ...] Function xyz is really messy, I’ll look to see if its still needed and then try to clean it up.
Non successful coders will forgo inefficient working code for efficient non-working code. This is where optimization and Pareto’s Principle play a role. Pareto’s or the 80-20 rule states that 20% of your code will be responsible for 80% of the running time. Naturally, one should focus on optimizing the 20% of code to get the most speedup. Optimization should be the result of taking working code and making it more efficient. Planning and thought have to go into this process. Some going blindly into the project and hope to rewrite whole classes to gain a speedup only to find that their project no longer compiles/works/completes all the unit tests. Focus on simply refining small parts at a time and continue to test as you progress through. Optimized code should be your way of putting icing on the cake; you take already existing code and you give it that extra touch of efficiency.
As an example, a project that one may be working on has a runtime of ~1 hour to complete the task. It would seem completely worthless to spend hours optimizing/refactoring a piece of code that only takes 1-2 seconds to execute. Ideally; yes, you should make the code as best you can, but one must focus on the largest piece to tackle. Successful coders notice this and will attack the code with the largest runtime.
What I have found that is extremely helpful when optimizing is take enough time to think, design, and implement. This will allow you to write cleaner optimized code that may not have to go through the refactoring process (or as much). Also start with basic improvements in speed like changing a structure or protocol. Often these carry a lot of different pros and cons which you can judge specifically to your data. Overall, take time optimizing so that its done correctly so that people that maintain your code in the future will thank you!
How to be Successful: Timeliness
“If you are on time, you are late!”
This seemingly contradictory yet true quote still resonates with me to this day. I first heard it during my freshman year of high school and only until recently do I see its impact on pursuing success.
First, what is being “on time.” If you are in high school/college, its the simple act of arriving 1 microsecond prior to the lecturer uttering their first words of the class. As much as people in this age group (myself included) will tend to disagree with this definition, we all know it to be true and live by it as we prioritize our lives. This leads me back to the point that you are either one of two things: early or late. I’ve found that being “on time” doesn’t cut it anymore.
I’ve listed the consequences of being “on time” to a business meeting:
1. I am not prepared. If I sit down as people are talking, I’ve missed any handouts, preliminary conversation, and the chance to organize my notes and thoughts. This is detrimental to myself as I will not get the most out of the meeting or be able to contribute my ideas.
2. I will delay the meeting. Because most people will wait until everyone is situated, I will have essentially wasted other people’s time. Others will be waiting for me to “catch up” to what everyone was doing earlier. In general, people don’t like their time to be wasted!
3. I will not be in control. This is probably the most detrimental to one’s success. If I show up “on time”/late, I obviously didn’t schedule my day, prioritize, or manage my tasks well enough. Although this is sometimes unavoidable, it hurts to lack control over a situation.
This leads me to a story of a friend of the family that was interviewing for a job. She’s worked in various fields throughout her life, has a presentable resumé, and landed an onsite interview with a nearby company. She *assumed* she knew where the location was and how to get there. When the day came for her interview, she arrived “on time”; literally walked in the door at 8:30 am for an 8:30 am interview. Do you think she was ecstatic that she made it in time? Of course not. The secretary told her that if she couldn’t make the effort to arrive early for an interview then she obviously didn’t care enough about the job. The secretary was right! If you show up late for an interview, you might not be dependable with a project or task that needs to get done. Being “on time” is being “late”.
Lets take my story from this summer’s internship. We [the intern class] were told to meet at a particular location at 8 am. What time do you think most people got there? If you guessed between 6:30 am and 7:00 am, you’d be correct. Especially if you are not familiar with the area, you should give yourself enough time to find the location and travel there if you’re lost. If time permits, you should try to visit the site a day in advance to judge the time it will take to get there. A point I will leave you with: what if you were the only person to show up at exactly 8:00 am? How would you feel? I suspect that it will coincide with the 3 points I listed for being “on time”.
I’ve found that being punctual and organizing my time has helped me take proper steps to success. Refer back to my post on JP Morgan to help prioritize your schedule and maintain timeliness.
Personal Outsourcing for Success
Outsourcing is considered a cliché in today’s society. Surprisingly, I find the culture in Manhattan very open to “personal outsourcing”; that is to say, taking tasks that you would/could normally do and hire/pay someone else to do them for you. For example, I can go to the store and buy groceries. Unfortunately, I work 12+ hours per day, want to go to the gym for an hour, better myself, and sleep. Luckily for me, I can simply spend 10 minute online and order a weeks worth of food and have it delivered next day to my apartment at the time I choose. This is a huge convenience for me and the people I spend time with. This leads me to the point of personal outsourcing.
For those that have read The 4-Hour Workweek by Timothy Ferriss , you know that the goal is to delegate a lot of tasks to others in order to gain free time to do the things you want to do. Personal outsourcing is just that. Look at what you want to do and find time to do it. I’ve picked up countless hours throughout my week which has enabled me to explore Manhattan, try new foods, meet new people, and enjoy the activities I love.
My first step in finding out what I can outsource was simple: laundry. I have to wear a suit and dress shirt every day to work and washing/ironing/etc. every week is monotonous and a waste of time. I started with 4-5 loads of laundry per week and now I’m down to 2 (these are very small washers/dryers). The remainder I take to the dry cleaners and they wash, press, starch, and hang all of the laundry for me. Yes, I have to pay for that, but this simple outsourcing enables me to focus on what I want to do.
Now I focus on work, helping with a university club, brainstorming new startup ideas, rock climbing, and cutting stress from my busy life.
Intern Lifestyle in Manhattan
I haven’t wrote in a while, but I’ve been adjusting to the Manhattan lifestyle. Since I’ve only been here a few weeks, I thought I would post an update as to my current lifestyle for success.
Work: I’m early to bed and early to rise. Before I got to sleep, I create my list of things to do for the next day and review them when I wake up. I find that this greatly helps me focus on what I need to accomplish for the day. I arrive at work early and stay late (10-11 hours of work per day). I love the project(s) that I’m working on so I have no problem putting in the time.
Health: Before I start work, I go to the gym for an hour and then prepare for work. I’m starting to prepare a healthy breakfast and lunch the night before so that I can just fill my gym bag and leave in the morning. I’ve been eating pretty healthy and going to the gym 5 days a week with a various mix of cardio, strength, and supplemental workouts (e.g. rock climbing).
Financial: It is obvious that Manhattan is extraordinary expensive! I found that purchasing food via freshdirect.com was actually cheaper and more convenient that going to a grocery store in Manhattan. So far, I received my first order from Fresh Direct and I’m very satisfied. I can fill out my order the night before and have the groceries delivered to my apartment the next day. I find that it should save me countless hours each week due to traveling and comparison shopping. Also, cooking my own food and bringing my own lunch has enabled me to save money that would otherwise go toward restaurants. I’ve noticed the average price for a meal to be around $10; so by purchasing my food and preparing it myself, I can save a good deal of money this summer.
I am planning on writing an “Intern Guide to Manhattan” post that will give specifics on how interns can be successful and enjoy a comfortable lifestyle in Manhattan.
AAPL on Goldman’s Conviction Buy List and Apple’s Success
According to a Reuters article, Goldman, Sachs & Co. has added Apple Computer (ticker AAPL) to its Conviction Buy List. According to GS Global Investment Research this means that Apple’s addition “[represents] investment recommendations focused on either the size of the potential return or the likelihood of the realization of the return.” It may be a good time to purchase some shares of AAPL prior to WWDC in early June, where a new 3G iPhone and updated iPhone software are rumored to be announced. They are increasing distribution to foreign countries as well as chipping away at Research in Motions (ticker RIMM) market share in the smart phone market. Apple has captured 28% of the US smart phone market in such a short amount of time; newer devices, possible subsided prices, and developer applications will only propel the devices adoption into the masses. The question I ask is why is Apple so successful?
Including Apple to a list of successful companies is a given. The stock is up over 3,500% over the past decade and over a 1000% from 2001. For may of their products they weren’t the first to come to market; they were the best. This can be seen in their lines of iMacs to iPods to iPhones. Today’s society has benchmarked them as hip, creative, and energetic. Purchasing a competing product today is considered a social faux pas. Apple’s marketing is genius; they make the best products and allow for competing brands to “attempt” to design comparable devices. The smart consumers choice is simple, pick the product that the most people will associate me with “being cool”.
To expand on Apple’s strategy, they produce the best products. Comparing Starbucks to Apple, they both create new products/services in a seemingly congested market. The difference is that Starbucks’ competitors create knockoff products that are just as popular whereas Apple’s competitor can produce a technically similar product that can’t sell. Take Microsoft’s Zune where it has similar design, similar features, similar price and yet people don’t buy it. Gamestop is fazing out the device which for which ” Microsoft has sold only 2 million Zune’s since it launched the device in November, 2006. Apple, in contrast, sold 10.6 million iPods last quarter.” The reasoning is simple, to be cool you need to buy an Apple product.
Apple has an addiction to finding what is wrong with current technology and media and turning it into something that people will love and covet. They are reshaping the cellular industry and are on the cusp of changing the way people and technology interact. Despite the lack of vigor into Apple’s home entertainment, they will be the leading provider of legal digital content being delivered to the home in a short period of time. Not that they haven’t captured over 70% of legal digital music sales and surpassing Walmart as the leader in music sales, its that the market isn’t ready for such thorough integration of media into the living room. Apple TV will bridge the gap for now, but I would not be surprised that Apple has other devices up their sleeves to meet the changing market in a few years.
Apple prides itself on cutting edge innovation and breathtaking design. Their success is rooted in the fact that they look for problems with today’s technology then build tomorrow’s solution.
References:
http://www.reuters.com/article/companyNews/idUKBNG29300420080523?symbol=AAPL.O
http://www2.goldmansachs.com/research/rating.html
http://www.macdailynews.com/index.php/weblog/comments/15363/
http://arstechnica.com/journals/apple.ars/2008/02/05/iphone-owns-28-percent-of-us-smartphone-market
http://www.washingtonpost.com/wp-dyn/content/article/2008/05/23/AR2008052301323.html













