Inside Atlassian

This page is no longer in use.

coding

Article in Developers

Be more than a functional programmer – be a functional engineer

I’ve felt resistance to functional programming and to functional programmers ever since functional programming became “a thing”. While I’m disappointed by the arguments made against functional programming, I am equally (if not more) frustrated that the functional programming point of view has not evolved, leading it to be easily derided as developer religion. It’s time to move the discussion forward. Because no matter our views on functional programming vs. object-oriented programming vs. whatever else, we all need to be functional engineers.

Article in Developers

The future depends on more software developers

Software is changing the world – from medicine and education to fashion and transportation – and it’s impacting the way we work and how we live. The possibilities are limited only by the number of people with the ambition, great ideas, and opportunities to bring their ideas to life. Tech jobs are growing three times […]

Article in Developers

From beta to GA: how to build a winning API

When you think of an API, you probably don’t picture a bunch of drawings on a whiteboard. But exactly one year ago, our plans for Hipchat Connect were just that. In a year this idea evolved through several stages and finally made it to public GA with over 30 partners. We’ve learned a lot about shipping and partnership in the process, and we hope what we’ve learned will be helpful to other software development teams like yours.

Article in How We Build

Git hooks for continuous integration

Git hooks are awesome in the context of continuous integration, so I want to share three CI-related use cases and point you to some ready-made hooks you can add to your workflow. If you’re new to Git hooks, no worries: we’ll start with the basics.

Article in Developers

Open letter from an @ignored test

Dear developer, I’ve been wanting to talk to you for a while now, but words don’t always come easy. We’ve had some really fun times together. I still remember the first time I warned you about a minor bug in your code, and how happy you were for having me in your life! Do you remember it? I also remember the first time you refactored me to make me more efficient and how well-written I felt afterwards… ah, great times!

Article in Developers

Hipchat helps Code.org turn an Hour of Code into a lifetime of know-how

Code.org is a nonprofit dedicated to expanding computer science in schools in over 180 countries around the world. “We started out making a simple one-hour tutorial called the Hour of Code to get every single student in the whole world to try for at least one hour.” – Hadi Partovi, CEO With Code.org’s success, courses now reach over 100 million students, and Hipchat is how they stay connected with employees and volunteers.

Article in Developers

Bitbucket snippets for teams are here with a rich set of APIs

We’re thrilled to announce Snippets, available now in Bitbucket, where you can create and manage multi-file snippets of all kinds. We took a different approach than standard pastebin or gist and we built Snippets around teams. Snippets can be shared with your team, made private to you, or fully public; you control read and write privileges. If you create a snippet owned by your team, the snippet will stay with the team forever, even after you leave that team.

Article in How We Build

One weird trick for powerful Git aliases

(Yes the title of this post is a pun, apologies!) I have written about aliases before! See for example a collection of my favorite git aliases or peruse my personal list on Bitbucket. Recently at our Summit I showed a simple technique that can really unleash the power of your Git command line. Several people […]

Article in Developers

Flux step by step

Facebook has recently presented a new way to compose applications, an application architecture they named Flux. They reported that as modern web applications grow in complexity, this model eases the maintenance and the cognitive load required to develop them. I jumped in excitement (it’s true!) as I immediately saw the beauty of the model. But […]

Article in Developers

Every team needs kick-ass code reviews

Developing software often involves teams of people working together. As the team grows from one, to two, to multiple people, challenges begin to creep in and rob the organization of creative flow. It becomes harder to maintain a continuous culture across different people. Engineering groups are especially prone to these challenges as code is routinely […]

Article in Developers

Git subtree: the alternative to Git submodule

(Updated in January, 2017.) The Internet is full of articles on why you shouldn’t use Git submodules. I mostly agree, although I am not so harsh in my evaluation. As I explained in a previous post, submodules are useful for a few use cases but have several drawbacks. Are there alternatives? The answer is: yes! […]

Article in Developers

git? tig!

I’m a big fan of Git, but I’m not such a big fan of most UIs for it, especially the ones integrated into IDEs. I find them convoluted and confusing. They try to map some generic “VCS” language onto the commands, or try to hide too much, making it hard to understand what’s going on. […]

Article in Developers

Git-flow comes to Java

As a Java developer, I’m always trying to find ways to streamline all the mundane tasks that come along with development but aren’t necessarily part of the actual code I’m trying to write. Managing source control and performing releases are definitely on that list. I use Git as my DVCS of choice, and while it […]

Article in Developers

Extending git

While Mercurial has a well defined (albeit internal) API that can be used to write extensions that extend the functionality of Mercurial, git’s extension model follows the Unix philosophy of composing small, simple programs to achieve a similar effect. What that means is that git “extensions” can be written in any language and by following […]

Article in Developers

Git submodules: core concept, workflows, and tips

Including submodules as part of your Git development allows you to include other projects in your codebase, keeping their history separate but synchronized with yours. It’s a convenient way to solve the vendor library and dependency problems. As usual with everything git, the approach is opinionated and encourages a bit of study before it can […]