Mary Dickson Diaz

Code, Life, Learning

Page 2 of 11

the gig is up

wocintech stock - 42

photo via #WOCinTech Chat

I landed my first coding gig!!

Long-time readers know that my job search started out with a bang back in November, marinated a bit over the winter holidays, and then resumed in full force these past few months.

Throughout it all, I had some heartbreaking near-misses and some real low points of thinking, “this will never happen for me.” My instructor helped connect me to a potential contract project that didn’t quite get off the ground but led me to develop a cool app anyway. I flirted with some near-coding opportunities like writing code school curriculum and Salesforce development before narrowing my criteria for what I’m looking for. I met other kind and well-meaning people who made a bunch of introductions, and followed those rabbit trails where they led.

And thanks to one of those introductions (which happened not as a result of going to meetups, though I did that too, but rather the practice of “find and follow cool people on Twitter” which I have been doing for YEARS), I met the team at ReadyPulse, a Bay Area/Redmond-based startup where I start Tuesday as a Ruby on Rails development engineer in test.

I’m so excited that I’ll get to continue to work in Rails, expand my knowledge of software testing, work closely with the client support team to understand and troubleshoot issues, and work with a small development team to ensure new features behave as expected with full test coverage. And at a market rate!! (Add to the heartbreaks: the company that wanted to pay me $35k a year to join them as a junior developer, and the company that rejected me from their job seeking site.)

As is not unusual in this biz, I’m starting out on contract for three months, with potential to convert to a salaried position (and possibly move from testing into feature development at that point) if we both agree it’s a good fit.

Some highlights from the interview process:

  • After being e-introduced, the VP of Engineering invited me to come to the office and after some chit-chat he had me do a whiteboard exercise where I built a simple Rails application. This was actually my first whiteboard experience outside of the Code Fellows practice environment, and it went really well. My interviewer was patient, supportive, helped when I got stuck, and didn’t ding me too badly for some minor syntax errors. After I got home, I built the actual app and sent him a link to a Pull Request so he could see 1) I know how to use GitHub and isolate my code changes in readable fashion and 2) that I paid attention to what we talked about and had the follow-through to create a functioning app.
  • He replied that the app looked good, and did I have any tests for it? So I added tests.
  • I did a second whiteboard exercise with the CTO that was similarly positive and even a little bit fun. At one point I was doing the talk/think out loud thing and I told him I couldn’t remember if Ruby hash supported the “shift” function and he was like, “oh, you can look it up on your phone if you want.” And I was like, “SERIOUSLY?” And he was like, “yeah, real programmers use Google. Go for it.”
  • When my interviewer was discussing the position with me, which involves writing tests and quality assurance for two versions of their software, I asked him “how’s your technical debt” LIKE A TOTAL BOSS and he was like “oh, good question,” and his response led me to a deeper understanding of the situation and excitement to take on the challenge. It is a giant milestone to know enough to ask good questions.

There’s still a lot of unknowns in the future, but I consider this a big step towards the career I want to build as a developer. I’m grateful to Code Fellows for my training, to my partner Josh for supporting our family during this transition, and to friends new and old who cheered for me along the way! I’m gonna keep building my network and do my best to help other new coders find opportunities to get into industry quickly — there’s no better way to keep learning than on the job.

I had one of these to celebrate and I invite you to join me!

Root beer float

Cheers!

scenes from the MIT museum

Last weekend in Boston for my dear friend’s wedding we had a few hours to kill before our flight home, so we stopped by the MIT Museum to hang out with some robots. Josh is an alumnus, so he gets free admission +1. Students, meanwhile, have to pay $5! Stay in school, kids.

20160320_143731

A LISP machine! You may remember Lisp from that Wizard book.

20160320_143909

I didn’t get a picture of the Black Falcon, but you can see it with its creator here. I was struck by the violent words and imagery used to design this “tool for minimally invasive surgery.” This is a tool for helping people, for saving lives, yet it looks like a gun and is described in terms of master/slave technologies. I wonder if a team of students designing such a device today would consider design elements and description to better suit the intended purpose.

