Thursday, April 24, 2014

Book Review - The Lean Startup by Eric Ries

A coworker of mine asked me for help on how to buy an audio book and how to listen to it as he is going on a road trip. I recommended the service Audible as it is easy to listen to audio books. The book that he was trying to listen to was Lean Start up by Eric Ries. I had the book on my to read list as I heard many great things about it. It was also a great timing as I just switched my career and joined a small start up with the goal of learning how to start a successful business.


The Lean Start-up focuses on building the features that existing customers want over building a product that no one wants. The process steps that he talks about share a lot with the Agile software process where the app is driven by constant feedback. Small failures are also considered to be a good thing and are encouraged . 

There are a lot of examples and stories told to support the points made on how the process can help companies. My favorite were the ones where the "lean thinking" was implemented in larger companies. Intuit creating process of the mobile Turbo Tax used all of the ideas that seems to be exclusive to a start-up in a big corporation. I have heard that the secret to Google's success was that it was made of start ups inside a corporation umbrella and it all make scene after reading this book.

While I love the concepts of the book, I felt like the audio version was not the best way to enjoy this book. The examples used kept going back to ones used earlier and it was hard to follow the book structure as all chapters felt to sound as they talked about the same thing (compared to Good to Great Audio book where each concept/chapter used it's own chapter). This is more of a study guide to follow than it is an easy to follow audio book. That being said, I found myself sitting in my car waiting for a good stopping point. The concepts discussed were so relevant and ear grabbing.

Book Summary that I enjoyed:
http://www.kimhartman.se/wp-content/uploads/2013/10/the-lean-startup-summary.pdf
Tuesday, February 4, 2014

Charlotte Start Up Weekend 6: Return of the Jedi

Just a quick reflection about my experience in my second Charlotte Start Up Weekend (CSW6). You can find my last's year thoughts here:
http://amadhammer.blogspot.com/2013/01/startup-weekend-clt.html 

I highly recommend all event participants to take the time to look back and reflect on what they learned, What worked and what they can improve on. It is very helpful.

What is this?
This is the 6th Charlotte Start up weekend. It is an event where participants work over the weekend to create a business. The winner gets a prize package that helps them going further with the business.

But at it's core, it is a networking and hands-on learning event.



How did you prepare and what did you want out of the event?
I had a different strategy this year. Last year, I wanted to put my technical skills on the table. I built a web site and got it going.

This year, I had a different goal: Win the contest... cold truth. Everyone wanted the same thing.. yet it is somewhat selfish when I put it that way. But I want to build a start up and see what lessons I can learn. Winning the contest would give me the chance to do that.

My Pitch:
.. no pitch. A wasted opportunity? I spent my time scribbling down all of the pitched ideas. I wrote "red shirt" next to some pitches and had no idea who was who when they came back they day after wearing different colors.

What went well?
-Decision making. When the teams were announced, I had a "gut" feeling on who can win and who can not. There were a lot of good ideas this year and I wanted to work with three teams (two fitness and one about education). Two of the teams got first and second. 
-Focus. I observed what happened last year and knew what it takes to win. last year, We built a great product  and did not have any potential business. It was clear that we were not accomplishing anything and decided to talk about patents and ideas that could not be done in a weekend. 

What did not go well? (sorry if I offend anyone)
-I did not get to ask people about their pitches before the voting ended.
-My technical skill set was not used (three developers with three different technology stack on the same team).The guilt was very painful to me and I kept going around trying to find things to help out with.
-Did not force myself to meet as many people as I wanted. I need to print out some business cards with personal contact information (Twitter/FB/linkedin) on them.
-I was sick. I had a long work week and I did not eat as well as I should have.

For the future, What would do?
This answer really depends on what I can get out of YouCompleteMe and how it goes. Generally, I am going to stay around the team, learn the ins and out of a startup, and take what I learnt to whatever I am building next.

Who won? How did they win? Do you think X deserved to win instead?
YouCompleteMe,

Yeah I act like a cartoon charachter..but it is worth to quickly highlighting why I think YouCompleteMe Won:
-Working MVP (Minimal Viable product) up and running to handle the business concept.
-Experienced team (5 out of 9 members were at the last start up weekend).A strong diverse team that works together.
-Presentation that explained how our product is a business. Explain the revenue plan
-Explain why we need to win and how we would continue the business beyond the weekend.
-Great video that explained who would use the app.


Basically, We stuck to the formula. We (or I) read the blog by a CSW6 organizer and tried to hit all the points (seriously.. he knows what he is talking about)
http://charlotte.startupweekend.org/2014/01/26/the-final-pitch/

Other teams are solving real problems and they all have potential to grow great business. The biggest reward here is the feedback and network you got. Please prove to everyone that you should have won. Your success will benefit everyone.

Finally
It is a great feeling to win. It validated our work and effort. Our team worked well together and we had a lot of fun. Time flew by very fast that we had to remind each other when lunch and dinners were served. I am really happy that this event exists and I really appreciate the work that the organizers put into this event.


Random points (future blogs maybe?):
-Many people are still leaving after an unsuccessful pitch. You are missing the point of the event and .. it is probably good that your idea was not selected. YES I SAID IT.
-You don't need a website if your business is not technical. Just set up a Google dorm doc and collect emails. 
-Being a developer in a start up weekend kinda sucks. Many of my friends from last year expressed the same opinion and decided that it is not worth coming back. It might be worth it for me to sign up as a "non-technical" to have a chance of pitching and contributing. because .. planning is fun.
-Do some research before you pitch your idea. Talk to others about it and see what they think. Also, does you idea exist already? (so you don't solve a solved problem).


ok enough writing. I need to work on other ideas. Go try out our app
youcompeteme.co


--credit
*photo was taken from detailedblock.com.
*Twitter person who took the second picture I am so sorry I can't find your name

Thursday, October 17, 2013

Book review: I Will Teach You To Be Rich

I will teach you to be rich is a book about the fundamental needed for a person to start a good financial foundation.  It breaks down all of the intimidating investment, credit card, retirement funds, and banking accounts into plain English.

The author proposes a plan to start a 3-4 weeks to start building a good financial foundation.  


The chapters start with explaining the basics such as explaining Credit Cards, opening retirement accounts (401k and roth IRA). Those are the best chapters in my opinion as I had a foggy understanding on what to do and how those financial concepts work. The idea of the early chapters is to not worry about the details of which credit card or account to chose. Instead, It is better to start and get the the tasks done.

The later chapters are about investing and they go in depth into what to do with money. It also talks about how to save money for events like weddings and other spending. I did not think that those advises are strong and I saw some complaints on Amazon about how some of the ideas are wrong or outdated (e.g. bank loans changing, buying a car method does not apply to all dealers).

Overall, I think this is a fun read for beginners. I have been wanting to learn more about investing and money handling. This book worked pretty well as a beginner guide. I would recommend it to anyone who is too intimidated by all of the noise out there.
Friday, May 24, 2013

Getting Started with Chrome Developer Tools


I found a great site called Code School (all free for the 5/24 - 5/27 weekend) with a very well made hand on tutorials for different Web technologies. The Google Chrome Developer Tools  course was free. It was so interesting and engaging that I finished the full course in one day.

Here is a list of features that are included in the Chrome Developer Tools. If you do not have the time to take the course, I highly suggest skimming the features and go back to learn them if you needed the tools.

Elements:
  • Gives you the ability to Drag and drop HTML Lines, Edit the HTML,
  • Look up the CSS items  and where they are inheriting the elements.
  • Ability to change to cursor dependent events (elements like onhover, infocus ..etc) to edit the CSS

Resources:
  • Look up all the files used to create the site (CSS, JS, images) and highlight any missing ones
  • Local storage shows any saved JSON calls (I have yet to test this with forms, but Get and Post data should be shown here)

Network:
  • Shows the calls (Get and Post) made to show all of the files and when they started (server is limited to a number of files it can call in time. So it is a great idea to combine and minify files.
  • To use: Press the black circle at the bottom and it would start recording then Refresh the page.
  • Options to disable cashed items under settings (small gear on the bottom right)


Sources:
  • A text editor. Access all of your (js) files and ability to edit.
  • Right click and click on Local modifications for the option to save your files or revert.

Timeline:
  • Record Behaviors (animation, drawing) to see how long they are taking to draw.
  • Memory monitoring to check for any memory leaks

Profile:
  • Monitor the speed of the JS to help with finding parts of the codes that are slowing the page
  • Monitor CSS to find how long the JS is taking to select the elements (e.g. #elementName vs .elementClass)
  • Take a Heap shot to find any memory leaks of elements not collected.


Console:
Consoles allow you to type any Javas Script functions you have in your page and it would return the result.
Select elements to find them in your html by using  $(".className") or element
Lots of goodies that could be found on the google API support.


Chrome Developer tool is a must learn if you are doing any web development. I have to admit that one feature that I miss from IE dev tool is being able to use the cursor to highlight and click on an element on the web page.

Saturday, May 11, 2013

Zoom in to Show Your Presentation Details

Ever seen a presentation where the presenter zoomed in to a part of the screen to show some hard to read details?

I always thought that it was a windows feature but I finally found it. This cool trick could be done with a product from Microsoft called ZoomIt.  It is hard to show an example of it, but  this is what my full screen looks like before and after zooming in.


I wish I knew about this before I used ctl + and - on my presentation. Enjoy!
Thursday, May 9, 2013

How to Give Your First Technical Presentation

So I gave my first ever technical presentation at Carolina Code Camp 2013. I talked about a technology that makes my life easier and felt that other developers should know about.  I had a lot of fun doing it and received a positive reaction from the audience.

Before I start, I just want to break the misconception of being an expert to present. You don't. It is all about knowledge sharing and helping others. You can simply research a topic for a week and present the lessons to your audience.


It was a learning experience for me and a step that I knew that I should take one day. So I decided to focus on improving my presentation and public speaking skills.  These are some basic  tips I collected  that would help anyone trying to present for the first time:

1- Don't focus on being a great presenter. Focus on not sucking
Silly..but an average presentation where the message is delivered is your goal. You can not become a Steve Job by practicing for a weekend. It takes experience to give a great presentation.  Instead, look back at the bad presentations that you been to (speaker was not prepared, reading from the slides ...etc) and focus on NOT doing these mistakes.

2- Practice In voice
Practicing the presentation in voice helps with recognizing strong points for the slides. Each slide should have a reason for being up and you will need to tell the audience why you have it up there.
It also helps with creating an "auto pilot" feel where some  key points would be explained  at the right time giving you time to prepare for answers. And walk around the room to practice your body movement.

3- Find Your slides Balance
A slide with one word can be as powerful as one with multiple bullet  points. Your goal with the text is to get your crowed to stay at the same subject as you.  Do not read from the slides as human eyes can read faster than the speaker reading.

4- Live Code can go wrong. Just show us the code
If you are a new speaker, Try to lower the risk of failure of presentation tools. We know that you can code. So not coding in front of everyone and showing us the final result is enough. Just practice, add a lot of comments  and know the code does.

5- Everyone in the room wants you to succeed
Unlike the old school  and college days, No one is forced to come in. Everyone knows what it feels like to present and they know that it is tough. They will all help you because they want to hear what you got.

6- Draw your energy from the crowd
Your crowd will follow along and there will be some interested people sitting. Try to find one from each section of the room and it would look as if you are making eye contact with everyone. It would be more helpful if they are sitting in the back.

7- Tell them when they can ask questions
It is a great feeling when others ask questions. It wakes up the room to hear another voice talking.  After any big slide, make sure that you are asking for questions. Waiting to the end would cause the audience to forget to ask. Plus, It is easy to assume that the crowed knows some concept when they are not familiar with it. A simple question can clear a lot of confusion and put everyone at the same point with the speaker.

8- Show your personality
Be human. The audience would learn more from a presentation that they enjoyed. be yourself. Just talk to them the same way you talk to your friends.

9- Tell a story
You can always come up with a story. Do you have any reference stories about your client? How did you start using this technology? We want to relate the technology to our lives. An If statement is a cool concept, but an ability to make a decision is more interesting.

10- Replace the "um" with hand gestures.
Trust me .. Not a single um was given.

That is all I can think about now. I am still a bad presenter and will be for a while. And it is OK. Everyone got to start somewhere. I did not expect that good of a reaction out if my first  presentation.  I can't wait until I am up in front of everyone again.
You are all ready now (you were before reading this but probably didn't know it). Go ahead and present!

Some helpful resources I used:
- Scott Hanselman has a lot of good articles and videos. At the very least, I recommend listening to the podcast.
Good tips and very cool slide design. I recommend reading his take on how we use Powerpoint wrong.
Impress.js library helped me create a non-powerpoint presentation.
Sunday, May 5, 2013

Using Twitter Bootstrap 2.0 in ASP.NET MVC web applications


Bootstrap is a powerful front end framework that contain a collection of tools used to create great  sites and solve common  front end problems.
I stumbled upon bootstrap while looking for a way to improve the look of my web pages. I come from a native  development background and the front end of my application -while important- has not been my focus. I wanted to create cool looking, and yet, not time consuming UI for my applications. Twitter Bootstrap saved my day.

I tried to change the front end of my ASP.NET MVC web apps and Here is a quick way to use bootstrap in your ASP.NET application:

 1-Create a new blank ASP.NET MVC 4 project. 

2- Let Nuget handle it for you (OR you can manually add the bootstrap files to the correct directory. Not recommended). You should find the package installer under Tools (don't mix between it and the VS command line). The command is  :

Install-Package Twitter.Bootstrap.
Your Bootstrap files will be located in your content file


3-Add the libraries to your BundleConfig.cs file. This is not required but it is a good practice.  




4- Include your CSS and JS bundles in the _layout header. I ran the site before and after including the bootstrap file.


5- Change the contents of the file to fit your style. I used an example from bootstrap website to start. I added padding to the top of the body to allow for room for the navbar.

Code  is available (folder: Working Example) at  https://github.com/AMadHammer/Bootstrap2inASPnet

Helpful resources for super-hero-level of website building:
- Form builder using drag and drop.
- Free themes to use.
- Create a mock up of your bootstrap site.
- THE GREATEST BOOTSTRAP THEME EVER