Simon Willison’s Weblog

Subscribe

48 items tagged “softwareengineering”

2013

How should people organise software developer focused conferences in order that they achieve socially acceptable representation across relevant demographics (eg gender, ethnicity) in terms of speakers and attendees?

No one wants to feel like they have only been invited to speak because of their gender/other demographic factors, especially since they risk losing some the respect of the audience if there is a feeling that they weren’t invited purely for their expertise.

[... 309 words]

2012

What are good ways to develop software architectures using multiple languages?

There are a bunch of options for communicating between different languages, but these days the simplest is definitely JSON—it maps directly to common data structures in PHP, Python, Ruby and so on. Treat it as your common interchange format and you can’t go far wrong. It’s very easy to build simple internal web services on top of JSON.

[... 109 words]

What are the best practices for onboarding new software engineers?

I’m a huge fan of “deploy on the first day”—which forces the issue in getting all of their accounts set up, their development environment ready, showing them where source control is, how code review works and so on. Even if it’s just adding themselves to the about page or humans.txt file, it means they can come in on day two ready to get real work done.

[... 106 words]

To become a better developer ? To read more OR to create/contribute to open source projects?

Contribute to an existing project, rather than starting one yourself. There are a bunch of benefits:

[... 231 words]

What communities and interest groups in London should software developers get involved in?

The monthly Hacker News London Meetup Group (held near Old Street) is a great opportunity to meet up with entrepreneurial-minded hackers—the talks are usually a good combination of technical and startup/entrepreneur material, and it attracts a really interesting crowd.

[... 61 words]

Did Mark Zuckerberg have any knowledge on building scalable social networks prior to starting work on Facebook?

I’m going to bet he didn’t have this knowledge, simply because back when he launched Facebook in 2004 almost NO ONE had this knowledge—there simply weren’t enough “web scale” products around for the patterns needed to run them to be widely discussed.

[... 143 words]

Why do tech companies provide MacBooks for software development?

Smart tech companies give their engineers the laptops that they ask for. Engineers are EXPENSIVE, and anything you can do to increase their productivity is worth the money. If they prefer to work on a Mac, buy them a Mac.

[... 55 words]

How can a new developer get involved in open-source projects?

I was going to say the same thing. Find a useful project in GitHub (preferably one that clearly has an active maintainer), fork it, fix a bug (look at the project’s issue tracker) then make a pull request.

[... 80 words]

Which web frameworks should I focus on to make myself the most well rounded and to be able to solve the most problems as a web application developer/architect?

Being an expert web developer isn’t about which framework you know, it’s about the fundamentals. It’s important that you know how the tools you are using work, so you can fix things when they break—Joel Spolsky’s law of leaky abstractions is a great essay about this: http://www.joelonsoftware.com/ar...

[... 260 words]

How does Linkedin use Node.js?

They use it for the backed for their mobile app. Here’s an article with more information: http://venturebeat.com/2011/08/1...

[... 29 words]

2011

What’s the difference between a software engineer, developer and programmer?

Absolutely nothing. Job title differences like those only really matter when working for a large organisation that sets compensation based on title—in which case you want to figure out which title gets you the best deal at that particular company.

[... 58 words]

Are there any Meta APIs?

Embed.ly is a good example of this kind of API—it gives you one endpoint which wraps oembed APIs on dozens of other services (plus a bunch of custom scraping code). We use it as part of our video/slide embedding feature on http://lanyrd.com/

[... 57 words]

2010

What are the main weaknesses of Ruby as a programming language?

Ruby still has a cultural tendency towards monkey-patching, aka action-at-a-distance. There are plenty of gems which modify existing classes—sometimes in ways that can break working code.

[... 45 words]

Why is software effort estimation still based on thumb rules and gut feels? How come no one has come up with an accurate estimation model?

For a truly accurate estimation, you need to have built the software before. If you’ve built it before, why are you building it again?

[... 55 words]

What is a painless way for a non-Unix programmer to get started learning Unix or GNU/Linux?

I’d suggest getting yourself an Ubuntu virtual machine running on your own laptop—VirtualBox is free, so that’s a good starting point. That way you can play with Linux all you like without fear of breaking anything, since you can always delete the image or roll back to a snapshot.

[... 73 words]

Is it important for modern programmers to know how to use Unix? Why?

I’d say yes. If you do any kind of server-side development, Linux/Unix etc UNIX (links to: /topic/Unix), etc., is where most of the exciting innovation is happening. Tools like HadoopApache Hadoop (links to: /topic/Apache-Hadoop), RedisRedis (links to: /topic/Redis), MongoDBMongoDB (links to: /topic/MongoDB), nginxnginx (links to: /topic/nginx), git etc Git (links to: /topic/Git-version-control-1), etc., all come from a Unix UNIX culture, and not knowing your way around a command line makes it much harder to get to grips with them.

[... 110 words]

Will Redis support per-database persistence configuration?

I don’t know if that’s on the roadmap (you’d need to ask antirez on the mailing list or Twitter), but it should be easy enough to run multiple Redis instances with different settings—especially on a multi core machine.

[... 52 words]

2009

Bits of Evidence (via) A slide deck from Greg Wilson: “What we actually know about software development, and why we believe it’s true”. # 25th October 2009, 12:13 pm