While I’ve been consulting independently for slightly more than a year, I’ve been doing so under the Palatino Consulting banner for exactly one year, this week.
It’s been going pretty well, thanks for asking.
I’m at the point now where I’m starting to think about whether or not I want to expand this business to include more than just me. The opportunity is there (and has been since day one, to be honest), I’m just not sure if that’s the way I want to go. I like my simple life right now, but I do miss having a team to work with so I’m tempted to start to expand. Maybe, like the founding of the business itself, I’ll be forced into a decision one way or another by some circumstance. At least in this case it will be positive (some opportunity I can’t pass up) rather than negative (getting laid off.)
The one downside to the success is that I’ve had a hard time finding time to write . Which is fine on a lot of levels as I like what I’m doing and working for myself makes even the longest week a lot more satisfying. This is especially true because, unlike many people putting in 60 hour weeks, I get paid for every minute of my time.
Fireworks by Flickr user maf04
Still, I’d like to share more here as a lot of what I talk about in the book is still going strong, but I’ve found it hard to get into the flow of writing again after 3 or so years writing books back-to-back. We’ll see how it goes. I may try to take some baby steps with short pieces and see if the habit sticks.
Landing your dream job isn't just down to perfecting your – you also need to present yourself the right way in your interview. I have been in the room for a lot of tech interviews, and on the way, I have picked up a few tips for designers and developers looking to land a new job. Read on to find out my advice.
01. Dress like them
Don’t show up to an interview for a tech job wearing a suit. Unless perhaps if you are interviewing to be the CFO, but probably not even then. I don’t know any companies where designers or developers wear suits. It makes you look out of place, and that is the opposite of your mission – your goal is to convince them you belong there.
45 brilliant design portfolios to inspire you
How should you dress? Like them! This is easy if you have a chance to visit the workplace in advance. If that is not an option, look at the photos on the company’s website and learn what you can from its About us page. Many team photos are taken in the office, during a work day. If they have a blog, you will almost certainly find photos from events that give you a sense of what the dress code is like, if there is one at all.
When in doubt, just wear whatever clothes you would normally wear when you want to look ‘nice’ but still feel comfortable and natural. Don’t buy brand new shoes that will hurt your feet, or wear itchy new underpants.
02. Know what you're walking into
Some companies conduct really casual interviews over coffee. Others have a very formal process with multiple sections. Some companies will ask you to do a sample project, or present an example of your work. In order to feel confident, it really helps to know what you should prepare for. So when you are invited to the interview, it is perfectly reasonable for you to ask about the company’s process.
Be respectful of their time (hiring is very time-consuming) and don’t ask so many questions that you seem desperate or paranoid. But feel entirely justified in requesting the following facts:
Who are you meeting with?
Which position are you being considered for (seriously, this happens a lot)?
Are there any tests or evaluations that you’ll be asked to perform?
Where does this interview fit within the overall hiring process?
03. Ask questions
At some point in the interview you’ll be asked if you have any questions. ‘No’ is the wrong answer. Having zero questions makes you seem disinterested and clueless. When I am the interviewer I learn as much about a candidate from what they ask me as what I ask them. I’m much more likely to hire a candidate who asks smart questions about things that matter than someone who just wants to know how long lunch is.
The questions you decide to ask the interviewer are your chance to talk about anything you want to. You might take this chance to (subtly) demonstrate your familiarity with the company, or mention something you want them to know about you. At the very least, it’s an opportunity to show what kinds of things you are interested in. Don’t waste it!
04. Don't panic about tests
Some companies ask candidates to do puzzles or tests. I have never used these as an interviewer because they tend to make candidates anxious, and at best they demonstrate how someone works when they are nervous and uncomfortable. Hopefully this does not strongly resemble what it will be like to work at that company.
Knowing this won’t necessarily get you out of doing them, but hopefully you can relax a bit in the knowledge that the interviewer’s attempt to test you has actually revealed something silly about them. Remember, you can learn a lot about an organisation from their hiring process.
For an entry level job, it’s probably safer not to point out that you know their hiring process is flawed, but you can use this knowledge to your advantage by not getting fooled into thinking it matters how quickly you solve the puzzle. So stay calm. By simply not panicking you demonstrate you are smart and confident enough to know that solving a silly brain teaser does not indicate how intelligent you are.
I recommend thinking out loud and asking plenty of ‘meta’ questions. For example, if you are asked how to calculate the total number of ketchup bottles in North America, ask what the figure will be used for and explain that the goal affects the accuracy requirements, which will dictate your methodology. If you are asked how to move Mount Fuji, ask ‘How far?’ (after all, it is already in motion). This helps shift the focus away from whether you get the ‘correct’ answer (if there is one) and more towards your process for solving problems.
05. Pretend it's your first day
An interviewer’s job is not only to find someone with the skills to perform the work, but also who enhances the existing team. If there are dogs in the office and you are a dog lover, pet them (without being annoying). If a designer is using a special pen you love, compliment it and if a conversation strikes up, don’t forget to introduce yourself.
If a technical question arises and the interviewer pulls in one of the current engineers to help answer it, welcome the situation as if you are already colleagues. Seize every opportunity to interact in ways that demonstrate your ability to do the work and be part of the team, even if it’s only for a minute or two.
Do not try to prove that you are better than the existing employees. You are not competing with them for the job, and it will make them dislike you. A smart boss will be more impressed by your ability to empower others than to upstage them.
06. Know what they do
If you are interviewing at a design agency that has one or two long-term clients, know who they are and what they do. This is a good idea for a number of reasons. It helps to show that you ‘get it’. You don’t want them to start telling you about something important, and be forced to interrupt them to ask who they are talking about.
If you are interviewing with a startup, download their app and spend some time learning how it works. If there are features or design decisions you don’t understand, or if you have ideas on how you could improve something, these are great questions to ask (politely) when it’s your turn. Just make sure you are also respectful and complimentary.
07. Be on time
Do I really need to explain this? If you are hired, most jobs will expect you to get to work on time, so demonstrate you are good at that. Know in advance where you’re going and how long it takes to get there so you arrive with extra time.
Don’t show up for the interview super-early. That’s awkward. Find a coffee shop or somewhere comfortable nearby to relax, then arrive five or 10 minutes before your appointment.
08. Interview a lot
Practice makes perfect, and the more you interview the more comfortable you will feel. So do it a lot – not just when you desperately need a job. At this point in my career, I genuinely enjoy going to interviews. I don’t get anxious because I know that if the interview is unpleasant, working there probably would be, too.
I also like seeing how others teams work, and I treat it as a chance to meet interesting people and expand my professional network. This is important because it lets me focus more on the process and less on the outcome. Even if nothing comes of it initially, I don’t consider it a failure. There have been many instances when I have worked with someone long after the interview, on a completely different project. So stay positive (even if you think it is going poorly) and have fun.
This article was originally published in net magazine issue 288. Buy it here.
MathBox.js starts with a library of WebGL shaders that must be loaded. It makes use of another library called ShaderGraph.js, which takes the source code for multiple shaders, partially parses them, and combines them together into a single output shader. This enables you to have shader components that can be reused in various configurations.
Once everything is loaded, it’s your job as a user of the library to define what you want to be displayed. As mentioned above, you do this using a variety of library methods to define the viewport, camera, and objects that appear in a scene such as axes, grids, vectors, curves, and surfaces. You can even enable user interaction to rotate the camera using your mouse.
There are a variety of demos available for you to check out, and more linked to from the Github page. Make sure to view them in a WebGL compatible browser (anything but IE and Safari unless you’ve enabled it these days). As you can see, the rendering and animation is super smooth, and if you view source, it seems incredibly simple to use given the output you get.
There is an excellent article about the inspiration and process behind MathBox including a video of a talk from the Full Frontal conference that you should check out, as well as the code on Github. It’s exciting to see WebGL taking shape and enabling functionality on the web previously reserved for native applications. If you ever need to render high quality 3d math visualizations on the web, MathBox.js seems to be the place to go!
There’s a very small but surprisingly significant (and even more surprisingly
frequent) issue I spot a lot in other peoples’ code, either when working
directly with it, refactoring it, or auditing it: the use of shorthand syntax in
Typically we would view shorthand syntax as a benefit: fewer keystrokes, fewer
lines of code, less data over the wire. Sounds great! However, it comes with a
rather troublesome side effect: it often unsets other properties that we never
intended to modify.
When we write something like:
…we’re likely to get a red background colour applied to our button. But what
we’re really saying is this:
Simply by using the shorter syntax, we have implicitly decided that we want no
image to start top-left, repeat x and y, to scroll with
the element, and so on…
Nearly every problem, bug, or regression in CSS at scale is happens because we
did too much too soon, and further down the line we’re being affected by that.
What this basically comes down to is the fact that, with CSS, you should only
ever do as little as you need to do and nothing more.
Misusing shorthand syntax is a surefire way to do too much too soon, as thus it
should be avoided. CSS is a lot harder to undo than it is to do.
In this example, what we really wanted to say was this:
Here we’ve done exactly what we needed to do, and absolutely nothing else.
One such example I encountered on a client project earlier this year looked a
little like this:
The developer had—understandably—used a gradient syntax generator to create
their rather complex radial gradient, but they found that things weren’t
rendering correctly at all. Their gradient syntax was correct, autoprefixer was
working just fine, but for some reason their page looked really, really broken.
They couldn’t work out at all what was going wrong, to the extent that an issue
was raised which simply said ‘Get Harry to look at the gradients’. Enough years
of experience told me instinctively what to look for, and sure enough, I found
it: hidden away in the Sass for generating gradients was the background
This is a problem commonly found in gradient generators, so:
go and update your own gradient generators right now;
submit pull requests to projects that you know to be using shorthand syntax;
double check your copy/pasted syntax that you get from online generators.
The background example is just one of many instances in which we shouldn’t be
using shorthand. Another very common use-case is vertical centring using margin: 0 auto;:
margin: 0 auto;
The problem here is that in order to use shorthand to define auto only
once—but use it on both the left and right—we had to make a decision about top
and bottom as well. That was a decision we shouldn’t have made, because now
we’re explicitly removing any top or bottom margins that may have been
intentionally introduced elsewhere.
If all you want to do is centre a div, then don’t mention anything to do with
its top and bottom edges. Favour the longhand version:
Run a quick grep over your CSS project for the string 0 auto right now and
see what you find.
So far we’ve looked at the problem with inadvertently unsetting other
properties, but there is a scenario in which shorthand would be okay. Take for
Here we aren’t inadvertently unsetting anything because we do want all four
sides to carry 10px padding. Here, shorthand makes complete sense. Also:
padding: 12px 24px;
margin: 12px 17px 16px 10px;
Here—although I’d question the use of magic
are still explicitly setting all four sides, so, again, this use of shorthand
would still be okay.
The key thing to remember is that shorthand is bad when it’s affecting
properties that you don’t actually need to modify.
This kind of action—the inadvertent unsetting of other properties—is
particularly problematic in modular and composable systems, where many different
classes may be used in conjunction with one another to form more complex
composites. Units of code that cannot be combined without collision or conflict
are said to lack orthogonality, an important principle in the design of
Always favour the longhand. It might be more keystrokes, it might be more
repetitive, it might be less DRY, but it’s more accurate.
Only write as much as you need and not a single bit more. Most CSS issues
are caused by applying things too broadly; avoid it.
Thanks to Microsoft’s radical redesign of Windows 10, you may not recognize much of the classic operating system’s UI anymore. That’s because the company has decided to go in a new direction, cleaning up the software’s interface for a more minimalist approach.
According to a recent tweet by Tom Hounsell, a Microsoft enthusiast and the developer behind BuildFeed—the Windows build tracker—the redesign removes a few of the classic features of Windows that users are familiar with and replaces them with significant changes, mainly to the open windows and taskbar areas.
For anyone who cares, here’s the full concept image that was in the background of #Microsoft‘s “Sneak Peak” of #Windows10 #ProjectNEON pic.twitter.com/I3cIlZfX0k
— Tom Hounsell (@tomhounsell) February 9, 2017
It seems that design elements like the title bar and windows borders—mainstays of Microsoft UIs—have fallen out of favor in this latest update. The screen grab by Hounsell shows that Microsoft is dropping both for Windows 10. As for the well-known close, maximize, minimize, and restore buttons, they’ve been fused into the window itself, so any content goes straight to the edge. Overall, this makes for a crisper and simpler appearance that removes any hints of frills and gimmicks in the design.
The taskbar gets a blander look, as it appears to lose color in this iteration.
As for the app icons themselves—something really interesting is going on with them, color-wise. While they’re going to automatically show up black, they’ll return to their ‘regular’ colors when each app is up and running in the OS.
Also of note is the so-called “Acrylic” element that’s actually not as new as the other design changes in this update. This component is essentially just a new approach to the old “Aero,” which was around during the Vista era; it blurred background apps and interface elements.
While the approach is doubtlessly more modern, questions being raised include whether or not longtime Windows users are going to positively receive this new approach, as well as how easily said users will take to the new UI. Needless to say, it’s going to take some time to get used to, both from an aesthetic and functional sense.
Designers and users excited about this preview will have to wait just a bit longer in order to get their hands on a usable version of Windows 10 with this redesign. The company has plans to officially reveal this new appearance in a Windows 10 update later this year.
Project Neon, as this new redesign is internally known at Microsoft, is only the latest in a memorable history of disputable UI-design decisions at the company. Who could forget 2012’s foray into ultra-simple flat design with the Metro Tile unveiling? That radical redesign was the subject of some criticism, as traditional desktop users felt that it was awkward and hard to use while tablet and mobile users generally felt that it was better.
Only time will tell if the company’s Windows 10 design reboot will spark the same type of mixed reviews or will instead be received warmly by a broad base of users this time around.