Meet devChix member Susan Potter

July 13th, 2011 by comment

Susan Potter is a wearer of many hats, but mostly software engineer and practicing applications architect (based in Chicago, IL).

Employer: Finsignia

Extras: Last month, Susan presented at WindyCityDB conference in Chicago, IL on Link-walking with Riak. She was a speaker at Code PaLOUsa 2011 in June. Talk: Deploying distributed software services to the cloud without breaking a sweat. She is very active in the open source community with GitHub personal repositoriesTwitter4R and collection of Gists.

Our short Q&A with Susan Potter:

What is your technical background?

At university I studied Mathematics, but audited Computer Science courses while writing an experimental parallel and distributed PDE solver first in C, then in C++ and finally in Java, which didn’t have much utility other than to teach me how not to write multi-threaded or distributed software.After graduating I worked for investment banks in London before skipping off to a San Francisco startup building a B2B trading platform and have since been working as a senior software consultant for hedge funds, investment banks and technology startups all over the US.

What industry sites or blogs do you read regularly?

To be honest, I use my Twitter timeline and some private lists as a fairly reliable source of interesting, relevant and/or thought-provoking technical resources from all over the internet. However, the following links have been fonts of recent software engineering wisdom or great resources in the areas I currently practice within:

What are a few of your favorite development tools and why?

I recently wrote a blog post on the (types of) tools that have made me a better software engineer. In short these are: emacs, vi(m), make, gdb, UNIX commands / utilities, UNIX shells, LaTeX, Git. The blog post explains why.

What tip or advice would you like to impart to women interested in programming?

If you enjoy software development, always learning new things and are excited about the possibilities in this field, then do not let anyone discourage you from persuing it further. There will always be a job market for self-starters that can teach themselves even if they don’t have the right educational background. Make sure to back up what you have learned on your own. Open source projects, blog posts or screencasts that demonstrate your skills in the areas you are looking to get into help much more nowadays than simply having a CS degree with no public portfolio IMHO.

If you were a computer part, what would you be?

A CPU socket comes close. It provides multiple connections (mechanical and electrical) between the microprocessor and circuit board. In the technology community it seems I am always connecting people based on their interests and needs such as connecting business founders with technical founders or hiring managers with skilled developers (mechanical connections). Other times I am suggesting new architectures, software stacks, tools, etc. to solve the problems people I talk to are currently encountering (electrical connections).

ˆ Back to top

Meet devChix member Aimee Daniells

June 2nd, 2011 by comment

aimee daniells (lowercase as requested) is a self-employed software crafter from Winchester, UK.

Her twitter handle: @sermoa and thoughts: http://sermoasquared.co.uk/

 

Our short Q&A with aimee daniells:

 

What is your technical background?

I was sponsored through university by IBM. I had an integrated degree where I worked at IBM 3 days a week and studied Computer Science at university 2 days a week. After I graduated I worked for IBM for a few years. Although I began as a developer, they decided to retrain me as a tester. I didn’t like the way IBM made decisions for me.

Now a tester, I looked for a job where I could begin as a tester but progress back into development. This didn’t really work. Fortunately I was learning in my spare time. I learned Ruby on Rails and made the application mychores.co.uk – a team based tracking system for recurring tasks. On the strength of that I got a job with Eden Development, an agile web development and consultancy company.

I worked at Eden for 3 years and took an apprenticeship under Enrique Comba Riepenhausen. I learned an incredible amount about good quality, reliable, well tested software and user experience design. Towards the end I took on two apprentices, one of whom I am still in regular contact with.

I am now an independent software crafter, doing freelance work and visiting companies to work as a contractor. I love what I do, I love meeting people and I love learning and sharing. At the last company I’ve just finished working at, I was approached by somebody who wanted to be mentored by me, who has now become my newest apprentice.

 

What industry sites or blogs do you read regularly?

I do not read RSS. I used to be subscribed to hundreds but I couldn’t read them all. These days I get all the news I need through twitter.

 

What are a few of your favorite development tools and why?

I love my macbook. It just does exactly what I want it to do, feels reliable and very rarely annoys me. I prefer to develop using Vim because I feel it is very powerful and I can express my intentions using intuitive combinations of keystrokes. I typed on the Dvorak keyboard layout for years, but I’ve recently changed to Colemak. I find it very comfortable and efficient to type on.

 

What tip or advice would you like to impart to women interested in programming?

