Internships and Capstone

Long time no see. In the last two months a lot has happened. I interviewed at seven different tech companies for software engineering internships, I got an internship at Chef Software, I developed and deployed Lights on WA, my a capstone project, and I saw the grand canyon for the first time. So it’s been a great couple of months.

Internship Interviews

Ada Developers Academy has great selling points, but the two that definitely make it rise above the fray are the facts it is free and that there is a built in five month internship for those who go through the program. The internship is critical as it gives you real world experience at a local software company before you have to start the job application process. It also gives you the opportunity to apply and do technical interviews with the guarantee of a job at the other end before you have to do more high-stakes interviews which is amazing practice. We were all a little more than nervous for our week of seven technical interviews and knowing that at the end every person would get an internship made it a lot easier. I interviewed with a range  of different companies both small and large. Some of the interviews were purely technical, some situational, some just talking about why I was interested in coding. All of my interviews were positive experiences, even though I came down with a cold and was pretty ill and could barely speak or get the ringing out of my head at the beginning of the week. Technical interviews can be scary for people coming from different fields. In a lot of cases it’s basically someone asking you a logic puzzle and watching you speak and write on a whiteboard while they judge you on how and if you solve it. There’s a lot more to it than that but it can often feel like a quiz. It’s really about how you build trust and candor with the interviewer in a short amount of time and do so in order to solve a complex problem. Some people also just like to see how you react when you draw a blank — do you panic? do you pull through? So any situation in which panic is an option can be stressful.

I ended up appreciating the interviews and to my bemusement found that the ones with harder questions and interviewers that pushed me to think more deeply about efficient solutions were the interviews I enjoyed the most. I am happy to say Chef was one of those interviews.

In order to make interviews less daunting and more silly our cohort added some little traditions to the process. We all wrote each other notes to be opened before each interview and had a costume box where we dressed up after each interview and took disposable camera photos.

IMG_7622.jpeg IMG_5096

About two weeks after our interviews were finished we found out our placement companies. I was overjoyed to find out I’d be interning at Chef. I had found their interview engaging and challenging, they are a remote company, they pair program, they are a DevOps company which is a deep area of interest for me, and they are Open Source.

Funny enough the morning I found out I’d be interning at Chef, I met up with one of the Adies who works there now for coffee. I am excited that two people from the program are already there as full time engineers and love the company. It has been hard to explain exactly what the company does to my family and non-tech friends (all my friends) but for most software people Chef is a leading name in DevOps or Development-Operations. They produce software for software companies that makes the deployment and configuration process easy and even fun. The only friend of mine I know in tech was very excited when I told him this is where I’d be interviewing as he handles the Chef recipes at his job. Chef is written in Ruby (yay!) and a functional programming language called Erlang. One of my goals and wishes for the next six months has been to learn a functional programming language so I’m excited for the challenge. Chef’s frontend will also be a challenge for me in learning Angular 2, which is brand new and daunting. I’ve already started to learn a little Erlang and transfer to the text-editor Vim over the last week and it’s a whole new world to me. Our cohort has three weeks starting tomorrow to “ramp up” before internships start in April. I’ll be using that time to dive into more Ruby, Chef Recipes, Erlang, and Angular before I start.

Note: I also found out last week that I was accepted as an Opportunity Scholar for Railsconf and will be attending in May! Chef is a sponsor so I hope I’ll get to see Chef employees from different parts of the country there.

Capstone Month: Lights on Washington

And all this brings us to Capstone Month. After interviews were done we quickly started working on our four-week individual projects. However daunting, capstone proved to be the most fun I’ve had at Ada (don’t get me wrong, it was all fun!) I have been incredibly impressed with all the ideas and deliveries that my cohort pulled together over these four weeks.

My project started with thinking about campaign finance in the Washington State. I wanted to make donations and candidates more transparent. So I decided to take the data from the Public Disclosure Commission, which controls campaign finance in our state, and make it more accessible and host it on my own site. Easy, right? Well, public data is a lot more complicated than that. My first big problem was that I didn’t have easy access to the data. A public records request I put it took 3.5 weeks to come through. I had to build a web scraper to get all the data from the site.