20160320_144131

Pebbles, perhaps a precursor to the Mars Curiosity rover?

20160320_144243

Kismet, the sociable robot (inspired by kids)!

A video posted by @marythought on

The entire Arthur Ganson room was amazing, and I particularly liked this piece featuring a wishbone (or a “merrythought“) pulling an elaborate machine behind it. This is how I feel all the time.

20160320_14440920160320_144420

How kids and adults (presumably) view robot potential! Homework producers and dog walkers. Sign me up for both.

20160320_222917

This is cheating, because it’s not from the MIT Museum at all, rather from “The Martian” during the flight home. I just want to point out that computing never (rarely?) works this way. Unless you’re using Test Driven Development to rescue your fallen comrade on Mars, in which case, high-five!

Wedding #latergram

A photo posted by @marythought on


Bonus pic, Josh and I clean up nice!

The MIT museum is $10 general admission and well worth a visit if you’re in the area. It’s near a place named Dumpling Room that I wish I’d had the appetite for at the time, and Toscanini’s ice cream for dessert.

a modest (code school) proposal

I posted awhile back that after two classes, I took a break from working as a Teaching Assistant with Code Fellows. Part of this was logistical: it’s hard to dedicate yourself to a job search while also working long hours to support students and instructors. The job opportunities I’d been hoping for didn’t materialize, so I decided to double down on my efforts.

The second part of leaving was emotional — It’s intense work. Two months seemed like a manageable amount of time to sustain that level of full-time effort. By the end, I was exhausted. I’d had a terrific first class working with my former instructor, and was excited to bring that experience with me to a second class with a new instructor and TA team. The last week of that class was particularly stressful when I clashed with just about everyone on their decision to throw out all the assignments done up to that point and heavily weigh “instructor gut feeling” and a hastily conceived and executed pen-and-paper “quiz” as grounds for student advancement, or not. In doing so, I watched in real-time as all the studies about gender bias in the classroom played out, and experienced the frustration of fighting back against it, all the while being treated to a lecture about how none of this was sexist, at all, the opposite in fact!

So I left that team. And since then, I’ve found myself distancing myself from Code Fellows and gravitating more to communities where inclusion and diversity are lived values. I’m also hitting month five of job searching, witnessing how other code schools have programs in place that help with the gap from code school -> industry, and feeling that Code Fellows is still for the most part sending us off with a pat on the back and a “go get ’em, tiger.”

But it doesn’t have to be this way! Code Fellows has a uniquely diverse and passionate student base and huge potential to be something great. As a friend and alumnus, I have some ideas. I will probably get labeled a “hater” for this, but it comes from a place of optimism.

Part 1: The Low Hanging Fruit

ApplePicker

Continue reading

the gift and cost of clarity

7-Your Move

An update! Since I decided to Go Into The City many wonderful connections have been made. I updated The Plan with my goals for March:

 

  • Go to coffee 2x+/week, with someone I know and someone I don’t know (find folks doing jobs I want and ask them how they got there)
  • Go to meetups, 2x+/week
  • Find an open source project to contribute to (possibly through Open Seattle, CF App Builder Club or the Outreachy application process)
  • Work through Harvard CS50, Programming Interviews Exposed, and Cracking the Code Interview
  • Apply to jobs, 3+/week
  • Take a new class through Code School or Pluralsight and build a new app or add to an existing one with new skills
    • Angular (focus on Rails backed Angular)
  • Reinforce core skills
  • Stretch Goals:
    • Learn VIM
    • Outreachy application (most likely Wikimedia)

Some of these I am doing well on and others not so much, but we’re not even to the Ides of March yet so I’m just going to silently note it for now. Besides, I think it’s time to narrow my focus even further. Recent conversations have been valuable in determining exactly what type of opportunities I’m looking for among my diverse and varied interests and abilities. This leads me to the following Career Intention:

