Lately I’ve been churning out a lot of sketchnotes:
I had to learn what @IstioMesh was in order to create this #sketchnote and it was incredibly easy to get started. Props to the #Istio team for clear documentation and resources that explain why service meshes are helpful! pic.twitter.com/VqS1E5E3Fg— Denise Yu (@deniseyu21) August 22, 2018
I know that most people would *probably* not refactor from kubectl to Helm like in this toy example (check out the docs!) 🙃 here's a visual explanation of how @HelmPack and charts work, with cats and @Drake pic.twitter.com/L8AfRHEgDH— Denise Yu (@deniseyu21) August 23, 2018
Read More Read More
I get asked pretty often by people who are interested in applying for a role at Pivotal, or a number of other companies known to value test-first development, “I know about this TDD thing, but how do I know that I’m doing it right?”
Of course my first piece of advice is to try to work at a company that values TDD, but that’s a chicken-and-egg problem if those companies are testing for TDD in the interview process!
This article is an attempt to summarise and categorise the advice that I generally offer to junior developers. All code examples in Ruby using RSpec syntax.
Be like Gandhi
I like to tell people, “Write the code you want to see in the world.” Like Gandhi! If he wrote code.
I wrote this piece last year when I randomly learnt about the landmark case, United States v. One Book Called Ulysses. It was such a bizarre story that I was inspired enough to blog about it with my pseudo-art-historian hat on.
In 1922, in the temporal heart of Prohibition-era America, a man named James Joyce wrote what would be later considered the most controversial novel of the twentieth century. Ulysses chronicled the stream of consciousness of a character named Leopold Bloom, who lived in Joyce’s contemporary Dublin. The text was simultaneously esoteric and coarse, and whatever semblance of a plot punishingly difficult to follow due partly to changing, unreliable narration.
A literary magazine called The Little Review published chapters of the novel in serial form. This was common for the...
I’ve been working at Pivotal Cloud Foundry for the last 16 months. During that time, I’ve mostly been an engineer, but am currently putting on a Product Management hat for a little while! More on that in a future blog post.
Pivotal is a company that spends a lot of time thinking about what good feedback looks like. Not as in feedback from customers or end users, although that is also extremely important; I’m talking specifically about peer-to-peer feedback that is intended to help individual contributors grow as engineers, designers, product managers, technical writers, and so on.
We have lots of rituals and tools for keeping feedback at the forefront of our regular work cadence – way more than I’ve seen elsewhere so far. For example, during the first week...
This past weekend, I finally ventured out of my burnout-induced cave to attend a tech event on a weekend: PLIBMTTBHGATY, one of my favorite formats for events where you learn stuff. The Programming Language I’ve Been Meaning To Try that I chose was COBOL. Surprisingly, no one else (except Spike) wanted to learn COBOL with me?!?
My main takeaway from the day is that COBOL was a lot easier to get started with than I anticipated. The syntax was obviously unlike any modern programming language I’ve used, but it was easy to read, because it was so imperative and there was no magic going on. After all, COBOL was one of the first languages designed for human readability.
Learning COBOL will probably be easier for folks who have some...
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:...
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...
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:
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”....
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...
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...
A few months ago, my company upgraded our core application from Rails 3 to Rails
- 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...
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...
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...
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...
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,...
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...
This has changed my life.
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...
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.
If you haven’t done so already, install Composer...
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...
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!...
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...
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...
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...
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...
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...