Once I got the data and had a basic front-end with the help of some amazing Javascript libraries, the main problem and majority of my time was spent figuring out how to get so much data into production. I dealt with a litany of memory leak and performance issues that we normally don’t see in our Ada projects because we are dealing with hundreds of rows of data (if even that much), not millions.

In interviews we talk a lot about space and time efficiency without any practical experience about when this might be applicable. We tend to think that it’s just for interviews that we need to know the run time of different sorting algorithms. Through working on Lights on WA I started to see the immense value in having a basic understanding of memory, space, efficiency, and algorithms. I talked some about this in the presentation I gave on our final day. The slides can be found below and the website at lightsonwa.com.


I was very proud of how Lights on WA turned out. I talked to some friends working in politics in Washington who were enthused to pass it around. I am also proud about the fact it is a civic hacking project and that I learned how to get information from the government when they are slow to deliver a public records request. I definitely want to stay connected to the open data world that I experienced a little slice of and would absolutely participate in more side projects that had to do with making our data more accessible. Finally I am proud of how much I learned about performance and data structures. I am proud that I used the resources available to me to finish and exceed my MVP. The whole process gave me a lot of confidence in my skills and made me excited to dive deeper into DevOps in the coming months.

After internships interviews and capstone were complete, I got the opportunity to visit my family in Arizona and see the Grand Canyon for the first time. It was so beautiful I was breathless (and not only because of the 12 mile steep hike). I got to see sunset and sunrise over the canyon with my best friend, and take a second to breathe without thinking about runtimes or Travis failures. I return this week with a new sense of learning and optimism, which I’m really going to need as I go cold turkey off Sublime in my switch to VI.
IMG_6799.JPG
IMG_6805.JPGIMG_7642.jpeg

Applying to Bootcamps and Committing to Code

Last night I went to an Ada Developers Academy information session. The panelists talked a lot about personal journey and how crafting a narrative is key to success in their application. I think this is just true for all professional goals. So here I detail what got me inside that room last night, and why I am so committed to the type of community Ada is trying to facilitate.

Around six months ago, I was working in Pune with the digital ops team for Pratham and started to become interested in programming for the first time. I looked around (Googled) for different programs and bootcamps in Seattle that might be helpful in this journey. I wanted a bootcamp that was, above of all, intellectually rigorous. I wanted to my cohort to push me. More than that though — I wanted a program that matched my personality and values, that emphasized issues beyond the code. During this search, I found Ada Developers Academy, a year-long program just for women that looked both incredibly intense and put strong emphasis on communication, dialogue, and having the conversation about diversity in tech (not just talking about the conversation).

When I found Ada back in February, I became momentarily obsessed. Unfortunately for me, I found it exactly when the application opened up for the next cohort which started in May, and I was stuck in school until June. Five credits and some certifications stood between me and graduating with an economics degree. And everyone, I seriously considered dropping out of school to pursue programming right there and then. 

Have you ever found something that felt so right it made you nervous and excited at the same time? That’s how I felt when I found Ada. However, it wasn’t Ada that made me excited in and of itself. Ada looks fantastic, yes — but one program or product alone cannot cause an existential crisis or make feel like I need to drop everything and change my life. Ada’s tagline and mission were manifestations of a certain philosophy. You can find this philosophy in many organizations I have come to love in this journey: Girl Develop ItCode Newbies, and Women in Tech to name a few. Reading over Ada’s requirements and application sparked my enthusiasm and not just to apply. It gave me this strong feeling that I could actually do this. The amount of support for the organization told me something as well: people wanted me to do this. I didn’t need a CS degree, I just needed my own willpower and the ability to foster a community and support networks. 

So I didn’t drop out of college, obviously. I let the deadline come and go for the application and the opportunity slipped away. I knew there would be a cohort for me in the following months, but didn’t know how far off the organization would announce that. I wasn’t going to wait around for the application to open up again before I starting seeking out this community. I returned to Seattle to finish my thesis. School had become pretty dull at that point. All the excitement last quarter happened for me outside of school, at meetups and in conversations with mentors about this change. I took a class on feminist theory and wrote my senior thesis using R, which I enjoyed, but left me with only more desire to start coding and to meet other women in STEM.

I picked up some books on code (borrowed a lot from friends) and delved into online materials. I quickly realized something that I’ve heard many times before: coding is really really really hard.