I am looking for full-time or contract work… 

     …as a junior software developer

     …in a supportive learning community

     …where I can work on substantial projects

     …preferably in Ruby on Rails

     …with people who value diversity and inclusion.

That’s it! It’s a tall order but not impossible to find. And, I need to be putting all my efforts towards learning experiences and projects that will move me closer to this role. Other tech related ventures that are not coding, I bless and release.

The closest match I’ve found so far is an Outreachy learning opportunity with the Wiki Education Foundation’s Wikipedia course dashboard system. The dashboard is built in Ruby on Rails and uses a combination of technologies I’ve worked with and technologies I haven’t worked with but would like to learn. The project manager is based here in Seattle and would be great to work with. The opportunity itself is a three month internship, paid (a small amount), with a respectable network and prestige for alumni that can lead to more opportunities.

I’m struggling to get my development environment set up to jump in and contribute in some small ways (required for the application), but it’s a priority for the March 22 deadline. More to come on the technicalities of that.

It is tough but a great relief to let go of “I’m open to all sorts of tech and coding related opportunities.” It means I’m still not getting paid, but I’m not compromising on activities that won’t move me closer to the goal.

Having now clarified my intentions, it should be easier to share them with the world and let the world help.

how to use the wordpress rest api in rails

Folks, if you’re reading this over at www.marydickson.info, my Rails portfolio site, things are about to get real meta. Several weeks ago I RSVPed for a WordPress Developer’s meetup called Introduction to the REST API. I’ve used APIs with Rails, Angular, and in Twitterbots– an API (application program interface) is simply a way to transfer information from a server to a client, often using a format called JSON (JavaScript object notation). APIs are key to mobile apps that access the same database as a web based site. “REST” (representational state transfer) means that a system understands a set of standard verbs used to communicate over HTML, including: GET, POST, PUT, DELETE, etc. You can use an AJAX (asynchronous JavaScript and xml) call to transmit data via the REST verbs and either fetch data, post new data, update existing data, or delete a record, and the information will be persisted in a database somewhere behind the scenes.

That’s a lot of acronyms. Here have a picture:

how APIs work, sort of

Super! MARY, BUT WHY SHOULD WE CARE?

Long story short: I’ve had this WordPress blog since I started coding, and since then I’ve coded other web sites “from scratch,” including a professional portfolio site, that are much easier for me to customize and that add legitimacy to my claim of web developer. So that is what I want to share with potential employers but I *also* want them to see my awesome technical blog posts so they will think “She sounds cool and writes good. Let’s pay her money in exchange for her time!” UNTIL NOW the way to do that was to direct people to this site, marydickson.com, and hope that they will also go check out marydickson.info, or vice versa. Awkward.

The WordPress API allows me to import blog posts from marydickson.com and render them as a tab on marydickson.info. If you have any sort of non-WordPress site and you’d like to link to or display your blog posts, you can do that with the WordPress REST API. I’ll walk you through what I did to get this working in a Rails app:

Continue reading

go into the city

gointothecity

“Now get up and go into the city and you will be told what you must do.”

I’m not particularly religious, but this photo by my friend Andrea was so timely this morning it brought me nearly to tears.

I’m wavering these days, trying to figure out the best path forward. What to work on, what to study, where to spend my time and energy to appeal to potential employers. I’ve been kinda all over the place: I spent a week climbing the Code Wars code challenge rankings to #2 for my Code Fellows “clan.” I went back through the assignments for Code 301 (the class I TAed) and completed them myself, to make sure I thoroughly understand all the components of a MVC website. (301 is a new class, which is why I hadn’t completed the assignments previously.) I’ve been coding in JavaScript and Ruby. I tried Rails 5. I went (finally) to an Open Seattle meetup and met some great people with neat project ideas. I started learning vim!

What I know is this: when I try to plot my path forward from my living room, I get nowhere. So my goal for the remainder of the month is to figuratively and literally GO INTO THE CITY. Look around. Talk to people. And listen for the clues to what to do next.

try rails 5

