Tag: .net
Why Java developers hate .NET
I have been struggling with .NET. Actually, I have been fighting pitched battles with it.
All I want to do is take our existing Java client example code and write an equivalent in C#. Easy, right?
Trisha’s Guide to Converting Java to C#
Turns out writing the actual C# is relatively straightforward. Putting to one side the question of writing optimal code (these are very basic samples after all), to get the examples to compile and run was a simple process:
Tag: 10gen
Developers hate support, don't they?
I’m at the end of my first official week doing support for 10gen. My major achievements are:
Tag: advice
LinkedIn Etiquette
For no reason other than LinkedIn communications are starting to irritate me, here’s my personal LinkedIn Etiquette guide. Feel free to disagree with it all.
Staying Ahead of the Curve
I had an interesting discussion last night at the LJC developer sessions, and it’s a topic that comes up again and again:
How to make your CV Not Suck
When you’re applying for a job at LMAX, your CV (or résumé, for our American readers) usually comes through me and I decide whether to call you for a technical phone screen.
I’m going to let you into a secret.
Certified Scrum Master
Tag: advocacy
What Can Conferences Do To Attract More Women Speakers?
Now I’ve been speaking at (mostly Java) conferences for a while (six years now), I get asked to present at a lot of conferences. Obviously all these conferences are mostly interested in my terribly educational talks, but it’s also because I’m a technical woman and there aren’t very many technical women speaking at conferences.
In my experience, conferences want to do the right thing - they want a diverse line up of speakers, they want to attract diverse attendees. Often this is not as easy as it may seem, and frequently conferences are Twitter-shamed for not having enough women speakers. When it gets to this point (and often before), conferences frequently ask me for advice on speakers they could invite, and how to attract more women.
Being a Developer Advocate at JetBrains
Mandatory initial exclamation about how little I have blogged here lately. Over a year without updates, oh dear! But a) I have been blogging quite a lot for the IntelliJ IDEA and Upsource blogs, and b) I had another baby, which kept me quite busy.
So on that topic (more or less) I get a lot of questions about my job: what’s involved in the job, what’s it like working for JetBrains, what does a Developer Advocate do, what’s it like working remotely etc etc. Given I also rather generously1 recently offered to answer people’s questions about my job, I thought the most scalable way was to write-once-read-many, i.e. write it in a single blog post for everyone to read.
Tag: agile
Agile++: When Agile Goes Well
If you see anything about LMAX - the Disruptor, Continuous Delivery, or even the selection criteria for hiring developers, you’ll see that LMAX is pretty keen on Agile. However, no-one’s documented the Agile process there, as far as I know. Although I personally had it on my todo list, I never had the motivation, the hook to do it. And I realised eventually that’s because I’m not sure it’s a process that would work very well for another team, in another company, working in another business.
Interview and Hacking session with Stephen Chin
Interviewed for InfoQ at QCon London
Overheard: Agile truths
After attending a number of conferences and events, and performing numerous interviews, I’m starting to hear the same things again and again. Since Dan North challenged all my assumptions at QCon, I’m reluctant to outright ridicule them, but I will put forward my personal opinion.
Note: these are things I have heard from multiple sources, so with any luck I am not breaking the sanctity of the confessional interview.
Why the customer isn't always right
Last week I went to get my hair cut (yes, sorry, this is a story about hair). I had thought long and hard about what I wanted. I researched, checked styles online, and bought a magazine so I could show my hairdresser exactly what I was after and there would be no confusion. I was determined I would not be spending that ridiculous amount of money on something I was not going to be happy with. I was even bold enough to ask for some changes to it at the end, which I have never ever had the courage to do before.
Are you an awesome developer?
What my hangovers can teach you about Agile
As a survival trait for living and working in the cites1 of London, I have a set of rituals to avoid hangovers. If you are not a single person living in a city like London, you might not understand how vital this is. Most networking, particularly in the financial services industry, is done in the presence of alcohol.
So preventing the inevitable hangover is quite important to the other part of the job – the actual working bit. I’ll let you into a secret and tell you my nightly ritual:
Scrum but...
Agile Infection Growing
This is a bloody good idea. It builds upon my own Virgoen tendancies to write lists and tick things off, but what the list model lacks is the “in progress” state. Plus occasionally my lists get confused. See today’s notebook page:
Continuing the Agile froth...
Tag: android
Android Xtended

You may have noticed that the more I go to conferences, the less I write about them. I could claim lack of time, but the fact is that all my write-ups will be something along the lines of “Loved <city>, went to talks that made me think, met interesting people, gave a talk or two that seemed to go well”. Not sure if people get bored of reading that, but I get bored of writing it.

That’s not to say I’m bored of conferences. On the contrary - since I work from home, travelling to new places and meeting Real Human Beings keeps me sane. Plus conferences are fun.

