Craftmanship, Inclusivity, and Community-Building

A lot of things have been on my mind lately. Among them, Sarah Mei’s latest thoughts on Twitter about “No True Developer” tribalism. She and a few others call out this troubling pattern that has been happening in tech for a really long time, where people who are part of an “in” group publicly make assertions like “You’re not a true developer if you don’t do/know/follow X”. As someone who is relatively new to the industry (I started learning to code in September 2014, and have been working professionally since February 2015), I can relate to so much of this. I can’t recall how many times I’ve been in talks nights, hands-on events, or even just casual conversations at a pub, where a variation on this exchange has happened:

Read More

The Sophomore Slump

When I was in college, I spent most of my weekends traveling to other universities in order to take part in parliamentary debate tournaments. Students across all years participated in the same rounds, which made debate the single most exhilarating and intellectually-challenging activity of my college career – and also, the most emotionally difficult one.

Since freshmen are debating against seasoned seniors, the league had a special category of recognition for first-year debaters that fared well. Debaters in their first year are referred to as “novices”, and there was a corresponding set of novice speaker awards as well as team awards. Teams that were composed of two novices that had the best win-loss records would proceed to a special set of novice-only elimination rounds, or “outrounds”. When you completed your...

Read More

You've got passion -- how do you convince others?

If you’ve ever had a conversation about tech, software, hiring, retention, diversity, being a junior, supporting juniors, etc. etc. there’s a 95% chance that I’ve told you to go on Twitter and follow Sarah Mei immediately. Hey, you! Reader! Go follow Sarah Mei on Twitter immediately!

The reason is because she has some of the most accurate and concrete ideas for how to make life better for junior developers, particularly women and people who aren’t traditionally encouraged to enter tech. Through Sarah, I recently came across Lydia Guarino’s latest series of tweets about where junior devs fit.

It’s geared toward bootcamp grads, but most of the advice in there is generally applicable to anyone who is searching for their first job. This, in particular:

Passion and...

Read More

A Very Simple Thing You Can Start Doing

My last blog post and the reception to it got me thinking that it’s one thing to describe a problem in the abstract, but it’s much harder to come up with “actionable” solutions (good god I hate that phrase). But I think I have one idea that you can start doing today that will support the women that you work with.

I first noticed my friend Franzi doing this at a conference a few months back. It was so simple that it was mind-boggling to realise that I had never heard anybody else do this before.

Every time a woman is in the middle of a sentence and is interrupted by a man, Franzi gently interjected and said “Excuse me, Camilla was speaking,” or “John, please let Denise finish”....

Read More

I don't want to be That Girl

This is a difficult post for me to write. When I started coding a year and a half ago, I have to admit that I didn’t really know what I was getting myself into. I knew that software development was a cognitively intensive field, which is what initially drew me to it, but I didn’t know that it would be the community that would make me grow to have a truly vested, emotional interest in increasing diversity in this field.

I’ve been involved with organising codebar for the last year or so. At first, I think I became involved with codebar because I was feeling bored and untethered, just starting out in an entirely new career field. I’m someone who draws energy from being involved in thirty different things...

Read More

Full Text Searching in MongoDB

I’ve always had an interest in language. Specifically, I really like the sweet spot where natural language intersects with mathematical logic. I studied Ancient Greek in university for two years, but had to eventually stop because I realized that maaaaaybe I needed to actually take some Economics requirements and graduate… but during the two blissful years that I was studiously parsing and translating Homer, my fondest recollection is the (relative) regularity of Ancient Greek syntax. I liked that you could pretty much identify the role of every single word in a sentence based on its declension, which allowed the author complete freedom over the order in which the words were arranged. This, to me, felt like a very purpose-driven yet flexible language design.

Recently at work, a few teams have...

Read More

The Great TSL Bug-Hunting Competition

A few months ago, my company upgraded our core application from Rails 3 to Rails 4. Despite the best efforts of the Rails maintainers in making the transition as smooth as possible, we still anticipated many subtle bugs and breakages.

Our application has a lot of moving parts, as is the case with most companies that have a core application. Moreover, every developer was familiar with a few key parts of the code, but nobody knew 100%. As a result, we were wary of the abilities of the dev team alone to think of every edge case that could potentially break the application logic.

The solution that we ultimately came up with led to one of the most fun, productive afternoons during my time at TSL: We held a company-wide...