Ask questions. Better to ask a silly question one day than give a silly answer another day. There is no such thing as silly questions, only silly answers. Listen a lot and ponder. Think carefully about what you believe. Share your opinions when asked. Share whatever you know. Be generous. Blog about things you find interesting: somebody else will do too. Ask for things you need. If you want to learn more, find a mentor. Don’t wait for people to do things for you. Make your own luck. Be extremely proud of who you are. Look yourself in the mirror every day and tell yourself how wonderful you are. Be humble. Don’t brag, but let your skills speak for themselves.

 

Last question on our q&a, if you were a computer part, what would you be?

I would be the Any key! :)

 

ˆ Back to top

Meet devChix member Nola Stowe

May 19th, 2011 by comment

Nola Stowe is a co-founder of devChix from the Texas, USA.
You can reach her at @rubygeekdotcom on twitter.
She is currently a web developer at Game Salad.
Game Salad is a free tool that creates games for the iPhone, iPad, Mac
& Web with no coding required.

Her linkedin: http://www.linkedin.com/in/nolastowe &
She blogs at RubyGeek.

 

Our short Q&A with Nola Stowe:

 

What is your technical background?

I started programming the summer I turned 13. I had a TRS-80 and read the BASIC programming book that came with it, along with another programming book I bought at Radio Shack. I had a cassette tape drive to save my files and a 5inc thermal printer. I programmed math games for my siblings. I distinctly remember making a program that would roll five dice and using ascii characters to draw  a box around the number. You could then choose which dice to re-roll. Ahh, sometimes I long for those summer days and also think: “…. boy, how much better I could have been if I had the internet like now!”

In college, I discovered the fun of web development so I majored in Computer Information System and Design Studio minor. I actually petitioned to have my water color class count towards my CIS degree, arguing that since my chosen field was web programming with a design minor, it is good to have the training and understanding of color principles from my water color class. They accepted my petition

 

What industry sites or blogs do you read regularly?

I check:

rubyinside.com – ruby is my favorite language; this is a great site to keep up with the ever-changing landscape

techcrunch.com – to keep up with what’s new with facebook, google, etc

railscasts.com – weekly screencasts, they are super informative

teachmetocode.com – screencasts on web development, very helpful

peepcode.com – screencasts at affordable prices, and great supporters of devChix.com

 

What are a few of your favorite development tools and why?

I use vim and textmate. It depends on the environment. For home development, I am on Ubuntu so I use Vim. For work, I use a Mac so I use both Vim and Textmate , but lately I’ve been using Textmate a lot.

 

What tip or advice would you like to impart to women interested in programming?

It’s a mans world for sure. Do not take it personally when someone gives you slack. Focus on doing the best work you can so people cannot tell the difference between your work and that of any other. Do not assume every issue you come across is “because you are a  girl” … just focus on what is needed to get the job done.

 

If you were a computer part, what would you be?

I would be a keyboard because I am always focusing on what is needed to get the job done. If we did not have keyboards, we would not be able to get much done. :)

 

ˆ Back to top

What makes the best workplace atmosphere and culture?

January 23rd, 2011 by comment

The DevChix community recently attacked the issue of what to do about a “blah” workplace environment. If you’ve done development for any length of time, or for more than a few companies, you’ve probably experienced the same thing somewhere along the way. Your coworkers are nice folks and everyone gets along, but there’s no real camaraderie. People work hard and produce good code, but no one seems too terribly excited about it. Sound familiar?

Lots of companies try to guard against this with perks meant to be fun and make work feel less formal. But sometimes all the kegerators in the world don’t make a difference. One of the DevChix described her experience in an office that sounds on paper like the Disneyland of workplaces:

“There are foosball tables, pool tables, air hockey tables and a beer keg in the kitchen. We work in quad-pods where there are 4 people in each large sized pod. The idea was to create a space open to collaboration. Nobody really talks much though. Things like the gaming tables are nice but I don’t see them having much impact. Some people grab a pint [from the keg] after 5pm and work at their desk, again not talking much. “

A “neutral” company culture, it seems, is not a problem you can just throw a couple foosball tables at. The DevChix suggested the problem is rooted in how a company treats its devs.

Where does uninspiring culture begin?

If you guessed “management”, the list agrees with you (at least partially). Developer empowerment was highlighted as one of the biggest things that make a difference in developers’ passion at work. Without realizing it, managers may be making their developers feel isolated or ignored:

“Management might be thinking that what they’re working on isn’t that relevant to their staff, or is relevant but they haven’t made significant enough progress to share – but communicating the use of your time, however vaguely, on a regular basis has a way of clearing the air.  It says, “I’m not forgetting about you” and also promotes open communication (when I’m not hearing anything from a manager, I don’t feel as comfortable going to him or her with my problems).  I’ve been surprised at how strong of a reaction seeing upper management going in and out of meetings without sharing any details whatsoever has had on me, and it’s not even that I want to have a lot of data.”