Hey folks! Last week wrapped up my second teaching assistant commitment, and while I managed to get myself invited back (barely) (I have more to say about this), I’m taking a break to focus on building skills and job seeking.

On the menu for today: let’s talk Rails 5. This’ll be short, since I need to dive into it.

Screen Shot 2016-02-03 at 3.21.29 PM

yaaaayayyyyayayyay

BUT FIRST… version control.

Since I finished my Ruby on Rails training in 4.something, Rails released a beta version of 5.0, and Ruby has also released a new version, from 2.2 -> 2.3. I’ve fought hard against installing a ruby version manager after disastrous attempts with rvm and rbenv, which hate each other, and will leave your development environment totally FUBAR if you’re not careful. So I nuked everything and avoided any Ruby version control, until now– and now I know better, and there’s no longer any excuse. My instructor says “try chruby!” so chruby it is!

I followed these instructions… including the setup for powder, which is my Rails development server of choice. I installed Ruby 2.3.0 as default and 2.2.4 as a “so then we’ll have it”. Apparently I had been using a version of ruby called 2.2.3p173.  Gross. No more!:

(Oh right, I have to update to El Capital also. Dammit.)

OK, ONTO RAILS:

So now we have software version control, sweeeeet. However, that version control does not extend to Rails, so how to play with the new version without destroying my current install (most recent stable version)?

Option 1: Clone the Rails repo and create a new Rails app from that starting point. 

I followed this guide for how to clone the Rails repo and then create a new Rails API app using the latest beta version (“edge”):

Fun! This worked as expected. I did have to run a bundle install before the bundle exec rails new etc would work. If you go this route, at the end your gemfile will contain this line:

gem 'rails', github: "rails/rails"

Option 2: Create a Rails app like normal and then update the gemfile with desired Rails version

Do you really have to clone the entire Rails repo? Probably not, right? In my second attempt, I tried to teach an existing Rails app to use the new version. The latest beta release in rubygems.org has this language for your gemfile:

gem 'rails', '~> 5.0', '>= 5.0.0.beta2'

However, that did not work. This did!

gem 'rails', '5.0.0.beta2'

I had to run a bundle update after bundle install, but otherwise everything went smoothly.

COOL NOW WHAT?

Well, my install worked a bit TOO well, and now all new Rails apps are initiating with 5.0. That was not my intention, but it should be easy enough to switch back if needed. Funny enough, when I run a new Rails app now, this is what the gemfile looks like:

gem 'rails', '>= 5.0.0.beta2', '< 5.1'

YMMV. Gentle reminder: Rails 5 is not currently recommended for production environments.

the wait

Hard to fathom that January is nearly over. What a ride it’s been already.

Earlier this month I had to take my laptop in to the Apple store because it started making vacuum cleaner noises. When I called them to get some additional information, this song above was the hold music. I thought it was sooooo clever. But then I called again a week later and the hold music had nothing to do with waiting, so maybe just a coincidence?

Nevertheless, I have a few irons in the fire at the moment and the waiting is exciting and terrifying, while simultaneously I am trying to continue to forge ahead in case nothing comes of it.

Being unable to talk about my own job search I will tell you instead about a conversation with a colleague last night, a  fellow TA who graduated around the same time I did from the JavaScript Accelerator. She’s slated to start working in February for a company here in Seattle who empowers female entrepreneurs, in a contract-to-hire position. When I asked, “How’d you find out about that gig?” she told me that she invited someone out to coffee for a networking conversation, a women she got connected to on Twitter, and that conversation turned into “hey can you come in to interview?” which then turned into “actually nevermind, can you start in February?”

via GIPHY

“Hang on, so you went to coffee… and then… you didn’t have to do a phone tech screen…”

“Nope, they just offered me the job. It’s contract so if it doesn’t work out, no harm done to them or me.”

“…You didn’t have to code on a whiteboard…”

” 🙂 ”

via GIPHY

I’m really happy for her, and the more I thought about it, the more I land on: WHY AREN’T MORE ORGANIZATIONS DOING THIS??