Read More

My work visa experience

I’m often approached by fellow Americans or folks who live in non-EU/EEA, non-Commonwealth countries wondering how to go about getting a work visa in the UK. Here’s an account about the lessons I learned during my journey towards gaining a Tier 2 work visa to live and work in the UK.

In case it isn’t apparent, I work as a software developer. Specifically, I make web applications, primarily with Ruby on Rails. In my limited anecdotal experience, it is far easier to earn private sponsorship if you are looking for work in a STEM field, because specialized skills are in demand.

I completed Makers Academy on December 5, 2014 after three months of intensive, full-time studying. Immediately after the course, I spent 4 weeks cleaning up my Github (it...

Read More

Custom Rails Form Errors Without Gems

Everyone who’s used Rails knows that a lot of magic is baked into the framework. One part of Rails that I’ve always been a little mystified with is how form validations work under the hood. Lately, I’ve had to do a lot of hacking around with forms – sometimes to change error messages across the entire application, other times only for one particular use-case or one model. There are a couple of gems that make form customization a little bit more user-friendly – simple_form is perhaps the most well-known.

However, under certain circumstances (like legacy projects), it may not always be possible to install new gems due to dependency constraints. In this post, I’ll cover a few ways to customize form errors with native configurations. I’m assuming you’re using...

Read More

Ready, Set, Ruby!

A few weekends ago, Spike went to SoCraTes, where he learned a game called Set. The premise of the game is fairly simple:

There are a certain number of cards laid out on the table from a deck of 81 total cards. Each card has four characteristics, and three possible options for each characteristic:

  • Color - red, green, purple
  • Shape - diamond, pill, squiggle
  • Fill - solid, stripe, empty
  • Number - one, two, three

A complete ‘set’ consists of three cards that all have nothing in common, or all have exactly one trait in common. If two cards share a trait but not the third, it is not a set.

From the Warwick Maths Society

We got into a...

Read More

Being Wrong, Loudly

The journey of learning to code, for me, has borne a lot of similarities to learning the mechanics of university-level competitive debating. I’ve been wanting to write about these similarities for a while now, but struggled to find a unified, thematic way to present this intersection.

A bit of background: I debated competitively for about four years throughout university and graduate school. I never got very good at it. I never won speaker awards (recognition for the highest-scoring individuals at a competition), never won national titles, and produced a handful of good cases (topics briefs that establish the subject and boundaries of a round) but never anything spectacular. I experienced a lot of frustration very early on in my debating career, because I could not feel my own skills improving,...

Read More

On Code Citizenship

Before I knew I wanted to become a coder, I thought I wanted to become a lawyer, or at the very least, a policy researcher. And before that, I spent far too many waking hours living a double life as a competitive debater. As a result, I spent a lot of time reading political science and sociology texts in university and grad school. I’ve been thinking a lot lately about the idea of what it means to be a good citizen, and how that applies to software development.

Katrina Owen spoke at Bath Ruby a few weeks ago about the challenges of working on legacy code. The second half of her talk, which was probably the twenty minutes of the entire conference that resonated the most with me, offered...

Read More

Test-Driven Development - What and why?

In the process of describing my career change to non-developer friends, I found myself explaining time and again what exactly I learned at Makers Academy, and how it was possible to make a complete career transition in only twelve weeks. In truth, it’s impossible for a 12-week course to replace a 4-year university degree. However, at the same time it is also true that in most CS programs, much of the content is theoretical, and relatively little time is dedicated to learning how to write code – and even less is spent on learning how to implement industry best practices. Coding bootcamps are not intended to replace 4-year degrees – rather, they address a gap in the market for junior developers who are ready to write code and start adding...

Read More

Test-Driving Rock, Paper, Scissors with PHPUnit

Test-driven development is a method of writing as little code as possible in order to achieve functionality. In order to ensure that tests are purposeful (i.e. not false positives), it is standard practice at Makers Academy to write a failing test, then write just enough code to make the test pass, followed by refactoring. The aim of this tutorial is to provide a glimpse into the “Makers Way” of software development using PHP and PHPUnit. This walkthrough assumes basic familiarity with PHP syntax.

There are many ways to write Rock, Paper, Scissors. In this version, we will err on the side of object orientation for each “choice”, and the win/loss mechanism will be a method inside the Game class.

Installing Dependencies

If you haven’t done so already, install Composer...

Read More

New Job!

I always experience an unreasonably high level of vicarious anxiety when I watch movies that involve the main characters in any type of vehicle that’s rapidly accelerating out of control, usually towards a collapsed bridge/tunnel/overpass, even though you KNOW it’s going to be okay and they’re not actually going to kill off Keanu Reeves and Sandra Bullock’s characters with a full 20 minutes left of the movie, because if Americans wanted our movies to make us feel bad, we would just watch foreign films.

In an imperfect analogy, the last week of my life kind of felt like that. There was no collapsed bridge, but my student visa was rapidly approaching its expiration date, and along with it — my ability to continue to stay in the UK. I’d been...

Read More

Christmas Morning Reflections

When I was in the sixth grade, I had a gym teacher who was really, and I mean, REALLY enthusiastic about exercising. He claimed to shower three times a day, because that’s just how much he exercised. I thought he was absolutely nuts, because it’s one thing to enjoy exercise for the endorphins, but what sane person exercises that much? In the week before we went on holiday break, I remember that he said to us that Christmas should not be a time to sit around and stop taking care of your physical health. A lot of people view it as an excuse to neglect their usual exercise routines, but he viewed the long holiday as an opportunity – with the extra downtime, he could do EVEN MORE LEG PRESSES!

Read More

Week Two at Makers Academy

Week 2 at Makers Academy presented a host of new challenges. During Week 1, it would not be accurate to say that there was hand-holding, but the Boris Bikes project that we built in pairs came with a much more in-depth tutorial than our project for Week 2, which was to build a working skeleton for a simple Battleships game. Where Week 1’s difficult gradually crept upward as the week went on (with a slightly steeper climb when London TDD was introduced!), in Week 2, at some points it truly felt like we came up against a huge wall that would challenge even Tormund Giantsbane to scale…

1. Working in teams is really, really hard.

MA has designed the course to capture the reality of working as a developer...

Read More

Week One at Makers Academy

For twelve weeks, I will be taking an intensive web developing and coding course at Makers Academy. For those who are unfamiliar, Makers Academy is one of many popular “tech boot camps” springing up all over the world. In large part this is a response to the fact that technology is one of the fastest-growing and most dynamic industries in the world right now, while in many major cities, the supply of talented people with technical skills outstrips demand.

My intention for this series is to chronicle the content progression in the course, but only as a secondary goal. Many other blogs have been written about Makers Academy, all of which are worth checking out if you are considering Makers or any other intensive coding course. My primary goal is...

Read More

Ten Days in London

Recently, my friend Chrystal visited me in London for ten days. Being awesome (and probably WAY too trusting!), she let me plan pretty much every detail of her visit. And being very, very Type A, I probably got more joy out of planning the minutia than any reasonable person should, ever. It later occurred to me that it could be helpful to other London visitors to see the itinerary that I put together for her visit. Without further ado, here it is!

Many of the plays and one-off events were booked about a month in advance. However, there are many events happening in London all the time, that can easily be substituted. I always check a few key Twitter profiles to see what’s going on: @SkintLondon, @TimeOutLondon, @Londonist, @LondONtheInside, and...

Read More

The Great Birdhouses of Westeros

Last year, I went home for about a month after quitting my job in NYC, and found myself feeling bored and creative at the same time. I paid a visit to the place where I sank all of my childhood pocket money: the arts and crafts store.

I wandered around the aisles, not really sure what my upcoming project was going to be. I was about to settle for a pad of heavy-duty paper and some watercolor paints and brushes, when these cheap, cute little decorative birdhouses caught my eye. They were $1 each, and they were definitely too small to house any real bird. I snatched up four of them, bought some acrylic paints, and went home to ponder how I would decorate them.

I’ve gone to my share...

Read More

Monopoly Pub Crawl

I haven’t died. I did, however, move to a new country since the last update and utterly forget that I had this blog. In the UK so far, I have met David Cross, sat three feet away from Kevin Spacey, ordered my dinner off an iPad at a restaurant, and hopped a fence in a city farm to frolic with sheep. Those adventures will be documented in further detail at a later date.

The pub is a curious institution in England. It’s an extension of the living room — a communal space that is multipurposeful in a way that bars in the US are not. Business meeting? Post-ultimate frisbee practice socializing? Family reunion? Done with classes for the afternoon? Head to the pub.

In honour (!! look at that) of...

Read More