But I went to a conference on Saturday that makes me feel compelled to write something, and not just because it was organised by my two fellow Sevilla JUG organisers. @IsraKaos and @RGDav are both doing more Android day-to-day than server-side Java, so this is an area they’re interested in learning more about. Not content with organising Android events every other month, they decided they had so many interesting speakers they wanted to have speaking here in Sevilla that they wanted to run a whole day, single track conference, on behalf of GDG Sevilla. Android Xtended was born.
My Experiences with Android Development
Because I was missing coding, and because my friend and I had an awesome phone app idea at the weekend, I thought I’d try my hand at developing an Android application this week.
I want to give a quick overview of my preliminary thoughts on getting started on this endeavour.
Background: I’ve got more than 10 years Java experience, but any UI for the applications I’ve worked on was always a web UI. I am completely new to mobile app development.
Tag: angular.js
In my day...
Tag: aop
AOP Caching
Today I would like to document my experiences implementing caching with Aspect Oriented Programming (AOP) and annotations.
Tag: articles
Getting Started with MongoDB and Java
We’ve been missing an introduction to using MongoDB from Java for a little while now - there’s plenty of information in the documentation, but we were lacking a step-by-step guide to getting started as a Java developer.
I sought to rectify this with a couple of blog posts for the MongoDB official blog: the first, an introduction to using MongoDB from Java, including a non-comprehensive list of some of the libraries you can use; the second, an introductory guide to simple CRUD operations using the Java driver:
Introduction to MongoDB and Big Data
Tag: awards
Vote for the LJC
Tag: books
Certification
I know there are arguments against certification, and I definitely think that using certifiction to determine whether to interview or recruit people is downright daft, because frankly learning a bunch of answers isn’t all that difficult. But I personally find that completing a certification really helps to round out my knowledge in an area. I guess my thoughts are that a fairly recent certification combined with the work experience to back it up is something that would make your CV more interesting to recruiters.
Tag: build
Tag: c#
A chance to see some of my actual code (even if it is C#)
Why Java developers hate .NET
I have been struggling with .NET. Actually, I have been fighting pitched battles with it.
All I want to do is take our existing Java client example code and write an equivalent in C#. Easy, right?
Trisha’s Guide to Converting Java to C#
Turns out writing the actual C# is relatively straightforward. Putting to one side the question of writing optimal code (these are very basic samples after all), to get the examples to compile and run was a simple process:
Tag: caching
AOP Caching
Today I would like to document my experiences implementing caching with Aspect Oriented Programming (AOP) and annotations.
Tag: career
Being a Developer Advocate at JetBrains
Mandatory initial exclamation about how little I have blogged here lately. Over a year without updates, oh dear! But a) I have been blogging quite a lot for the IntelliJ IDEA and Upsource blogs, and b) I had another baby, which kept me quite busy.
So on that topic (more or less) I get a lot of questions about my job: what’s involved in the job, what’s it like working for JetBrains, what does a Developer Advocate do, what’s it like working remotely etc etc. Given I also rather generously1 recently offered to answer people’s questions about my job, I thought the most scalable way was to write-once-read-many, i.e. write it in a single blog post for everyone to read.
Becoming Fully Buzzword Compliant
How do you keep your skills up to date in this fast-moving and turbulant industry?
My Path To Evangelism
So, I get asked a lot about how I got into technical advocacy / evangelism1, so it seems like the most cost-effective way to answer this question is to write a post about it. Warning: it’s a long one!
New Year, New Adventures
Staying Ahead of the Curve
Last Thursday I gave a keynote at GOTO Berlin to address the problems of deciding how to learn a new technology/framework/process (Spoiler Alert: it’s not by putting it into production).
Career Advice for Programmers (YOW 2013)
GDL Presents Women Techmakers with Trisha Gee
I was flattered a couple of weeks ago to be interviewed by Google as part of their women techmaker’s series, as it moves over to Europe. In this video I talk about going to Mars, education, planning your career, being a developer, and the impact of technology on our lives. So, not much…
Staying Ahead of the Curve
I had an interesting discussion last night at the LJC developer sessions, and it’s a topic that comes up again and again:
How to make your CV Not Suck
When you’re applying for a job at LMAX, your CV (or résumé, for our American readers) usually comes through me and I decide whether to call you for a technical phone screen.
I’m going to let you into a secret.
Tag: careers
Tag: cargo-cultism
What my hangovers can teach you about Agile
As a survival trait for living and working in the cites1 of London, I have a set of rituals to avoid hangovers. If you are not a single person living in a city like London, you might not understand how vital this is. Most networking, particularly in the financial services industry, is done in the presence of alcohol.
So preventing the inevitable hangover is quite important to the other part of the job – the actual working bit. I’ll let you into a secret and tell you my nightly ritual:
Tag: certification
BSc (Hons) SCJP SCWCD CSM
Certification
I know there are arguments against certification, and I definitely think that using certifiction to determine whether to interview or recruit people is downright daft, because frankly learning a bunch of answers isn’t all that difficult. But I personally find that completing a certification really helps to round out my knowledge in an area. I guess my thoughts are that a fairly recent certification combined with the work experience to back it up is something that would make your CV more interesting to recruiters.
Tag: code
Readable, Succinct, or Just Plain Short?
Which is more readable?
releaseVersion = version.substring(0, version.indexOf('-SNAPSHOT'))
or
releaseVersion = version[0..-10]
Converting Blogger to Markdown
Interview and Hacking session with Stephen Chin
A chance to see some of my actual code (even if it is C#)
Why Java developers hate .NET
I have been struggling with .NET. Actually, I have been fighting pitched battles with it.
All I want to do is take our existing Java client example code and write an equivalent in C#. Easy, right?
Trisha’s Guide to Converting Java to C#
Turns out writing the actual C# is relatively straightforward. Putting to one side the question of writing optimal code (these are very basic samples after all), to get the examples to compile and run was a simple process:
Validation with Spring Modules Validation
Java Specifics
When I first started playing with Java 1.5, I thought generics were the best thing since sliced bread. No more untidy casting, lovely type-safe Collections, and when combined with the new for loop, a lot of the tedious tasks associated with Collections became easier and, most importantly, aesthetically pleasing.
Tag: code-review
Code Review Best Practices
This article was originally a guest post for FogBugz.
As developers, we all know that code reviews are a good thing in theory. They should help us:
- Find bugs and security issues early
- Improve the readability of our code
- Provide a safety net to ensure all tasks are fully completed
The reality is that code reviews can frequently be an uncomfortable experience for everyone involved, leading to reviews that are combative, ineffective, or even worse, simply not happening.
Here is a quick guide to help you to create an effective code review process.
Code Review Best Practices
(Updated 23 July, 2020)
We know that Code Reviews are a Good Thing. We probably have our own personal lists of things we look for in the code we review, while also fearing what others might say about our code. How to we ensure that code reviews are actually benefiting the team, and the application? How do we decide who does the reviews? What does “done” look like?
In this talk, Trisha will identify some best practices to follow. She’ll talk about what’s really important in a code review, and set out some guidelines to follow in order to maximise the value of the code review and minimise the pain.
Code Review Matters and Manners
Content and resources for the Code Review Matters and Manners talk, including links to additional information and supporting material.
A Year? Really?
So I came to the blog to update my upcoming events (at least something stays up to date) only to find it’s been nearly a year since I last blogged! This is terrible!
It’s not that I haven’t written anything in a year, it’s that a lot of my writing energy goes into stuff for the actual day job. Which is good, because that’s pretty much what I wanted from the day job, but the blog makes it look like I don’t write any more.
So I’m going to cheat. Here’s the stuff I’ve written in the last 12 months.
Tag: comment
It's not waste, it's learning
In one my rare weekends at home, I found myself on a pottery course (this is the sort of thing that happens when you’re a “yes” person).
Certifiction
Tag: concurrency
Mike and I debut our new Disruptor presentation
Disruptor 2.0 - All Change Please
Martin recently announced version 2.0 of the Disruptor - basically there have been so many changes since we first open-sourced it that it’s time to mark that officially. His post goes over all the changes, the aim of this article is to attempt to translate my previous blog posts into new-world-speak, since it’s going to take a long time to re-write each of them all over again. Now I see the disadvantage of hand-drawing everything.
Dissecting the Disruptor: Demystifying Memory Barriers
My recent slow-down in posting is because I’ve been trying to write a post explaining memory barriers and their applicability in the Disruptor. The problem is, no matter how much I read and no matter how many times I ask the ever-patient Martin and Mike questions trying to clarify some point, I just don’t intuitively grasp the subject. I guess I don’t have the deep background knowledge required to fully understand.
So, rather than make an idiot of myself trying to explain something I don’t really get, I’m going to try and cover, at an abstract / massive-simplification level, what I do understand in the area. Martin has written a post going into memory barriers in some detail, so hopefully I can get away with skimming the subject.
Dissecting the Disruptor: Why it's so fast (part two) - Magic cache line padding
We mention the phrase Mechanical Sympathy quite a lot, in fact it’s even Martin’s blog title. It’s about understanding how the underlying hardware operates and programming in a way that works with that, not against it.
We get a number of comments and questions about the mysterious cache line padding in the RingBuffer, and I referred to it in the last post. Since this lends itself to pretty pictures, it’s the next thing I thought I would tackle.
Dissecting the Disruptor: Why it's so fast (part one) - Locks Are Bad
Martin Fowler has written a really good article describing not only the Disruptor, but also how it fits into the architecture at LMAX. This gives some of the context that has been missing so far, but the most frequently asked question is still “What is the Disruptor?”.
I’m working up to answering that. I’m currently on question number two: “Why is it so fast?”.
Dissecting the Disruptor: Wiring up the dependencies
So now I’ve covered the ring buffer itself, reading from it and writing to it.
Logically the next thing to do is to wire everything up together.
I talked about multiple producers - they have the producer barrier to keep them in order and under control. I’ve talked about consumers in a simple situation. Multiple consumers can get a little more involved. We’ve done some clever stuff to allow the consumers to be dependent on each other and the ring buffer. Like a lot of applications, we have a pipeline of things that need to happen before we can actually get on with the business logic - for example, we need to make sure the messages have been journalled to disk before we can do anything.
The Disruptor paper and the performance tests cover some basic configurations that you might want. I’m going to go over the most interesting one, mostly because I needed the practice with the graphics tablet.
Dissecting the Disruptor: Writing to the ring buffer
This is the missing piece in the end-to-end view of the Disruptor. Brace yourselves, it’s quite long. But I decided to keep it in a single blog so you could have the context in one place.
The important areas are: not wrapping the ring; informing the consumers; batching for producers; and how multiple producers work.
Dissecting the Disruptor: How do I read from the ring buffer?
The next in the series of understanding the Disruptor pattern developed at LMAX.
After the last post we all understand ring buffers and how awesome they are. Unfortunately for you, I have not said anything about how to actually populate them or read from them when you’re using the Disruptor.
Tag: conference
JavaZone 2016
It’s been a while since I wrote a conference write up. The short version of “why” is because I got a bit bored of doing it. Plus, I found I was attending conferences as a speaker “on the circuit”, and my experience of hanging out, catching up with my friends, chatting to other attendees to see what they’re up to and so forth, didn’t seem as useful to share with people who might want to find out whether a conference is worth attending from a content or atmosphere point of view.
But I feel compelled to blog about JavaZone. I presented there back in 2013, but every year since then haven’t made it for one reason or another (the fact that it’s near my birthday in no way impacts my scheduling…). I made the effort this year, and I’m so pleased. Now I’ve been to many more conferences, of various sizes, various themes, all around the world, and I can definitely state that JavaZone is up there as one of the best conferences around.
Why?
Android Xtended

You may have noticed that the more I go to conferences, the less I write about them. I could claim lack of time, but the fact is that all my write-ups will be something along the lines of “Loved <city>, went to talks that made me think, met interesting people, gave a talk or two that seemed to go well”. Not sure if people get bored of reading that, but I get bored of writing it.

That’s not to say I’m bored of conferences. On the contrary - since I work from home, travelling to new places and meeting Real Human Beings keeps me sane. Plus conferences are fun.

But I went to a conference on Saturday that makes me feel compelled to write something, and not just because it was organised by my two fellow Sevilla JUG organisers. @IsraKaos and @RGDav are both doing more Android day-to-day than server-side Java, so this is an area they’re interested in learning more about. Not content with organising Android events every other month, they decided they had so many interesting speakers they wanted to have speaking here in Sevilla that they wanted to run a whole day, single track conference, on behalf of GDG Sevilla. Android Xtended was born.
JavaOne 2014, Day One
Well, I’m at JavaOne again, and after only one day I’ve already learnt stuff. And, of course, had a great time catching up with interesting people. Here’s a summary of the first day.
What could possibly go wrong? (GOTO Chicago)
At GOTO Chicago, I was given the chance to chat a bit about the presentation I was giving, which happens to be the same one I’m giving at a number of conferences this year (although of course I’m evolving it as I go along).
Tag: conferences
Upcoming Events
While the list in the talks section of my blog covers past presentations, this page should list my confirmed upcoming events.
Yeah… I’m not planning to travel anywhere for 2020 at this time.
Bio and Abstracts
This is a selection of talks and their abstracts. For conferences that are interested in having me present, these are generally the talks I’m available to give.
Speaking Credentials
What Can Conferences Do To Attract More Women Speakers?
Now I’ve been speaking at (mostly Java) conferences for a while (six years now), I get asked to present at a lot of conferences. Obviously all these conferences are mostly interested in my terribly educational talks, but it’s also because I’m a technical woman and there aren’t very many technical women speaking at conferences.
In my experience, conferences want to do the right thing - they want a diverse line up of speakers, they want to attract diverse attendees. Often this is not as easy as it may seem, and frequently conferences are Twitter-shamed for not having enough women speakers. When it gets to this point (and often before), conferences frequently ask me for advice on speakers they could invite, and how to attract more women.
Blind CFPs - a Postscript
Since publishing yesterday’s post, I’ve had a lot of great comments, so I thought I’d write yet another post to answer them.
Improving Speaker Diversity
What do you mean, Backwards Compatibility? (YOW 2013)
YOW recorded me, yet again, talking about the adventure that is the design of the new Java Driver for MongoDB. This is the same talk I gave at GeeCON and DevoxxUK, with some updates based on our Journey So Far. In it, I cover the architecture of the new driver and some of our current thoughts around where we want the API to go.
Upcoming Events 2014
It’s been a while since I updated you on my travel plans, so now I’ve had some more conferences confirmed, I thought I would pass the information on.
QCon London 2014
The Joy of Coding
I’m on a plane (there’s a surprise) on my way back from The Joy of Coding. It’s the title that attracted me to this conference, and it was a great little one day event with awesome people like Dan North, Erik Meijer and Dick Wall presenting. What I liked about the themes is they were broadly technology agnostic, pulling back to a level which made me remember why I’m a developer. It inspired me to do more research and more thinking, and less panicking and trying to write code. That might seem odd, as someone who goes to as many conferences as I do should get loads more research and thinking time than most developers living under the whip, but I seem to spend so much time bouncing from thing to thing I don’t get space to just sit and think, or to read things in any depth.
Should you notice I'm a woman? Should I care?
So, following on from my observations of being an outsider at FOSDEM because I’m not an open source developer, I do have another story to tell where my female-ness is actually relevant.
Feel like an outsider?
So, FOSDEM.
I’ve heard great things about this conference, so I was pretty exited to go
Now I know people talk about impostor syndrome whenever they mention the woeful lack of diversity at tech conferences. Interestingly, I felt like an impostor at FOSDEM - not because I’m a woman (there were quite a few techy women around at FOSDEM, more than I expected) but because I’m not an open source person.
YOW
December disappeared in a rush of vacation and a fleeting tour of Australia. It’s hard to believe that it’s the eve of Christmas Eve already, it’s almost impossible to feel Christmassy when you’re getting sunburnt on a boat and seeing people in swim-suits wearing santa hats. A mid-winter festival (complete with trees and fake snow) just feels very odd in summer.
JAX London & MongoDB Tutorial
In previous years, JAX London would have been an easy, local conference to go to. This time it took me most of Sunday to get there, and not because of the Super Storm. Still, that gave me the day to finish off the tutorial I was running there on Monday morning. Not that I would be so unprofessional as to leave preparing things until the last minute, oh no….
JavaOne 2013
So, I thought a few months ago that my blog would become more of a travel blog than a tech blog because of the amount of conferences I was going to. Turned out that I was so busy writing / updating / practicing talks and workshops and, er, travelling, that I never got around to doing retrospectives on the events I’d been to.
Life on both sides of the interview table
InfoQ has posted the video of Dan North and I opining on the subject of hiring. Most of the talk is spent on how to be a good interviewer, and touches on how to market your company to prospective hires. We spend less time on how to do well as an interviewee, but in theory if you know what’s going through the interviewer’s mind, you should be in a much better position to take control of the interview and shine.
JavaOne Shanghai
So, I was in China last week. It’s not really what I expected, but then my knowledge of China comes almost entirely from visiting various Chinatowns and watching martial arts movies, so I guess I wasn’t all that well prepared for a modern Asian city like Shanghai.
Trisha's World Tour 2013
My Summary of GeeCON, Krakow
Last week I was in Krakow, Poland for GeeCON. Which was excellent! I find it really interesting that conferences all have their own personalities, that they are not all the same.
2013 is looking a lot busier than I planned...
So, despite promising myself that I would only do one event a month for the rest of this year, looks like I’m going to be a bit busier than that.
Devoxx UK 2013
Last week was the first Devoxx UK, bringing the brand from Belgium and, more recently, France. And I think it was a HUGE success.
QCon Day One
I like QCon London, I really do. Not only is it on home turf, but, as I’ve said before, it doesn’t just focus on technology, or a set of technologies.
Devoxx: The Problem with Women - A Technical Approach
As well as talking about, you know, actual work-type-stuff, I was encouraged to give my “Technical Approach to Women” presentation at Devoxx. This went so well at JavaOne that I thought it would be difficult to top. Also, I wasn’t convinced it would work at Devoxx, because the theatres are not well suited to audience participation - the seats are warm and comfy, the room is dark, the speaker is on stage in front of a massive screen….
LJC Open Conference 2012
Summary of Devoxx 2012
Devoxx 2012 from Roy van Rijn on Vimeo.
Devoxx topped off a crazy two months of conferences. I’ve heard people talk about the conference season in the past, and been slightly (OK, very) jealous of all that jet-setting. I’ll admit, however, to a slight feeling of relief that my focus until Christmas is pretty much going to be coding. I hope.
JAX London 2012
Seemed like a quiet conference this year. Not really sure why, maybe it was the layout of the massive (and extremely dark) main room; maybe it was the awkward L-shape of the communal space; or maybe this year people were more interested in listening to the (really very good) sessions rather than participating or meeting other people. Whatever the reason, it felt quiet and almost low-key.
Performance seemed pretty high on the agenda, as you’d expect from a London conference, with a number of things on offer:
JavaOne: The Summary
So, JavaOne.
Taylor Street Cafe
I’m going to be controversial. I think this was my favourite conference of this year. I know that’s not trendy, and that Oracle-bashing is still a popular pastime. And I know I’ve also made a big deal about how much fun it is to meet people who program in different languages. But there is something very special about being surrounded by thousands of people from all around the world who use the same technology as you, some facing the same problems, some solving very different issues.
JavaOne: The Problem With Women - A Technical Approach
Yesterday dawned, with a sense of foreboding (actually it dawned with me coughing my lungs out, but we’ve heard enough about the sub-optimal state of my respiratory system this week). On this day, I was giving the talk I was dreading when I got asked to do it. It’s the talk I actually put more work into than any of the other sessions I was presenting at this JavaOne. It was the Women In IT talk.
Tips for Presenters
JavaOne: User Group Sunday
The Strange Loop
Last week (was it only last week?) I was at Strange Loop, presenting a workshop on the Disruptor.
I didn’t really have any expectations from the conference, I’ve never been before and, if I’m honest, hadn’t heard of it before. So everything was a pleasant surprise.
It’s a very geeky conference. I mean that as a compliment, of course. Lots of very smart people talking about stuff that’s waaaay more advanced than you frequently get in the conferences employers would be happy to pay for. The themes I mostly saw were functional programming and the (insert horribly abused term) Big Data space.
Upcoming Events
OSCON Day One
So, my first day at my very first OSCON. I have to say that when Ben and Martijn told me I had to do OSCON, that it was one of the conferences to go to, I was sceptical - not because I thought it would be rubbish, but because I have enjoyed all the conferences I’ve been to for different reasons.
But I’m really impressed so far.
The subject of women programmers is boring
I’ve been challenged to do a session at a very large conference around women in programming. Which leads to two reactions from me 1) wow, what an honour! and 2) sigh.
QCon London: Disruptor presentation video
GOTO Amsterdam
Three airports and three hotels in a week, and I don’t know whether I’m coming or going. Add to that a mere four hours sleep last night, and this might resemble the ramblings of a mad woman (more than usual that is).
GOTO Amsterdam was a different affair to GOTO Copenhagen, which is not necessarily a bad thing - it’s great that the events have their own personalities and aren’t cookie cutter versions of the same thing.
GOTO Copenhagen
So, before everything gets pushed out of my head, GOTO Copenhagen.
It was my first conference “alone”, in that I didn’t have friends and colleagues from LMAX or the London Java Community there with me. And certainly at the start of the conference, I wasn’t the only one who was standing around, hoping someone would talk to me (in all honesty some of the photos above are a little unfair - the schedule was a very nice, simple phone app so most people spent a lot of time playing with their phones).
Why Open Source Your Secrets
Here’s a video of my Open Conference session on the business benefits of open sourcing your software. Given that the conference was at a weekend and had a very intimate feel, I think I was a teeny bit more honest than I usually am. Enjoy.
Update on events
Featured on a BBC Podcast
In which I defend the Male species at an all Female event
Today I was at the Girl Geek Meetup conference. I didn’t advertise it much because I’ve said in the past I don’t really agree with women-only events, and actually I felt quite uncomfortable telling you guys I was going to be there, knowing the majority of my readers weren’t allowed to attend.
It’s probably worth explaining why I went, so a) I can give you guys and excuse but b) conference organisers can see what people like me are looking for in a conference.
QCon London 2012
I’m late with my write-up of QCon, and what’s worse, it will be partial - “sadly” I was in Lanzarote on a training week with the running club from the Thursday (8th) so I missed most of it. A sacrifice I had to make for 7 days in the sunshine…
Upcoming speaking events
In theory, I am busy writing material for my upcoming speaking events, rather than writing terribly illuminating posts on my blog (see what I did there?). In actuality I am being lazy and have pretty much taken January off for a recharge.
In the spirit of doing something which ticks both the event-speaking and blogging boxes, this is a quick update on the conferences I’m confirmed for so far. Put the following dates in your diary - these are my first international solo speaking events:
Video: Why we shouldn't target women
Video of our JAX London session
At JAX London Mike and I presented “Understanding the Disruptor - A Beginner’s Guide to Hardcore Concurrency”. This is the session we initially previewed to the London Java Community a few weeks earlier. The content is the same, but the feel of the presentation was quite different to us - the venue for the LJC event was more intimate, and it was easier to interact with the audience. At JAX, we were up on stage, which was pretty cool actually, but meant that it felt more like a lecture and it was less easy to connect with the audience.
London Java Community Open Conference
Saturday was, hopefully, my last conference of the year. My lucky readers should start to see some posts which are not simply me gushing about another opportunity to hang out with awesome people and learn about interesting “stuff”.
Why We Shouldn't Target Women
Panel with: Martijn Verburg; Regina ten Bruggencate; Trisha Gee; Antonio Goncalves; Claude Falguière; Kim Ross
I’m back from Devoxx, having had lots of food for thought. In particular, my panel on Why We Shouldn’t Target Women generated a lot of discussion and I’m still trying to process it all.
The panel went really well, we got decent interaction from the audience, and of course my fellow panel members were awesome. I managed to restrain myself from using the opportunity as my own personal soap box and allowed other people to speak occasionally. Sadly the only male on the panel stole the show somewhat, so Antonio won’t be invited in future… Actually in seriousness, it was great to have a guy on the panel to present his point of view. It was interesting that he’s a father, highlighting that parenting issues are not the same as women’s issues, and conflating those two concerns hurts both genders. But Antonio’s hair is far too shiny and pretty and he’s funnier than I am, so I’m not standing next to him again.
Devoxx: The story so far
JAX London - I learn stuff and meet people
A couple of weeks ago, I was at JAX London along with a number of the London Java Community regulars (Martijn/Ben/John/Sandro/Simon/Zoe I’m looking at you….)
My purpose for attending was largely to present the Hardcore Concurrency for Beginners talk that Mike and I debuted at an LJC event a few weeks back. Almost as important was catching up with the aforementioned LJCers and meeting with as many people as would talk to me. After the disappointment of the sessions at Java One, sitting in a room being talked at was quite low down on my list of priorities. Sometimes it’s nice to be wrong.
A NYSE Product Manager and an LMAX Developer walk into a low latency trading seminar...
More videos from Java One 2011
On The Similarities Between Girls And Aliens
I discovered, through the power of the search words that lead to my blog, that there was an incident at JavaOne that once again opens the can of worms that is Sexism In IT.
This Makes Me Sad. I had a really positive experience at JavaOne. In fact, I would say it was the one conference I’ve been to in the last 12 months where I felt like my gender wasn’t a problem - I even got away with wearing hotpants (tweed is business-casual, right??) without being mistaken for anything other than a developer.
JavaOne 2011: Roundup
Having been back in London for a few days I’ve had some time to digest the madness that was last week.
My lasting impression of JavaOne is almost entirely positive. Granted, it was my first major conference, so maybe I’m just not jaded yet. But let me tell you what I loved about it (yes, I did cover some of these in my last post):
JavaOne: Initial Observations
Here’s a photo of me representing LMAX as I pick up the Duke Award we won for the Disruptor (Thanks to Martijn for taking the photo)
So I’ve been at JavaOne for the better part of three days, it’s time to record some of my observations so far:
JavaOne 2011
STAC London Summit
On Wednesday I tagged along to the STAC London Summit to provide backup for Mike, who was on the “The Future of Messaging Middleware” panel.
The panel consisted of two messaging providers, one hardware (Solace Systems) and one software (29West/Informatica), and two “users”, Citihub and LMAX. Obviously both providers were arguing that theirs was the best solution. But what I found interesting is that I came away with the impression that everyone was really on the same side - everyone wants to use or to provide the best system, but there are different approaches. Which one you adopt is likely to be influenced by how your team work and the hardware you have (or can obtain).
TradeTech 2011 - Not like a developer conference
I attended TradeTech last week, an annual event about Equities and Derivatives trading. I assumed from the title that there would be a reasonable focus on technology, but I found it was more “Trade” and less “Tech”.
FogBugs and Kiln World Tour
Last Thursday I was fortunate enough to get a place on the FogBugz and Kiln World Tour. I booked it before I moved jobs, and I’ll be honest I had no real interest in the software. I’ve been reading Joel’s books and blogs since my friend Brent bought me Joel on Software and made me read it (he had the foresight to know I’d want to hang on to his copy if he’d lent it to me!). I wanted to see the man in the flesh and hear what he had to say about his software. Because really, do we honestly need yet another bug-tracking / project-management tool?
Lean Software and Systems Conference 2010 (Bletchley Park)
This is just a summary of the points I took from the Lean conference at Bletchley. They all need expanding, this is just the stuff that struck me that I want to record.
Tag: configuration
Tag: creativity
It's not waste, it's learning
In one my rare weekends at home, I found myself on a pottery course (this is the sort of thing that happens when you’re a “yes” person).
Tag: css
In my day...
CSS for Developers: Horizontal and Vertical Centring
First, an apology. I will be using the British spelling for “centre”, because, well, I’m British. But it gets really confusing because you have to use the American spelling in the code. And doesn’t “Centring” just look wrong?
CSS for Developers: Cross Browser Table Border Behaviour
One of the aims of this series is to highlight some stupid gotchas in support for CSS in the different browsers.
Today’s gotcha is table borders.
Yes, yes, I said don’t use tables. What I means is, don’t use tables for layout. But you can use tables for, you know, tabular data. Like, for examples, lists of instruments and their bid and ask prices.
But you should know that even when you use strict mode, Internet Explorer has slightly… eccentric… rendering behaviour for tables. Actually to be specific, it’s IE7 only.
CSS for Developers: Column Layout Using CSS
This is a continuation of my series of CSS hints / tips / cheats for developers (and other technical-but-not-UI people).
The screenshots are in Chrome on a Mac. The originals were on Firefox on Ubuntu so I can tell you the behaviour is identical.
CSS for Developers: The Joy of Floats
As promised, the Long Awaited Follow-Up to CSS for Developers Part One! Well, long-awaited if you’re as afflicted with NADD as I am.
Quick recap - the aim of this series is to provide a quick and easy how-to around the magic that is CSS. It’s primarily aimed at developers, although I would hope it’s comprehensible to a range of tech-savvy people.
CSS for Developers: Horizontal Layout Using CSS
I’m a Java Developer. But I’m also a Web Developer. Web Developers have been so badly maligned over the last decade or so that I always feel wary (and sometimes slightly ashamed) admitting this. There’s some sort of assumption that Web Developers (and Front End Developers) aren’t real programmers. Similarly, “real” developers don’t like to be tainted by coming into contact with that nasty “front end stuff” in case someone mistakes them for a designer.
Trust me, no-one is going to mistake a Java Developer for a designer. For a start, when designers wear geeky glasses it’s ironic. Or chic. Or something.
But developers will be forced to do something around the front end at some point in their lives. Even if it’s because they’re sick of manually kicking off some process and want to give the users a big red button to press instead.
Tag: cycling
Cyclist tribes
Living and working in central London, you quickly learn that the fastest way around town is to cycle.
My extensive research into this activity has shown there are a number of different cycling tribes. Of course, I have split them into the two groups that are most appropriate to me: 1) slower than me and 2) faster than me. You can probably tell what sort of a cyclist I am by my attitude to the two groups.
Tag: data-structures
Dissecting the Disruptor: What's so special about a ring buffer?
Recently we open sourced the LMAX Disruptor, the key to what makes our exchange so fast. Why did we open source it? Well, we’ve realised that conventional wisdom around high performance programming is… a bit wrong. We’ve come up with a better, faster way to share data between threads, and it would be selfish not to share it with the world. Plus it makes us look dead clever.
On the site you can download a technical article explaining what the Disruptor is and why it’s so clever and fast. I even get a writing credit on it, which is gratifying when all I really did is insert commas and re-phrase sentences I didn’t understand.
However, I find the whole thing a bit much to digest all at once, so I’m going to explain it in smaller pieces, as suits my NADD audience.
First up - the ring buffer. Initially I was under the impression the Disruptor was just the ring buffer. But I’ve come to realise that while this data structure is at the heart of the pattern, the clever bit about the Disruptor is controlling access to it.
Tag: ddd
Are you an awesome developer?
Tag: demo
Using Groovy to import XML into MongoDB
Tag: design
It Depends
Don’t you hate it when you ask a perfectly good question, and someone comes back with the answer “it depends”?
It’s so frustrating to think that in a world of ones and zeros, people can’t give absolute answers and you can’t rely on “best practice”.
Tag: devoxx
Agile++: When Agile Goes Well
If you see anything about LMAX - the Disruptor, Continuous Delivery, or even the selection criteria for hiring developers, you’ll see that LMAX is pretty keen on Agile. However, no-one’s documented the Agile process there, as far as I know. Although I personally had it on my todo list, I never had the motivation, the hook to do it. And I realised eventually that’s because I’m not sure it’s a process that would work very well for another team, in another company, working in another business.
Summary of Devoxx 2012
Devoxx 2012 from Roy van Rijn on Vimeo.
Devoxx topped off a crazy two months of conferences. I’ve heard people talk about the conference season in the past, and been slightly (OK, very) jealous of all that jet-setting. I’ll admit, however, to a slight feeling of relief that my focus until Christmas is pretty much going to be coding. I hope.
Interview by the Oracle Technology Network at Devoxx
Why We Shouldn't Target Women
Panel with: Martijn Verburg; Regina ten Bruggencate; Trisha Gee; Antonio Goncalves; Claude Falguière; Kim Ross
I’m back from Devoxx, having had lots of food for thought. In particular, my panel on Why We Shouldn’t Target Women generated a lot of discussion and I’m still trying to process it all.
The panel went really well, we got decent interaction from the audience, and of course my fellow panel members were awesome. I managed to restrain myself from using the opportunity as my own personal soap box and allowed other people to speak occasionally. Sadly the only male on the panel stole the show somewhat, so Antonio won’t be invited in future… Actually in seriousness, it was great to have a guy on the panel to present his point of view. It was interesting that he’s a father, highlighting that parenting issues are not the same as women’s issues, and conflating those two concerns hurts both genders. But Antonio’s hair is far too shiny and pretty and he’s funnier than I am, so I’m not standing next to him again.
Devoxx: The story so far
Tag: disruptor
Introduction to the Disruptor Slides
I’ve produced a very cut down version of the presentation I’ve been giving at a lot of conferences, giving a high level overview to the Disruptor. This serves as a quick intro to the concepts behind it.
Strangeloop Disruptor Workshop Materials
On Sunday I gave my very first workshop on the Disruptor. The aim was to give people some hands-on coding experience using the syntax. Because time was limited (you can’t get people to build an entire application architecture in 2.5 hours) the example is somewhat contrived, and needs a big leap to make it into a proper application context. But the workshop should:
QCon London: Disruptor presentation video
Interviewed for InfoQ at QCon London
Why Open Source Your Secrets
Here’s a video of my Open Conference session on the business benefits of open sourcing your software. Given that the conference was at a weekend and had a very intimate feel, I think I was a teeny bit more honest than I usually am. Enjoy.
QCon London 2012
I’m late with my write-up of QCon, and what’s worse, it will be partial - “sadly” I was in Lanzarote on a training week with the running club from the Thursday (8th) so I missed most of it. A sacrifice I had to make for 7 days in the sunshine…
Java Magazine: Intro to the Disruptor Part One
New Disruptor Presentation Unveiled to the LJC!
A few weeks ago, I presented my new “User’s Guide to the Disruptor” talk to the London Java Community. Since it was very kindly hosted at Skillsmatter, there is a video of the presentation available, and the slides are below.
Upcoming speaking events
In theory, I am busy writing material for my upcoming speaking events, rather than writing terribly illuminating posts on my blog (see what I did there?). In actuality I am being lazy and have pretty much taken January off for a recharge.
In the spirit of doing something which ticks both the event-speaking and blogging boxes, this is a quick update on the conferences I’m confirmed for so far. Put the following dates in your diary - these are my first international solo speaking events:
Video of our JAX London session
At JAX London Mike and I presented “Understanding the Disruptor - A Beginner’s Guide to Hardcore Concurrency”. This is the session we initially previewed to the London Java Community a few weeks earlier. The content is the same, but the feel of the presentation was quite different to us - the venue for the LJC event was more intimate, and it was easier to interact with the audience. At JAX, we were up on stage, which was pretty cool actually, but meant that it felt more like a lecture and it was less easy to connect with the audience.
London Java Community Open Conference
Saturday was, hopefully, my last conference of the year. My lucky readers should start to see some posts which are not simply me gushing about another opportunity to hang out with awesome people and learn about interesting “stuff”.
Mike and I debut our new Disruptor presentation
JavaOne 2011: Roundup
Having been back in London for a few days I’ve had some time to digest the madness that was last week.
My lasting impression of JavaOne is almost entirely positive. Granted, it was my first major conference, so maybe I’m just not jaded yet. But let me tell you what I loved about it (yes, I did cover some of these in my last post):
JavaOne: Initial Observations
Here’s a photo of me representing LMAX as I pick up the Duke Award we won for the Disruptor (Thanks to Martijn for taking the photo)
So I’ve been at JavaOne for the better part of three days, it’s time to record some of my observations so far:
Disruptor 2.0 - All Change Please
Martin recently announced version 2.0 of the Disruptor - basically there have been so many changes since we first open-sourced it that it’s time to mark that officially. His post goes over all the changes, the aim of this article is to attempt to translate my previous blog posts into new-world-speak, since it’s going to take a long time to re-write each of them all over again. Now I see the disadvantage of hand-drawing everything.
Dissecting the Disruptor: Demystifying Memory Barriers
My recent slow-down in posting is because I’ve been trying to write a post explaining memory barriers and their applicability in the Disruptor. The problem is, no matter how much I read and no matter how many times I ask the ever-patient Martin and Mike questions trying to clarify some point, I just don’t intuitively grasp the subject. I guess I don’t have the deep background knowledge required to fully understand.
So, rather than make an idiot of myself trying to explain something I don’t really get, I’m going to try and cover, at an abstract / massive-simplification level, what I do understand in the area. Martin has written a post going into memory barriers in some detail, so hopefully I can get away with skimming the subject.
Dissecting the Disruptor: Why it's so fast (part two) - Magic cache line padding
We mention the phrase Mechanical Sympathy quite a lot, in fact it’s even Martin’s blog title. It’s about understanding how the underlying hardware operates and programming in a way that works with that, not against it.
We get a number of comments and questions about the mysterious cache line padding in the RingBuffer, and I referred to it in the last post. Since this lends itself to pretty pictures, it’s the next thing I thought I would tackle.
Dissecting the Disruptor: Why it's so fast (part one) - Locks Are Bad
Martin Fowler has written a really good article describing not only the Disruptor, but also how it fits into the architecture at LMAX. This gives some of the context that has been missing so far, but the most frequently asked question is still “What is the Disruptor?”.
I’m working up to answering that. I’m currently on question number two: “Why is it so fast?”.
Dissecting the Disruptor: Wiring up the dependencies
So now I’ve covered the ring buffer itself, reading from it and writing to it.
Logically the next thing to do is to wire everything up together.
I talked about multiple producers - they have the producer barrier to keep them in order and under control. I’ve talked about consumers in a simple situation. Multiple consumers can get a little more involved. We’ve done some clever stuff to allow the consumers to be dependent on each other and the ring buffer. Like a lot of applications, we have a pipeline of things that need to happen before we can actually get on with the business logic - for example, we need to make sure the messages have been journalled to disk before we can do anything.
The Disruptor paper and the performance tests cover some basic configurations that you might want. I’m going to go over the most interesting one, mostly because I needed the practice with the graphics tablet.
Dissecting the Disruptor: Writing to the ring buffer
This is the missing piece in the end-to-end view of the Disruptor. Brace yourselves, it’s quite long. But I decided to keep it in a single blog so you could have the context in one place.
The important areas are: not wrapping the ring; informing the consumers; batching for producers; and how multiple producers work.
Dissecting the Disruptor: How do I read from the ring buffer?
The next in the series of understanding the Disruptor pattern developed at LMAX.
After the last post we all understand ring buffers and how awesome they are. Unfortunately for you, I have not said anything about how to actually populate them or read from them when you’re using the Disruptor.
Dissecting the Disruptor: What's so special about a ring buffer?
Recently we open sourced the LMAX Disruptor, the key to what makes our exchange so fast. Why did we open source it? Well, we’ve realised that conventional wisdom around high performance programming is… a bit wrong. We’ve come up with a better, faster way to share data between threads, and it would be selfish not to share it with the world. Plus it makes us look dead clever.
On the site you can download a technical article explaining what the Disruptor is and why it’s so clever and fast. I even get a writing credit on it, which is gratifying when all I really did is insert commas and re-phrase sentences I didn’t understand.
However, I find the whole thing a bit much to digest all at once, so I’m going to explain it in smaller pieces, as suits my NADD audience.
First up - the ring buffer. Initially I was under the impression the Disruptor was just the ring buffer. But I’ve come to realise that while this data structure is at the heart of the pattern, the clever bit about the Disruptor is controlling access to it.
Tag: disruptor-docs
Java Magazine: Intro to the Disruptor Part One
Disruptor 2.0 - All Change Please
Martin recently announced version 2.0 of the Disruptor - basically there have been so many changes since we first open-sourced it that it’s time to mark that officially. His post goes over all the changes, the aim of this article is to attempt to translate my previous blog posts into new-world-speak, since it’s going to take a long time to re-write each of them all over again. Now I see the disadvantage of hand-drawing everything.
Dissecting the Disruptor: Demystifying Memory Barriers
My recent slow-down in posting is because I’ve been trying to write a post explaining memory barriers and their applicability in the Disruptor. The problem is, no matter how much I read and no matter how many times I ask the ever-patient Martin and Mike questions trying to clarify some point, I just don’t intuitively grasp the subject. I guess I don’t have the deep background knowledge required to fully understand.
So, rather than make an idiot of myself trying to explain something I don’t really get, I’m going to try and cover, at an abstract / massive-simplification level, what I do understand in the area. Martin has written a post going into memory barriers in some detail, so hopefully I can get away with skimming the subject.
Dissecting the Disruptor: Why it's so fast (part two) - Magic cache line padding
We mention the phrase Mechanical Sympathy quite a lot, in fact it’s even Martin’s blog title. It’s about understanding how the underlying hardware operates and programming in a way that works with that, not against it.
We get a number of comments and questions about the mysterious cache line padding in the RingBuffer, and I referred to it in the last post. Since this lends itself to pretty pictures, it’s the next thing I thought I would tackle.
Dissecting the Disruptor: Why it's so fast (part one) - Locks Are Bad
Martin Fowler has written a really good article describing not only the Disruptor, but also how it fits into the architecture at LMAX. This gives some of the context that has been missing so far, but the most frequently asked question is still “What is the Disruptor?”.
I’m working up to answering that. I’m currently on question number two: “Why is it so fast?”.
Dissecting the Disruptor: Wiring up the dependencies
So now I’ve covered the ring buffer itself, reading from it and writing to it.
Logically the next thing to do is to wire everything up together.
I talked about multiple producers - they have the producer barrier to keep them in order and under control. I’ve talked about consumers in a simple situation. Multiple consumers can get a little more involved. We’ve done some clever stuff to allow the consumers to be dependent on each other and the ring buffer. Like a lot of applications, we have a pipeline of things that need to happen before we can actually get on with the business logic - for example, we need to make sure the messages have been journalled to disk before we can do anything.
The Disruptor paper and the performance tests cover some basic configurations that you might want. I’m going to go over the most interesting one, mostly because I needed the practice with the graphics tablet.
Dissecting the Disruptor: Writing to the ring buffer
This is the missing piece in the end-to-end view of the Disruptor. Brace yourselves, it’s quite long. But I decided to keep it in a single blog so you could have the context in one place.
The important areas are: not wrapping the ring; informing the consumers; batching for producers; and how multiple producers work.
Dissecting the Disruptor: How do I read from the ring buffer?
The next in the series of understanding the Disruptor pattern developed at LMAX.
After the last post we all understand ring buffers and how awesome they are. Unfortunately for you, I have not said anything about how to actually populate them or read from them when you’re using the Disruptor.
Dissecting the Disruptor: What's so special about a ring buffer?
Recently we open sourced the LMAX Disruptor, the key to what makes our exchange so fast. Why did we open source it? Well, we’ve realised that conventional wisdom around high performance programming is… a bit wrong. We’ve come up with a better, faster way to share data between threads, and it would be selfish not to share it with the world. Plus it makes us look dead clever.
On the site you can download a technical article explaining what the Disruptor is and why it’s so clever and fast. I even get a writing credit on it, which is gratifying when all I really did is insert commas and re-phrase sentences I didn’t understand.
However, I find the whole thing a bit much to digest all at once, so I’m going to explain it in smaller pieces, as suits my NADD audience.
First up - the ring buffer. Initially I was under the impression the Disruptor was just the ring buffer. But I’ve come to realise that while this data structure is at the heart of the pattern, the clever bit about the Disruptor is controlling access to it.
Tag: diversity
Diversity and Inclusion: Are We There Yet?
Tag: domain-driven-design
Overheard: Development Myths
Tag: eclipse
IntelliJ IDEA for Eclipse Users
List of resources for those trying to make the switch from Eclipse to IntelliJ IDEA:
Tag: events
Upcoming Events
While the list in the talks section of my blog covers past presentations, this page should list my confirmed upcoming events.
Yeah… I’m not planning to travel anywhere for 2020 at this time.
Bio and Abstracts
This is a selection of talks and their abstracts. For conferences that are interested in having me present, these are generally the talks I’m available to give.
Speaking Credentials
Upcoming Events 2014
It’s been a while since I updated you on my travel plans, so now I’ve had some more conferences confirmed, I thought I would pass the information on.
Sevilla MUG March Madness
First presentation at the Virtual JUG!
Yesterday I had the privilege of presenting the very first session for vJUG, a new virtual Java User Group that allows us to span geographies when sharing talks and stories. I’m really interested in the vJUG idea, especially now I’m not in London - if we can find good ways to share knowledge without having to travel, that will help us reach people who don’t normally go to conferences or don’t have a local user group to go to. Not to mention cutting travel costs and saving the environment.
Trisha's World Tour 2013
2013 is looking a lot busier than I planned...
So, despite promising myself that I would only do one event a month for the rest of this year, looks like I’m going to be a bit busier than that.
Mike and I debut our new Disruptor presentation
My first public appearance
Tag: gdc
What Do You Do and How Did You Get There?
So yet another interview with me is available, but this one is in written form. It’s for the Graduate Developer Community, the aim is to show undergraduates and graduates what real techies jobs are like, and how people doing them they got there.
It’s long, but if you know anyone just starting out their career who wants to get a feel for where they might want to go, please point them at it. The site has a number of interviews with people in different roles so it’s quite a good way to showcase the diversity of what’s available.
(Update: 15 Dec 2020: Original article doesn’t seem to be around any more, so I’ve reproduced the content here)
Tag: gender
Speaker Tips - What to Wear
For years I’ve avoided talking about the topic of what to wear when presenting. I didn’t want to cover it because I didn’t want people to think that I only worried about this topic because I was a woman. I also didn’t want other women to inherit any of my neuroses around deciding what to wear. I’m the sort of person who always enjoyed thinking long and hard about what to wear the next day at work, and I know that’s not how everyone works.
Speaker Tips - Wearing a Roaming Mic is More Complicated Than I Realised
Diversity and Inclusion: Are We There Yet?
What Can Conferences Do To Attract More Women Speakers?
Now I’ve been speaking at (mostly Java) conferences for a while (six years now), I get asked to present at a lot of conferences. Obviously all these conferences are mostly interested in my terribly educational talks, but it’s also because I’m a technical woman and there aren’t very many technical women speaking at conferences.
In my experience, conferences want to do the right thing - they want a diverse line up of speakers, they want to attract diverse attendees. Often this is not as easy as it may seem, and frequently conferences are Twitter-shamed for not having enough women speakers. When it gets to this point (and often before), conferences frequently ask me for advice on speakers they could invite, and how to attract more women.
What Can Men Do
So, I wrote a long email to the London Java Community in answer to an excellent question: “What can men do to support Women in Technology?”.
It’s a bit of a brain dump, by no means comprehensive, and is in answer to a specific question in a specific context, but I’ve been asked to make the information public so it can be useful in a broader context. So here it is.
Blind CFPs - a Postscript
Since publishing yesterday’s post, I’ve had a lot of great comments, so I thought I’d write yet another post to answer them.
Are Blind CFPs Really The Answer?
Off the back of yesterday’s post, I received a number of comments and questions around blind CFPs (Call For Papers - usually to get into a conference you submit to a CFP) for conferences. I often hear it said that a blind CFP will fix, or at least improve, the diversity imbalance at conferences.
I don’t believe this.
I'm so tired of it all
We work so hard to promote equality, to fight for the rights of people who are not middle-class white men, and time and again it just feels like we’re not getting anywhere. International Women’s Day highlights the issues that face women all around the world, and make our women-in-tech problem look like a genuine First World Problem, and yet we can’t even get that right.
Improving Speaker Diversity
...but most of all, it's fun
I loved this analogy: Cycling is awfully similar to being a woman. It nicely describes how it feels to be marginalised and not quite “normal”. But there are some things that I’d like to add:
Should you notice I'm a woman? Should I care?
So, following on from my observations of being an outsider at FOSDEM because I’m not an open source developer, I do have another story to tell where my female-ness is actually relevant.
Feel like an outsider?
So, FOSDEM.
I’ve heard great things about this conference, so I was pretty exited to go
Now I know people talk about impostor syndrome whenever they mention the woeful lack of diversity at tech conferences. Interestingly, I felt like an impostor at FOSDEM - not because I’m a woman (there were quite a few techy women around at FOSDEM, more than I expected) but because I’m not an open source person.
Why is it News when a woman becomes CEO?
Devoxx: The Problem with Women - A Technical Approach
As well as talking about, you know, actual work-type-stuff, I was encouraged to give my “Technical Approach to Women” presentation at Devoxx. This went so well at JavaOne that I thought it would be difficult to top. Also, I wasn’t convinced it would work at Devoxx, because the theatres are not well suited to audience participation - the seats are warm and comfy, the room is dark, the speaker is on stage in front of a massive screen….
JavaOne: The Problem With Women - A Technical Approach
Yesterday dawned, with a sense of foreboding (actually it dawned with me coughing my lungs out, but we’ve heard enough about the sub-optimal state of my respiratory system this week). On this day, I was giving the talk I was dreading when I got asked to do it. It’s the talk I actually put more work into than any of the other sessions I was presenting at this JavaOne. It was the Women In IT talk.
On The Evil Of Stereotypes
I attended (one way or another) two events last week that got me thinking
The first was Girl Developers will Save the World - a session that had me a little confused as to whether that referred to me, or actual girls, i.e. those that are not yet legally classed as adults. The second was the Remarkable Women Twitter party the following day.
The subject of women programmers is boring
I’ve been challenged to do a session at a very large conference around women in programming. Which leads to two reactions from me 1) wow, what an honour! and 2) sigh.
Interviewed for InfoQ at QCon London
Update on events
Featured on a BBC Podcast
In which I defend the Male species at an all Female event
Today I was at the Girl Geek Meetup conference. I didn’t advertise it much because I’ve said in the past I don’t really agree with women-only events, and actually I felt quite uncomfortable telling you guys I was going to be there, knowing the majority of my readers weren’t allowed to attend.
It’s probably worth explaining why I went, so a) I can give you guys and excuse but b) conference organisers can see what people like me are looking for in a conference.
Video: Why we shouldn't target women
Interview by the Oracle Technology Network at Devoxx
Why We Shouldn't Target Women
Panel with: Martijn Verburg; Regina ten Bruggencate; Trisha Gee; Antonio Goncalves; Claude Falguière; Kim Ross
I’m back from Devoxx, having had lots of food for thought. In particular, my panel on Why We Shouldn’t Target Women generated a lot of discussion and I’m still trying to process it all.
The panel went really well, we got decent interaction from the audience, and of course my fellow panel members were awesome. I managed to restrain myself from using the opportunity as my own personal soap box and allowed other people to speak occasionally. Sadly the only male on the panel stole the show somewhat, so Antonio won’t be invited in future… Actually in seriousness, it was great to have a guy on the panel to present his point of view. It was interesting that he’s a father, highlighting that parenting issues are not the same as women’s issues, and conflating those two concerns hurts both genders. But Antonio’s hair is far too shiny and pretty and he’s funnier than I am, so I’m not standing next to him again.
Devoxx: The story so far
A NYSE Product Manager and an LMAX Developer walk into a low latency trading seminar...
More videos from Java One 2011
On The Similarities Between Girls And Aliens
I discovered, through the power of the search words that lead to my blog, that there was an incident at JavaOne that once again opens the can of worms that is Sexism In IT.
This Makes Me Sad. I had a really positive experience at JavaOne. In fact, I would say it was the one conference I’ve been to in the last 12 months where I felt like my gender wasn’t a problem - I even got away with wearing hotpants (tweed is business-casual, right??) without being mistaken for anything other than a developer.
In answer to one of the search terms which led to my blog...
On Changing The Image Of Programmers
Gah!! This is exactly what I was talking about - it’s pink, it mentions shoes, and it’s about as patronising as you can get.
Would the chart be different if your possible outcomes were Bill Gates, Steve Jobs, Mark Zuckerberg, and Linus Torvalds? I bet for a start it wouldn’t mention Jimmy Choos or choice of handbags. And it probably wouldn’t be in baby blue either.
On How Not To Target Girl Geeks
(First, let me say this post contains opinion, stereotyping and sweeping generalisations. But that’s sort of the point. Also I don’t pretend for one moment to speak for all girl programmers, I can only speak for myself)
When I first started this blog, I wanted to just post “proper” technical information. I wanted to prove that there are girls out there doing “real” programming.
I specifically didn’t want to talk about my gender. I wanted to prove by silence that gender is incidental to what I do.
But, it doesn’t really work that way, does it?
Firstly because one of the first things I get asked by guys when I meet them in this industry is “why aren’t there more girl programmers?” (that’s after they ask “do you work in HR?” followed by “are you a real programmer?” - I’m not joking, this happened this week).
Comments on representations of our industry
Sexism in IT?
Gender Stereotyping
I’m very interested in the subject of gender stereotyping, which probably isn’t surprising as I’m a girl in a predominantly male industry. And I like cars, and sports, and get irritated if people assume I’m not “allowed” to be interested in these things.
Far from being discriminated against, however, I find many people ask me why there aren’t more women in the industry and what can be done to encourage girls into IT. If these questions were easy to answer, they wouldn’t have to be asked.
Tag: girls
Sexism in IT?
Tag: gotocph
GOTO Copenhagen
So, before everything gets pushed out of my head, GOTO Copenhagen.
It was my first conference “alone”, in that I didn’t have friends and colleagues from LMAX or the London Java Community there with me. And certainly at the start of the conference, I wasn’t the only one who was standing around, hoping someone would talk to me (in all honesty some of the photos above are a little unfair - the schedule was a very nice, simple phone app so most people spent a lot of time playing with their phones).
Tag: gradle
How to get started with the new MongoDB Java Driver
The second in my short series of blogs about the new Java driver is now available for your perusal. In it, there’s some guidance on how to get started using the new driver, whether you want to use the new (unfinished) API, the existing “classic” API, or a blend of both.
Tag: groovy
Workshop: AngularJS, HTML5, Groovy, Java and MongoDB
Setup required for the AngularJS/HTML5/Groovy/Java/MongoDB tutorial for QCon London 2015. Sign up with code SPEAKGEE100 for £100 off the price!
Using Groovy to import XML into MongoDB
Readable, Succinct, or Just Plain Short?
Which is more readable?
releaseVersion = version.substring(0, version.indexOf('-SNAPSHOT'))
or
releaseVersion = version[0..-10]
Converting Blogger to Markdown
Spock: Data Driven Testing
In the last two articles on Spock I’ve covered mocking and stubbing. And I was pretty sold on Spock just based on that. But for a database driver, there’s a killer feature: Data Driven Testing.
Spock is awesome! Seriously Simplified Mocking
We’re constantly fighting a battle when developing the new MongoDB Java driver between using tools that will do heavy lifting for us and minimising the dependencies a user has to download in order to use our driver. Ideally, we want the number of dependencies to be zero.
Tag: guest-posts
Developers want to be heard
I wrote a piece for the Java Advent Blog, about how developers aren’t just communing with the computer, they also need to feel listened to by real human beings.
Tag: gwt
In my day...
GWT: Why VerticalPanel is Evil
Tag: html
In my day...
GWT: Why VerticalPanel is Evil
Tag: html5
Workshop: AngularJS, HTML5, Groovy, Java and MongoDB
Setup required for the AngularJS/HTML5/Groovy/Java/MongoDB tutorial for QCon London 2015. Sign up with code SPEAKGEE100 for £100 off the price!
Tag: ide
Why Java developers hate .NET
I have been struggling with .NET. Actually, I have been fighting pitched battles with it.
All I want to do is take our existing Java client example code and write an equivalent in C#. Easy, right?
Trisha’s Guide to Converting Java to C#
Turns out writing the actual C# is relatively straightforward. Putting to one side the question of writing optimal code (these are very basic samples after all), to get the examples to compile and run was a simple process:
Tag: in-progress
QCon: TODO list inspired by the conference
QCon: Initial thoughts
Tag: intellij
News from IntelliJ IDEA Community
Video and resources for the Update on IntelliJ IDEA talk from FOSDEM 2020.
Abstract
With releases of Java coming thick and fast every six months, it’s a full time job staying on top of the features. If your IDE can help you here, it’s one less thing to worry about. IntelliJ IDEA Community has three releases every year, each one improves the support for modern versions of Java, but that’s not the only thing on offer.
Join this session to see what’s new in IntelliJ IDEA Community (the free one!). This is not limited to just supporting new language features, which some of us might not get to use for ages, but better support for things developers do every day, and improved performance and stability, because an all-singing, all-dancing IDE is all well and good, but if it’s not usable those features mean nothing.
Reading Code Is Harder Than Writing It
We should invest more time in the skill of reading code.
Is boilerplate code really so bad?
It’s exhausting staying up to date with the evolution of Java and the myriad other JVM languages. Is it worth it? What do modern languages give us?
Anticipating Java 9 - Functionality and Tooling
Looking ahead to what functionality is available in Java 9, and IntelliJ IDEA’s support (current and future) for it.
IntelliJ IDEA for Eclipse Users
List of resources for those trying to make the switch from Eclipse to IntelliJ IDEA:
New IntelliJ Tricks I Learnt Part 2
Apparently, I’m all about Continuous Learning - after I wrote the last post about IntelliJ Tips, I carried on through my trawl of the documentation and, of course, discovered a load more things I didn’t know. And this is all just in the Quick Start section!
So here’s the next batch (although once again I’m not sure how many are only applicable to IntelliJ 14). All shortcuts are for Windows unless otherwise stated, and Mac users should be able to replace the Ctrl key with Cmd in all these cases.
New IntelliJ Tricks I Learnt Today
Day three of my brand new job - woohoo! One of my first tasks is checking the documentation of IntelliJ, since I’m already a “Power User”, to see if there’s stuff missing that someone like me might want to see. Firstly, a confession - I’m not sure I’ve actually read the IntelliJ documentation before. I mean, really read it. Of course, I’ve dipped into it when I needed to know something, I’ve searched for help with specific items, but like many developers, I tend to use something first rather than read the documentation first.
But I’ll tell you what, today I’ve learnt a whole bunch of useful things IntelliJ can do that I hadn’t previously known, and they’re the sorts of things you would only stumble over if a) you read the docs (pah!) or b) you watched someone else using the tool and saw them doing something you didn’t know was possible.
New Year, New Adventures
Tag: interview
What could possibly go wrong? (GOTO Chicago)
At GOTO Chicago, I was given the chance to chat a bit about the presentation I was giving, which happens to be the same one I’m giving at a number of conferences this year (although of course I’m evolving it as I go along).
Interviewed by Charles Humble for InfoQ
Interviewed by Stephen Chin about JavaOne 2013
Yesterday Stephen Chin, one of Oracle’s Java Evangelists and the JavaOne content chair, interviewed me via a live stream about JavaOne, the new MongoDB Java driver, and my plans to Change The World.
GDL Presents Women Techmakers with Trisha Gee
I was flattered a couple of weeks ago to be interviewed by Google as part of their women techmaker’s series, as it moves over to Europe. In this video I talk about going to Mars, education, planning your career, being a developer, and the impact of technology on our lives. So, not much…
Interviewed at Devoxx
Yolande Poirier from OTN interviewed me at Devoxx about my new job at 10gen, Women in IT (bet that surprises you), how to be a role model, and Agile. Enjoy.
Interview and Hacking session with Stephen Chin
Interviewed at GOTO Copenhagen
I was interviewed at GOTO Copenhagen, about Java, the Disruptor, the Graduate Developer Community & London Java Community, and a whole host of other things. So to make up for the lack of blogging this month, here it is:
What Do You Do and How Did You Get There?
So yet another interview with me is available, but this one is in written form. It’s for the Graduate Developer Community, the aim is to show undergraduates and graduates what real techies jobs are like, and how people doing them they got there.
It’s long, but if you know anyone just starting out their career who wants to get a feel for where they might want to go, please point them at it. The site has a number of interviews with people in different roles so it’s quite a good way to showcase the diversity of what’s available.
(Update: 15 Dec 2020: Original article doesn’t seem to be around any more, so I’ve reproduced the content here)
Interviewed for InfoQ at QCon London
Update on events
Featured on a BBC Podcast
Interview by the Oracle Technology Network at Devoxx
Tag: java
Life Beyond Java 8
New versions of Java are coming out every 6 months now. What has changed, should we upgrade, and if so, how?
(Updated 3 Dec, 2020)
News from IntelliJ IDEA Community
Video and resources for the Update on IntelliJ IDEA talk from FOSDEM 2020.
Abstract
With releases of Java coming thick and fast every six months, it’s a full time job staying on top of the features. If your IDE can help you here, it’s one less thing to worry about. IntelliJ IDEA Community has three releases every year, each one improves the support for modern versions of Java, but that’s not the only thing on offer.
Join this session to see what’s new in IntelliJ IDEA Community (the free one!). This is not limited to just supporting new language features, which some of us might not get to use for ages, but better support for things developers do every day, and improved performance and stability, because an all-singing, all-dancing IDE is all well and good, but if it’s not usable those features mean nothing.
Reading Code Is Harder Than Writing It
We should invest more time in the skill of reading code.
Is boilerplate code really so bad?
It’s exhausting staying up to date with the evolution of Java and the myriad other JVM languages. Is it worth it? What do modern languages give us?
Anticipating Java 9 - Functionality and Tooling
Looking ahead to what functionality is available in Java 9, and IntelliJ IDEA’s support (current and future) for it.
Code Review Matters and Manners
Content and resources for the Code Review Matters and Manners talk, including links to additional information and supporting material.
Applying Java 8 Idioms to Existing Code
- Understand how to improve performance with your Java code using Java 8 language features.
- Learn hands on techniques to discover and implement common Java 8 refactorings.
- Understand when you should and should not apply key refactorings in Java 8.
Java 8 MOOC - Session 3 Summary
Last night was the final get-together to discuss the Java 8 MOOC. Any event hosted in August in a city that is regularly over 40°C is going to face challenges, so it was great that we had attendees from earlier sessions plus new people too.
Java 8 MOOC - Session 2 Summary
As I mentioned last week, the Sevilla Java User Group is working towards completing the Java 8 MOOC on lambdas and streams. We’re running three sessions to share knowledge between people who are doing the course.
Java 8 MOOC - Session 1 Summary
The Sevilla Java User Group is working together towards completing the Java 8 MOOC on lambdas and streams. As part of this, we’re running three sessions during the course so we can, as a group, ask questions about the lectures, get help with the homework, and (if we’re feeling very smart!) help people who may be struggling (or might not have watched the videos).
Java at 20
I was asked three simple questions about my thoughts on Java turning 20, and ended up writing a guest post for Voxxed. No wonder I can’t seem to find the time to write these days.
The State of Java
I think living in a beautiful city in a fantastic climate has its advantages. Not just the obvious ones, but we find people unusually keen to come and visit us on the pretence of presenting at the Sevilla Java User Group (and please, DO come and present at our JUG, we love visitors).
This week we were really lucky, we had Georges Saab and Aurelio Garcia-Ribeyro giving us an update on where Java is now and where it looks like it’s going in the future.
Workshop: AngularJS, HTML5, Groovy, Java and MongoDB
Setup required for the AngularJS/HTML5/Groovy/Java/MongoDB tutorial for QCon London 2015. Sign up with code SPEAKGEE100 for £100 off the price!
AngularJS, HTML5, Groovy, Java and MongoDB All Together - What Could Possibly Go Wrong??
This year I’ve been giving an evolving live demonstration of coding a Fully Buzz Word Compliant, mobile-friendly web application. The aim of the demo is to show, via a real-world application rather than snippets or a toy example, where these popular technologies sit in your architecture, and how they interact with each other.
Getting Started with MongoDB and Java
We’ve been missing an introduction to using MongoDB from Java for a little while now - there’s plenty of information in the documentation, but we were lacking a step-by-step guide to getting started as a Java developer.
I sought to rectify this with a couple of blog posts for the MongoDB official blog: the first, an introduction to using MongoDB from Java, including a non-comprehensive list of some of the libraries you can use; the second, an introductory guide to simple CRUD operations using the Java driver:
Sevilla Java User Group Java 8 Launch Party
Last night at the Sevilla JUG we officially celebrated the launch of Java 8 - yay!
Don’t be fooled by the picture, people had more fun than it looks. Honest.
For anyone who missed the session, or who was there and wants access to the materials, here they are:
Nighthacking at Sevilla Java User Group
Last Saturday Mr Stephen Chin came to Sevilla on his crazy European tour to show us Lego and Robots. This was our largest turnout yet for a Java User Group event in Sevilla, which surprised me as it was on a weekend, and the weekend before the spectacle that is Semana Santa in Sevilla.
In my day...
Introduction to MongoDB and Big Data
Spock: Data Driven Testing
In the last two articles on Spock I’ve covered mocking and stubbing. And I was pretty sold on Spock just based on that. But for a database driver, there’s a killer feature: Data Driven Testing.
The New 3.0 Java Driver for MongoDB
Information related to the currently-ongoing effort to redesign the Java driver for MongoDB.
How to get started with the new MongoDB Java Driver
The second in my short series of blogs about the new Java driver is now available for your perusal. In it, there’s some guidance on how to get started using the new driver, whether you want to use the new (unfinished) API, the existing “classic” API, or a blend of both.
The 3.0 Java Driver - Design Goals
Spock is awesome! Seriously Simplified Mocking
We’re constantly fighting a battle when developing the new MongoDB Java driver between using tools that will do heavy lifting for us and minimising the dependencies a user has to download in order to use our driver. Ideally, we want the number of dependencies to be zero.
How are you using MongoDB with Java?
It Depends
Don’t you hate it when you ask a perfectly good question, and someone comes back with the answer “it depends”?
It’s so frustrating to think that in a world of ones and zeros, people can’t give absolute answers and you can’t rely on “best practice”.
NightHacking Tour: The LJC
On the same day Stephen Chin came to see me at the 10gen offices, we also ran a NightHacking session in the evening with the London Java Community. Not many people turned up (maybe I need to work on my signage to the office?) but it was a great session. In fact, having less people meant we could all be involved.
Interview and Hacking session with Stephen Chin
Java Magazine: Intro to the Disruptor Part One
London Java Community Open Conference
Saturday was, hopefully, my last conference of the year. My lucky readers should start to see some posts which are not simply me gushing about another opportunity to hang out with awesome people and learn about interesting “stuff”.
JAX London - I learn stuff and meet people
A couple of weeks ago, I was at JAX London along with a number of the London Java Community regulars (Martijn/Ben/John/Sandro/Simon/Zoe I’m looking at you….)
My purpose for attending was largely to present the Hardcore Concurrency for Beginners talk that Mike and I debuted at an LJC event a few weeks back. Almost as important was catching up with the aforementioned LJCers and meeting with as many people as would talk to me. After the disappointment of the sessions at Java One, sitting in a room being talked at was quite low down on my list of priorities. Sometimes it’s nice to be wrong.
Mike and I debut our new Disruptor presentation
JavaOne: Initial Observations
Here’s a photo of me representing LMAX as I pick up the Duke Award we won for the Disruptor (Thanks to Martijn for taking the photo)
So I’ve been at JavaOne for the better part of three days, it’s time to record some of my observations so far:
Are you an awesome developer?
Disruptor 2.0 - All Change Please
Martin recently announced version 2.0 of the Disruptor - basically there have been so many changes since we first open-sourced it that it’s time to mark that officially. His post goes over all the changes, the aim of this article is to attempt to translate my previous blog posts into new-world-speak, since it’s going to take a long time to re-write each of them all over again. Now I see the disadvantage of hand-drawing everything.
Dissecting the Disruptor: Demystifying Memory Barriers
My recent slow-down in posting is because I’ve been trying to write a post explaining memory barriers and their applicability in the Disruptor. The problem is, no matter how much I read and no matter how many times I ask the ever-patient Martin and Mike questions trying to clarify some point, I just don’t intuitively grasp the subject. I guess I don’t have the deep background knowledge required to fully understand.
So, rather than make an idiot of myself trying to explain something I don’t really get, I’m going to try and cover, at an abstract / massive-simplification level, what I do understand in the area. Martin has written a post going into memory barriers in some detail, so hopefully I can get away with skimming the subject.
Dissecting the Disruptor: Why it's so fast (part two) - Magic cache line padding
We mention the phrase Mechanical Sympathy quite a lot, in fact it’s even Martin’s blog title. It’s about understanding how the underlying hardware operates and programming in a way that works with that, not against it.
We get a number of comments and questions about the mysterious cache line padding in the RingBuffer, and I referred to it in the last post. Since this lends itself to pretty pictures, it’s the next thing I thought I would tackle.
Dissecting the Disruptor: Why it's so fast (part one) - Locks Are Bad
Martin Fowler has written a really good article describing not only the Disruptor, but also how it fits into the architecture at LMAX. This gives some of the context that has been missing so far, but the most frequently asked question is still “What is the Disruptor?”.
I’m working up to answering that. I’m currently on question number two: “Why is it so fast?”.
Dissecting the Disruptor: Wiring up the dependencies
So now I’ve covered the ring buffer itself, reading from it and writing to it.
Logically the next thing to do is to wire everything up together.
I talked about multiple producers - they have the producer barrier to keep them in order and under control. I’ve talked about consumers in a simple situation. Multiple consumers can get a little more involved. We’ve done some clever stuff to allow the consumers to be dependent on each other and the ring buffer. Like a lot of applications, we have a pipeline of things that need to happen before we can actually get on with the business logic - for example, we need to make sure the messages have been journalled to disk before we can do anything.
The Disruptor paper and the performance tests cover some basic configurations that you might want. I’m going to go over the most interesting one, mostly because I needed the practice with the graphics tablet.
Dissecting the Disruptor: Writing to the ring buffer
This is the missing piece in the end-to-end view of the Disruptor. Brace yourselves, it’s quite long. But I decided to keep it in a single blog so you could have the context in one place.
The important areas are: not wrapping the ring; informing the consumers; batching for producers; and how multiple producers work.
Dissecting the Disruptor: How do I read from the ring buffer?
The next in the series of understanding the Disruptor pattern developed at LMAX.
After the last post we all understand ring buffers and how awesome they are. Unfortunately for you, I have not said anything about how to actually populate them or read from them when you’re using the Disruptor.
Dissecting the Disruptor: What's so special about a ring buffer?
Recently we open sourced the LMAX Disruptor, the key to what makes our exchange so fast. Why did we open source it? Well, we’ve realised that conventional wisdom around high performance programming is… a bit wrong. We’ve come up with a better, faster way to share data between threads, and it would be selfish not to share it with the world. Plus it makes us look dead clever.
On the site you can download a technical article explaining what the Disruptor is and why it’s so clever and fast. I even get a writing credit on it, which is gratifying when all I really did is insert commas and re-phrase sentences I didn’t understand.
However, I find the whole thing a bit much to digest all at once, so I’m going to explain it in smaller pieces, as suits my NADD audience.
First up - the ring buffer. Initially I was under the impression the Disruptor was just the ring buffer. But I’ve come to realise that while this data structure is at the heart of the pattern, the clever bit about the Disruptor is controlling access to it.
Why Java developers hate .NET
I have been struggling with .NET. Actually, I have been fighting pitched battles with it.
All I want to do is take our existing Java client example code and write an equivalent in C#. Easy, right?
Trisha’s Guide to Converting Java to C#
Turns out writing the actual C# is relatively straightforward. Putting to one side the question of writing optimal code (these are very basic samples after all), to get the examples to compile and run was a simple process:
The London Java Community elected to the JCP SE/EE Executive Committee
GWT: Why VerticalPanel is Evil
Tag: java-5
AOP Caching
Today I would like to document my experiences implementing caching with Aspect Oriented Programming (AOP) and annotations.
Java Specifics
When I first started playing with Java 1.5, I thought generics were the best thing since sliced bread. No more untidy casting, lovely type-safe Collections, and when combined with the new for loop, a lot of the tedious tasks associated with Collections became easier and, most importantly, aesthetically pleasing.
Tag: java-8
Java 8 in Anger
Content and resources for the Java 8 in Anger presentation.
This vJUG video of Java 8 in Anger shows the Java 8 version of this talk in its clearest form. Here I also have links to other material I’ve published on this topic, and to the resources I used to create the code.
In 2016 this talk has evolved to also contain some Java 9 features too, and the latest version even shows how to use TDD to help figure out which stream operations you need. The video of the latest version is not yet available.
Tag: java8
Java 8 MOOC - Session 3 Summary
Last night was the final get-together to discuss the Java 8 MOOC. Any event hosted in August in a city that is regularly over 40°C is going to face challenges, so it was great that we had attendees from earlier sessions plus new people too.
Java 8 MOOC - Session 2 Summary
As I mentioned last week, the Sevilla Java User Group is working towards completing the Java 8 MOOC on lambdas and streams. We’re running three sessions to share knowledge between people who are doing the course.
Java 8 MOOC - Session 1 Summary
The Sevilla Java User Group is working together towards completing the Java 8 MOOC on lambdas and streams. As part of this, we’re running three sessions during the course so we can, as a group, ask questions about the lectures, get help with the homework, and (if we’re feeling very smart!) help people who may be struggling (or might not have watched the videos).
The State of Java
I think living in a beautiful city in a fantastic climate has its advantages. Not just the obvious ones, but we find people unusually keen to come and visit us on the pretence of presenting at the Sevilla Java User Group (and please, DO come and present at our JUG, we love visitors).
This week we were really lucky, we had Georges Saab and Aurelio Garcia-Ribeyro giving us an update on where Java is now and where it looks like it’s going in the future.
Interviewed by Charles Humble for InfoQ
Tag: java9
Anticipating Java 9 - Functionality and Tooling
Looking ahead to what functionality is available in Java 9, and IntelliJ IDEA’s support (current and future) for it.
Tag: javafx
Fully Reactive: Spring, Kotlin, and JavaFX Playing Together
Spring Framework 5 brings full reactive support to developers everywhere. What better way to demo reactive programming than to actually build something live? Trisha will live code an end-to-end application using Spring Framework 5, Spring Boot, Reactor, Kotlin, JavaFX, and maybe even some MongoDB, all built using IntelliJ IDEA. During this session, we’ll see how these different components can work together really easily using Spring. What could possibly go wrong?
NightHacking Tour: The LJC
On the same day Stephen Chin came to see me at the 10gen offices, we also ran a NightHacking session in the evening with the London Java Community. Not many people turned up (maybe I need to work on my signage to the office?) but it was a great session. In fact, having less people meant we could all be involved.
Tag: javaone
JavaOne 2014, Day One
Well, I’m at JavaOne again, and after only one day I’ve already learnt stuff. And, of course, had a great time catching up with interesting people. Here’s a summary of the first day.
Tag: javaone11
More videos from Java One 2011
On The Similarities Between Girls And Aliens
I discovered, through the power of the search words that lead to my blog, that there was an incident at JavaOne that once again opens the can of worms that is Sexism In IT.
This Makes Me Sad. I had a really positive experience at JavaOne. In fact, I would say it was the one conference I’ve been to in the last 12 months where I felt like my gender wasn’t a problem - I even got away with wearing hotpants (tweed is business-casual, right??) without being mistaken for anything other than a developer.
JavaOne 2011: Roundup
Having been back in London for a few days I’ve had some time to digest the madness that was last week.
My lasting impression of JavaOne is almost entirely positive. Granted, it was my first major conference, so maybe I’m just not jaded yet. But let me tell you what I loved about it (yes, I did cover some of these in my last post):
JavaOne: Initial Observations
Here’s a photo of me representing LMAX as I pick up the Duke Award we won for the Disruptor (Thanks to Martijn for taking the photo)
So I’ve been at JavaOne for the better part of three days, it’s time to record some of my observations so far:
Tag: javaone12
JavaOne: The Summary
So, JavaOne.
Taylor Street Cafe
I’m going to be controversial. I think this was my favourite conference of this year. I know that’s not trendy, and that Oracle-bashing is still a popular pastime. And I know I’ve also made a big deal about how much fun it is to meet people who program in different languages. But there is something very special about being surrounded by thousands of people from all around the world who use the same technology as you, some facing the same problems, some solving very different issues.
JavaOne: The Problem With Women - A Technical Approach
Yesterday dawned, with a sense of foreboding (actually it dawned with me coughing my lungs out, but we’ve heard enough about the sub-optimal state of my respiratory system this week). On this day, I was giving the talk I was dreading when I got asked to do it. It’s the talk I actually put more work into than any of the other sessions I was presenting at this JavaOne. It was the Women In IT talk.
JavaOne: User Group Sunday
Upcoming Events
Tag: javaone13
JavaOne 2013
So, I thought a few months ago that my blog would become more of a travel blog than a tech blog because of the amount of conferences I was going to. Turned out that I was so busy writing / updating / practicing talks and workshops and, er, travelling, that I never got around to doing retrospectives on the events I’d been to.
Make the Future Java
Tag: jax-london
JAX London & MongoDB Tutorial
In previous years, JAX London would have been an easy, local conference to go to. This time it took me most of Sunday to get there, and not because of the Super Storm. Still, that gave me the day to finish off the tutorial I was running there on Monday morning. Not that I would be so unprofessional as to leave preparing things until the last minute, oh no….
Upcoming Events
Video of our JAX London session
At JAX London Mike and I presented “Understanding the Disruptor - A Beginner’s Guide to Hardcore Concurrency”. This is the session we initially previewed to the London Java Community a few weeks earlier. The content is the same, but the feel of the presentation was quite different to us - the venue for the LJC event was more intimate, and it was easier to interact with the audience. At JAX, we were up on stage, which was pretty cool actually, but meant that it felt more like a lecture and it was less easy to connect with the audience.
JAX London - I learn stuff and meet people
A couple of weeks ago, I was at JAX London along with a number of the London Java Community regulars (Martijn/Ben/John/Sandro/Simon/Zoe I’m looking at you….)
My purpose for attending was largely to present the Hardcore Concurrency for Beginners talk that Mike and I debuted at an LJC event a few weeks back. Almost as important was catching up with the aforementioned LJCers and meeting with as many people as would talk to me. After the disappointment of the sessions at Java One, sitting in a room being talked at was quite low down on my list of priorities. Sometimes it’s nice to be wrong.
Tag: jcp
JavaOne 2011: Roundup
Having been back in London for a few days I’ve had some time to digest the madness that was last week.
My lasting impression of JavaOne is almost entirely positive. Granted, it was my first major conference, so maybe I’m just not jaded yet. But let me tell you what I loved about it (yes, I did cover some of these in my last post):
First public appearance caught on video
Tag: jetbrains
Being a Developer Advocate at JetBrains
Mandatory initial exclamation about how little I have blogged here lately. Over a year without updates, oh dear! But a) I have been blogging quite a lot for the IntelliJ IDEA and Upsource blogs, and b) I had another baby, which kept me quite busy.
So on that topic (more or less) I get a lot of questions about my job: what’s involved in the job, what’s it like working for JetBrains, what does a Developer Advocate do, what’s it like working remotely etc etc. Given I also rather generously1 recently offered to answer people’s questions about my job, I thought the most scalable way was to write-once-read-many, i.e. write it in a single blog post for everyone to read.
New Year, New Adventures
Tag: jobs
Career Advice for Programmers (YOW 2013)
LinkedIn Etiquette
For no reason other than LinkedIn communications are starting to irritate me, here’s my personal LinkedIn Etiquette guide. Feel free to disagree with it all.
Staying Ahead of the Curve
I had an interesting discussion last night at the LJC developer sessions, and it’s a topic that comes up again and again:
How to make your CV Not Suck
When you’re applying for a job at LMAX, your CV (or résumé, for our American readers) usually comes through me and I decide whether to call you for a technical phone screen.
I’m going to let you into a secret.
Are you an awesome developer?
Job Hunting
Tag: joel
FogBugs and Kiln World Tour
Last Thursday I was fortunate enough to get a place on the FogBugz and Kiln World Tour. I booked it before I moved jobs, and I’ll be honest I had no real interest in the software. I’ve been reading Joel’s books and blogs since my friend Brent bought me Joel on Software and made me read it (he had the foresight to know I’d want to hang on to his copy if he’d lent it to me!). I wanted to see the man in the flesh and hear what he had to say about his software. Because really, do we honestly need yet another bug-tracking / project-management tool?
Tag: joy-of-coding
The Joy of Coding
I’m on a plane (there’s a surprise) on my way back from The Joy of Coding. It’s the title that attracted me to this conference, and it was a great little one day event with awesome people like Dan North, Erik Meijer and Dick Wall presenting. What I liked about the themes is they were broadly technology agnostic, pulling back to a level which made me remember why I’m a developer. It inspired me to do more research and more thinking, and less panicking and trying to write code. That might seem odd, as someone who goes to as many conferences as I do should get loads more research and thinking time than most developers living under the whip, but I seem to spend so much time bouncing from thing to thing I don’t get space to just sit and think, or to read things in any depth.
Tag: jsp
In my day...
Tag: jug
Sevilla Java User Group Java 8 Launch Party
Last night at the Sevilla JUG we officially celebrated the launch of Java 8 - yay!
Don’t be fooled by the picture, people had more fun than it looks. Honest.
For anyone who missed the session, or who was there and wants access to the materials, here they are:
Nighthacking at Sevilla Java User Group
Last Saturday Mr Stephen Chin came to Sevilla on his crazy European tour to show us Lego and Robots. This was our largest turnout yet for a Java User Group event in Sevilla, which surprised me as it was on a weekend, and the weekend before the spectacle that is Semana Santa in Sevilla.
Tag: kanban
Lean Software and Systems Conference 2010 (Bletchley Park)
This is just a summary of the points I took from the Lean conference at Bletchley. They all need expanding, this is just the stuff that struck me that I want to record.
Tag: kids
Kids These Days
I’m a great believer in getting kids to code early - after all, I’m of that generation that was taught
10 PRINT "HELLO"
20 GOTO 10
at the age of 9. There are quite a few approaches to teaching today’s kids in an engaging way, but I’m a bit wary of the sandbox solutions that teach kids things like how to navigate a virtual thingie around the screen, or lets them create things in a limited virtual world. I don’t think kids will easily make the leap between these sort of games to seeing the full potential of programming - they’re too limited and have no context for the kids. It’s just another game.
Kids need to understand how programming fits into their world, they need to understand the context of coding, if they’re going to fall in love with it.
Tag: kotlin
Fully Reactive: Spring, Kotlin, and JavaFX Playing Together
Spring Framework 5 brings full reactive support to developers everywhere. What better way to demo reactive programming than to actually build something live? Trisha will live code an end-to-end application using Spring Framework 5, Spring Boot, Reactor, Kotlin, JavaFX, and maybe even some MongoDB, all built using IntelliJ IDEA. During this session, we’ll see how these different components can work together really easily using Spring. What could possibly go wrong?
Is boilerplate code really so bad?
It’s exhausting staying up to date with the evolution of Java and the myriad other JVM languages. Is it worth it? What do modern languages give us?
Tag: lean
Lean Software and Systems Conference 2010 (Bletchley Park)
This is just a summary of the points I took from the Lean conference at Bletchley. They all need expanding, this is just the stuff that struck me that I want to record.
Tag: links
...but most of all, it's fun
I loved this analogy: Cycling is awfully similar to being a woman. It nicely describes how it feels to be marginalised and not quite “normal”. But there are some things that I’d like to add:
The New 3.0 Java Driver for MongoDB
Information related to the currently-ongoing effort to redesign the Java driver for MongoDB.
Just Do Something
As I constantly talk about in my how-to-get-more-women-into-technology talks, we, the developers, the people who do this job, need to get out there and tell people what’s so great about what we do.
Performance Links
A hastily thrown-together list of some of the places to get more information on how to write performant code.
Update on events
Interview by the Oracle Technology Network at Devoxx
Mike and I debut our new Disruptor presentation
A chance to see some of my actual code (even if it is C#)
Getting around a bit
Comments on representations of our industry
Why changing jobs frequently is not necessarily a bad thing...
Scrum but...
Gender Stereotyping
I’m very interested in the subject of gender stereotyping, which probably isn’t surprising as I’m a girl in a predominantly male industry. And I like cars, and sports, and get irritated if people assume I’m not “allowed” to be interested in these things.
Far from being discriminated against, however, I find many people ask me why there aren’t more women in the industry and what can be done to encourage girls into IT. If these questions were easy to answer, they wouldn’t have to be asked.
Metrics and Incentives.
Agile Infection Growing
This is a bloody good idea. It builds upon my own Virgoen tendancies to write lists and tick things off, but what the list model lacks is the “in progress” state. Plus occasionally my lists get confused. See today’s notebook page:
QCon: Blogger's Summary
Certifiction
Continuing the Agile froth...
Tag: ljc
JAX London & MongoDB Tutorial
In previous years, JAX London would have been an easy, local conference to go to. This time it took me most of Sunday to get there, and not because of the Super Storm. Still, that gave me the day to finish off the tutorial I was running there on Monday morning. Not that I would be so unprofessional as to leave preparing things until the last minute, oh no….
LJC Open Conference 2012
NightHacking Tour: The LJC
On the same day Stephen Chin came to see me at the 10gen offices, we also ran a NightHacking session in the evening with the London Java Community. Not many people turned up (maybe I need to work on my signage to the office?) but it was a great session. In fact, having less people meant we could all be involved.
JAX London 2012
Seemed like a quiet conference this year. Not really sure why, maybe it was the layout of the massive (and extremely dark) main room; maybe it was the awkward L-shape of the communal space; or maybe this year people were more interested in listening to the (really very good) sessions rather than participating or meeting other people. Whatever the reason, it felt quiet and almost low-key.
Performance seemed pretty high on the agenda, as you’d expect from a London conference, with a number of things on offer:
JavaOne: User Group Sunday
Interviewed at GOTO Copenhagen
I was interviewed at GOTO Copenhagen, about Java, the Disruptor, the Graduate Developer Community & London Java Community, and a whole host of other things. So to make up for the lack of blogging this month, here it is:
The birth of a new community
Topping off my mini-tour at the end of May, I was invited to Rotterdam to present to a brand new community of developers. I was really interested in attending because my experience with user groups is pretty much limited to the London Java Community, and I knew this would be different due to being a) across a wider range of technologies and b) shiny and new.
New Disruptor Presentation Unveiled to the LJC!
A few weeks ago, I presented my new “User’s Guide to the Disruptor” talk to the London Java Community. Since it was very kindly hosted at Skillsmatter, there is a video of the presentation available, and the slides are below.
London Java Community Open Conference
Saturday was, hopefully, my last conference of the year. My lucky readers should start to see some posts which are not simply me gushing about another opportunity to hang out with awesome people and learn about interesting “stuff”.
Devoxx: The story so far
JAX London - I learn stuff and meet people
A couple of weeks ago, I was at JAX London along with a number of the London Java Community regulars (Martijn/Ben/John/Sandro/Simon/Zoe I’m looking at you….)
My purpose for attending was largely to present the Hardcore Concurrency for Beginners talk that Mike and I debuted at an LJC event a few weeks back. Almost as important was catching up with the aforementioned LJCers and meeting with as many people as would talk to me. After the disappointment of the sessions at Java One, sitting in a room being talked at was quite low down on my list of priorities. Sometimes it’s nice to be wrong.
Mike and I debut our new Disruptor presentation
JavaOne 2011: Roundup
Having been back in London for a few days I’ve had some time to digest the madness that was last week.
My lasting impression of JavaOne is almost entirely positive. Granted, it was my first major conference, so maybe I’m just not jaded yet. But let me tell you what I loved about it (yes, I did cover some of these in my last post):
JavaOne 2011
First public appearance caught on video
Vote for the LJC
My first public appearance
Getting around a bit
The London Java Community elected to the JCP SE/EE Executive Committee
Tag: lmax
The Coalescing Ring Buffer
Agile++: When Agile Goes Well
If you see anything about LMAX - the Disruptor, Continuous Delivery, or even the selection criteria for hiring developers, you’ll see that LMAX is pretty keen on Agile. However, no-one’s documented the Agile process there, as far as I know. Although I personally had it on my todo list, I never had the motivation, the hook to do it. And I realised eventually that’s because I’m not sure it’s a process that would work very well for another team, in another company, working in another business.
Summary of Devoxx 2012
Devoxx 2012 from Roy van Rijn on Vimeo.
Devoxx topped off a crazy two months of conferences. I’ve heard people talk about the conference season in the past, and been slightly (OK, very) jealous of all that jet-setting. I’ll admit, however, to a slight feeling of relief that my focus until Christmas is pretty much going to be coding. I hope.
QCon London 2012
I’m late with my write-up of QCon, and what’s worse, it will be partial - “sadly” I was in Lanzarote on a training week with the running club from the Thursday (8th) so I missed most of it. A sacrifice I had to make for 7 days in the sunshine…
How to make your CV Not Suck
When you’re applying for a job at LMAX, your CV (or résumé, for our American readers) usually comes through me and I decide whether to call you for a technical phone screen.
I’m going to let you into a secret.
A NYSE Product Manager and an LMAX Developer walk into a low latency trading seminar...
JavaOne: Initial Observations
Here’s a photo of me representing LMAX as I pick up the Duke Award we won for the Disruptor (Thanks to Martijn for taking the photo)
So I’ve been at JavaOne for the better part of three days, it’s time to record some of my observations so far:
JavaOne 2011
Dissecting the Disruptor: Demystifying Memory Barriers
My recent slow-down in posting is because I’ve been trying to write a post explaining memory barriers and their applicability in the Disruptor. The problem is, no matter how much I read and no matter how many times I ask the ever-patient Martin and Mike questions trying to clarify some point, I just don’t intuitively grasp the subject. I guess I don’t have the deep background knowledge required to fully understand.
So, rather than make an idiot of myself trying to explain something I don’t really get, I’m going to try and cover, at an abstract / massive-simplification level, what I do understand in the area. Martin has written a post going into memory barriers in some detail, so hopefully I can get away with skimming the subject.
Dissecting the Disruptor: Why it's so fast (part two) - Magic cache line padding
We mention the phrase Mechanical Sympathy quite a lot, in fact it’s even Martin’s blog title. It’s about understanding how the underlying hardware operates and programming in a way that works with that, not against it.
We get a number of comments and questions about the mysterious cache line padding in the RingBuffer, and I referred to it in the last post. Since this lends itself to pretty pictures, it’s the next thing I thought I would tackle.
Dissecting the Disruptor: Why it's so fast (part one) - Locks Are Bad
Martin Fowler has written a really good article describing not only the Disruptor, but also how it fits into the architecture at LMAX. This gives some of the context that has been missing so far, but the most frequently asked question is still “What is the Disruptor?”.
I’m working up to answering that. I’m currently on question number two: “Why is it so fast?”.
Dissecting the Disruptor: Wiring up the dependencies
So now I’ve covered the ring buffer itself, reading from it and writing to it.
Logically the next thing to do is to wire everything up together.
I talked about multiple producers - they have the producer barrier to keep them in order and under control. I’ve talked about consumers in a simple situation. Multiple consumers can get a little more involved. We’ve done some clever stuff to allow the consumers to be dependent on each other and the ring buffer. Like a lot of applications, we have a pipeline of things that need to happen before we can actually get on with the business logic - for example, we need to make sure the messages have been journalled to disk before we can do anything.
The Disruptor paper and the performance tests cover some basic configurations that you might want. I’m going to go over the most interesting one, mostly because I needed the practice with the graphics tablet.
Dissecting the Disruptor: Writing to the ring buffer
This is the missing piece in the end-to-end view of the Disruptor. Brace yourselves, it’s quite long. But I decided to keep it in a single blog so you could have the context in one place.
The important areas are: not wrapping the ring; informing the consumers; batching for producers; and how multiple producers work.
Dissecting the Disruptor: How do I read from the ring buffer?
The next in the series of understanding the Disruptor pattern developed at LMAX.
After the last post we all understand ring buffers and how awesome they are. Unfortunately for you, I have not said anything about how to actually populate them or read from them when you’re using the Disruptor.
Dissecting the Disruptor: What's so special about a ring buffer?
Recently we open sourced the LMAX Disruptor, the key to what makes our exchange so fast. Why did we open source it? Well, we’ve realised that conventional wisdom around high performance programming is… a bit wrong. We’ve come up with a better, faster way to share data between threads, and it would be selfish not to share it with the world. Plus it makes us look dead clever.
On the site you can download a technical article explaining what the Disruptor is and why it’s so clever and fast. I even get a writing credit on it, which is gratifying when all I really did is insert commas and re-phrase sentences I didn’t understand.
However, I find the whole thing a bit much to digest all at once, so I’m going to explain it in smaller pieces, as suits my NADD audience.
First up - the ring buffer. Initially I was under the impression the Disruptor was just the ring buffer. But I’ve come to realise that while this data structure is at the heart of the pattern, the clever bit about the Disruptor is controlling access to it.
STAC London Summit
On Wednesday I tagged along to the STAC London Summit to provide backup for Mike, who was on the “The Future of Messaging Middleware” panel.
The panel consisted of two messaging providers, one hardware (Solace Systems) and one software (29West/Informatica), and two “users”, Citihub and LMAX. Obviously both providers were arguing that theirs was the best solution. But what I found interesting is that I came away with the impression that everyone was really on the same side - everyone wants to use or to provide the best system, but there are different approaches. Which one you adopt is likely to be influenced by how your team work and the hardware you have (or can obtain).
Getting around a bit
Why Java developers hate .NET
I have been struggling with .NET. Actually, I have been fighting pitched battles with it.
All I want to do is take our existing Java client example code and write an equivalent in C#. Easy, right?
Trisha’s Guide to Converting Java to C#
Turns out writing the actual C# is relatively straightforward. Putting to one side the question of writing optimal code (these are very basic samples after all), to get the examples to compile and run was a simple process:
TradeTech 2011 - Not like a developer conference
I attended TradeTech last week, an annual event about Equities and Derivatives trading. I assumed from the title that there would be a reasonable focus on technology, but I found it was more “Trade” and less “Tech”.
GWT: Why VerticalPanel is Evil
Live at Last
Tag: london
The birth of a new community
Topping off my mini-tour at the end of May, I was invited to Rotterdam to present to a brand new community of developers. I was really interested in attending because my experience with user groups is pretty much limited to the London Java Community, and I knew this would be different due to being a) across a wider range of technologies and b) shiny and new.
QCon London 2012
I’m late with my write-up of QCon, and what’s worse, it will be partial - “sadly” I was in Lanzarote on a training week with the running club from the Thursday (8th) so I missed most of it. A sacrifice I had to make for 7 days in the sunshine…
What I Did On My Holidays
And now, a post for my long-neglected, less technical readers.
I took a week off in July to try and avoid that Oh My God I Missed Summer Again feeling. Granted, it’s easy to get that in the UK even if you’re not stuck in an office the entire time.
Really this is just an excuse to post some photos on the blog.
Tag: maven
Tag: mechanical-sympathy
How Mechanical Sympathy got me to the airport on time
Lets talk about mechanical sympathy. Martin Thompson has been making this term very popular in software development, so it’s best to read his description of why he used the term.
Dissecting the Disruptor: Demystifying Memory Barriers
My recent slow-down in posting is because I’ve been trying to write a post explaining memory barriers and their applicability in the Disruptor. The problem is, no matter how much I read and no matter how many times I ask the ever-patient Martin and Mike questions trying to clarify some point, I just don’t intuitively grasp the subject. I guess I don’t have the deep background knowledge required to fully understand.
So, rather than make an idiot of myself trying to explain something I don’t really get, I’m going to try and cover, at an abstract / massive-simplification level, what I do understand in the area. Martin has written a post going into memory barriers in some detail, so hopefully I can get away with skimming the subject.
Dissecting the Disruptor: Why it's so fast (part two) - Magic cache line padding
We mention the phrase Mechanical Sympathy quite a lot, in fact it’s even Martin’s blog title. It’s about understanding how the underlying hardware operates and programming in a way that works with that, not against it.
We get a number of comments and questions about the mysterious cache line padding in the RingBuffer, and I referred to it in the last post. Since this lends itself to pretty pictures, it’s the next thing I thought I would tackle.
Tag: mentoring
Be an Ambassador!
You know how I keep banging on about attracting different types of people into programming? You know how we say we need to get them young?
What Do You Do and How Did You Get There?
So yet another interview with me is available, but this one is in written form. It’s for the Graduate Developer Community, the aim is to show undergraduates and graduates what real techies jobs are like, and how people doing them they got there.
It’s long, but if you know anyone just starting out their career who wants to get a feel for where they might want to go, please point them at it. The site has a number of interviews with people in different roles so it’s quite a good way to showcase the diversity of what’s available.
(Update: 15 Dec 2020: Original article doesn’t seem to be around any more, so I’ve reproduced the content here)
Tag: metrics
Metrics and Incentives.
Tag: mongodb
Workshop: AngularJS, HTML5, Groovy, Java and MongoDB
Setup required for the AngularJS/HTML5/Groovy/Java/MongoDB tutorial for QCon London 2015. Sign up with code SPEAKGEE100 for £100 off the price!
New Year, New Adventures
AngularJS, HTML5, Groovy, Java and MongoDB All Together - What Could Possibly Go Wrong??
This year I’ve been giving an evolving live demonstration of coding a Fully Buzz Word Compliant, mobile-friendly web application. The aim of the demo is to show, via a real-world application rather than snippets or a toy example, where these popular technologies sit in your architecture, and how they interact with each other.
Using Groovy to import XML into MongoDB
Getting Started with MongoDB and Java
We’ve been missing an introduction to using MongoDB from Java for a little while now - there’s plenty of information in the documentation, but we were lacking a step-by-step guide to getting started as a Java developer.
I sought to rectify this with a couple of blog posts for the MongoDB official blog: the first, an introduction to using MongoDB from Java, including a non-comprehensive list of some of the libraries you can use; the second, an introductory guide to simple CRUD operations using the Java driver:
What do you mean, Backwards Compatibility? (YOW 2013)
YOW recorded me, yet again, talking about the adventure that is the design of the new Java Driver for MongoDB. This is the same talk I gave at GeeCON and DevoxxUK, with some updates based on our Journey So Far. In it, I cover the architecture of the new driver and some of our current thoughts around where we want the API to go.
Interviewed by Charles Humble for InfoQ
Sevilla MUG March Madness
Sevilla MUG, first event
Last night was the inaugural meeting of the Sevilla MongoDN User Group. An event organised with just over 48 hours notice, in a city where I don’t speak the language and where even my best-connected contacts aren’t sure they’re fully plugged in to the tech scene.
Introduction to MongoDB and Big Data
JAX London & MongoDB Tutorial
In previous years, JAX London would have been an easy, local conference to go to. This time it took me most of Sunday to get there, and not because of the Super Storm. Still, that gave me the day to finish off the tutorial I was running there on Monday morning. Not that I would be so unprofessional as to leave preparing things until the last minute, oh no….
Getting started with the MongoDB Java Driver Tutorial
Brief guide to running the MongoDB tutorial from QCon London and JAX London.
The New 3.0 Java Driver for MongoDB
Information related to the currently-ongoing effort to redesign the Java driver for MongoDB.
How to get started with the new MongoDB Java Driver
The second in my short series of blogs about the new Java driver is now available for your perusal. In it, there’s some guidance on how to get started using the new driver, whether you want to use the new (unfinished) API, the existing “classic” API, or a blend of both.
Interviewed by Stephen Chin about JavaOne 2013
Yesterday Stephen Chin, one of Oracle’s Java Evangelists and the JavaOne content chair, interviewed me via a live stream about JavaOne, the new MongoDB Java driver, and my plans to Change The World.
The 3.0 Java Driver - Design Goals
How are you using MongoDB with Java?
Good overview of the NoSQL hype for Real Developers
Last Tuesday I went to a London Java Community talk which promised to debunk the hype around NoSQL. Whether you’re already bought into a NoSQL technology, or you’re just wondering what all the noise is about, it’s worth an hour out of your day to see Akmal Chaudhri’s comprehensive summary of the technologies out there.
It Depends
Don’t you hate it when you ask a perfectly good question, and someone comes back with the answer “it depends”?
It’s so frustrating to think that in a world of ones and zeros, people can’t give absolute answers and you can’t rely on “best practice”.
Webinar: Processing High Volume Data Feeds with MongoDB
My First Official MongoDB Appearance
Yesterday I had the nerve-wracking dubious alarming great pleasure of presenting my first official MongoDB-shaped talk. This was in the form of a webinar, which is an interesting and different format.
Summary of Devoxx 2012
Devoxx 2012 from Roy van Rijn on Vimeo.
Devoxx topped off a crazy two months of conferences. I’ve heard people talk about the conference season in the past, and been slightly (OK, very) jealous of all that jet-setting. I’ll admit, however, to a slight feeling of relief that my focus until Christmas is pretty much going to be coding. I hope.
NoSQL is a Stupid Name
So, I’ve finished my first full week in the new job and I’ve learnt lots of new stuff. Which is great, because that’s usually why you change jobs.
Tag: morphia
The Handover
Yesterday I walked into the kitchen to see how lunch was going and my boyfriend handed me a knife, a part-chopped hard boiled egg and said “finish this, I need to have a shower”. As you do. Apparently there were two things that needed doing - “this” needed finishing, and I needed to keep an eye on the fish.
Fine.
Tag: mug
Sevilla MUG March Madness
Tag: non-tech
What I Did On My Holidays
And now, a post for my long-neglected, less technical readers.
I took a week off in July to try and avoid that Oh My God I Missed Summer Again feeling. Granted, it’s easy to get that in the UK even if you’re not stuck in an office the entire time.
Really this is just an excuse to post some photos on the blog.
Cyclist tribes
Living and working in central London, you quickly learn that the fastest way around town is to cycle.
My extensive research into this activity has shown there are a number of different cycling tribes. Of course, I have split them into the two groups that are most appropriate to me: 1) slower than me and 2) faster than me. You can probably tell what sort of a cyclist I am by my attitude to the two groups.
Tag: none
Excuses excuses.
Tag: nosql
Good overview of the NoSQL hype for Real Developers
Last Tuesday I went to a London Java Community talk which promised to debunk the hype around NoSQL. Whether you’re already bought into a NoSQL technology, or you’re just wondering what all the noise is about, it’s worth an hour out of your day to see Akmal Chaudhri’s comprehensive summary of the technologies out there.
NoSQL is a Stupid Name
So, I’ve finished my first full week in the new job and I’ve learnt lots of new stuff. Which is great, because that’s usually why you change jobs.
Tag: offshore
Tales from the Other Side: Confessions of an Offshore Resource
After the acquisition of a company with offices in New York, I pestered my company outrageously until they got fed up and finally relented – they agreed to send me to the US.
To ease the transition, I chose to move onto a project which would allow me to start working in London and continue on the same team after I had moved to New York.
In the extreme over-excitement that followed my relocation, it took me a little while to realise that effectively I was an offshore resource, no different really from any of our Indian test team, and the team needed to manage this appropriately.
I learnt a number of lessons whilst playing this game. Some of these points are also valid for teams with remote resources (e.g. people working from home).
Tag: open-source
The Coalescing Ring Buffer
Tag: opinion
Developers want to be heard
I wrote a piece for the Java Advent Blog, about how developers aren’t just communing with the computer, they also need to feel listened to by real human beings.
Overheard: Agile truths
After attending a number of conferences and events, and performing numerous interviews, I’m starting to hear the same things again and again. Since Dan North challenged all my assumptions at QCon, I’m reluctant to outright ridicule them, but I will put forward my personal opinion.
Note: these are things I have heard from multiple sources, so with any luck I am not breaking the sanctity of the confessional interview.
JavaOne 2011: Roundup
Having been back in London for a few days I’ve had some time to digest the madness that was last week.
My lasting impression of JavaOne is almost entirely positive. Granted, it was my first major conference, so maybe I’m just not jaded yet. But let me tell you what I loved about it (yes, I did cover some of these in my last post):
On How Not To Target Girl Geeks
(First, let me say this post contains opinion, stereotyping and sweeping generalisations. But that’s sort of the point. Also I don’t pretend for one moment to speak for all girl programmers, I can only speak for myself)
When I first started this blog, I wanted to just post “proper” technical information. I wanted to prove that there are girls out there doing “real” programming.
I specifically didn’t want to talk about my gender. I wanted to prove by silence that gender is incidental to what I do.
But, it doesn’t really work that way, does it?
Firstly because one of the first things I get asked by guys when I meet them in this industry is “why aren’t there more girl programmers?” (that’s after they ask “do you work in HR?” followed by “are you a real programmer?” - I’m not joking, this happened this week).
Tag: oracle
The State of Java
I think living in a beautiful city in a fantastic climate has its advantages. Not just the obvious ones, but we find people unusually keen to come and visit us on the pretence of presenting at the Sevilla Java User Group (and please, DO come and present at our JUG, we love visitors).
This week we were really lucky, we had Georges Saab and Aurelio Garcia-Ribeyro giving us an update on where Java is now and where it looks like it’s going in the future.
Tag: oscon
On The Evil Of Stereotypes
I attended (one way or another) two events last week that got me thinking
The first was Girl Developers will Save the World - a session that had me a little confused as to whether that referred to me, or actual girls, i.e. those that are not yet legally classed as adults. The second was the Remarkable Women Twitter party the following day.
OSCON Day One
So, my first day at my very first OSCON. I have to say that when Ben and Martijn told me I had to do OSCON, that it was one of the conferences to go to, I was sceptical - not because I thought it would be rubbish, but because I have enjoyed all the conferences I’ve been to for different reasons.
But I’m really impressed so far.
Tag: pages
The New 3.0 Java Driver for MongoDB
Information related to the currently-ongoing effort to redesign the Java driver for MongoDB.
Just Do Something
As I constantly talk about in my how-to-get-more-women-into-technology talks, we, the developers, the people who do this job, need to get out there and tell people what’s so great about what we do.
Performance Links
A hastily thrown-together list of some of the places to get more information on how to write performant code.
Tag: people-are-people
Why the customer isn't always right
Last week I went to get my hair cut (yes, sorry, this is a story about hair). I had thought long and hard about what I wanted. I researched, checked styles online, and bought a magazine so I could show my hairdresser exactly what I was after and there would be no confusion. I was determined I would not be spending that ridiculous amount of money on something I was not going to be happy with. I was even bold enough to ask for some changes to it at the end, which I have never ever had the courage to do before.
Tag: performance
Applying Java 8 Idioms to Existing Code
- Understand how to improve performance with your Java code using Java 8 language features.
- Learn hands on techniques to discover and implement common Java 8 refactorings.
- Understand when you should and should not apply key refactorings in Java 8.
Performance Links
A hastily thrown-together list of some of the places to get more information on how to write performant code.
Christmas decorations teach me a lesson about troubleshooting
And now, after an absence of several weeks, you get to see how long it takes me to write some of these posts.
I was putting up the Christmas decorations one Saturday when my worst fear was realised1 - one of my three strings of lights was not working.
The first two went up fine. The third lit up when I plugged it in, and in less than a second went out. Curses. This is not what I wanted, this was supposed to be a short exercise in making my tiny little flat look festive.
So I set about the tedious task of starting from the end closest to the plug and replacing every bulb, one by one, with a spare one to see if it magically lit up again. When it doesn’t, you take the spare back out and replace it with the original bulb. I remember my parents going through this ritual every Christmas, the tediousness of this activity is more memorable than the fleeting joy of shinies.
Tag: personal
Procrastination
I’ve had a fantastic week of meeting with colleagues and friends, getting to know some of my organisation, brainstorming ideas for next year, working out how to prioritise and plan, being handed greater responsibility and freedom…
2019
Right so yes. 2020, hello. One of my 2020 resolutions is to get back to my personal blog. Weekly. Yeah right. Let’s aim for weekly and be happy with monthly.
For my first post let’s do the obligatory look-back-over-last-year. Not because it’s trendy (I’m 41 now, I don’t care about being trendy any more), but because it’s super important for me to understand what I went through and what I achieved last year (every year), otherwise I get caught up in the hamster-wheel of the-next-thing-and-the-next-thing-and-the-next-thing. Progress should be celebrated, not just ignored for the next item on the ever growing, ever pressing TODO list. Also, looking back helps me to plan the next year. Doesn’t have to be super-planned, but setting some goals, objectives, ideas for which direction I’d prefer to go in helps me decide how to prioritise that ever-growing, ever-pressing TODO list.
Tag: photos
What I Did On My Holidays
And now, a post for my long-neglected, less technical readers.
I took a week off in July to try and avoid that Oh My God I Missed Summer Again feeling. Granted, it’s easy to get that in the UK even if you’re not stuck in an office the entire time.
Really this is just an excuse to post some photos on the blog.
In answer to one of the search terms which led to my blog...
Tag: practices
Code Review Best Practices
This article was originally a guest post for FogBugz.
As developers, we all know that code reviews are a good thing in theory. They should help us:
- Find bugs and security issues early
- Improve the readability of our code
- Provide a safety net to ensure all tasks are fully completed
The reality is that code reviews can frequently be an uncomfortable experience for everyone involved, leading to reviews that are combative, ineffective, or even worse, simply not happening.
Here is a quick guide to help you to create an effective code review process.
Tag: presentations
Becoming Fully Buzzword Compliant
How do you keep your skills up to date in this fast-moving and turbulant industry?
Code Review Matters and Manners
Content and resources for the Code Review Matters and Manners talk, including links to additional information and supporting material.
Staying Ahead of the Curve
Last Thursday I gave a keynote at GOTO Berlin to address the problems of deciding how to learn a new technology/framework/process (Spoiler Alert: it’s not by putting it into production).
AngularJS, HTML5, Groovy, Java and MongoDB All Together - What Could Possibly Go Wrong??
This year I’ve been giving an evolving live demonstration of coding a Fully Buzz Word Compliant, mobile-friendly web application. The aim of the demo is to show, via a real-world application rather than snippets or a toy example, where these popular technologies sit in your architecture, and how they interact with each other.
What do you mean, Backwards Compatibility? (YOW 2013)
YOW recorded me, yet again, talking about the adventure that is the design of the new Java Driver for MongoDB. This is the same talk I gave at GeeCON and DevoxxUK, with some updates based on our Journey So Far. In it, I cover the architecture of the new driver and some of our current thoughts around where we want the API to go.
Career Advice for Programmers (YOW 2013)
Upcoming Events 2014
It’s been a while since I updated you on my travel plans, so now I’ve had some more conferences confirmed, I thought I would pass the information on.
Sevilla MUG March Madness
YOW
December disappeared in a rush of vacation and a fleeting tour of Australia. It’s hard to believe that it’s the eve of Christmas Eve already, it’s almost impossible to feel Christmassy when you’re getting sunburnt on a boat and seeing people in swim-suits wearing santa hats. A mid-winter festival (complete with trees and fake snow) just feels very odd in summer.
First presentation at the Virtual JUG!
Yesterday I had the privilege of presenting the very first session for vJUG, a new virtual Java User Group that allows us to span geographies when sharing talks and stories. I’m really interested in the vJUG idea, especially now I’m not in London - if we can find good ways to share knowledge without having to travel, that will help us reach people who don’t normally go to conferences or don’t have a local user group to go to. Not to mention cutting travel costs and saving the environment.
JavaOne 2013
So, I thought a few months ago that my blog would become more of a travel blog than a tech blog because of the amount of conferences I was going to. Turned out that I was so busy writing / updating / practicing talks and workshops and, er, travelling, that I never got around to doing retrospectives on the events I’d been to.
Devoxx UK 2013
Last week was the first Devoxx UK, bringing the brand from Belgium and, more recently, France. And I think it was a HUGE success.
My First Official MongoDB Appearance
Yesterday I had the nerve-wracking dubious alarming great pleasure of presenting my first official MongoDB-shaped talk. This was in the form of a webinar, which is an interesting and different format.
Introduction to the Disruptor Slides
I’ve produced a very cut down version of the presentation I’ve been giving at a lot of conferences, giving a high level overview to the Disruptor. This serves as a quick intro to the concepts behind it.
The birth of a new community
Topping off my mini-tour at the end of May, I was invited to Rotterdam to present to a brand new community of developers. I was really interested in attending because my experience with user groups is pretty much limited to the London Java Community, and I knew this would be different due to being a) across a wider range of technologies and b) shiny and new.
Why Open Source Your Secrets
Here’s a video of my Open Conference session on the business benefits of open sourcing your software. Given that the conference was at a weekend and had a very intimate feel, I think I was a teeny bit more honest than I usually am. Enjoy.
New Disruptor Presentation Unveiled to the LJC!
A few weeks ago, I presented my new “User’s Guide to the Disruptor” talk to the London Java Community. Since it was very kindly hosted at Skillsmatter, there is a video of the presentation available, and the slides are below.
JAX London - I learn stuff and meet people
A couple of weeks ago, I was at JAX London along with a number of the London Java Community regulars (Martijn/Ben/John/Sandro/Simon/Zoe I’m looking at you….)
My purpose for attending was largely to present the Hardcore Concurrency for Beginners talk that Mike and I debuted at an LJC event a few weeks back. Almost as important was catching up with the aforementioned LJCers and meeting with as many people as would talk to me. After the disappointment of the sessions at Java One, sitting in a room being talked at was quite low down on my list of priorities. Sometimes it’s nice to be wrong.
First public appearance caught on video
My first public appearance
All Public Appearances
For blatant self-publicity, I’m making a note of all the presentations, panels, interviews, articles and other public-facing events I’ve been involved in. This is a non-exhaustive list.
Tag: presenting
Speaker Tips - Focus on Either Content or Delivery
When you’re a new speaker, or just starting to consider speaking at conferences or user groups for the first time, it’s easy to become overwhelmed by all the things you worry about when delivering a talk.
Speaker Tips - What to Wear
For years I’ve avoided talking about the topic of what to wear when presenting. I didn’t want to cover it because I didn’t want people to think that I only worried about this topic because I was a woman. I also didn’t want other women to inherit any of my neuroses around deciding what to wear. I’m the sort of person who always enjoyed thinking long and hard about what to wear the next day at work, and I know that’s not how everyone works.
Speaker Tips - Wearing a Roaming Mic is More Complicated Than I Realised
What Can Conferences Do To Attract More Women Speakers?
Now I’ve been speaking at (mostly Java) conferences for a while (six years now), I get asked to present at a lot of conferences. Obviously all these conferences are mostly interested in my terribly educational talks, but it’s also because I’m a technical woman and there aren’t very many technical women speaking at conferences.
In my experience, conferences want to do the right thing - they want a diverse line up of speakers, they want to attract diverse attendees. Often this is not as easy as it may seem, and frequently conferences are Twitter-shamed for not having enough women speakers. When it gets to this point (and often before), conferences frequently ask me for advice on speakers they could invite, and how to attract more women.
Tag: process
The Handover
Yesterday I walked into the kitchen to see how lunch was going and my boyfriend handed me a knife, a part-chopped hard boiled egg and said “finish this, I need to have a shower”. As you do. Apparently there were two things that needed doing - “this” needed finishing, and I needed to keep an eye on the fish.
Fine.
Adjusting to Working Remotely
One of the most obvious differences I faced when I moved from LMAX to 10gen were the working conditions. I don’t mean like being deep underground in some dangerous situation vs being pampered by beautiful slave boys and girls. What I mean is that the working practices at one company necessitated being in the office for core hours, and at the other flexible hours and remote-working are practically mandatory.
Tales from the Other Side: Confessions of an Offshore Resource
After the acquisition of a company with offices in New York, I pestered my company outrageously until they got fed up and finally relented – they agreed to send me to the US.
To ease the transition, I chose to move onto a project which would allow me to start working in London and continue on the same team after I had moved to New York.
In the extreme over-excitement that followed my relocation, it took me a little while to realise that effectively I was an offshore resource, no different really from any of our Indian test team, and the team needed to manage this appropriately.
I learnt a number of lessons whilst playing this game. Some of these points are also valid for teams with remote resources (e.g. people working from home).
Tag: projects
Converting Blogger to Markdown
Tag: publications
Java Magazine: Intro to the Disruptor Part One
Tag: qcon-london
QCon London 2014
Life on both sides of the interview table
InfoQ has posted the video of Dan North and I opining on the subject of hiring. Most of the talk is spent on how to be a good interviewer, and touches on how to market your company to prospective hires. We spend less time on how to do well as an interviewee, but in theory if you know what’s going through the interviewer’s mind, you should be in a much better position to take control of the interview and shine.
QCon Day One
I like QCon London, I really do. Not only is it on home turf, but, as I’ve said before, it doesn’t just focus on technology, or a set of technologies.
QCon London 2012
I’m late with my write-up of QCon, and what’s worse, it will be partial - “sadly” I was in Lanzarote on a training week with the running club from the Thursday (8th) so I missed most of it. A sacrifice I had to make for 7 days in the sunshine…
QCon: Blogger's Summary
QCon: TODO list inspired by the conference
QCon: Initial thoughts
QCon London
Tag: question
Working Environment
How important to you is your working environment?
- Type of desk
- What’s on it
- Position / type of mouse, keyboard, monitor(s)
- Music / background sound (or lack of it)
- Open plan vs team room vs cube vs personal office
- etc…
These physical items could be extended to include your virtual environment:
Tag: recruitment
LinkedIn Etiquette
For no reason other than LinkedIn communications are starting to irritate me, here’s my personal LinkedIn Etiquette guide. Feel free to disagree with it all.
Life on both sides of the interview table
InfoQ has posted the video of Dan North and I opining on the subject of hiring. Most of the talk is spent on how to be a good interviewer, and touches on how to market your company to prospective hires. We spend less time on how to do well as an interviewee, but in theory if you know what’s going through the interviewer’s mind, you should be in a much better position to take control of the interview and shine.
Tag: refactoring
Applying Java 8 Idioms to Existing Code
- Understand how to improve performance with your Java code using Java 8 language features.
- Learn hands on techniques to discover and implement common Java 8 refactorings.
- Understand when you should and should not apply key refactorings in Java 8.
Tag: reference
CSS for Developers: Horizontal and Vertical Centring
First, an apology. I will be using the British spelling for “centre”, because, well, I’m British. But it gets really confusing because you have to use the American spelling in the code. And doesn’t “Centring” just look wrong?
CSS for Developers: Cross Browser Table Border Behaviour
One of the aims of this series is to highlight some stupid gotchas in support for CSS in the different browsers.
Today’s gotcha is table borders.
Yes, yes, I said don’t use tables. What I means is, don’t use tables for layout. But you can use tables for, you know, tabular data. Like, for examples, lists of instruments and their bid and ask prices.
But you should know that even when you use strict mode, Internet Explorer has slightly… eccentric… rendering behaviour for tables. Actually to be specific, it’s IE7 only.
CSS for Developers: Column Layout Using CSS
This is a continuation of my series of CSS hints / tips / cheats for developers (and other technical-but-not-UI people).
The screenshots are in Chrome on a Mac. The originals were on Firefox on Ubuntu so I can tell you the behaviour is identical.
CSS for Developers: The Joy of Floats
As promised, the Long Awaited Follow-Up to CSS for Developers Part One! Well, long-awaited if you’re as afflicted with NADD as I am.
Quick recap - the aim of this series is to provide a quick and easy how-to around the magic that is CSS. It’s primarily aimed at developers, although I would hope it’s comprehensible to a range of tech-savvy people.
CSS for Developers: Horizontal Layout Using CSS
I’m a Java Developer. But I’m also a Web Developer. Web Developers have been so badly maligned over the last decade or so that I always feel wary (and sometimes slightly ashamed) admitting this. There’s some sort of assumption that Web Developers (and Front End Developers) aren’t real programmers. Similarly, “real” developers don’t like to be tainted by coming into contact with that nasty “front end stuff” in case someone mistakes them for a designer.
Trust me, no-one is going to mistake a Java Developer for a designer. For a start, when designers wear geeky glasses it’s ironic. Or chic. Or something.
But developers will be forced to do something around the front end at some point in their lives. Even if it’s because they’re sick of manually kicking off some process and want to give the users a big red button to press instead.
Tag: releases
The Handover
Yesterday I walked into the kitchen to see how lunch was going and my boyfriend handed me a knife, a part-chopped hard boiled egg and said “finish this, I need to have a shower”. As you do. Apparently there were two things that needed doing - “this” needed finishing, and I needed to keep an eye on the fish.
Fine.
Tag: requirements
Why the customer isn't always right
Last week I went to get my hair cut (yes, sorry, this is a story about hair). I had thought long and hard about what I wanted. I researched, checked styles online, and bought a magazine so I could show my hairdresser exactly what I was after and there would be no confusion. I was determined I would not be spending that ridiculous amount of money on something I was not going to be happy with. I was even bold enough to ask for some changes to it at the end, which I have never ever had the courage to do before.
Tag: review
2019
Right so yes. 2020, hello. One of my 2020 resolutions is to get back to my personal blog. Weekly. Yeah right. Let’s aim for weekly and be happy with monthly.
For my first post let’s do the obligatory look-back-over-last-year. Not because it’s trendy (I’m 41 now, I don’t care about being trendy any more), but because it’s super important for me to understand what I went through and what I achieved last year (every year), otherwise I get caught up in the hamster-wheel of the-next-thing-and-the-next-thing-and-the-next-thing. Progress should be celebrated, not just ignored for the next item on the ever growing, ever pressing TODO list. Also, looking back helps me to plan the next year. Doesn’t have to be super-planned, but setting some goals, objectives, ideas for which direction I’d prefer to go in helps me decide how to prioritise that ever-growing, ever-pressing TODO list.
Tag: rw
On The Evil Of Stereotypes
I attended (one way or another) two events last week that got me thinking
The first was Girl Developers will Save the World - a session that had me a little confused as to whether that referred to me, or actual girls, i.e. those that are not yet legally classed as adults. The second was the Remarkable Women Twitter party the following day.
Tag: scrum
Scrum but...
Scrum
I think the statement that struck me the most when I was on the Certified Scrum Master course was:
The start of the project is when you know the least about what you’re doing
Which of course is absolutely true.
So why do we come up with extensive requirements, detailed design, and fixed plans at this point of time? We haven’t put anything into place yet, we haven’t played with the code, the customer hasn’t seen anything of what we’re promising to deliver.
Certified Scrum Master
Tag: sevilla
Android Xtended