I interviewed back in November for job that seemed like a *great fit*, working as a Rails developer (“engineer”) at the local office of an org that allows users to track which books they’ve read and want to read. The job description said “be less than a year out of school” so I applied despite my green-ness, had a great “cultural fit” convo, and then got whomped in the technical phone screen. Guess what: that job is still unfilled, or still hiring, it showed up again today in my job postings notification. In the three months since they talked with me, at least two things have happened: 1. I got better; 2. The technology changed. If they had just hired me in November for a three-month run, I could have gotten better *on their technology stack* and we would both know by now whether it was a good fit for a longer commitment or permanent hire.

Josh helped put this in perspective for me yesterday, talking about another potentially stressful interview process coming up. “It’s not whether your technical skills are good enough to fit on their team, it’s whether they have the training capacity to take you on.” He continued: “[Company X] has enough resources, they could potentially take any of the five of us in this room [including the cats] and train us to work with their software. Whether they choose to do so is reflective of their own priorities and not your abilities or capacity to learn.”

#perspective

This article is making the rounds, and I think it’s an essential, and relevant, read: Why Doesn’t Silicon Valley Hire Black Coders? 

I’m not advocating for throwing your “Ace the Technical Interview” book out the window, but there’s something here worth considering, both for technical job seekers and those to seek to hire them. At a minimum, maybe it’s time to schedule those informational interviews you’ve been putting off!

Say, can I take you out for a cup of coffee?

“A tree house, a free house, a secret you and me house…”

EDIT: Shortly after this post, I heard back from Pierce County that the partnership is ending shortly due to new financial obligations that Treehouse is requiring to continue offering free access for all of their cardholders. And sure enough, the links in this post are no longer working. So, I’ll leave the post up for posterity but this deal no longer applies. 🙁 Sorry gang. 

Happy new year, dear readers! 2016 started for me with a whirrr and a bang and a wahoo! and other noises indicative that your cozy holiday break is OVER, friend. Get up and get moving, we’ve got class/meet-ups/projects/job applications/interviews to knock out.

One of my resolutions was to finally get signed up for a free Treehouse membership via Pierce County Library System (which has a reciprocal relationship with King County Library System and other library systems in the greater Seattle area). And this might have remained a hypothetical “I should get to that… soon” if not for one of my new 301 students, who was like, “or you could do it now!” (Thanks Ron and Yun Joo!)

It’s simple to do, and Treehouse has some great tutorials for beginning and more experienced programmers seeking to expand your skills. If you live in the Greater Seattle Area, please take advantage of this!

Sign up for Treehouse with Pierce County Library partnership

Here’s how to do it…

Step 1: Get you a Library Card

You already have a library card with your local library, yes? If not, go do that. Then, navigate over to the Pierce County sign-up page and fill in your information. For “local branch” select any of them, you won’t be needing it for the e-learning resources. For “Reciprocal Borrowing Agreement” select “King County Library System” or whichever one applies. Submit the form and wait for a welcome email with card number.

(Edit: I didn’t receive a card number yet, but a reference librarian tells me: “Normally you’ll receive your temporary card number immediately and then receive a follow-up welcome email, but I’ve just verified with our IT folks that we’re experiencing some technical issues.” So, persevere!)

Step 2: Register on Treehouse

Once you have your Pierce County Library card number and PIN number (last 4 digits of your phone number), head over to the Treehouse Pierce County registration page and sign up for a new account. You’ll need to use an email address you haven’t already used with Treehouse, and you can sign up for a new one if needed with gmail or any free email service. I’m hoping that I’ll be able to transfer my existing Treehouse progress from my old account to the new one, and I’ll update when I find out if this is possible (but I’m expecting I’ll need to start from scratch).

Step 3: Be Classy

