Tomorrow, 22nd December 2021, is my last day at JetBrains.
I can't believe I've been here a whole seven years! I've never stayed anywhere even half that amount of time, I usually jump jobs every 1-2 years. I spent 4 years at LMAX, but I did have a tiny break in the middle to go and work for ThoughtWorks for 3 months.
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.
Just over two years ago, I embarked upon a journey as a developer / evangelist for a company who was then called 10gen (who got fed up of saying "the MongoDB people", and transformed into MongoDB Inc). My goals for this role were: to learn what it was like working for a company that produced a technology product; to discover what impact working in an open source fashion has; and to level up my advocacy skills. I have met all these goals, and more - I met some fantastic people; learnt different approaches to software development; discovered my new favourite database for creating applications; moved to Spain; started both a MUG and a JUG; worked to understand the value of community and evangelism, and to help create a strategy for these areas; and my evangelism efforts and open source work earned me the Java Champion title. I'm extremely proud of what I've achieved over this period, and very grateful to MongoDB for giving me these opportunities.
But now, a new adventure is about to begin. If you've seen my live coding demo this year, you'll know of my love affair with IntelliJ IDEA, a tool I use daily (even for blogging). Well, now I'm joining the team at JetBrains, where I'm going Full Advocate. I hope this means I get to carry on doing more of what I love - presenting, writing, and working on demos to help developers become more productive. I hope this will give me opportunities to stay ahead of the curve in the Java/JVM world.
And yes, in answer to the Most Frequently Asked Question, I am staying in Spain. I've fallen in love with Sevilla and I'm not ready to leave yet.
I shall leave you with my somewhat disasterous "Top Ten IntelliJ Tips" from GOTO Aarhus, which is worth watching just to see Dan North save me from the curse of the live demo. Things can only get better from here, right?
Since I have a tendency to bang on every now and again about how we, as developers, could do better in managing our careers (for example, by creating CVs that don't suck, and by staying ahead of the curve), Dave Thomas asked me to speak for a mere 50 minutes on the subject at GOTO Aarhus, a talk I wasn't enormously happy with as there was no way to cover a lifetime of hard-fought experience in such a short time. Dave seemed to like something in it though, as he gave me the opportunity to present the topic again at YOW last December, and this time I think I managed to distill the important points into the (still ridiculously short) time allotted.
Please give me any feedback you have.
I recognise there are many many more topics I could cover, so I'd better start making a list. Suggestions?
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.
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.
The time has come, and I'm moving on from LMAX. I've had an incredible (nearly) four years working for one of the most radical finance firms in the world, during which time I feel I've learnt more than the rest of my work experience put together, and had the pleasure to work with some of the smartest and most interesting people I've ever met.
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)
Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.
Any cookies that may not be particularly necessary for the website to function and is used specifically to collect user personal data via analytics, ads, other embedded contents are termed as non-necessary cookies. It is mandatory to procure user consent prior to running these cookies on your website.