Another problem can be the ways in which developers are encouraged to interact. If collaboration is rare, developers have less to talk about as developers. The extroverted ones will probably find other things to discuss around the water cooler, but if they aren’t working together, it’s likely that company culture is repressing the urge to share ideas over the cubicle wall. It’s important to consider how many developers are likely to be introverts – development, after all, isn’t sales – and leave a space for interaction at work that isn’t so unstructured that it exhausts anyone or excludes them. In short, aimless chatter can be tiring or distracting, but active teamwork is inspiring.

What can companies do differently?

One of the more unanimous suggestions was to offer developers the opportunity to do non-business-driven projects. Giving teams the opportunity to use new technologies, proof of concept the things they think are important, and generally develop something to their own standards gives developers a voice in what they’re doing. Google’s 20% time was offered as an example of this. Having a policy like this and promoting it as aggressively as Google does creates an impression of a place where developers’ ideas are sought out and supported, even in outsiders. And supporting developer-driven projects doesn’t mean simply tolerating them. The DevChix who gave examples of similar projects they’d worked on mentioned that these – in whole or in part – had eventually been used by their employers in “normal” projects.

Something that was new to me was the idea of project leads bidding on resources to give developers more control over what they’re working on (a project owner could say, “I need this done but it’s the only thing I need done this sprint,” if I understand correctly). At a busy agency or a start-up just getting its feet under it, committing 20% of each developer’s time to projects that might turn out to be technically infeasible might be too expensive. Letting developers choose their projects would be a great alternative.

Toward the end of promoting camaraderie and sharing knowledge, something developers might be able to do without having to get management approval is peer code reviews. This is certainly more challenging when everyone is working on a separate project, but consider that not everyone has to share all their code all the time. The woman who suggested this mentioned that her team had one or two people presenting once a week, something that should be manageable no matter how many different projects a dev team was working on.

A simple but important suggestion that was brought up by different people with different examples was offering developers the chance to “learn something cool”. This could be done by in-office trainings, brown bag lunches, or sending developers to conferences, but the DevChix who mentioned it seemed to agree that it’s a big part of getting developers excited. These can range in cost to the company all the way up to (and occasionally past) $2k, but consider what the employer gets in return:

“It was amazing how [attending a conference turned] jaded, tired corporate workers into ra-ra cheerleaders like overnight. The amount of info you can get at these things – along with connections of course – is intense. And it’s great to show that the corporation is willing to invest in the employee.”

If a company can’t spend the money on conference registration, air travel, and a hotel stay for an employee, they could also try to bring the expertise to the developers. It was pointed out that many technical leaders are happy to share an hour of their time, and this gives everyone on the team the chance to learn together instead of one or two people getting to go to a conference while the rest of the team is back at the office park slaving away. If a company is so isolated that the only way to boost developer knowledge is through sending employees out of town for conferences, one suggestion was to give the rest of the dev team the same time off their peer attending the conference was getting to read, learn, and work on exciting proofs of concept.

In summary, the DevChix who participated in this thread emphasized the need to treat smart, valuable people like smart, valuable people, whether you manage them or sit next to them. One nice thing about developers is that you don’t really need a foosball table to get them excited about coming into the office – generally you just need to give them the freedom to do what they love: write good code.

ˆ Back to top

How rails has changed how I seek for a job

December 10th, 2009 by comment

For nine years, I have developed for the web. Over the years I’ve programmed in C, C++, Python, Java, ASP, PHP, Perl, and most recently, Ruby.
Since my first job as a developer, I’ve never looked for a new job: all of my job transitions have come through friends or co-workers.

In mid 2007 I was happy working with Perl. One day a friend told me about a Ruby on Rails job. Back in 2007, Rails developers in Brazil were rare. Because of that, the employer was seeking someone who fit the company instead of someone with Rails experience. That was great for me!

After a pleasant summer, the new job’s charm wore off and I decided that I wanted to move on but continue to program with Rails. Finally, I left my job.

When I started to send out resumes I soon realized that Rails’ culture fundamentally changed the way that a Rails job search functioned. In addition to the traditional resume or CV, Rails jobs demanded to know about Working With Rails, LinkedIn, GitHub, Twitter, personal blogs and sites, discussion forum posts, participation in open source projects, and a multitude of other online presences. These new demands made me realize that I hadn’t been cultivating a comprehensive web presence, which is not uncommon for female programmers, in my experience.

