Weekly developer news – July 20th 2018

So, welcome to the next edition of developer news, the place where I try to narrow down the week’s tech news to the top few items that I think are worth checking out if you are like me, a professional software developing striving to improve. This week we only have a couple of items, but I think they are well worth a read

1 : JavaScript and the Shopify desktop application

First up, is a Quora post that details how JavaScript is used in the Shopify desktop app. This is posted by a former Shopify engineer, and for me, what’s interesting about this is not, hey look we used JavaScript for this. What I find interesting is how this describes how the organisation structure at Shopify is guiding the software architecture and structure of their application. I think it’s so important to understand this. Far too many development teams fall into the trap of thinking they need a particular architectural style (micro services anyone?), but don’t realise that it’s not an appropriate structure for their organisation. They pick architectures that give benefits in particular team structures that they don’t have. And this ends up adding complexity and slowing down teams.

2 : How Tinder keeps your location kind of private

Next is an article showing how Tinder have made security improvements to make it harder to pinpoint a user’s exact location. This details changes they have made to how they present how far away from you someone is that prevents someone from using triangulation to pinpoint an exact location. Instead, you can now only determine from this where someone is within a square mile. I think it’s important to know about techniques like this, especially as more applications are making use of location and distance information. These features always have to be considered alongside protecting user security too.

So, that’s it for this week.

If you have any articles, announcements, tutorials, or anything else you think should be included next week, then just drop me an email.

Weekly developer news – July 13th 2018

So, welcome to the next edition of developer news, the place where I try to narrow down the week’s tech news to the top few items that I think are worth checking out if you are like me, a professional software developing striving to improve.

1 : Building the Google Photos Web UI

First up, as the title suggests it a blog post by a developer on the Google Photos project describing how they approached building the web UI for this. This is a good article to read through, as it describes the requirements they faced well in addition to detailing a number of aspects relating to the solutions they arrived at. It is good to see the different engineering problems they face trying to meet all of the requirements, and good to have a walkthrough describing the approaches that did and didn’t work.

2 : Open offices?

Next is an article by the DHH (Basecamp CTO, creator of Ruby on Rails) putting across his opinions on open offices in the tech industry. As he points out, many studies have shown that they are not an effective way to plan an office space and leads to many frustrations and distractions. They have been shown time and time again to hinder, not help communication. It’s not an issue I encounter too often as I mostly work with, and prefer working with remote developers and teams, but every team I do go into an open office type environment I can certainly relate to those pain points.

3 : Microservices to Monolith

Finally is an article by the Segment engineering team describing how they followed the ‘done way’ of going down the microservice route, and then decided to reverse this, favouring a more monolithic approach instead. In the article, they present a good summary of the complexities and trade offs of each approach. For me, I find most people think micro services is the right design, regardless of their level of understanding as to what that really means, but also regardless of any understanding of the trade offs of different architectural approaches. Far to many teams I see go for what they think is a micro service, go about the design of that badly, and also go for an approach that is optimised to a completely different way of working than the team actually desires.

So, that’s it for this week.

If you have any articles, announcements, tutorials, or anything else you think should be included next week, then just drop me an email.

Weekly developer news – July 6th 2018

So, welcome to the next edition of developer news, the place where I try to narrow down the week’s tech news to the top few items that I think are worth checking out if you are like me, a professional software developing striving to improve.

1 : React Native – a retrospective

First up, is another React Native related post, this time by the Udacity engineering department. They describe how they are no longer using React Native, and go into good detail about the motivations why, from both a technical, but also non technical, more team oriented perspective. The write up looks very much like a retrospective and does illustrate the different team dynamics and difference in opinions amongst their teams, so is well worth a read in my opinion.

2 : BBC News on HTTPS

Next is an article by the BBC news team discussing their migration of the news site from HTTP to HTTPS. This is a process that took much longer than most developers would probably assume. For that reason, I think it’s worth reading to help acknowledge the complexity that is often necessary in big systems, especially those that have been running for a long time.

3 : Speaking in code

Finally is an article on nature.com describing developments in tools that provide the ability to program using voice alone. Whilst obviously essential for some developers, it’s also interesting to see the development of voice interfaces in general, and I would love to see more modern development tooling take advantage of the richer interfaces that are available to us, most likely in hybrid form, for greatest advantage.

So, that’s it for this week.

If you have any articles, announcements, tutorials, or anything else you think should be included next week, then just drop me an email.

Weekly developer news – June 29th 2018

So, welcome to the next edition of developer news, the place where I try to narrow down the week’s tech news to the top few items that I think are worth checking out if you are like me, a professional software developing striving to improve.

1 : GitLab moving from Azure to Google Cloud

First up, is a blog post from GitLab describing how they are moving their infrastructure from Azure to Google Cloud. I guess it’s not entirely surprising given the Microsoft GitHub acquisition, but they describe their primary motivation as being related to performance and reliability.

