MY GOAL: Make a 40% board viable and hopefully intuitive for software developers (aka - Me)...Here is what I have come up with so far.  Note: Top print is the default layer, bottom print is 'shift' layer...
Standard layer... Function layer...
Function layer... My considerations:
My considerations:- I added support for Ins, Del, Return and Caps in the standard layer.
- I dramatically changed the way the function layer worked.
- Function row should not take up 12 keys.  I tend to use the function keys in groups, so I created groups of 3 for them.
- I moved the numbers and their symbols to a numpad style and added things near the pad that would be often used with numbers: . + - * / Enter
- I added Ctrl support in the function layer because I often use things like 'Ctrl + [' and 'Ctrl +]' for indenting and such in text editors (also commenting blocks and such)
- I tend to use two hands for brackets and braces anyway, so I created bracket and braces group in the middle of the keyboard.
- I tried to keep the keys like: ' " : ; = + - _ \ ? / | closer to where they are in my muscle memory.  
- I added support for Pg Up and Pg Dn
- 
Edit: I intentionally did not add a 'Fn + Shift' layer for 'up, down, left, right, home, end' because I use those as selection modification.
As a side note.  I did two color keycaps because that is how I would probably build this for myself.  If I am using blank keycaps, I would want some points of reference.  This is just my preference...  
Last but not least...  Here are links for you to build your own 40 layouts...
Standard LayerFunction Layer