At first, this realization was disturbing. Though it’s still possible to get a Rails job without a vast web presence, I was upset to realize that I hadn’t been adhering to this best practice. It was particularly jarring the first time I was unable to answer these questions to potential employer.
The practice of software development as a craft is constantly reinventing itself and this includes the processes around job seeking and reputation building. Despite all of the hours, projects, languages, and jobs I’ve previously invested in, I now realize that I need to adapt to this new developer reality of being social and visible with my work in order to win back my standing as a desirable developer and potential candidate for a Rails position. The details of how I’ll implement that strategy will be the subject of an upcoming post, but I look forward to the possibilities ahead.

To read in portuguese.

ˆ Back to top

PyArkansas: Small town, big tech!

November 21st, 2009 by comment

Last weekend I flew out to to Little Rock, Arkansas, took a two hour crawl through a snarl of traffic, and arrived just in time for my Friday night pre-PyArkansas tutorial in Conway. Held on the stunning campus of Hendrix College, I wended my way around buildings, a massive fountain, inspiring structures, until I found the building where my tutorial was about to happen. Standing in the foyer with the beautiful Foucault pendulum, I could not help but to stop for a moment, exclaiming “Oooo!!!!” aloud, wishing I had gotten there thirty minutes earlier.

My tutorial was intended to encourage women in computer science by serving two purposes: discussing the source code and functionality of a particular project, and openly discussing some of the issues they faced in their current programs and surroundings. I was pleasantly surprised to discover that these women needed no technical or social encouragement. They are already enthused, technically and socially well prepared, and on their way to a very bright future in engineering or computer science. I was pleasantly surprised that they were very comfortable in the bash shell, and as comfortable in their current college curriculum. Like children at play, they picked up the moderate-levelled tutorial code quickly, made great strides in such a short time, and had a lot of fun doing it.

It was profoundly encouraging to see such a small computer science program achieve diversity as well as such a high level of skill. It made me wonder why larger colleges and universities cannot accomplish the same on bigger budgets, with larger staff, and a more diverse mix of students. It touched me to hear and see the enthusiasm, eagerness, and skill of the students in this program. Their learning experience under the Department Chair, Dr. Burch, comes as close to perfect as I have ever seen.

The next day’s events at PyArkansas were held at the also-very-nice campus of University of Central Arkansas, where an entire day’s worth of tutorials took place. Two Python 101 tracks were held: one for programmers and one for non programmers (a great concept). An all-day Django Track was given, where the advanced course was taught by Jacob himself. I held an afternoon tutorial addressing advanced Python concepts, with downloadable example code, where we compared and contrasted build and deployment tools, played with regex, and showed examples of some internal Python oddities involving static variables. I unfortunately missed the Python Blender tutorial, held at the same time as mine, and I heard it went quite well.

The campus facilities were very accomodating. Everything was well organized,and up and running for us when we arrived. This is a very welcome surprise to anyone who has travelled a bit to do tutorials. I was specifically told by Dr. Chenyi Hu, the Department Chair of UCA, that he really does care about diversity, and it is something they strive to achieve. This was truly touching, quite impressive, and a pleasant surprise from such a small town.

Kudos to Greg Lindstrom, Dr. Carl Burch of Hendrix College, Dr. Chenyi Hu of UCA, and everyone else involved. You induced a big technical “tremor” through your small town, which echoed far and wide. It is yet another example of the great people drawn to the Python community, and the amount of quality effort they are willing to give back. I feel honoured to have been part of this event, and I hope to be involved in many more to come.

Gloria

ˆ Back to top

From Python 2.6 to PHP 5.2: A circuitous journey

November 20th, 2008 by comment

When I started heavily using PHP 5.2 (not by choice, I’ll admit), I was impressed, but I suffered from some incorrect assumptions about what PHP5 is and is not capable of doing. The good news is that it is more object oriented than it’s predecessor, but has some caveats to consider. Here are some things to be aware of when switching from a pure OO language to PHP5:

1: A nonexistent PHP array key generates no error or warning. When trying to iterate over a nonexistent array key, a warning occurs. In other languages, both of these conditions throw an exception.

Try this code for example:

<?
$dictionary=array('one'=>'got one','two'=>'have two','four'=>'missing three?');
foreach (array_keys($dictionary) as $key)
{
	print "Key is:".$key.", value is:".$dictionary[$key]."\n";
}
print "Try undefined key three, no warning occurs:".$dictionary['three']."\n";
foreach ($dictionary['three'] as $value)
{
	print "Now we're iterating over a nonexistent key:";
	print "Key is: three, value is:".$dictionary['three']."\n";
}
?>

Running it results in this output:

php test.php
Key is:one, value is:got one
Key is:two, value is:have two
Key is:four, value is:missing three?
Try undefined key three, no warning occurs:

Warning: Invalid argument supplied for foreach() in /root/test.php on line 8

If it is vital to me to make sure I am aware of missing keys, I only have two choices. If I need a proactive solution, I have to use the array_key_exists() function to do existence checking before use. If I want a reactive solution, I write a log scanner, to pick up on these warnings. In every other OO language I have used, an exception was thrown for this condition, and my exception handling determined if the error was vital enough to have to exit immediately or not. This seems like a more efficient way to handle this condition. I would imaging PHP5 does not do this because of it’s need to be backward compatible with PHP4, but this is a guess.

It would be wonderful to have a -OO flag for PHP, which gives you the option to run PHP and expect more standard, stricter OO behavior in these instances.

2: Warnings cannot be “caught” like exceptions. Exceptions and warnings are distinctly separate beasts, and never the twain shall meet. Fine, I thought, maybe I could detect warnings similar to how we detect errors. But it seems like warnings cannot be detected when they happen. There is no PHP code I know of which can check if a warning had occurred in runtime. I tried to detect it using array error_get_last() but to no avail. if you know how, post your trick here.

3: In PHP, ‘true’ evaluates to an integer ’1′. To get the boolean ‘true’ value from a ‘true’ statement, one needs to var_export() a true statement. Similarly, or maybe not, ‘false’ evaluates to no output. Here is an example:

<?
print "\nThe raw value of a true statement in PHP:".true;
print "\nThe raw value of a false statement in PHP:".false;
print "\nThe exported value of a true statement in PHP:".var_export(true,true);
print "\nThe exported value of a false statement in PHP:".var_export(false,true);
print "\n";
?>

And the output:

The raw value of a true statement in PHP:1
The raw value of a false statement in PHP:
The exported value of a true statement in PHP:true
The exported value of a false statement in PHP:false

This may not be noticeable to you in a standard expression. But if you’re doing funky stuff, like using the evaluated expression values as key references into the dictionary of a decision tree, for example, 1 does not equal ‘true’, and the difference matters quite a bit.

4: Long running processes with recursive circular references (such as Doctrine code) run out of memory. This is documented in many places, and the free() function works sometimes. A fix is coming in PHP 5.3. The foolproof solution for my code in production today (youch!) is to periodically restart the daemon. If you’re cringing right now, know that you’re not cringing alone.

There may be a part II to this article. Feel free to add your own PHP5 observations.

Gloria

ˆ Back to top

Finding My Inner Developer

November 1st, 2007 by comment

Hi all! My name is Gennipher, I live in Louisiana and currently work as an Oracle DBA and Linux Systems Admin. Scripting comes with the job I suppose. I’d like to get back to some programming so I’ve been playing with PHP and Java mostly as of late. I get giddy when I think about Regular Expressions (I was introduced to them a few months back and we hit it off) so I’d like to learn more about them as well, but that’s something that I will be able to integrate with my day to day job fairly easily. I really want to learn Ruby and Python. When I found devChix, it just seemed like the right online community for me to be a part of and get my feet wet again and reconnect with my inner developer :)

Glad to be a part of a wonderful community!

ˆ Back to top

Finding your articles in devChix

June 15th, 2007 by comment

Hi, just a quick short break from all the hot topics and comments. We do have a collection of wonderful articles that you may find helpful as Tim Bray mentioned on his post. These articles are written with passion and sometimes a result of views , ideas or solutions we implement from our individual projects in the workplace.

I feel like I am one of the gatekeepers to all these articles so I added a page so everyone can easily find the list of all the good stuff written to date: All devChix Articles. Now if anyone can tell me how to add a sort order, ie ASC by title, in the Word Press archive tag — that would be really swell. :) Thanks.

ˆ Back to top

Hi there – new to devChix

April 25th, 2007 by comment

Hi there,

I’m new to DevChix and wanted to introduce myself. I work at IBM in the CTO Office (Information Management Group) working on lots of different things – open source community building, researching emerging technologies and languages, and looking at stuff generally cool around open source. It’s a pretty fun job, and I love that I get to geek out on a daily basis :) I’m not a coder, but I do lots of technical research and work with developers on a daily basis.

Right now I’m looking at different projects and products using/integrating Ruby/Rails into their development strategy and how different companies are using these technologies to do things better than they did in the past. I’m relatively new to the Ruby/Rails community (coming from the 5 years on the Java side of things) and always looking for new blogs or resources to follow.

I’m really excited to be a part of this group, and can’t wait to start virtually meeting some of you.

Best,

Lauren

ˆ Back to top

cheap research papers