And that made me love it all the more. I started out studying philosophy in school. I was intensely passionate about making arguments and delving into the depths of different writings to support ideas I had built from scratch. After a while though, I craved more opportunities to have a tangible impact and became interested in economics, where I could use math, statistics, and algorithms to support my models and arguments. Constraints and utilization curves had data behind them! I soon realized even economics had its share of faulty assumptions, inaccuracies, and often fundamentally mischaracterized human psychology. I started studying math. I like to tell people that I started out a philosophy major but if I had eight years to go to school, I probably would have become a math major. All this is to say, I began to realize that rigor and the constant search for more efficient (read: lazy) and powerful means to build arguments is at the core of what I wanted in a career. I never want to stop learning. In school there always seemed an end to the learning: the end of the syllabus, the quarter, getting a 4.0 in economics, graduating, etc. and I think a lot of academia is trained that way. In this new world, however, the possibilities are endless. We can pivot and pivot and pivot and no assistant dean is going to tell us “But six months ago you said you were going to teach Ruby and now your teaching Go? What is this?!?” Evolution in learning is not constrained by a syllabus anymore. 

This has all been in my mind for the last four months since I returned from India. I immediately set up coffee dates and happy hours with every developer or tech adjacent person I know. My friend Martina Welke gave me great advice about being a woman in tech. Kristina Lenova introduced me to amazing developers at her company Tune, and showed me what working at a tech company could be like. My friend Ben, a semi-recent graduate from App Academy, told me about his journey and discussed the culture. The countless amazing people I’ve met at Girl Develop It and Seattlerb gave me advice on learning materials. Finally, I reached out blindly to about four Ada students in their class or internship phases and all of them immediately responded “Yes. When?” I was able to have great conversations with them about Ada, and more generally how the mission of Ada compares to the community at large.

All of this brought me to Galvanize downtown last night for an information session. The application for Ada opened about a week ago and there are less than two weeks left in the process. The session was amazing, and the women from the cohorts spoke brilliantly about their experiences. I loved everything Amira, Loraine, and Kari said about community and their cohort. It reminded me so much of the Sullivan program at Seattle U. The panel also discussed creating positive culture and the ability to trust other classmates and work as a team. At one point, Rebecca Mark said she hopes the women and Ada will “be brave and unbounded” in tackling problems in tech and the world. At one point, a prospective student in the audience asked about intersectionality. I was relieved that the executive director’s answer came from a place of understanding. Cynthia spoke of Ada’s “no woman left behind” policy and how they try to build a constructive and open environment. Rebecca perfectly framed why these things are so critical when she said that this is was makes these women not only amazing humans, but “empathetic programmers.” If you cannot communicate your work to other classmates, how are you going to be able to communicate with users of your product? How are you going to be able to see if your product is applicable or accessible to people outside of yourself?

The session ended with a discussion of self-care and healthy habits while in the intense classroom phase, which I personally found comforting. In that moment I was so happy to have found Ada not only because of their program, but because this is exactly the culture I want to create, foster, and learn from in this line of work. So regardless of what happens in the coming months, I am glad to have this community and thankful for what they’re trying to do for women like me in trying to enter this field. I hope that even if I don’t become part of their cohort, I can still be part of the community and support its growth in the future.

breathe in, code out

This week has been a jumble. I worked a lot at the place I wash dishes at the beginning of the week, and in between have not stopped staring at different things on my computer. I finished App Academy’s introductory materials and began to take their coding quizzes. I got through all ten “beginner” problems in one sitting, although it took me a while and I sure struggled. I felt so good after completing my reading but seeing

def Method
  #your code goes here!
end

really freaked me out. I took a breath in, and tried to breath out code. I was proud that I completed all the problems without looking at the answers. I mean I did Google (but only twice!) to find some techniques, but didn’t ever search out solutions. I was feeling a lot of euphoria completing the assignments and having all my tests go green. And then… I looked at the solutions. Compared to the solutions my code was a little wonky. Let’s take an example which sums a range of numbers (but you should already know that looking at the variable names I hope…):

def sum_nums(num)
  range = (0..num).to_a
  range.inject(:+)
end

and this is the solution they provided:

def sum_nums(num)
  result = 0
  i = 0
  while i <= num
    result += i
    i += 1
  end

  return result
end

