Ask Me Anything featuring Laura Ferguson

Last month, Laura Ferguson, the CTO of Create.io joined Women Who Code (WWC-DC) on Slack for our first ever Ask Me Anything (AMA). Through these AMAs (online Q&A sessions) WWC DC members can ask prominent women in tech any questions on topics such as coding, career development, starting a company, and diversity in tech. Here are some highlights from Laura Ferguson’s AMA:

On Laura’s first job as a programmer

In a way, I would argue I’ve had four “first” jobs, or maybe more. Its really all in the way you look at it. The first programming job I ever had was working on a database for my parents’ business over a summer during college. It was pretty simple, but when I think about it I did something like “requirements analysis”, database programming and then support as they used the database to calculate their sales tax. #beforeExcel (well, really before Lotus123!)

That first gig was a good springboard for my first “real” job. Coming out of Grinnell College with a math (emphasis CS) degree in early 1989, I really wanted to be a software developer working on projects in C. I even got one interview that would have been a job like that, but they didn’t feel I was “ready” for full time software development. #ilooklikeanengineer

Still, I beat the recession by a month or two and I got two solid job offers. One was in Chicago, at my parent’s accounting firm doing “computer consulting” (see the connection?) and the second was to be an all-round office computer tech support person in California. The job in Chicago involved working with accounting software, gathering requirements, building custom modules and working with clients. The one in Cali paid a lot less and didn’t involve any programming. The choice was obvious at the time, but this explains how I wasn’t really riding the #techboom and how #networking can still be the way to go.

One more thing, this accounting firm job reinforced my skills talking to clients, gathering requirements, architecting systems and then building and testing them. It was a great springboard for everything else to come. #liberalartsrocks

On learning to program

Two answers, once you start understanding how programming works, I think one can become a competent novice pretty quickly — maybe after a week of steady work. It takes much longer to become an expert and most modern language libraries are always changing — so we always have to keep learning and that is what makes it fun!

I was fortunate to have taken a great programming languages course in college at Grinnell College. It was truly one of my favorite classes taught by my favorite professor, John Stone. Mr. Stone also sponsored a group called EPLSG — Exotic Programming Languages Study Group. In our small school only a few languages (Pascal & Modula-2) were officially taught, but by the time I left I had learned C, LISP, a bit of assembly, APL and I had played with machine language. These two things — the principles of building programming languages and the club gave me the confidence to learn any language. It takes time to build up a repertoire, but I would say just dive into any language you are interested in. I learned Java by reading “Java in a Nutshell” out loud in the car to my husband, but then spent years to become an expert at Java Swing. I learned Ruby on Rails recently and went from being a Javascript intermediate to expert only recently. Just like in spoken languages, the more languages you know, the more you study (deeply), the easier it gets.

On user testing

Extreme Programming philosophy dictates starting user testing early and repeating it often. Unfortunately, it can be hard to make that happen (and it isn’t always useful). What I try to do is set a goal so that my QA will be bored. I try to test as if I’m a QA and then do user testing with real users whenever we hit a significant beta milestone.

My partners also play with the software on a regular basis and this helps us find issues. Even though our development work is organized in an agile fashion, we find it is useful to organize the product features / product management in chunks (e.g. milestones). So development runs on sprint cycles and our product timeline runs concurrently. Then we coordinate both schedules (dropping features as needed) to wrap up major releases, test them and get them deployed and available to our in house users first.

On starting a company

The answer is both simple and complex. I did a couple things, at first I played with ideas, read magazines and even applied for an MBA program. I ended up getting in, but I didn’t go because the timing was awful (that’s another story). I ended up structuring my own learning about business by going to Startup Weekends, Hackathons and taking classes at http://www.dcwbc.org/. As my skills improved, opportunities opened up. As I said earlier, building a startup usually takes more than one person, so find a friend and work on it together. Also, don’t be afraid to go guerilla style, by calling up all your friends with relevant expertise and finding out what they think. These days it makes more sense to vet your ideas as much as possible than it does to keep it secret. The most important thing to do is to get started and don’t be afraid to fail. It will take many tries to get it “right”. Good luck everybody!

About Laura and Create.io

Laura is one of the founders and the CTO of Create.io. She is an expert Java developer and GUI designer and specializes in Express, Angular, Node, Javascript, JSON and JAVA XML, as well as XSLT, Java Swing, Spring, Heroku, Github and AWS.

Create.io is a 3D data aggregation and visualization platform used to help professionals sift through real estate data to determine if they should develop a new property or choose to redevelop existing properties they already own. Create.io uses AngularJS and Jade/HTML5 to build the front end experience and Angular provides all of the MVC wiring that’s used to feed Python processed data to the application’s UI layer.

Don’t forget to follow @create_tech and look out for our next post featuring Stephanie Lampkin’s AMA, founder of Blendoor. Blendoor is a mobile job matching app that helps connect tech companies to qualified women, veteran and underrepresented minority candidates! If you are interested in joining our next AMA, become a part of our slack group! You can request to join slack here: http://bit.ly/wwcdcslack.