You’re now eligible to start taking classes or working on any of the Treehouse developer tracks that you choose! Here are some goodies:

  • Object-Oriented JavaScript with Andrew Chalkley
  • ActiveRecord Basics (for Rails) with Hampton Catlin
  • Harnessing the Power of VIM — I haven’t taken this one yet, but it’s on my list.
  • Learn Java Track — ditto to above (I did complete the Rails developer track)

With Treehouse, you get a public profile to show off what you’ve learned. Share yours in the comments when you successfully get registered!

Step 4: High-Five a Librarian

You probably want to hug them right now, but opt for an expression of gratitude that respects their personal space instead. Like maybe a nice note on Twitter about how awesome this partnership is that they can re-tweet, or go pay that long outstanding library fine you’ve been putting off.

——————————————————–

Happy studying, and spread the word! Got any favorite Treehouse courses? Link ’em in the comments!

*Title of this article from Tree House, by Shel Silverstein

2015 Year in Review

2015 was a banner year! It was a year focused on beginnings and new adventures: some carefully planned, some spontaneous, some scary, some sad, all worthwhile. I’m so excited to see where this year’s foundation takes us next year and all the years to come.

– In January, I quit my job, effectively pausing a decade-long non-profit fundraising career, to learn how to code. Since then, I’ve run the gamut of classes with Code Fellows, culminating with an 8-week intensive course in advanced web development in Ruby on Rails. I’m currently working with Code Fellows as a Teaching Assistant while looking for full-time opportunities as a software developer.

CFRoR2015

Code Fellows Ruby on Rails graduate class, October 2015

– We bought a house! I love our home in the heart of south Seattle’s Hillman City neighborhood. Living in a small space has forced me to focus on the things I own and what’s really valuable / brings me joy (yes I read that Kon Mari book). This was also the year I discovered Buy Nothing, which has made the process of giving away things I’m not using to people who want/need them much more enjoyable. We made some major (but un-fun) investments in things like securing the foundation. Next year I look forward to more aesthetic changes and improvements to make the house even more livable and enjoyable for us and our visitors.

Holiday spirit has arrived (yes it is wearing a lampshade hat and ready to party)

A photo posted by @marythought on

– I married my favorite person and we celebrated a joyous day with family and friends. Weddings are expensive, a headache, and come with a lot of familiar baggage, but I wouldn’t change mine for anything. The whole weekend was one of the best of my life. I especially loved how well Josh’s family and mine meshed together (a rare and wonderful thing).

11377149_10155528292160526_5453675706797037705_n

Married!

– We spent three weeks traveling around Greece and Turkey on our honeymoon, chronicled here.

20150605_161002

20150620_052756

– Starts and stops in growing our family — after experiencing an ectopic pregnancy this fall, we were thrilled to be expecting again soon after and sadly lost the pregnancy around 8 weeks, after seeing a viable pregnancy with heartbeat at 6. This experience has opened me up to a fellowship of “it happened to me too,” and radicalized me on women’s reproductive rights issues. The decisions to pursue or terminate a pregnancy should be between a woman and her doctor, period. I believed it before and believe it even more strongly now, having experienced some of the conversations and experiences that some politicians would like to legislate.

– My first Twitterbot, focused on the women who served as code-crackers at Bletchley Park during WW2, just passed 100 followers! I’ve heard from the children and grandchildren of veterans with pictures and more information about their relatives. In learning how to code in python, I accidentally created something that enables people to share their stories– I love this, and it’s helped me focus my programming goals on the desire to engage with work that’s both fun for me and valuable to a broader community.

twitterscreenshot

– I kept this blog alive for a year! Happy birthday, blog. I wasn’t sure how programming-focused I could keep the posts while still maintaining a readership and personal interest, but those have turned out to be some of my favorite posts. (I do appreciate that you let me blog about things like my honeymoon though, and I plan to keep doing that!) Some personal blog highlights:

My biggest goal for 2016 is to find sustainable work as a developer — so here’s a link to my resume, if you can help. Cheers and happy new year to you and yours!

« Older posts Newer posts »

© 2017 Mary Dickson Diaz

Theme by Anders NorenUp ↑