<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Femgineer &#187; Software Development</title>
	<atom:link href="http://femgineer.com/category/coding-debugging/feed/" rel="self" type="application/rss+xml" />
	<link>http://femgineer.com</link>
	<description>Coder. Speaker. Writer.</description>
	<lastBuildDate>Thu, 10 May 2012 00:24:04 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Growing Pains? Try Retooling.</title>
		<link>http://femgineer.com/2012/04/growing-pains-try-retooling/</link>
		<comments>http://femgineer.com/2012/04/growing-pains-try-retooling/#comments</comments>
		<pubDate>Thu, 19 Apr 2012 05:10:38 +0000</pubDate>
		<dc:creator>Poornima</dc:creator>
				<category><![CDATA[Product Development]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Software Principles & Practice]]></category>
		<category><![CDATA[Startups]]></category>
		<category><![CDATA[software development]]></category>
		<category><![CDATA[startup]]></category>

		<guid isPermaLink="false">http://femgineer.com/?p=1076</guid>
		<description><![CDATA[
<div class="twitterbutton" style="float: right; padding-left: 5px;"><a href="http://twitter.com/share?url=http://femgineer.com/2012/04/growing-pains-try-retooling/&amp;text=Growing Pains? Try Retooling.&amp;via=&amp;related=DolcePixel"><img align="right" src="http://femgineer.com/wp-content/plugins//easy-twitter-button/i/buttons/en/tweetn.png" style="border: none;" alt="" /></a></div>


Growth is fun and exciting in a startup, but it can also be just a little painful and scary.
Its scary because people can&#8217;t anticipate problems that arise from growth such as having customers, supporting them, answering their requests, and fixing the issues they experience with your product.  Or adding employees, training them, educating them on ]]></description>
			<content:encoded><![CDATA[
<div class="twitterbutton" style="float: right; padding-left: 5px;"><a href="http://twitter.com/share?url=http://femgineer.com/2012/04/growing-pains-try-retooling/&amp;text=Growing Pains? Try Retooling.&amp;via=&amp;related=DolcePixel"><img align="right" src="http://femgineer.com/wp-content/plugins//easy-twitter-button/i/buttons/en/tweetn.png" style="border: none;" alt="" /></a></div>
<p>Growth is fun and exciting in a startup, but it can also be just a little <em>painful</em> and <em>scary</em>.</p>
<p>Its <em>scary</em> because people can&#8217;t anticipate problems that arise from growth such as having customers, supporting them, answering their requests, and fixing the issues they experience with your product.  Or adding employees, training them, educating them on the vision of the company, keeping them motivated and collaborating with each other.  And then there&#8217;s the product itself!  More customers are using it, and generating data which leads to a less than awesome experience for your customers.</p>
<p>This isn&#8217;t the time to feel overwhelmed.  Its the time to pat yourself on the back: you found product market fit and you&#8217;ve recruited some stellar people to help you out!</p>
<p>Now you&#8217;ll need to change some processes to handle the growth which can be the <em>painful</em> part.  Its easy to throw money at the problem, but lets just say you you may or may not have access to a seemingly bottomless pit of cash.</p>
<p><strong>Figure out what you need not what you want.</strong></p>
<p>It all comes back to milestones.  Where do you want to be in 3 months, 6 months, and 1 year?  You don&#8217;t need to have definitive growth numbers for your startup but you need to put things in perspective.  Lets say you&#8217;re shopping around for a customer support ticketing system, and right now your growth is fairly predictable and manageable by a single human being and possibly part time.  In that case don&#8217;t buy something that&#8217;s going to cost more than what a single customer is paying you monthly.  You might even be fine  doing support via email and phone, and it will probably aid in your customer development process to have someone listening for feedback.  If your customer support person starts to get inundated then its the time to look into a system to organized.</p>
<p>Start shopping for products when you want to cut down on human labor costs that are quantifiable by time and money.  The people you hire are smart, so invest in their productivity and happiness, and don&#8217;t let them become drones by having them do repetitive mundane tasks that aren&#8217;t advancing themselves or the company.</p>
<p><strong>Building vs. buying?</strong></p>
<p>You&#8217;ve isolated a few areas in which you need to put a new tool in place or replace an old one.  As engineers running a company its easy to say: &#8220;Oh I&#8217;ll just build it!&#8221;  Wrong answer.  Yes it might be super easy for you to whip something up, but who&#8217;s going to test that new tool, maintain the code base, and add on to it?  If its you great!  You now have a new department: internal tools.  Oh you&#8217;re small&#8230; well then you just cut down on product development.</p>
<p>Save yourself some keystrokes and shop around for products instead.  As I mentioned before, if you identified your needs then it becomes easier to tell people what you want and to shop around for it.  Yes there are times when you might not find what you&#8217;re looking for, and it might make sense to build it in house if its cost effective (cost == time + money).  If you find a product that satisfies 70-80% of your needs and is within your budget buy it!</p>
<p>When I was working at <a href="http://mint.com" target="_blank">Mint</a> I had the painful task of searching for an email provider to handle all the outbound emails we were sending.  Integration was a nightmare especially given the products that were in the market at the time.  Had I taken a little more time to do research I would have found <a href="http://mailchimp.com" target="_blank">MailChimp</a> and been happier.  Live and learn.</p>
<p>Fortunately I did learn, a different lesson while working there, put off managed hosting for as long as possible.  Which is why  when I started <a href="http://bizeebee.com" target="_blank">BizeeBee</a> I went with <a href="http://heroku.com" target="_blank">Heroku</a>.  Could I have written deploy scripts, and the add-ons that they offer on my own?  Sure, in fact I wrote some of them at <a href="http://mint.com" target="_blank">Mint</a> (sms and email messaging, performance monitoring, etc) in Java!  But going with a solution like Heroku for less than $100 a month gave me the freedom to build, iterate, and launch BizeeBee all in the same year!  Did I mention $100 is also less than the going rate of a developer pretty much anywhere.</p>
<p><strong>How long will the solution last?</strong></p>
<p>Remember the title of this article is <em>re</em>tooling.  If your startup is on a growth trajectory it will outgrow tools, and you&#8217;ll need to refine processes.  Get comfortable with it.  They key is to identify when you&#8217;ve outgrown a product or anticipate when you will.</p>
<p>Sometimes you can live with a less than perfect solution for awhile, especially if its cheaper than the alternative in terms of setup and maintenance.  Just acknowledge the limitations, and prepare to fix them if they cut into progress.  For example, at BizeeBee we have a customer support tool that I built.  Its not perfect,  it drags the system down a little when we run large queries, but we&#8217;re operating with limited resources.  I&#8217;ve optimized the queries once they really start to impact application performance, but I haven&#8217;t yet setup a dedicated database, and optimized the heck out of it, because I have other <em>priorities</em>.  I&#8217;ll throw resources at it when it start to cost us customers and time, or isn&#8217;t serving its purpose.</p>
<p><strong>ROI</strong></p>
<p>Retooling is not a cost.  Its a cost if you do it <em>prematurely</em>.  If you do it when you absolutely need to or when you anticipate a need arising then it can actually be aid in the growth of the company.  Once again figure out what you need.  Do you need to grow your user base?  Do you need to keep your customer happy?  Do you need to get paid on time?  Do you need your employees to be happy and productive?  Those should translate to what you&#8217;re looking for in a solution.</p>
<p>Retooling isn&#8217;t just about finding the right tool, its also about finding the tool that will help you you meet your next milestones, and once you reach them you&#8217;ll need to retool again.  Happy retooling! <img src='http://femgineer.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://femgineer.com/2012/04/growing-pains-try-retooling/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Why a CS major would want an MBA</title>
		<link>http://femgineer.com/2012/04/why-a-cs-major-would-want-an-mba/</link>
		<comments>http://femgineer.com/2012/04/why-a-cs-major-would-want-an-mba/#comments</comments>
		<pubDate>Mon, 16 Apr 2012 16:54:24 +0000</pubDate>
		<dc:creator>Poornima</dc:creator>
				<category><![CDATA[Femgineer Spotlight]]></category>
		<category><![CDATA[Guest Post]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[women in tech]]></category>

		<guid isPermaLink="false">http://femgineer.com/?p=1061</guid>
		<description><![CDATA[
<div class="twitterbutton" style="float: right; padding-left: 5px;"><a href="http://twitter.com/share?url=http://femgineer.com/2012/04/why-a-cs-major-would-want-an-mba/&amp;text=Why a CS major would want an MBA&amp;via=&amp;related=DolcePixel"><img align="right" src="http://femgineer.com/wp-content/plugins//easy-twitter-button/i/buttons/en/tweetn.png" style="border: none;" alt="" /></a></div>


 
I was initially a management major, but my college required one computer science class during our first semester. It was in that class, amidst loops and pointers, that I fell in love with programming. Soon, I switched my major to computer science. Now, I’m about to graduate as a software engineer, and I love ]]></description>
			<content:encoded><![CDATA[
<div class="twitterbutton" style="float: right; padding-left: 5px;"><a href="http://twitter.com/share?url=http://femgineer.com/2012/04/why-a-cs-major-would-want-an-mba/&amp;text=Why a CS major would want an MBA&amp;via=&amp;related=DolcePixel"><img align="right" src="http://femgineer.com/wp-content/plugins//easy-twitter-button/i/buttons/en/tweetn.png" style="border: none;" alt="" /></a></div>
<p><span id="internal-source-marker_0.7103447697591037"> </span></p>
<p dir="ltr">I was initially a management major, but my college required one computer science class during our first semester. It was in that class, amidst loops and pointers, that I fell in love with programming. Soon, I switched my major to computer science. Now, I’m about to graduate as a software engineer, and I love what I do. I feel alive when I solve problems and create new things that improve people’s lives. I especially love the endorphin rush I experience once I get a pesky bug fixed!</p>
<p dir="ltr">During my junior year, I went on a software development internship where I was often the only woman, the youngest, or the only Asian in the room. During those six months, I realized that the trailblazers of technology, or at least the ones we know of, were all powered by testosterone.</p>
<p dir="ltr">And it made me wonder &#8212; why don’t we have a Martia Zuckerberg or even a Steph Jobs?  I look around me, and I notice that there are simply not enough women running tech companies or founding the next Apple. Actually, there are not enough women on the top, period. In a TED <a href="http://www.ted.com/talks/sheryl_sandberg_why_we_have_too_few_women_leaders.html" target="_blank">speech</a>, Facebook COO and Harvard Business School alum Sheryl Sandberg commented that only fifteen to sixteen percent of executives in the corporate world are women.  In fact, companies such as <a href="http://www.women2.org/why-facebooks-ipo-matters-to-women-seven-white-men/" target="_blank">Facebook and Zynga</a> do not have a single woman in their boards. Those dismal numbers have to change, and I want to be part of the solution.</p>
<p dir="ltr">That is why I want an MBA. I want to leverage technology and business to change that ratio. I want to equip myself with the skills that I will need to run a tech company with that mission someday. Maybe, I’ll be gutsier and even start one myself.</p>
<p dir="ltr">Some people are brave, though. They found companies right away, but at the young age of twenty, I feel scared that I won’t know anything or that people won’t take me seriously, especially since I do not have an American undergrad degree. Perhaps that’s the imposter syndrome talking, but I do feel that an MBA will better prepare me for the career path that I see for myself. I will get to be intimate with every nook and cranny of a company’s structure, finances, etc., before I have to do it in real life. I guess that’s just my style – I want to have a broader view before I have to make tough business decisions, whether for my own venture or for the next Twitter.</p>
<p dir="ltr">But whether I do go for an MBA or not, one thing is for sure: I will stay in the tech industry because I believe in its capacity to ignite social change. In fact, what I love most about tech is that it is a great “democratizer.”  Imagine, a poor student from the streets of India who does not have the means to hire private tutors can still learn through organizations like the <a href="http://www.khanacademy.org/about" target="_blank">Khan Academy</a>. Students who are not privileged to attend prestigious schools can still have access to the same caliber of information through ventures like <a href="http://ocw.mit.edu/index.htm" target="_blank">MIT Open Courseware</a> and Harvard’s <a href="http://www.harvard.edu/itunes" target="_blank">courses</a> in iTunes U.</p>
<p dir="ltr">Growing up as the daughter of an immigrant in a small, Midwestern town, technology is what empowered me to be what I am today. It was the backbone of my education, the very reason I was able to have a job in a top ten software company. I want to use that unique quality of tech, coupled with solid business acumen, to empower the underdogs of the world, the children of underprivileged immigrants, all young women. I want them to be able to look up to strong women like what I aspire to be, and realize that yes, they can code, they can be scientists, they can be CEOs. I want them have the opportunity to be leaders, not just followers. I want to be part of the transformation of our society into an America where women creating tech startups and running big corporations is part of the norm, rather than the exception.</p>
<p dir="ltr"><a title="frances-advincula - women in technology" href="http://femgineer.com/wp-content/uploads/2012/04/frances-advincula1.jpg"><img class="alignleft size-medium wp-image-1063" title="frances-advincula" src="http://femgineer.com/wp-content/uploads/2012/04/frances-advincula1-300x225.jpg" alt="" width="300" height="225" /></a>Frances is about to graduate with a degree in Computer Science with specialization in Software Engineering. Previously, she interned for six months for Accenture Software and will be joining them as a Software Engineer in June.  She also contributes to <a href="http://www.levoleague.com/" target="_blank">The Levo League</a>, <a href="http://www.women2.org/tag/frances-advincula/" target="_blank">Women 2.0</a>, and <a href="http://www.steminist.com/" target="_blank">STEMinist</a>.  A proud geek girl, she&#8217;s sure she is the only one who can&#8217;t play video games. Follow her random musings at <a href="http://twitter.com/franadvincula" target="_blank">@FranAdvincula</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://femgineer.com/2012/04/why-a-cs-major-would-want-an-mba/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Culture of Constraints</title>
		<link>http://femgineer.com/2011/12/culture-of-constraints/</link>
		<comments>http://femgineer.com/2011/12/culture-of-constraints/#comments</comments>
		<pubDate>Sat, 03 Dec 2011 04:10:41 +0000</pubDate>
		<dc:creator>Poornima</dc:creator>
				<category><![CDATA[My Startup]]></category>
		<category><![CDATA[Product Development]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Startups]]></category>
		<category><![CDATA[Recruiting]]></category>
		<category><![CDATA[Technical Talent]]></category>

		<guid isPermaLink="false">http://femgineer.com/?p=919</guid>
		<description><![CDATA[
<div class="twitterbutton" style="float: right; padding-left: 5px;"><a href="http://twitter.com/share?url=http://femgineer.com/2011/12/culture-of-constraints/&amp;text=Culture of Constraints&amp;via=&amp;related=DolcePixel"><img align="right" src="http://femgineer.com/wp-content/plugins//easy-twitter-button/i/buttons/en/tweetn.png" style="border: none;" alt="" /></a></div>


In 4 days it will be the 1 year anniversary of launching BizeeBee my second startup.  When I started BizeeBee I was determined to put in place engineering principles that I hadn&#8217;t been able to at previous companies.  I also wanted to avoid a lot of bad practices that I had experienced throughout my ]]></description>
			<content:encoded><![CDATA[
<div class="twitterbutton" style="float: right; padding-left: 5px;"><a href="http://twitter.com/share?url=http://femgineer.com/2011/12/culture-of-constraints/&amp;text=Culture of Constraints&amp;via=&amp;related=DolcePixel"><img align="right" src="http://femgineer.com/wp-content/plugins//easy-twitter-button/i/buttons/en/tweetn.png" style="border: none;" alt="" /></a></div>
<p>In 4 days it will be the 1 year anniversary of launching <a href="http://bizeebee.com/" target="_blank">BizeeBee</a> my second startup.  When I started BizeeBee I was determined to put in place engineering principles that I hadn&#8217;t been able to at previous companies.  I also wanted to avoid a lot of bad practices that I had experienced throughout my career such as splitting the responsibilities of development and testing, and product bloat.</p>
<p>I know most startups like to take the quick and dirty approach to product development, and then go back and refactor or rebuild their product.  I think that&#8217;s great and we&#8217;ve certainly refactored a lot of our code base too.  But I started charging customers from day 1 of launching and had to convey confidence to get them to pay.  So I emphasized quality first and foremost.</p>
<p>My vision for BizeeBee&#8217;s product and engineering team was to create a simple and high quality product, and to do so cost-effectively.  I communicated these constraints to my team, and we knew there would of course be trade-offs, but we all agreed to these basic principles to guide our decision making and product development process.</p>
<p><strong>Invest time in talent</strong></p>
<p>In any industry employees are not interchangeable.  I know there are a lot of people who like outsourcing and just want something &#8220;built&#8221;.  This is fine if you are driving a culture of results.  But I truly believe employees need to be engaged in worthwhile work to produce quality.  So I hire for raw talent, hunger, and patience above all else.  I truly believe this is the only way to attract top performers.  You can look at people&#8217;s track record, but many don&#8217;t have one, so you just have to rest on raw talent and motivation.</p>
<p>Having a talented team is great because it means they will invest time in learning, after all talent is just a byproduct of learning, practice, and refining a skill.</p>
<p>So I invested the time in letting my engineers learn Rails and the entire stack of technologies that went with it.  I also had them talk to experts in the field about engineering process.  We adopted an Agile process and pair program.</p>
<p>Trade-off: giving people time to learn and not spend all their time developing means that less features will be built.  I know most founders would be too impatient with this approach, but I guess that&#8217;s why its helpful that I do yoga <img src='http://femgineer.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><strong>Cost Effective Quality </strong></p>
<p>I didn&#8217;t have the luxury of having enough money to hire QA engineers, but then again I never liked how engineers would abdicate responsibility for their code to someone else.  Not having a QA team meant that my engineers would need to test their own code.  So for the first time ever I got what I had wanted: TDD (test driven development).</p>
<p>Trade-off: once again less features are built, but what is built has a high level of quality.</p>
<p><strong>Simple Design &amp; Integrating Solutions</strong></p>
<p>Over the course of my engineering career I&#8217;ve read a ton of <a href="http://femgineer.com/reading-list/">design books</a>, because my personal mission of becoming an engineer was to build things that improve human life.  So I wanted to build products that had an emotional appeal, and people would derive joy and want to use them all the time.  Life is already full of stress, the last thing I want to do is cause someone to have a bad day because I built a shitty product.</p>
<p>We don&#8217;t build everything, especially if we can find a good off the shelf solution.  If we don&#8217;t find one we&#8217;ll either build it ourselves, and if its not cost-effective then we&#8217;ll wait until we can afford to build it.  This of course means we&#8217;re spending a lot of time doing research, talking to vendors, understanding terms of service, and understanding the long terms implications of the partnership.</p>
<p>Trade-offs: this can stall product development but its important to know who you&#8217;re getting hitched to <img src='http://femgineer.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>I can&#8217;t speak for other startup founders but as one who wears both the business and technical hat I&#8217;ve had the freedom to create a company and engineering culture that I&#8217;ve grown to love and can be proud of.  I have to give a LOT of credit to my two developers: <a href="http://alexnotov.com/" target="_blank">Alex Notov</a> and <a href="http://twitter.com/#!/davidgrieser" target="_blank">David Grieser</a> who pushed me into implementing a lot of processes and have made me a much better femgineer.  I also want to thank <a href="http://www.taggert.net/wordpress/" target="_blank">Jesse Taggert</a> for her help with product design, and introducing us to <a href="http://kfitzapprentice.wordpress.com/" target="_blank">Kevin Fitzpatrick</a> at  <a href="http://pivotallabs.com/" target="_blank">Pivotal Labs</a>.  And last but not least <a href="http://lyndit.com/" target="_blank">Lyndi Thompson</a> our buzz bee who spreads the word about our product and team, and keeps encouraging me to write code and blog posts.</p>
<p>Its been a good year and I look forward to continuing to build BizeeBee in 2012!</p>
]]></content:encoded>
			<wfw:commentRss>http://femgineer.com/2011/12/culture-of-constraints/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Want more femgineers?</title>
		<link>http://femgineer.com/2011/09/want-more-femgineers/</link>
		<comments>http://femgineer.com/2011/09/want-more-femgineers/#comments</comments>
		<pubDate>Fri, 23 Sep 2011 15:58:41 +0000</pubDate>
		<dc:creator>Poornima</dc:creator>
				<category><![CDATA[Recruiting]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Startups]]></category>
		<category><![CDATA[tech]]></category>
		<category><![CDATA[Technical Talent]]></category>
		<category><![CDATA[women in tech]]></category>

		<guid isPermaLink="false">http://femgineer.com/?p=884</guid>
		<description><![CDATA[
<div class="twitterbutton" style="float: right; padding-left: 5px;"><a href="http://twitter.com/share?url=http://femgineer.com/2011/09/want-more-femgineers/&amp;text=Want more femgineers?&amp;via=&amp;related=DolcePixel"><img align="right" src="http://femgineer.com/wp-content/plugins//easy-twitter-button/i/buttons/en/tweetn.png" style="border: none;" alt="" /></a></div>


Looking back 21 years ago I never would have fathomed I would have become a femgineer or been involved in high tech.  At the age of 8 I had decided I was going to be a lawyer, writer, and professor because I loved to read, write, and speak.  I spent the next 10 years of ]]></description>
			<content:encoded><![CDATA[
<div class="twitterbutton" style="float: right; padding-left: 5px;"><a href="http://twitter.com/share?url=http://femgineer.com/2011/09/want-more-femgineers/&amp;text=Want more femgineers?&amp;via=&amp;related=DolcePixel"><img align="right" src="http://femgineer.com/wp-content/plugins//easy-twitter-button/i/buttons/en/tweetn.png" style="border: none;" alt="" /></a></div>
<p><a href="http://femgineer.com/wp-content/uploads/2011/09/Screen-shot-2010-11-06-at-11.13.38-AM.png"><img class="alignleft size-medium wp-image-886" title="Screen shot 2010-11-06 at 11.13.38 AM" src="http://femgineer.com/wp-content/uploads/2011/09/Screen-shot-2010-11-06-at-11.13.38-AM-300x127.png" alt="femgineer-women-in-tech" width="300" height="127" /></a>Looking back 21 years ago I never would have fathomed I would have become a femgineer or been involved in high tech.  At the age of 8 I had decided I was going to be a lawyer, writer, and professor because I loved to read, write, and speak.  I spent the next 10 years of my life working toward that goal.  In elementary and middle school I wrote short stories, in high school I joined the debate team, and when it was time for college I chose Duke because it has a really great law school.  So where did I get of course and decide to become an engineer, pursuing 2 majors (Electrical Engineering and Computer Science) then decide to move to California, work in the tech industry, then join <a href="http://mint.com">startup</a>, and then start my own <a href="http://bizeebee.com" target="_blank">company</a>?  Well the truth is I was NEVER encouraged by anyone to become a lawyer.  In fact, as I&#8217;ve pointed out in this blog a number of times most of the men in my family are engineers.  And when I told most people I wanted to be a lawyer people were actually shocked that I didn&#8217;t want to be a doctor or engineer despite coming from an Indian immigrant family.</p>
<p>But what led up to me actually switching?  While I was growing up no one told me to be an engineer, my family didn&#8217;t even push me towards a particular career they just figured I&#8217;d end up in finance, engineering, or medicine.  But there were a couple things that were happening on the sidelines.  First my mom and dad really pushed me to excel at math and science mostly because they wanted me to keep up with the other Indian kids, which I didn&#8217;t really care about but it did make me more competitive in other areas like high school debate.  Second, I&#8217;ll never forget the day I went to my cousin&#8217;s house and saw she had a computer, I really wanted one badly&#8230; Why?  Because I wanted to play video games, type up my short stories faster, explore on the internet, and submit pretty book reports to my teacher.  I just wanted a computer to live a full life and accomplish goals I had.  Finally, there was the time that my dad took me to see his fab when he worked for Texas Instruments (my dad  has actually worked for a lot of the big players in high tech: Sony, TI, Intel, Samsung, and Microchip).  I was just blown away when I saw how the little robotic arm picked up each wafer (computer chip) and moved it over.  I just sat there and stared at it for hours.  Despite the curiosity of how things worked, the lifestyle of being an engineer was not glamorous to me.  I grew up watching Ally McBeal&#8230;</p>
<p>So what did finally got me into engineering?  Realizing I was a builder.  I realized that all my life what I really enjoyed more than anything was building and creating things that made life more enjoyable.  I always loved technology, I taught myself how to make my first webpage using Geocities in high school, I used to hang out with the nerdy boys who would burn CDs on the weekends, and spent hours on the internet reading, researching, and of course chatting with people who I wasn&#8217;t supposed to (a/s/l ring a bell?!).</p>
<p>I was literally sitting in my freshman economics class bored to tears and tired of just reading and writing papers.  I wanted to build something.  I wanted to create.  And that&#8217;s what drove me to taking my first computer science class in college.  The rest is history.</p>
<p><strong>How do you encourage engineering?</strong></p>
<p>But enough about me, this is about how we can encourage young women or girls to become <em>femgineers </em><em>and get interested in high tech</em>.  Well let&#8217;s start with what it means to be a femgineer.  I coined the term almost 5 years ago and started this blog.  To me being a femgineer means you are an engineer at the core, you enjoy building things in software or hardware, but you are chic and sophisticated, you have a personality beyond being a nerd.  Maybe you like to travel, speak a few languages, play sports, enjoy cooking, and the list goes on.  Its not enough to tell girls what they should become or what society needs, you need to sell them on the vision of what life will be like, and how you affect the world.  In order to that you need to have <em>role models</em>.</p>
<p>When I was growing up there were hardly any women in engineering that were strong role models.  Until I met my college professor Lisa Huettel.  She was the first female engineer who inspired me.  She was young, energetic, and I loved her method of teaching and the time that she took with each student.  She was one of the driving forces for me switching into engineering in college.</p>
<p>We need more role models and we need to showcase them front and center.  Point out their achievements both as an engineer and in life.  Options are available for those individuals looking to make a difference in their life along with ways to help with the cost of an education. There are even opportunities for <a href="http://www.scholarships4moms.net/" target="_blank">single mom scholarships</a> to ease the stress from family while earning a degree.  Its important to take a holistic approach, work isn&#8217;t everything.</p>
<p><strong>How do you retain engineers?</strong></p>
<p>When I was graduating from college I noticed a lot of my peers actually didn&#8217;t go on to become engineers both men and women.  Even people who were better engineers in college than me! What did they go on to become?  Investment bankers and consultants.  Why?  Because they saw absolutely no value in being an engineer.  What they had experienced through internships were dull days of sitting behind a desk coding, little to no social interaction, and forget the opportunity for travel or making bank.  Being a consultant had a glamorous lifestyle at least on face value.</p>
<p>Then I saw the same thing happen at large companies.  Women who were engineers were leaving to become mothers or pursue other jobs where they could meet with people on a daily basis instead of sitting behind a desk.</p>
<p>Those who were initially interested in engineering are  dropping out.  Its not that they don&#8217;t like building or problem solving, they&#8217;re unhappy with the their job or the lifestyle.  These people initially bought into the vision of building, problem solving, and creating products that improve people&#8217;s lives.  But the reality of it was long hours, lack of appreciation, and unhappiness caused by sitting at a desk coding all day.  Being treated like a cog will not inspire or motivate people.</p>
<p>We can encourage young girls and boys to pursue jobs as engineers all we want.  But if we don&#8217;t do a good job of keeping them motivated they will drop out at some point whether its high school, college, or even after the enter the industry.  Part of the reason many engineers join startups is because they get to be part of the product, process, and profits.</p>
<p>When children are growing up explain to them what it means to be an engineer, point out the jobs that are out there in hardware, software, and design.  Show them the value in building and creating.  Want more femgineers or mengineers?  Encouragement them every step of the way, its the only way to inspire and motivate anyone!</p>
]]></content:encoded>
			<wfw:commentRss>http://femgineer.com/2011/09/want-more-femgineers/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Post-Launch Prep II</title>
		<link>http://femgineer.com/2010/12/post-launch-prep-ii/</link>
		<comments>http://femgineer.com/2010/12/post-launch-prep-ii/#comments</comments>
		<pubDate>Tue, 28 Dec 2010 19:12:42 +0000</pubDate>
		<dc:creator>Poornima</dc:creator>
				<category><![CDATA[My Startup]]></category>
		<category><![CDATA[Product Development]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Startups]]></category>

		<guid isPermaLink="false">http://femgineer.com/?p=834</guid>
		<description><![CDATA[
<div class="twitterbutton" style="float: right; padding-left: 5px;"><a href="http://twitter.com/share?url=http://femgineer.com/2010/12/post-launch-prep-ii/&amp;text=Post-Launch Prep II&amp;via=&amp;related=DolcePixel"><img align="right" src="http://femgineer.com/wp-content/plugins//easy-twitter-button/i/buttons/en/tweetn.png" style="border: none;" alt="" /></a></div>



After launching BizeeBee I realized that my initial post on what to do after you launch your startup wasn&#8217;t enough to cover all the work that the BizeeBee team has done after launching and thought I&#8217;d share some of our efforts.  We launched BizeeBee about three weeks ago with a few yoga studios across the nation.  The ]]></description>
			<content:encoded><![CDATA[
<div class="twitterbutton" style="float: right; padding-left: 5px;"><a href="http://twitter.com/share?url=http://femgineer.com/2010/12/post-launch-prep-ii/&amp;text=Post-Launch Prep II&amp;via=&amp;related=DolcePixel"><img align="right" src="http://femgineer.com/wp-content/plugins//easy-twitter-button/i/buttons/en/tweetn.png" style="border: none;" alt="" /></a></div>
<div>
<p><a href="http://femgineer.com/wp-content/uploads/2010/12/Screen-shot-2010-12-28-at-11.09.17-AM.png"><img title="Screen shot 2010-12-28 at 11.09.17 AM" src="http://femgineer.com/wp-content/uploads/2010/12/Screen-shot-2010-12-28-at-11.09.17-AM-300x208.png" alt="startup-launch" width="300" height="208" /></a>After launching <a href="http://www.bizeebee.com" target="_blank">BizeeBee</a> I realized that my initial <a href="http://femgineer.com/2010/03/post-launch-prep/" target="_blank">post</a> on what to do after you launch your startup wasn&#8217;t enough to cover all the work that the BizeeBee team has done after launching and thought I&#8217;d share some of our efforts.  We launched BizeeBee about three weeks ago with a few yoga studios across the nation.  The on-boarding process was pretty smooth, but once we had customers up and running I had an epiphany:  we have <em>paying</em> customers who <em>depend</em> on us for their livelihood, and we are a <em>reflection</em> of their business.  The team&#8217;s entire perspective about how we were managing our development process changed!  Here are the key things we added to our process:</p>
<p><strong>1. Backup and Restore</strong></p>
<p>We were responsible for the reliability of our users&#8217; data.  They need this data to understand the health of their business and convey it to their customers.  If something happens we need to be able to retrieve their data and most importantly restore it!  So we started doing backups, initially daily, but will move to hourly.</p>
<p><strong>2. Testing</strong></p>
<p>We could no longer just deploy to production anytime we wanted because our users use our product daily and hourly to run their business.  While continuous deployment is pretty seamless, I was more afraid of introducing a bug during someone&#8217;s working hours, so I wanted plenty of time to test and do a hotfix if necessary.  If testing hasn&#8217;t been a priority in the alpha or beta, it should become an imperative once you&#8217;ve launched.</p>
<p>Even if you don&#8217;t have time to setup a full regression suite, you can take a cue from our development process:  we have all our flows documented, and run through all of them manually every night, even if the feature hasn&#8217;t been touched in months.  We also test across the three major browsers: Chrome, Safari, and Firefox.  The last thing I want to break is something simple like password recovery or deal with browser interoperability issues.  We&#8217;re working on creating an automated suite that will run daily to ensure code quality.</p>
<p><strong>3. Branches</strong></p>
<p>I initially disliked <a href="http://github.com" target="_blank">GitHub</a> but now I love it!  It has made branching and merging a breeze because unlike SVN the cost of checking out and switching between branches is very low.  It doesn&#8217;t suffer from the same large data footprint that SVN does.  We created 4 categories of branches: master (current development branch), features (one off apps like internal tools), releases, and hotfixes, and also setup a policy of what could be checked into each branch.  For example, once a release branch has been created we can no longer check in new features only bug fixes.  Instituting these kinds of policies minimizes risk of introducing a bug after a release, and people have a good understanding of the ongoing changes in each released version.</p>
<p><strong>4. Track Customer Support Issues</strong></p>
<p>I created an admin tool that lets me login daily to see our user growth count and feature usage.  This also lets myself and my team troubleshoot any issues that customers might be facing.  It has read-only access to their data and the authorization is limited.  If you find yourself constantly querying logs and databases, and have teammates who don&#8217;t know SQL or how to query logs then creating a tool that reflects the data empowers them.  And resolving customer support issues as quickly as possible is critical to the quality of your startup!</p>
<p>These are just a few changes we made, but we&#8217;ve got even more in the pipeline: more data encryption, site monitoring, and scaling the system based on growth rate.  I&#8217;ll post another follow-up once we tackle those shortly.</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://femgineer.com/2010/12/post-launch-prep-ii/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ruby Tuesday: Pitfalls of Prototyping in Rails</title>
		<link>http://femgineer.com/2010/06/ruby-tuesday-pitfalls-of-prototyping-in-rails/</link>
		<comments>http://femgineer.com/2010/06/ruby-tuesday-pitfalls-of-prototyping-in-rails/#comments</comments>
		<pubDate>Tue, 15 Jun 2010 06:43:12 +0000</pubDate>
		<dc:creator>Poornima</dc:creator>
				<category><![CDATA[Ruby Tuesday]]></category>
		<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://femgineer.com/?p=726</guid>
		<description><![CDATA[
<div class="twitterbutton" style="float: right; padding-left: 5px;"><a href="http://twitter.com/share?url=http://femgineer.com/2010/06/ruby-tuesday-pitfalls-of-prototyping-in-rails/&amp;text=Ruby Tuesday: Pitfalls of Prototyping in Rails&amp;via=&amp;related=DolcePixel"><img align="right" src="http://femgineer.com/wp-content/plugins//easy-twitter-button/i/buttons/en/tweetn.png" style="border: none;" alt="" /></a></div>


My last Ruby Tuesday post was pretty laudatory regarding prototyping in Rails.  In this post I&#8217;m switching gears and exposing the pains and limitations with Rails.
The development team at my current startup is composed of engineers and designers, basically I make everyone on the team write code    I understand that Rails&#8217; benefit is ]]></description>
			<content:encoded><![CDATA[
<div class="twitterbutton" style="float: right; padding-left: 5px;"><a href="http://twitter.com/share?url=http://femgineer.com/2010/06/ruby-tuesday-pitfalls-of-prototyping-in-rails/&amp;text=Ruby Tuesday: Pitfalls of Prototyping in Rails&amp;via=&amp;related=DolcePixel"><img align="right" src="http://femgineer.com/wp-content/plugins//easy-twitter-button/i/buttons/en/tweetn.png" style="border: none;" alt="" /></a></div>
<p><a href="http://femgineer.com/wp-content/uploads/2010/06/Screen-shot-2010-01-12-at-4.36.23-PM.png"><img class="alignleft size-full wp-image-752" title="Screen shot 2010-01-12 at 4.36.23 PM" src="http://femgineer.com/wp-content/uploads/2010/06/Screen-shot-2010-01-12-at-4.36.23-PM.png" alt="" width="134" height="59" /></a>My last Ruby Tuesday post was pretty laudatory regarding prototyping in Rails.  In this post I&#8217;m switching gears and exposing the pains and limitations with Rails.</p>
<p>The development team at my current <a href="http://bizeebee.com">startup</a> is composed of engineers and designers, basically I make everyone on the team write code <img src='http://femgineer.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' />   I understand that Rails&#8217; benefit is in thinking from an MVC mindset.  But because it integrates all components its requires that all developers have some knowledge of a high level language (Java, Ruby), front-end technologies (HTML, CSS), and an understanding of databases.  While it doesn&#8217;t require them to have depth of knowledge I think the tight coupling makes it hard to separate the layers.</p>
<p>The following are the three limitations I&#8217;ve been experiencing with Rails:</p>
<ol>
<li>Integration &#8211; when it comes time to integrate HTML or design changes, designers and front-end engineers need to work in the same space i.e. the same .erb.html file.  Yes I know it doesn&#8217;t require a painful and time-consuming compilation process like XMLC or Velocity.  But its easier for the designer to change the look and feel using XMLC or Velocity because they have defined a set of DOM objects.  With Rails designers have to understand views and partials.</li>
<li>Convention over configuration &#8211; the speed of development with convention over configuration Rails seems to come at the price of normalization, meaning there  is not foreign key construct in Rails.  You as a developer are required to configure this yourself along with other database constructs like unique constraints and indexes.</li>
<li>Deprecation &#8211; perhaps its just me, and I&#8217;m used to Java versions being released every year or two, but it seems like there are a lot of constructs that are deprecated between Rails versions.  The book publishers can barely keep up with the changes.  The other is that some of the constructs that are deprecated which I think are quite large i.e. scaffolding.</li>
</ol>
<p>Despite these pitfalls I do advocate Rails as a prototyping platform.  The learning curve isn&#8217;t steep, and convention over configuration improves the progress developers can make in a day.  I&#8217;d also like to learn more about how people have addressed these pitfalls as their prototype matures.  What have been some of your experiences and approaches to dealing with Rails as you transition and build out the product?</p>
]]></content:encoded>
			<wfw:commentRss>http://femgineer.com/2010/06/ruby-tuesday-pitfalls-of-prototyping-in-rails/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>jQuery Basics</title>
		<link>http://femgineer.com/2010/03/jquery-basics/</link>
		<comments>http://femgineer.com/2010/03/jquery-basics/#comments</comments>
		<pubDate>Sun, 21 Mar 2010 00:14:25 +0000</pubDate>
		<dc:creator>Poornima</dc:creator>
				<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://femgineer.com/?p=646</guid>
		<description><![CDATA[
<div class="twitterbutton" style="float: right; padding-left: 5px;"><a href="http://twitter.com/share?url=http://femgineer.com/2010/03/jquery-basics/&amp;text=jQuery Basics&amp;via=&amp;related=DolcePixel"><img align="right" src="http://femgineer.com/wp-content/plugins//easy-twitter-button/i/buttons/en/tweetn.png" style="border: none;" alt="" /></a></div>


I&#8217;d been hearing a lot of buzz around jQuery and how much developers like it.  While I myself am not a front-end developer and prefer doing mostly back-end work in Java or Rail, after I saw jQuery in action at SXSWi I wanted to learn to code it in first hand.
One of the reasons I ]]></description>
			<content:encoded><![CDATA[
<div class="twitterbutton" style="float: right; padding-left: 5px;"><a href="http://twitter.com/share?url=http://femgineer.com/2010/03/jquery-basics/&amp;text=jQuery Basics&amp;via=&amp;related=DolcePixel"><img align="right" src="http://femgineer.com/wp-content/plugins//easy-twitter-button/i/buttons/en/tweetn.png" style="border: none;" alt="" /></a></div>
<p><a href="http://femgineer.com/wp-content/uploads/2010/03/Screen-shot-2010-03-20-at-5.11.19-PM.png"><img class="alignleft size-full wp-image-647" title="Screen shot 2010-03-20 at 5.11.19 PM" src="http://femgineer.com/wp-content/uploads/2010/03/Screen-shot-2010-03-20-at-5.11.19-PM.png" alt="" width="252" height="99" /></a>I&#8217;d been hearing a lot of buzz around jQuery and how much developers like it.  While I myself am not a front-end developer and prefer doing mostly back-end work in Java or Rail, after I saw jQuery in action at SXSWi I wanted to learn to code it in first hand.</p>
<p>One of the reasons I never liked coding in JavaScript is because I didn&#8217;t like it being dynamically typed language and having to deal with retrieving DOM elements based on their names and the ability for the namespace to constantly change.  I also found it cumbersome to have to deal with integrating CSS and JavaScript.  jQuery resolves a lot of these issues for me.  jQuery is basically a JavaScript library that lets developers manipulate DOM objects as if they were POJOs, and also manipulate objects based on their CSS classes.  It also has an extensive animation library giving user a richer experience.</p>
<p>For those out there who are new to JavaScript I highly recommend the following sequence of tutorials:</p>
<ol>
<li><a href="http://docs.jquery.com/Tutorials:Getting_Started_with_jQuery" target="_blank">Getting Started with jQuery</a></li>
<li><a href="http://docs.jquery.com/Tutorials">Additional Tutorials</a></li>
<li><a href="http://interface.eyecon.ro/" target="_blank">Pretty jQuery Interfaces</a></li>
<li><a href="http://www.ajaxtutorial.net/" target="_blank">AJAX with jQuery</a></li>
</ol>
<p>And of course you need the requisite tools to get up and running so I&#8217;d recommend downloading the lates version of FireFox and installing the <a href="http://getfirebug.com/" target="_blank">Firebug</a> plugin to help with debugging any JavaScript issues you might have.</p>
<p>If you want to get further into jQuery check out the main <a href="http://jquery.org/" target="_blank">site</a>, which includes a testing framework QUnit,</p>
]]></content:encoded>
			<wfw:commentRss>http://femgineer.com/2010/03/jquery-basics/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>SXSWi iPhone Insights</title>
		<link>http://femgineer.com/2010/03/sxswi-iphone-insights/</link>
		<comments>http://femgineer.com/2010/03/sxswi-iphone-insights/#comments</comments>
		<pubDate>Wed, 17 Mar 2010 05:56:20 +0000</pubDate>
		<dc:creator>Poornima</dc:creator>
				<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://femgineer.com/?p=618</guid>
		<description><![CDATA[
<div class="twitterbutton" style="float: right; padding-left: 5px;"><a href="http://twitter.com/share?url=http://femgineer.com/2010/03/sxswi-iphone-insights/&amp;text=SXSWi iPhone Insights&amp;via=&amp;related=DolcePixel"><img align="right" src="http://femgineer.com/wp-content/plugins//easy-twitter-button/i/buttons/en/tweetn.png" style="border: none;" alt="" /></a></div>


At the SXSWi conference this past week I attended a lot of great talks on iPhone applications that covered its user experience, development, and how to create apps that emulate the features of a native app but are quicker and easier to create.
User Experience
Josh Clark&#8217;s talk on creating apps that are &#8220;TapWorthy Applications&#8221; was one of ]]></description>
			<content:encoded><![CDATA[
<div class="twitterbutton" style="float: right; padding-left: 5px;"><a href="http://twitter.com/share?url=http://femgineer.com/2010/03/sxswi-iphone-insights/&amp;text=SXSWi iPhone Insights&amp;via=&amp;related=DolcePixel"><img align="right" src="http://femgineer.com/wp-content/plugins//easy-twitter-button/i/buttons/en/tweetn.png" style="border: none;" alt="" /></a></div>
<p><a href="http://femgineer.com/wp-content/uploads/2010/03/Screen-shot-2010-03-16-at-10.54.11-PM.png"><img class="alignright size-full wp-image-625" title="Screen shot 2010-03-16 at 10.54.11 PM" src="http://femgineer.com/wp-content/uploads/2010/03/Screen-shot-2010-03-16-at-10.54.11-PM.png" alt="" width="210" height="280" /></a>At the SXSWi conference this past week I attended a lot of great talks on iPhone applications that covered its user experience, development, and how to create apps that emulate the features of a native app but are quicker and easier to create.</p>
<p><strong>User Experience</strong></p>
<p><a href="http://globalmoxie.com/index.shtml" target="_blank">Josh Clark</a>&#8217;s talk on creating apps that are &#8220;TapWorthy Applications&#8221; was one of the best talks I attended.</p>
<p>The following categories have successful iPhone applications because they focus on what the user wants to accomplish while &#8220;on-the-go&#8221;:</p>
<ul>
<li>microtasking</li>
<li>capturing lost time</li>
<li>location based</li>
<li>entertainment</li>
</ul>
<p>Each of these categories requires improving the quality of each tap by making it very  useful for users.   To do this you have to think about the basic functionality that users want that is divided into primary and recurring tasks.  Simplifying the design requires focusing on the mobile context, what the user is trying to accomplish when micro-tasking,  creating opportunities for exploring &#8211; secret panels and hidden doors to provide additional functionality without cluttering the design, and to think about ergonomics and industrial design so that it is easy to use the application itself.  You will also want to condense the amount of data that is being presented to users, which Josh describes as the &#8220;glance test&#8221;, i.e. a lot of information can be gleaned by just glancing at the app.  Apps that do this well incorporate large graphics and minimum amounts of data e.g. Weather App.</p>
<p>Finally prototyping on paper is a good way to figure out what it is users actually want and how they interact with the app before spending a lot of time building a code base for it.</p>
<p><strong>Development</strong></p>
<p><a href="http://jonathanstark.com/" target="_blank">Jonathan Stark</a>&#8217;s presentation focused on developing browser based mobile applications but still provide a lot of the richness of a native app.  To accomplish this feat he suggests using the following tools and APIs: jQTouch, PhoneGap, CSS3 and HTML5.</p>
<p><a href="http://www.jqtouch.com/" target="_blank">jQTouch</a> is a jQuery plug for developing mobile applications that emulate a lot of the functionality that a native iPhone app would have.  The app loads in Safari but has a lot of the same characteristics that a native iPhone app would.  The benefit is that it is a lot faster to develop and does not need to be approved by the App Store.</p>
<p><a href="http://phonegap.com/">PhoneGap</a> essentially fills in the gaps of taking a web-based application and transferring it to a mobile platform.</p>
<div><span style="font-family: arial, sans-serif;"><span style="border-collapse: collapse; line-height: normal; white-space: pre-wrap; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px;"><br />
</span></span></div>
<div><span style="font-family: arial, sans-serif;"><span style="border-collapse: collapse; line-height: normal; white-space: pre-wrap; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px;"><br />
</span></span></div>
]]></content:encoded>
			<wfw:commentRss>http://femgineer.com/2010/03/sxswi-iphone-insights/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Importance of an IDE</title>
		<link>http://femgineer.com/2010/02/importance-of-an-ide/</link>
		<comments>http://femgineer.com/2010/02/importance-of-an-ide/#comments</comments>
		<pubDate>Thu, 04 Feb 2010 07:35:27 +0000</pubDate>
		<dc:creator>Poornima</dc:creator>
				<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://femgineer.com/?p=535</guid>
		<description><![CDATA[
<div class="twitterbutton" style="float: right; padding-left: 5px;"><a href="http://twitter.com/share?url=http://femgineer.com/2010/02/importance-of-an-ide/&amp;text=Importance of an IDE&amp;via=&amp;related=DolcePixel"><img align="right" src="http://femgineer.com/wp-content/plugins//easy-twitter-button/i/buttons/en/tweetn.png" style="border: none;" alt="" /></a></div>


The first time I saw my VP of Engineering use Idea Intellij I feel in love with it!  All those shortcuts, a debugger, running a server, refactoring code, inserting exception handling, and the ability to do auto-complete!  I was coming from an Emacs, NEdit, VI background, which are all powerful in their own right.  I ]]></description>
			<content:encoded><![CDATA[
<div class="twitterbutton" style="float: right; padding-left: 5px;"><a href="http://twitter.com/share?url=http://femgineer.com/2010/02/importance-of-an-ide/&amp;text=Importance of an IDE&amp;via=&amp;related=DolcePixel"><img align="right" src="http://femgineer.com/wp-content/plugins//easy-twitter-button/i/buttons/en/tweetn.png" style="border: none;" alt="" /></a></div>
<p><a href="http://femgineer.com/wp-content/uploads/2010/02/Screen-shot-2010-02-03-at-11.38.16-PM1.png"><img class="alignleft size-medium wp-image-541" title="Screen shot 2010-02-03 at 11.38.16 PM" src="http://femgineer.com/wp-content/uploads/2010/02/Screen-shot-2010-02-03-at-11.38.16-PM1-300x169.png" alt="" width="300" height="169" /></a>The first time I saw my VP of Engineering use Idea Intellij I feel in love with it!  All those shortcuts, a debugger, running a server, refactoring code, inserting exception handling, and the ability to do auto-complete!  I was coming from an Emacs, NEdit, VI background, which are all powerful in their own right.  I loved Emacs, because I could switch between files quickly and compile in a single window, which is great for C and C++ development.  NEdit is great for hardware languages like Verilog and VHDL where you make a lot of single line edits.  And VI, was my first love, because of all those shortcuts!  But they all paled in comparison to Idea Intellij.  I used Idea for 3 years during the course of my Java development.  And then the unthinkable happened, I upgraded to version 8.0, and it sucked!  My experience was so bad that I reverted to version 7, and refused to upgrade while everyone else on my team upgraded.  I vehemently opposed upgrading for months because of the performance issues I faced.  None of the optimization techniques worked, and I forever remained an Idea 7 fangirl, while the rest of my team upgraded to version 9.  Developers hate waiting for code to compile, so why would they even tolerate an IDE that takes minutes to load or start a server, and brings the rest of your computer to a grinding halt.</p>
<p><a href="http://femgineer.com/wp-content/uploads/2010/02/Screen-shot-2010-02-03-at-11.40.55-PM.png"><img class="alignright size-full wp-image-539" title="Screen shot 2010-02-03 at 11.40.55 PM" src="http://femgineer.com/wp-content/uploads/2010/02/Screen-shot-2010-02-03-at-11.40.55-PM.png" alt="" width="339" height="83" /></a>It&#8217;s been over a month since I&#8217;ve done Java development.  I&#8217;ve moved onto learning Rails.  While I have been happy with TextMate for the most part, my application is starting to get more complex, and I find myself constantly switching between files.  I&#8217;m also really lazy when it comes to typing and love shortcuts and autocomplete functionality.  Hence the quest to search for an IDE has begun again.  Currently, I&#8217;m playing with <a href="http://www.radrails.org/" target="_blank">Aptana RadRails</a>.  I decided to install the full application instead of an Eclipse plugin because I wanted to see it in its full glory.  I&#8217;m not a huge fan of Eclipse, but I know its probably the best free IDE out there with the most language plugins.  As my application becomes more complex and involves more languages I&#8217;ll switch over to Eclipse.  Or maybe just maybe I&#8217;ll give Idea 9 a shot&#8230;</p>
<p><a href="http://femgineer.com/wp-content/uploads/2010/02/Screen-shot-2010-02-03-at-11.39.27-PM.png"><img class="alignleft size-medium wp-image-540" title="Screen shot 2010-02-03 at 11.39.27 PM" src="http://femgineer.com/wp-content/uploads/2010/02/Screen-shot-2010-02-03-at-11.39.27-PM-300x155.png" alt="" width="300" height="155" /></a>A happy developer is a productive developer.  Sitting around and waiting for stuff to load or compile is time sunk.  An IDE makes or breaks a developers productivity.  A good IDE handles all development tasks and all stages of development: coding, debugging, refactoring, testing, and running the web app.  An awesome IDE provides the ability to integrate multiple languages like JavaScript, Java, and HTML, which is crucial for a developer like myself who deals with the whole stack (front and back-end).  But the most important factors are speed and ease-of-use.  An IDE should be blazing fast; I don&#8217;t want it to suck up memory, take minutes to load, and forever to synchronize changes.  Some nice to haves features are integration with code repositories and doing error checking (e.g. highlight unused references, static code analysis).</p>
<p>But the main reason I like IDEs is because I a like having single tool that slices and dices, and moves me seamlessly through each stage of development.</p>
<p>Quick video on installing RadRails: http://vimeo.com/channels/radrails#6450292</p>
]]></content:encoded>
			<wfw:commentRss>http://femgineer.com/2010/02/importance-of-an-ide/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Ruby Tuesday: Debugging</title>
		<link>http://femgineer.com/2010/02/ruby-tuesday-debugging/</link>
		<comments>http://femgineer.com/2010/02/ruby-tuesday-debugging/#comments</comments>
		<pubDate>Wed, 03 Feb 2010 03:13:46 +0000</pubDate>
		<dc:creator>Poornima</dc:creator>
				<category><![CDATA[Ruby Tuesday]]></category>
		<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://femgineer.com/?p=530</guid>
		<description><![CDATA[
<div class="twitterbutton" style="float: right; padding-left: 5px;"><a href="http://twitter.com/share?url=http://femgineer.com/2010/02/ruby-tuesday-debugging/&amp;text=Ruby Tuesday: Debugging&amp;via=&amp;related=DolcePixel"><img align="right" src="http://femgineer.com/wp-content/plugins//easy-twitter-button/i/buttons/en/tweetn.png" style="border: none;" alt="" /></a></div>


When I was a freshman at Duke, coding away in Teer basement, I would often hear disgruntled engineers shout: &#8220;Damn, I&#8217;ve got 300 syntax errors, I left off the semicolon!  Why does everything have to be so exact?&#8221;  Those were the days of coding in C++, a language in which you had to actually compile, ]]></description>
			<content:encoded><![CDATA[
<div class="twitterbutton" style="float: right; padding-left: 5px;"><a href="http://twitter.com/share?url=http://femgineer.com/2010/02/ruby-tuesday-debugging/&amp;text=Ruby Tuesday: Debugging&amp;via=&amp;related=DolcePixel"><img align="right" src="http://femgineer.com/wp-content/plugins//easy-twitter-button/i/buttons/en/tweetn.png" style="border: none;" alt="" /></a></div>
<p><a href="http://femgineer.com/wp-content/uploads/2010/01/Screen-shot-2010-01-12-at-4.36.23-PM1.png"><img class="alignleft size-full wp-image-515" title="Screen shot 2010-01-12 at 4.36.23 PM" src="http://femgineer.com/wp-content/uploads/2010/01/Screen-shot-2010-01-12-at-4.36.23-PM1.png" alt="" width="134" height="59" /></a>When I was a freshman at Duke, coding away in Teer basement, I would often hear disgruntled engineers shout: &#8220;Damn, I&#8217;ve got 300 syntax errors, I left off the semicolon!  Why does everything have to be so exact?&#8221;  Those were the days of coding in C++, a language in which you had to actually compile, but hey it was faster than punchcards!</p>
<p>Nowadays we have dynamic typed languages like Ruby that don&#8217;t even require semicolons!  But that doesn&#8217;t mean we&#8217;re in the clear.  We still have to debug.  RoR has done a good job of building in a lot of debugging tools.</p>
<p>Here is my philosophy and methodology for debugging:</p>
<ol>
<li><strong>Errors and Exceptions are the easiest:</strong> Load the web app, if there is an error or exception thrown in the webpage tackle that first.  If I don&#8217;t know what the exception means e.g. InvalidAuthenticityToken, I will look it up.  And read about it and usually that will lead me to a solution.</li>
<li><strong>I love logs!</strong> If the web app seems to load properly, but some functionality is broken I go look at the logs.  You can add log statements based on the level of logging you want to controllers in RoR with the following code: <span style="font-family: Courier;">logger.debug &#8220;BUGGY&#8221; or logger.info &#8220;YO&#8221; </span></li>
<li><strong>Data Corruption: to the Database!</strong> If the data appears to be displayed incorrectly then I go straight to the database.</li>
<li> <strong>Look &amp; Feel</strong>: if something is off with the way the page is rendered then it is most likely something I did wrong in HTML or CSS.  I like using Firebug for CSS issues.</li>
<li><strong><em>Vijayashanker Code</em></strong> If something is off about the functionality, and I have a sense of where it is happening I will go through and read my code.</li>
<li><strong>Debugger Last</strong>: I&#8217;m not really a lazy person, but setting breakpoints and stepping through code can be tedious.  So I save this as a last resort if I can&#8217;t use any of the above techniques to find my bug.</li>
<li><strong>I hate &#8220;debug&#8221; statements! </strong>I&#8217;m a neat freak, I don&#8217;t like polluting my code with debug statement, and creating more work for myself in having to go and remove them later.  If I can&#8217;t get the debugger to do what I want then I will resort to using debug statements.</li>
</ol>
<p>As I was debugging today I discovered a few good resources here are a few of them:</p>
<ul>
<li><a href="http://guides.rubyonrails.org/debugging_rails_applications.html" target="_blank">Debugging Rails Applications</a> (walks you through common debugging techniques and also explains logging levels and configurations)</li>
<li><a href="http://maintainable.com/articles/rails_logging_tips" target="_blank">Logging Tips</a> (Everything you ever wanted to know relating to logging in RoR)</li>
<li><a href="http://groups.google.com/group/rubyonrails-talk" target="_blank">RoR Google Group</a> (I found solutions and insights into most of the problems I was experiencing today)</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://femgineer.com/2010/02/ruby-tuesday-debugging/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