In any case, whatever the motivations, their blog post provides a good description of the differences between the platforms, as well as describes how they plan to go about infrastructure migration in a seamless way. It’s good to see how they rehearse this failover, learn lessons, fix, and repeat. This is a practice I am really keen on, and would love to see more organisations take seriously.

2 : Reusable serverless nanoservices

and other buzzwords! ok, so this next post is one by the BBC’s engineering team describing a re-architecture of one of their Newsround site. It goes into good detail about their new and old tech stack and motivations for their design decisions. Whilst I am wary of such buzzwords, it’s good to see a discussion around stateful vs stateless service design at scale, what that can look like, and what engineering benefits it could bring..

3 : Extracting Super Mario Levels

Finally because I can’t resist a bit of reverse engineering especially where computer games are concerned, here’s a post describing someone working on extracting Super Mario Brothers Levels using Python. Again, the technical details of both the level data as well as the approach to reverse engineering are interesting.

I believe understanding legacy code is a skill that more developers should be encouraged to work on, and find games provide a more fun way of working on that skill. I’m actually working with someone on producing more content around that area, but we have some other material to get through first before we get to that!

So, that’s it for this week.

If you have any articles, announcements, tutorials, or anything else you think should be included next week, then just drop me an email.

Weekly developer news – June 22nd 2018

So, welcome to the next edition of developer news, the place where I try to narrow down the week’s tech news to the top few items that I think are worth checking out if you are like me, a professional software developing striving to improve.

1 : Machine Learning Technical Debt

First up, is a publication by Google AI titled Machine Learning: The High Interest Credit Card of Technical Debt. This in an interesting paper that discusses how technical debt can manifest itself in a machine learning implementation. It goes on to discuss various risk factors as well as design patterns that can be followed to reduce risk in these areas. As someone who helps teams address technical debt day to day, I find this an interesting read to see how this relates to a field that seems to be evolving and gaining popularity relatively rapidly right now.

2 : React Native (no longer) at Airbnb

Next, a React Native post from Airbnb’s engineering team.  They went all in on React Native two years ago, and have since moved away from it. This post is a multi part series describing in good detail their experience with React Native. The good parts, and the bad parts. As with anything in the development world, it’s often not about saying this tool isn’t suitable, it’s about looking at what scenarios it could be used, where it might not be appropriate etc. Many of the principles and good points from their experiences have been carried across to their new platform, so now matter what your tech stack looks like, this is worth a read.

3 : MySQL at GitHub

Finally for this week is another post by a big company’s engineering team. This time, by GitHub, posting on how they use MySQL in an environment where high availability is essential. There’s some technical detail here about system configuration, but also some interesting points regarding monitoring and tooling. Even if you aren’t operating at this scale, there are points here that many organisations could benefit from adopting.

So, that’s it for this week.

If you have any articles, announcements, tutorials, or anything else you think should be included next week, then just drop me an email.

Weekly developer news – June 15th 2018

So, welcome to the next edition of developer news, the place where I try to narrow down the week’s tech news to the top few items that I think are worth checking out if you are like me, a professional software developing striving to improve.

1 : React Native Rearchitecture

First up, is a blog post by the Facebook engineering team titled State of React Native 2018. In this post they cover in a lot of detail the initial principles that informed many of the design decisions in React Native as it is now. React Native is now 5 years old, any there have been many developments in technologies since then, and many lessons learned.

In this post, they announced that they are now “working on a large-scale rearchitecture of React Native to make the framework more flexible and integrate better with native infrastructure in hybrid JavaScript/native apps”.

For me, it will be interesting to monitor this to see whether React Native could be introduced to more of my mobile projects.

2 : Twitter meets TensorFlow

Next, another post from a large tech company. This time Twitter on their engineering blog describing their machine learning platform, how it has moved on from early Lua based versions, and how they are now looking to move everything over to TensorFlow. The blog post proves a good insight into their machine learning platform, it’s capabilities and what is involved in operating at that level of scale, and highlights the importance of having tooling that supports their day to day development and operations..

3 : Reverse engineering Animal Crossing

Finally for this week is a post by James Chambers describing how he went about reverse engineering Animal Crossing’s developer mode. In the past, I have done a little reverse engineering, but not a lot. I always find these walkthroughs interesting and worth reading, as it highlights how even when knowing nothing at all about the code being debugged, if we work at trying to understand the behaviour, we can still reverse engineer it and understand how it works.

I also really like the idea of using games as a development learning tool. They can provide a fun and rewarding way of working on complex software engineering problems.

So, that’s it for this week.

If you have any articles, announcements, tutorials, or anything else you think should be included next week, then just drop me an email.

Weekly developer news – June 8th 2018

So, welcome to the next edition of developer news, the place where I try to narrow down the week’s tech news to the top few items that I think are worth checking out if you are like me, a professional software developing striving to improve.