Meh… that doesn’t look much like mine, does it? And I assume it’s a much better use of principles as well. I think that right now when I see or hear a problem I could solve with code, my brain fires up the “panic! what do you remember to solve this!” engine and then I tweak and tweak until the specs come up green. This probably means I just need to spend more time with the syntax and logic (esp. loops) until it becomes much more natural for my brain. When I’ve learned languages in the past (Spanish, Latin, Yorùbá, Hindi), I’ve gotten to this point in drilling the basics where I start to dream in those languages. It’s hilarious at first because the dream is really only in partial phrases and incoherent statements. That started to happen with Ruby last night. I had a dream about a method I was trying to write, but for the life of me I couldn’t tell you what it was supposed to do. It was bizarre, but hopefully it means I’m beginning to get the hang of the language. Gah, this is too much fun.

In other code updates, I just finished the first level of Ruby Monk. It’s on to Ruby Koans next for more syntax practice. Funny enough, I actually completed Ruby Koans a while ago when a Ruby dev recommended it to me. I trotted along in it because the interaction on the CLI is pretty straight-forward, but to honest it really didn’t stick. I completed a whole section on RegEx without really ever understanding what I was doing. I’m going to now go through it again with better control of some basics.

In terms of IRL coding, I just finished a Girl Develop It course in Seattle. The course was on HTML/CSS which, while not programming, was fun and an awesome opportunity to meet some community members. In the CSS part of class I kind of realized… I’m not a big fan of design. I mean, I’m a HUGE FAN of looking at awesome design by others, but I just don’t think I’m personally cut out for that. This could change, but tweaking the colors and div sizes/margins/etc. was not the most fun. Data is the most fun. But this is all evolving.

In the mean time I’ve been thinking a lot about this idea of “Write. Code. Speak.” It’s the idea that not only should you be programming or coding, but also writing and speaking about programming, tech, social issues, etc. There already so much out there to learn and keep learning that also attending Meetups every week, writing a blog, keeping up with my online newbie community, and also you know.. making a living in Seattle can be overwhelming. However, this is what I LOVE about this community and world. Unlike academic economics, what I previously thought I may do, developers actually recognize and discuss these issues. I find this especially cool/heartening this morning, with the recent SCOTUS ruling and having a Twitter community to celebrate with.

Happy Friday! I just found out that Ada Developers Academy is opening up applications for their fall class so I’ll just be over here koan-ing and trying not to freak out from joy/fear/excitement.

App Academy Prep Work!

So I am not sure that I’ll apply to App Academy, but I have a friend who is now a developer who attended their camp and is very excited about the possibility that I will also attend. So I thought I’d take a look. To be honest, I’ve been freaking out a little bit over the last day about it. It’s a pretty intimidating bootcamp. I’m absolutely up for the work and I honestly think I’d be a good fit. I have just been realizing something over the last week about myself: I like to be certain I know something before I’m tested. I once had a friend tell me the the best teachers (and thus the best communicators) are the ones that can struggle the most effectively. I love this sentiment because it’s absolutely my learning style. I like to struggle a lot before I’m teaching or communicating with others about those ideas. This is probably why I enjoy coding so much. It’s a constant struggle (i.e. you never stop learning, so cool!)

Anyway, I’ve decided to complete the App Academy prepwork and test myself on it. This may not lead to me actually applying to App Academy but will definitely lead to me being a better programmer. And it will give me the opportunity actually finish and work through an ENTIRE tutorial on Ruby for the first time (resource overloadddddddd). I will be updating this blog with my progress for the time being but in the meantime here’s the prep work:

I. Before Coding Challenge 1

II. Before Coding Challenge 2

III. Extra Optional (I’ve heard are helpful but not possible to get all the way through)

Phew, think that’s enough prep work? Well, I’m getting started today with the “Intro to Programming” and hoping to finish RubyMonk this week. I’m keeping this all organized on this site and *gasp* on paper! I’m excited to finally get a little organized and actually finish a tutorial. To be honest, I read all of Chris Pine’s book and tried the exercises every chapter but found that the way I approached the exercises I was constantly using clunky or non-descript variable names and I often leaned on the solutions. Now I want to commit myself to some memorization and muscle-memory building techniques so that the syntax and logic becomes more intuitive for me. Here goes & stayed tuned!