You may have noticed that the more I go to conferences, the less I write about them. I could claim lack of time, but the fact is that all my write-ups will be something along the lines of “Loved <city>, went to talks that made me think, met interesting people, gave a talk or two that seemed to go well”. Not sure if people get bored of reading that, but I get bored of writing it.

That’s not to say I’m bored of conferences. On the contrary - since I work from home, travelling to new places and meeting Real Human Beings keeps me sane. Plus conferences are fun.

But I went to a conference on Saturday that makes me feel compelled to write something, and not just because it was organised by my two fellow Sevilla JUG organisers. @IsraKaos and @RGDav are both doing more Android day-to-day than server-side Java, so this is an area they’re interested in learning more about. Not content with organising Android events every other month, they decided they had so many interesting speakers they wanted to have speaking here in Sevilla that they wanted to run a whole day, single track conference, on behalf of GDG Sevilla. Android Xtended was born.
Nighthacking at Sevilla Java User Group
Last Saturday Mr Stephen Chin came to Sevilla on his crazy European tour to show us Lego and Robots. This was our largest turnout yet for a Java User Group event in Sevilla, which surprised me as it was on a weekend, and the weekend before the spectacle that is Semana Santa in Sevilla.
Sevilla MUG, first event
Last night was the inaugural meeting of the Sevilla MongoDN User Group. An event organised with just over 48 hours notice, in a city where I don’t speak the language and where even my best-connected contacts aren’t sure they’re fully plugged in to the tech scene.
Tag: sitemesh
Certification
I know there are arguments against certification, and I definitely think that using certifiction to determine whether to interview or recruit people is downright daft, because frankly learning a bunch of answers isn’t all that difficult. But I personally find that completing a certification really helps to round out my knowledge in an area. I guess my thoughts are that a fairly recent certification combined with the work experience to back it up is something that would make your CV more interesting to recruiters.
Tag: slides
Staying Ahead of the Curve
Last Thursday I gave a keynote at GOTO Berlin to address the problems of deciding how to learn a new technology/framework/process (Spoiler Alert: it’s not by putting it into production).
Tag: speaker-tips
Speaker Tips - Focus on Either Content or Delivery
When you’re a new speaker, or just starting to consider speaking at conferences or user groups for the first time, it’s easy to become overwhelmed by all the things you worry about when delivering a talk.
Speaker Tips - What to Wear
For years I’ve avoided talking about the topic of what to wear when presenting. I didn’t want to cover it because I didn’t want people to think that I only worried about this topic because I was a woman. I also didn’t want other women to inherit any of my neuroses around deciding what to wear. I’m the sort of person who always enjoyed thinking long and hard about what to wear the next day at work, and I know that’s not how everyone works.
Speaker Tips - Wearing a Roaming Mic is More Complicated Than I Realised
Tag: speaking
Speaker Tips - Focus on Either Content or Delivery
When you’re a new speaker, or just starting to consider speaking at conferences or user groups for the first time, it’s easy to become overwhelmed by all the things you worry about when delivering a talk.
Speaker Tips - What to Wear
For years I’ve avoided talking about the topic of what to wear when presenting. I didn’t want to cover it because I didn’t want people to think that I only worried about this topic because I was a woman. I also didn’t want other women to inherit any of my neuroses around deciding what to wear. I’m the sort of person who always enjoyed thinking long and hard about what to wear the next day at work, and I know that’s not how everyone works.
Speaker Tips - Wearing a Roaming Mic is More Complicated Than I Realised
Tag: spock
Workshop: AngularJS, HTML5, Groovy, Java and MongoDB
Setup required for the AngularJS/HTML5/Groovy/Java/MongoDB tutorial for QCon London 2015. Sign up with code SPEAKGEE100 for £100 off the price!
JavaOne 2014, Day One
Well, I’m at JavaOne again, and after only one day I’ve already learnt stuff. And, of course, had a great time catching up with interesting people. Here’s a summary of the first day.
Spock: Data Driven Testing
In the last two articles on Spock I’ve covered mocking and stubbing. And I was pretty sold on Spock just based on that. But for a database driver, there’s a killer feature: Data Driven Testing.
Spock is awesome! Seriously Simplified Mocking
We’re constantly fighting a battle when developing the new MongoDB Java driver between using tools that will do heavy lifting for us and minimising the dependencies a user has to download in order to use our driver. Ideally, we want the number of dependencies to be zero.
Tag: spring
Fully Reactive: Spring, Kotlin, and JavaFX Playing Together
Spring Framework 5 brings full reactive support to developers everywhere. What better way to demo reactive programming than to actually build something live? Trisha will live code an end-to-end application using Spring Framework 5, Spring Boot, Reactor, Kotlin, JavaFX, and maybe even some MongoDB, all built using IntelliJ IDEA. During this session, we’ll see how these different components can work together really easily using Spring. What could possibly go wrong?
Amazing!
AOP Caching
Today I would like to document my experiences implementing caching with Aspect Oriented Programming (AOP) and annotations.
Validation with Spring Modules Validation
Tag: spring-boot
Fully Reactive: Spring, Kotlin, and JavaFX Playing Together
Spring Framework 5 brings full reactive support to developers everywhere. What better way to demo reactive programming than to actually build something live? Trisha will live code an end-to-end application using Spring Framework 5, Spring Boot, Reactor, Kotlin, JavaFX, and maybe even some MongoDB, all built using IntelliJ IDEA. During this session, we’ll see how these different components can work together really easily using Spring. What could possibly go wrong?
Tag: stereotypes
On The Evil Of Stereotypes
I attended (one way or another) two events last week that got me thinking
The first was Girl Developers will Save the World - a session that had me a little confused as to whether that referred to me, or actual girls, i.e. those that are not yet legally classed as adults. The second was the Remarkable Women Twitter party the following day.
Overheard: Development Myths
On Changing The Image Of Programmers
Gah!! This is exactly what I was talking about - it’s pink, it mentions shoes, and it’s about as patronising as you can get.
Would the chart be different if your possible outcomes were Bill Gates, Steve Jobs, Mark Zuckerberg, and Linus Torvalds? I bet for a start it wouldn’t mention Jimmy Choos or choice of handbags. And it probably wouldn’t be in baby blue either.
Tag: stories
How Mechanical Sympathy got me to the airport on time
Lets talk about mechanical sympathy. Martin Thompson has been making this term very popular in software development, so it’s best to read his description of why he used the term.
Tag: story-cards
Agile Infection Growing
This is a bloody good idea. It builds upon my own Virgoen tendancies to write lists and tick things off, but what the list model lacks is the “in progress” state. Plus occasionally my lists get confused. See today’s notebook page:
Tag: strangeloop
The Strange Loop
Last week (was it only last week?) I was at Strange Loop, presenting a workshop on the Disruptor.
I didn’t really have any expectations from the conference, I’ve never been before and, if I’m honest, hadn’t heard of it before. So everything was a pleasant surprise.
It’s a very geeky conference. I mean that as a compliment, of course. Lots of very smart people talking about stuff that’s waaaay more advanced than you frequently get in the conferences employers would be happy to pay for. The themes I mostly saw were functional programming and the (insert horribly abused term) Big Data space.
Tag: support
Developers hate support, don't they?
I’m at the end of my first official week doing support for 10gen. My major achievements are:
Tag: svqjug
Java 8 MOOC - Session 3 Summary
Last night was the final get-together to discuss the Java 8 MOOC. Any event hosted in August in a city that is regularly over 40°C is going to face challenges, so it was great that we had attendees from earlier sessions plus new people too.
Java 8 MOOC - Session 2 Summary
As I mentioned last week, the Sevilla Java User Group is working towards completing the Java 8 MOOC on lambdas and streams. We’re running three sessions to share knowledge between people who are doing the course.
Java 8 MOOC - Session 1 Summary
The Sevilla Java User Group is working together towards completing the Java 8 MOOC on lambdas and streams. As part of this, we’re running three sessions during the course so we can, as a group, ask questions about the lectures, get help with the homework, and (if we’re feeling very smart!) help people who may be struggling (or might not have watched the videos).
The State of Java
I think living in a beautiful city in a fantastic climate has its advantages. Not just the obvious ones, but we find people unusually keen to come and visit us on the pretence of presenting at the Sevilla Java User Group (and please, DO come and present at our JUG, we love visitors).
This week we were really lucky, we had Georges Saab and Aurelio Garcia-Ribeyro giving us an update on where Java is now and where it looks like it’s going in the future.
Tag: team
Code Review Best Practices
This article was originally a guest post for FogBugz.
As developers, we all know that code reviews are a good thing in theory. They should help us:
- Find bugs and security issues early
- Improve the readability of our code
- Provide a safety net to ensure all tasks are fully completed
The reality is that code reviews can frequently be an uncomfortable experience for everyone involved, leading to reviews that are combative, ineffective, or even worse, simply not happening.
Here is a quick guide to help you to create an effective code review process.
Tag: testing
Level Up Your Automated Tests
This presentation is about how to change a team’s attitude towards writing automated tests. The talk covers the same case study as Groovy vs Java for Testing, adopting Spock in MongoDB, but this is a more process/agile/people perspective, not a technical look at the merits of one language over another.
Spock: Data Driven Testing
In the last two articles on Spock I’ve covered mocking and stubbing. And I was pretty sold on Spock just based on that. But for a database driver, there’s a killer feature: Data Driven Testing.
Spock is awesome! Seriously Simplified Mocking
We’re constantly fighting a battle when developing the new MongoDB Java driver between using tools that will do heavy lifting for us and minimising the dependencies a user has to download in order to use our driver. Ideally, we want the number of dependencies to be zero.
Christmas decorations teach me a lesson about troubleshooting
And now, after an absence of several weeks, you get to see how long it takes me to write some of these posts.
I was putting up the Christmas decorations one Saturday when my worst fear was realised1 - one of my three strings of lights was not working.
The first two went up fine. The third lit up when I plugged it in, and in less than a second went out. Curses. This is not what I wanted, this was supposed to be a short exercise in making my tiny little flat look festive.
So I set about the tedious task of starting from the end closest to the plug and replacing every bulb, one by one, with a spare one to see if it magically lit up again. When it doesn’t, you take the spare back out and replace it with the original bulb. I remember my parents going through this ritual every Christmas, the tediousness of this activity is more memorable than the fleeting joy of shinies.
Tag: therese
Me Mum
I didn’t see what an enormous impact Mum made on my life, because she was always there. There’s a quote in the book Good Omens: “It’s for the same reason you can’t see England when you’re in Trafalgar Square” - Mum was a constant, important, dependable presence for my whole life.
I wrote something for Mum while I was on the plane from Spain to spend what was to be our last two weeks together. I’d like to share some of that with you all now.
Ode to a Resting Warrior
This July my Mum passed away, apparently cancer was the one opponent she couldn’t beat in an argument. Mum had a huge impact on my life, as you might expect, not only personally but professionally too. Maybe I’ll talk about that some more in time. For now, I want to publish the poem my very talented cousin Izzi Giles wrote in tribute.
Tag: thoughtworks
Getting around a bit
On Changing The Image Of Programmers
Gah!! This is exactly what I was talking about - it’s pink, it mentions shoes, and it’s about as patronising as you can get.
Would the chart be different if your possible outcomes were Bill Gates, Steve Jobs, Mark Zuckerberg, and Linus Torvalds? I bet for a start it wouldn’t mention Jimmy Choos or choice of handbags. And it probably wouldn’t be in baby blue either.
Tag: todo
Agile Infection Growing
This is a bloody good idea. It builds upon my own Virgoen tendancies to write lists and tick things off, but what the list model lacks is the “in progress” state. Plus occasionally my lists get confused. See today’s notebook page:
QCon: TODO list inspired by the conference
Tag: tools
FogBugs and Kiln World Tour
Last Thursday I was fortunate enough to get a place on the FogBugz and Kiln World Tour. I booked it before I moved jobs, and I’ll be honest I had no real interest in the software. I’ve been reading Joel’s books and blogs since my friend Brent bought me Joel on Software and made me read it (he had the foresight to know I’d want to hang on to his copy if he’d lent it to me!). I wanted to see the man in the flesh and hear what he had to say about his software. Because really, do we honestly need yet another bug-tracking / project-management tool?
Tag: training
Effective Sketches
On Thursday I was at Simon Brown’s Effective Sketches session at Skillsmatter. Just because my pictures are pretty awesome doesn’t mean there’s no opportunity for continuous learning.
The points Simon made in the session really made sense to me, and I wish I could have had something like that as a primer when they taught us UML at university. Without the context of what the diagrams were supposed to mean, to convey, all the boxes and lines made no sense to me back then. I’m still not a fan of large chunks of UML because I think the convention sometimes gets in the way of real meaning.
My take-away points were:
Certified Scrum Master
Tag: travel
Calling Dublin Tech User Groups!
JavaOne 2011
Tag: tutorial
Workshop: AngularJS, HTML5, Groovy, Java and MongoDB
Setup required for the AngularJS/HTML5/Groovy/Java/MongoDB tutorial for QCon London 2015. Sign up with code SPEAKGEE100 for £100 off the price!
Getting started with the MongoDB Java Driver Tutorial
Brief guide to running the MongoDB tutorial from QCon London and JAX London.
Tag: ui
In my day...
CSS for Developers: Horizontal and Vertical Centring
First, an apology. I will be using the British spelling for “centre”, because, well, I’m British. But it gets really confusing because you have to use the American spelling in the code. And doesn’t “Centring” just look wrong?
CSS for Developers: Cross Browser Table Border Behaviour
One of the aims of this series is to highlight some stupid gotchas in support for CSS in the different browsers.
Today’s gotcha is table borders.
Yes, yes, I said don’t use tables. What I means is, don’t use tables for layout. But you can use tables for, you know, tabular data. Like, for examples, lists of instruments and their bid and ask prices.
But you should know that even when you use strict mode, Internet Explorer has slightly… eccentric… rendering behaviour for tables. Actually to be specific, it’s IE7 only.
CSS for Developers: Column Layout Using CSS
This is a continuation of my series of CSS hints / tips / cheats for developers (and other technical-but-not-UI people).
The screenshots are in Chrome on a Mac. The originals were on Firefox on Ubuntu so I can tell you the behaviour is identical.
GWT: Why VerticalPanel is Evil
CSS for Developers: The Joy of Floats
As promised, the Long Awaited Follow-Up to CSS for Developers Part One! Well, long-awaited if you’re as afflicted with NADD as I am.
Quick recap - the aim of this series is to provide a quick and easy how-to around the magic that is CSS. It’s primarily aimed at developers, although I would hope it’s comprehensible to a range of tech-savvy people.
CSS for Developers: Horizontal Layout Using CSS
I’m a Java Developer. But I’m also a Web Developer. Web Developers have been so badly maligned over the last decade or so that I always feel wary (and sometimes slightly ashamed) admitting this. There’s some sort of assumption that Web Developers (and Front End Developers) aren’t real programmers. Similarly, “real” developers don’t like to be tainted by coming into contact with that nasty “front end stuff” in case someone mistakes them for a designer.
Trust me, no-one is going to mistake a Java Developer for a designer. For a start, when designers wear geeky glasses it’s ironic. Or chic. Or something.
But developers will be forced to do something around the front end at some point in their lives. Even if it’s because they’re sick of manually kicking off some process and want to give the users a big red button to press instead.
On the perils of Front End Design
I’m reading Joel Spolsky’s User Interface Design for Programmers. A thought that’s struck me is about architecture. It’s easy to get fooled into thinking building software is a bit like being the architect for a building. I’m not even going to go into the differences between engineering practices à la building design and good practice software design. I’m going to start from the easy point, the stuff you can see.
Tag: upsource
Code Review Matters and Manners
Content and resources for the Code Review Matters and Manners talk, including links to additional information and supporting material.
What to look for in a Code Review
I wrote a post for the JetBrains Upsource blog about some of the things you should be looking for when you do code reviews (and some of the things you should not be looking at).
Tag: user-groups
Sevilla MUG, first event
Last night was the inaugural meeting of the Sevilla MongoDN User Group. An event organised with just over 48 hours notice, in a city where I don’t speak the language and where even my best-connected contacts aren’t sure they’re fully plugged in to the tech scene.
The birth of a new community
Topping off my mini-tour at the end of May, I was invited to Rotterdam to present to a brand new community of developers. I was really interested in attending because my experience with user groups is pretty much limited to the London Java Community, and I knew this would be different due to being a) across a wider range of technologies and b) shiny and new.
Tag: video
The Extraordinary Team Of Developers
Daniel Bryant and I did a keynote at Devoxx UK about how individuals can add something to a team to make the team more productive, and overall more awesome.
Interviewed by InfoQ
While I was at QCon New York (probably my business conference this year!) I was interviewed by Ralph Winzinger for InfoQ. It felt like a short interview at the time, but we covered a lot of ground - Java 8, Java vs other JVM languages, the effectiveness of the JCP, and the future of Java.
Video and the transcript are available on InfoQ.
What could possibly go wrong? (GOTO Chicago)
At GOTO Chicago, I was given the chance to chat a bit about the presentation I was giving, which happens to be the same one I’m giving at a number of conferences this year (although of course I’m evolving it as I go along).
Nighthacking at Sevilla Java User Group
Last Saturday Mr Stephen Chin came to Sevilla on his crazy European tour to show us Lego and Robots. This was our largest turnout yet for a Java User Group event in Sevilla, which surprised me as it was on a weekend, and the weekend before the spectacle that is Semana Santa in Sevilla.
What do you mean, Backwards Compatibility? (YOW 2013)
YOW recorded me, yet again, talking about the adventure that is the design of the new Java Driver for MongoDB. This is the same talk I gave at GeeCON and DevoxxUK, with some updates based on our Journey So Far. In it, I cover the architecture of the new driver and some of our current thoughts around where we want the API to go.
Career Advice for Programmers (YOW 2013)
Interviewed by Charles Humble for InfoQ
First presentation at the Virtual JUG!
Yesterday I had the privilege of presenting the very first session for vJUG, a new virtual Java User Group that allows us to span geographies when sharing talks and stories. I’m really interested in the vJUG idea, especially now I’m not in London - if we can find good ways to share knowledge without having to travel, that will help us reach people who don’t normally go to conferences or don’t have a local user group to go to. Not to mention cutting travel costs and saving the environment.
Make the Future Java
Interviewed by Stephen Chin about JavaOne 2013
Yesterday Stephen Chin, one of Oracle’s Java Evangelists and the JavaOne content chair, interviewed me via a live stream about JavaOne, the new MongoDB Java driver, and my plans to Change The World.
Life on both sides of the interview table
InfoQ has posted the video of Dan North and I opining on the subject of hiring. Most of the talk is spent on how to be a good interviewer, and touches on how to market your company to prospective hires. We spend less time on how to do well as an interviewee, but in theory if you know what’s going through the interviewer’s mind, you should be in a much better position to take control of the interview and shine.
My Summary of GeeCON, Krakow
Last week I was in Krakow, Poland for GeeCON. Which was excellent! I find it really interesting that conferences all have their own personalities, that they are not all the same.
Good overview of the NoSQL hype for Real Developers
Last Tuesday I went to a London Java Community talk which promised to debunk the hype around NoSQL. Whether you’re already bought into a NoSQL technology, or you’re just wondering what all the noise is about, it’s worth an hour out of your day to see Akmal Chaudhri’s comprehensive summary of the technologies out there.
Devoxx UK 2013
Last week was the first Devoxx UK, bringing the brand from Belgium and, more recently, France. And I think it was a HUGE success.
GDL Presents Women Techmakers with Trisha Gee
I was flattered a couple of weeks ago to be interviewed by Google as part of their women techmaker’s series, as it moves over to Europe. In this video I talk about going to Mars, education, planning your career, being a developer, and the impact of technology on our lives. So, not much…
Interviewed at Devoxx
Yolande Poirier from OTN interviewed me at Devoxx about my new job at 10gen, Women in IT (bet that surprises you), how to be a role model, and Agile. Enjoy.
Devoxx: The Problem with Women - A Technical Approach
As well as talking about, you know, actual work-type-stuff, I was encouraged to give my “Technical Approach to Women” presentation at Devoxx. This went so well at JavaOne that I thought it would be difficult to top. Also, I wasn’t convinced it would work at Devoxx, because the theatres are not well suited to audience participation - the seats are warm and comfy, the room is dark, the speaker is on stage in front of a massive screen….
NightHacking Tour: The LJC
On the same day Stephen Chin came to see me at the 10gen offices, we also ran a NightHacking session in the evening with the London Java Community. Not many people turned up (maybe I need to work on my signage to the office?) but it was a great session. In fact, having less people meant we could all be involved.
Interview and Hacking session with Stephen Chin
Interviewed at GOTO Copenhagen
I was interviewed at GOTO Copenhagen, about Java, the Disruptor, the Graduate Developer Community & London Java Community, and a whole host of other things. So to make up for the lack of blogging this month, here it is:
QCon London: Disruptor presentation video
Interviewed for InfoQ at QCon London
Video: Why we shouldn't target women
Video of our JAX London session
At JAX London Mike and I presented “Understanding the Disruptor - A Beginner’s Guide to Hardcore Concurrency”. This is the session we initially previewed to the London Java Community a few weeks earlier. The content is the same, but the feel of the presentation was quite different to us - the venue for the LJC event was more intimate, and it was easier to interact with the audience. At JAX, we were up on stage, which was pretty cool actually, but meant that it felt more like a lecture and it was less easy to connect with the audience.
Interview by the Oracle Technology Network at Devoxx
More videos from Java One 2011
First public appearance caught on video
All Public Appearances
For blatant self-publicity, I’m making a note of all the presentations, panels, interviews, articles and other public-facing events I’ve been involved in. This is a non-exhaustive list.
Tag: videos
AngularJS, HTML5, Groovy, Java and MongoDB All Together - What Could Possibly Go Wrong??
This year I’ve been giving an evolving live demonstration of coding a Fully Buzz Word Compliant, mobile-friendly web application. The aim of the demo is to show, via a real-world application rather than snippets or a toy example, where these popular technologies sit in your architecture, and how they interact with each other.
Tag: wcpgw
What could possibly go wrong? (GOTO Chicago)
At GOTO Chicago, I was given the chance to chat a bit about the presentation I was giving, which happens to be the same one I’m giving at a number of conferences this year (although of course I’m evolving it as I go along).
Tag: web-development
In my day...
Tag: webinars
First presentation at the Virtual JUG!
Yesterday I had the privilege of presenting the very first session for vJUG, a new virtual Java User Group that allows us to span geographies when sharing talks and stories. I’m really interested in the vJUG idea, especially now I’m not in London - if we can find good ways to share knowledge without having to travel, that will help us reach people who don’t normally go to conferences or don’t have a local user group to go to. Not to mention cutting travel costs and saving the environment.
Webinar: Processing High Volume Data Feeds with MongoDB
My First Official MongoDB Appearance
Yesterday I had the nerve-wracking dubious alarming great pleasure of presenting my first official MongoDB-shaped talk. This was in the form of a webinar, which is an interesting and different format.
Tag: what-not-to-do
Scrum but...
Tag: women
What Can Conferences Do To Attract More Women Speakers?
Now I’ve been speaking at (mostly Java) conferences for a while (six years now), I get asked to present at a lot of conferences. Obviously all these conferences are mostly interested in my terribly educational talks, but it’s also because I’m a technical woman and there aren’t very many technical women speaking at conferences.
In my experience, conferences want to do the right thing - they want a diverse line up of speakers, they want to attract diverse attendees. Often this is not as easy as it may seem, and frequently conferences are Twitter-shamed for not having enough women speakers. When it gets to this point (and often before), conferences frequently ask me for advice on speakers they could invite, and how to attract more women.
Tag: work-environment
How to show your employees how much you hate them
Due to a combination of my restlessness, my consulting experience, and employers that insist on moving offices frequently, I’ve had the dubious honour of working in a variety of environments.
Today I will teach you, the employer, how to show your staff just how much you hate them.
Working Environment
How important to you is your working environment?
- Type of desk
- What’s on it
- Position / type of mouse, keyboard, monitor(s)
- Music / background sound (or lack of it)
- Open plan vs team room vs cube vs personal office
- etc…
These physical items could be extended to include your virtual environment:
Tag: workshop
Workshop: AngularJS, HTML5, Groovy, Java and MongoDB
Setup required for the AngularJS/HTML5/Groovy/Java/MongoDB tutorial for QCon London 2015. Sign up with code SPEAKGEE100 for £100 off the price!
Getting started with the MongoDB Java Driver Tutorial
Brief guide to running the MongoDB tutorial from QCon London and JAX London.
Tag: your-work
Nine Things Developers Want More Than Money
Tag: yow
What do you mean, Backwards Compatibility? (YOW 2013)
YOW recorded me, yet again, talking about the adventure that is the design of the new Java Driver for MongoDB. This is the same talk I gave at GeeCON and DevoxxUK, with some updates based on our Journey So Far. In it, I cover the architecture of the new driver and some of our current thoughts around where we want the API to go.
Career Advice for Programmers (YOW 2013)
YOW
December disappeared in a rush of vacation and a fleeting tour of Australia. It’s hard to believe that it’s the eve of Christmas Eve already, it’s almost impossible to feel Christmassy when you’re getting sunburnt on a boat and seeing people in swim-suits wearing santa hats. A mid-winter festival (complete with trees and fake snow) just feels very odd in summer.