Sorry there wasn’t an update last week, but it was a combination of not that much to report on, plus being busy working on some new TDD training material. I ran an in person workshop focusing on TDD, test approach and worked through some really good test refactoring on some real world tests, looking at how to best make use of test doubles to avoid brittle unit tests.

I’ll be releasing some more content relating to that over the coming weeks, but for now, here’s the summary of this week’s dev news that I think is worth checking out

1 : Apple WWDC summary

First up, something that probably hasn’t totally passed you by is Apple’s annual developer conference where they like to announce their new OS / SDK and other related changes.

There’s a good summary on the next web which lists all of the main updates. The 3 areas I was most interested in are the upcoming iOS 12 changes, macOS Mojave changes, and also their work on iTunes Connect which is now being rebranded as App Store Connect. I just hope that the improvements here make it easier to work with apps during development and rollout to production.

2 : Microsoft Acquiring GitHub

Next, another massive item from this week is Microsoft’s announcement that they are in the process of acquiring GitHub. There’s also a GitHub post on their blog too announcing the same.

There is a real mix of reactions to this news online in social media and various forums, mostly positive, but saying they will jump ship.

There’s also a Reddit AMA with the future CEO of GitHub that’s worth reading through.

For me, having watched massive improvements from Microsoft recently in terms of the free and open source software they provide to developers, especially Visual Studio Code, I’ll be really interested to see what developments come out of this.

3 : State of Developer Ecosystem 2018 results

Finally for this week is a writeup of the results of the JetBrains State of Developer Ecosystem 2018 survey. It has a number of interesting insights into language trends, and yes, there probably is a bias on their reporting based on their own products, and also in terms of the types of developers that they surveyed, but it’s interesting nonetheless to see some of the trends there.

So, that’s it for this week.

If you have any articles, announcements, tutorials, or anything else you think should be included next week, then just drop me an email.

Weekly developer news – May 18th 2018

So, welcome to the next edition of developer news, the place where I try to narrow down the week’s tech news to the top few items that I think are worth checking out if you are like me, a professional software developing striving to improve.

Here are the top items from this week that I think are worth taking a look at.

1 : Psychology of Code Readability

First up is a medium article offering a perspective on the psychology of code readability. I’m a big believer in reading code and producing readable code. I think that both are hard, and both are not something we do enough of, so any insight that can help improve this is certainly welcome.

2 : Ron Jeffries on Agile

Next, is a blog post by Ron Jeffries titled Developers Should Abandon Agile. This is the big A kind of Agile. The named thing, be it Scrum, or something else, that people cling on to, looking to avoid the hard work and be told what to do without a care for the principles of agile. I think it’s worth reading this article, and thinking about the principles you bring to software development.

3 : Stuxnet in detail

Finally for this week is a Quora answer by John Byrd to the question ‘What is the most sophisticated piece of software ever written?’. His answer is a detailed look at the behaviour of the Stuxnet worm and how it operates. And, he is right, it is a very very sophisticated piece of software.

So, that’s it for this week.

If you have any articles, announcements, tutorials, or anything else you think should be included next week, then just drop me an email.

Weekly developer news – May 11th 2018

So, welcome to the next edition of developer news, the place where I try to narrow down the week’s tech news to the top few items that I think are worth checking out if you are like me, a professional software developing striving to improve.

Here are the top items from this week that I think are worth taking a look at.

1 : JavaScript functions in Excel

First up is an announcement from Microsoft’s Build event. They announced that JavaScript functions are coming to Excel. They have also added support for their machine learning infrastructure, aiming to take everyone’s favourite spreadsheet, and add a whole lot more power in terms of data manipulation, presentation and forecasting. As a developer I can imagine being able to provide some pretty decent tools to my clients that are wanting more from their data, but are familiar and used to using Excel.

2 : Live Share in Visual Studio

Next, is another Microsoft related announcement, but this time from their Visual Studio team where they have announced a feature named Live Share. This is a new feature that is available now in Visual Studio and the free and very popular (my go-to editor for quite a while now) Visual Studio Code.

This feature adds the ability for developers to live-code together using their own Visual Studio instances. This is massively more powerful than a screen share, and even extends to sharing the same debugging session, allowing developers to collaboratively debug, set breakpoints, view logs etc together in real time. It supports all major languages, including C#, Python, Java, Go and C++.

I have looked at many editors, IDEs, and plugins in the past that have promised this, and loved using them, but never found them to be stable enough, or feature rich enough to be truly useful and dependable when working with remote teams.

I am really looking forward to giving this a go soon with some of my offshore team.

3 : CPU Security Flaws

Finally for this week is a report on the latest wave of Spectre-like vulnerabilities and Intel reporting that fixes to these will likely not be available for many months, in the second half of this year.

I don’t think this directly affects most developers, but I hope this does highlight the security related pressures that our systems come under now. Some clients I work with are still deploying on outdated, even end of life operating systems, runtimes, frameworks and packages.

So, that’s it for this week.

If you have any articles, announcements, tutorials, or anything else you think should be included next week, then just drop me an email.