I attended my first in-person conference for more than 3 years last week! NDC is one of the more well-known developer conferences in Australia and New Zealand. It's a 5 day conference with 3 days of talks and 2 days of workshops.
There's so much to learn across all the streams so I try to take notes for each of the talks to quickly reference them later. This post contains all my notes. I'll add the relevant videos to talks later if they're released.
A reminder that these notes are just my notes. They're paraphrased and summarised from what the speaker actually said. Each speakers would have provided must more clarity and went into more detail during their pressos!
Securing the future
Laura Bell - CEO of Safestack
- The tools and supply chain that we're building into all our products are getting very complex. The worst future attacks are likely to be through supply chain rather than direct.
- OWASP hasn't changed too much since 2001 considering how our tooling and processes have changed
- Mstic - Data relations and connection analysis software - https://github.com/microsoft/mstic
Mayday - Lessons from aviation disasters
Adele Carpenter - Engineer at Trifork Amsterdam
- Aviation can't afford mistakes especially repeated mistakes
- The root cause analysis they do is insane
- Open communication for the entire software development process is critical
Building inclusion into orgs
Sammy Herbert - Head of Dev Exp at SixPivot
I didn't take too many notes here because I was listening! Possibly the best talk of the first day!
- AFR "best places to work" is the best award to do if you're going to do one
- 18% of Australian sw engineers are women
- 50% of women leave engineering by 35
- Consider having readmes for people, list the important questions first!
- A big issue is glue work, Management (and teams)need to value glue work
Rocking as an azure architect
Adam Cogan - Chief Architect SSW
- Heavy use of diagrams - use the architecture center as a starting point - https://learn.microsoft.com/en-us/azure/architecture/
- There is a developer cli for setting up local env. Use it to save time.
- Use IaC - bicep - there's an extension for vs code and visual studio now.
- Be concious of cloud cost from the start - watch out for the login on the pricing calculator on azure, it's the weird link in the middle of the page
- Prepaying for a year saves 30%, 2 years could save 50%
- Setup cost analysis and alerts - billing menu > cost analysis - avoid "denial of wallet" attack. You must create budgets.
- Review the client's existing on prem cost using the TCO calculator - https://azure.microsoft.com/en-au/pricing/tco/calculator/
- Learning for anyone - Good pdf here: https://azure.microsoft.com/en-us/resources/whitepapers/developer-guide-to-azure/
- Must have someone actually responsible for the cloud architecture (not all the team, have someone accountable)
Delivering the worlds first flying car race
Dom Raniszewski - Principal Consultant at Telstra Purple
- Lesson 1 - you can't force your excitement on others
- Lesson 2 - you should give people space to deal with uncertainty
- Fixed and growth mindsets - https://fs.blog/carol-dweck-mindset/
- To deal with a very uncertain project you should at least instil and encourage these three traits in the team - courage, commitment and passion
Overdue: When Agile and DevOps meet real world deadlines
Brenton Race - CTO at Blueshift
- Steve Mconnell - more effective agile book - https://www.amazon.com/More-Effective-Agile-Roadmap-Software/dp/1733518215
- There are agile boundaries in your org - Agile likely stops at product development teams. VPs etc are not working in agile.
- "understand the context that you're in, and only apply principles that make sense in that context"
- Structure team(s) to maximise focus - reduce communication overhead - isolate issue types e.g. you can create shield teams (support team that protect the teams doing feature work) - Dar note: Seen this before, can lead to resentment
- Expect change, use it to readjust to maximise business value.
- Track and communicate progress to trigger change conversations as early as possible
- Clarify what you're being asked for - is the question "can you estimate this please?" or is it "can you come up with a plan to deliver an outcome by a certain date?"
- "set aside time for team and INDIVIDUALS to improve"
- software estimation book - steve mconnell - https://www.amazon.com.au/Software-Estimation-Demystifying-Developer-Practices-ebook/dp/B00JDMPOVQ
Next decade of software
Richard Campbell - Consultant, podcaster, author
- We're literally running out of physical atoms (physical space) to improve processing power , so we're going to have to get more efficient.
- It hasn't been an issue for developers for a while, but with the way the economy is going developers should make sure that they understand how their company makes money, and if the role they are doing is helping that. If you're on a project that doesn't affect revenue, change your job or your company.
- You can probably bet on the browser lasting as a secure runtime environment. Most people trust it, the tools are getting better. WASM opens the browser as a runtime to all languages.
- Rapid application development tools (Nocode and low-code) will enable subject matter experts to create software. This is a fantastic outcome. We will have to write software to allow these types of apps to integrate with our and other apps.
- AI will become more ubiquitous and will enhance our tooling. It probably wont replace us, but will allow us to provide more value to customers
- The always with you compute device (phone) has clearly won, we are cyborgs but it's an external augmentation. it's likely that AR will enhance or replace this. There are devices out there but they're not in consumer space yet. Hololens costs USD $3500 and around $1000 / month in IoT costs. If you compare this to blackberry's in 1999 it's a similar trajectory where blackberrys and their portable email were "industrial" or business-only devices, not consumer.
The Visible Developer: Why You Shouldn't Blend In
Heather Downing - Principal Dev Advocate at Okta
- Figure out what you want from the career
- Do things and tell people - help people outside of your team or job - write the things you do down somewhere so that you remember at the performance review type thing you do in your company.
- Working hard and doing a good a job in your current job is insufficient
- Externalise you thought leadership - You should share your knowledge outside of you organisation. Leading by example externally demonstrates your ability (internally also!).
- You should network! - Give first to as many people as you can. We're a big-small industry.
- Network in person, "your network is your net-worth".
- Be your honest self on social media - it's ok to share some frustrations and things - it makes you relatable. "Post with purpose" - before posting social media think "what purpose does this provide" - "what will this do for my personal brand" e.g. if you're super interested in a topic you should post about it!
- Speak like a human :D - e.g. don't always shit-post - "is this a better topic for your therapist or the internet?"
- Be moderately responsive - to grow a personal brand you do need to respond occasionally
- If you're not online, you're out of sight
- Visibility is good but consistency is great - post regularly, schedule posts if you can
- make sure you have a dedicated website dedicated to your works - if you don't like designing hire someone who can! Wix or squarespace is better because you can just pay and let a good designer work directly on it.
- Attitude matters - skills can be taught but attitude can't. Life isn't "fair". Some things are out of your control.
Habits of well known developers ....
- They pay attention to what others value, identify the goals of the people around you in the organisation. Show interest, learn about that, go above your paygrade, ask questions above your paygrade, how does your company make money! Take action on an important thing without being asked first.
- Choose the right place for YOUR values. "If your friend / child / anyone you care about were looking for a job, would you recommend where you currently work to them?". if not, why are you there?
- Well known devs focus on the big picture - is what you're working on important?
- They are comfortable being uncomfortable - you have to be able to work on things that are new to you or stretching your capabilities. if you're not deliberately stretching your capabilities you might get stuck in a rut.
- They like their colleagues. Even the jerks in the company. They go out of their way to put the human first, if you don't like someone build trust anyway. Everyone needs to feel valued, even the jerks. "Empathy is being concerned about the human, not just their output". Figure out why the jerk says what they say and does what they do
- The know how to become a trusted voice? Questions and listen. speak little, listen much and apply what you hear. Be positive and respectful.
Why the web is this way
Steve Sanderson - Chief Architect at Microsoft
This was a great history of web dev langs, browsers, frameworks. I didn't take notes because I'm old enough to have used everything he showed 👴.
It was a really cool presentation in that he actually ran some old development tools and built things on the fly. Worth a watch!
Building Credibility with crowd natives
Shane Baldacchino - Chief Architect at Microsoft
- What are cloud native orgs? - they move fast, they fail fast, they know their stuff (hence the high salaries)
- They use data and output to feed innovation - Challenger Vs Champion for models - https://www.ibm.com/docs/es/sc-and-ds/8.0.0?topic=steps-champion-challenger-overview
- Architectures are always changing - At the moment the landscape is changing faster than it ever has before. Being able to iterate and change is the only way to stay competitive.
- (Stack overflow dev survey 2022) 62% of developers are in the industry 9 years or less. They don't care about VMs. They don't care about DNS, memory etc. They just want an endpoint and they want the cloud to handle the rest.
- Everything is becoming full stack
- Open source is the present and the future.
- Architectures you have to be across: search indexes (lucerne), event streaming, event driven architecture
- Use a workflow management platform for stateful micro services - e.g. apache airflow
- Machine learning - Know it, or at least understand the difference between training and inference
- L7 routing is the new norm - short lived compute, ephemeral ports, we can't have traditional networking. envoy, istio, sidecars, service discovery.
- "Culture eats tech choices for breakfast" - conway's law, crazy company = crazy code. centralized command and control wont work any more - centralised operations is not conducive to speed. centralised operations increases business risk. centralised operations encourages a hero mentality.
- if you have complex systems things will fail and they will fail differently all the time. Decentralise the operations of technology and bring it closer to the creators (and make them accountable for running their environment, and the cost of their environment)
- no change freezes - it's a sign of immaturity, deploying more frequently reduces risk. Your best competitors do not stop releasing.
How to say no (and still influence people)
Sasha Hilton - National Head of Digital at Telstra Purple
The context - you get an unwelcome request
Common concerns about saying no
- people think I'm lazy, people think I'm incompetent, someone gets upset, the requester has more power than me, could i get fired?
- conflict avoidance
- power imbalances - there are real and imagined power imbalances, but if you feel like there is one, it will affect you anyway.
Benefits of saying no
- your time is precious, learning is a gift you can give to other people (by not doing the work yourself), you're reducing the risk of burnout
How to get better
- Read Never Split the Difference - Chris Voss for expert tactics - https://www.amazon.com/Never-Split-Difference-Negotiating-Depended/dp/0062407805
- Build trust, ask questions, build rapport, negotiate.
- be pre-emptive about saying no e.g. use a contract.
- set boundaries - have a mantra ("turning the ring" ) , keep a resentment channel for yourself - write down what makes you resentful.
- practice saying no, get used to saying it.
- Fawning - fight, flight, freeze and ... fawn - the please and appease response
- Ways to create calm - (mindfulness helps) notice the feeling, label it
- engage your physical sense "3 things you can see, 2 things you can touch, 1 thing you can smell"
- engage you pre-frontal cortex, count backwards from 1013 * 12 or something that makes you think
- engage your motor cortex - wiggle your toes, write some thing down
- parents have some creative ways of saying no - park things in the future, blame it on a higher power, empathise but ignore request
- "that's just not possible"
- "let me know if i should reshuffle priorities"
- "i'm not comfortable with that sorry"
- "as a rule, i don't...."
- "sorry ths isn't the answer you're looking for"
- "i can't right now but i could next month/after the project"
Empowering Minds of All Kinds: Neurodiversity in Tech
The proposed stats around things like autism and aspergers should be thought of as a minimum because there is so much under-diagnosis, especially among older folks that wouldn't even think about different being a condition (or don' ask, don't tell)
- ally is a verb not a noun
- some people will never want to tell you their condition, people are are afraid of judgement
- Have areas of low light
- Have areas in co-working spaces that are slightly separated or blocked off
- have quieter spaces
- allow use of headphones or ear muffs
- be flexible around preferred work areas
- give the option to provide written or verbal instructions
- give detailed instructions if desired
- adjust job design to remove tasks people struggle with
- adjust recruitment e.g. "do you want me to leave you alone for 5 mins so you can do this task"
- have policies and discussions
- microsoft had specific recruitment strategy since 2016
- you can't decide who innovation comes from
The Art of Effective Feedback
Marcus Bristol - Engineering Manager at PushPay
- Book - "Thanks for the feedback" - Douglas Stone and Sheila Heen - https://www.amazon.com/Thanks-Feedback-Science-Receiving-Well/dp/0143127136
- feedback is a core ingredient for satisfaction in life
Three common types
- Tell and sell - "sports and coaching"
- Tell and listen - "this is what i've been seeing, why it's not , tell me about it"
- Problem solving - "coaching, steer the convo but let the person figure it out"
- You have to care, and show it!
- Evaluate behaviours, not the person
- Everyone is different so adjust feedback and mechanism to the person
- Understand motivations
- Listen and empathise
- Give positive feedback / positive reinforcement regularly too - feedback isn't just for bad behaviour
- Provide examples of good behaviour
- toastmasters is a great place to learn feedback
It was great being at a conference again. Such a wide variety of topics and talks. I'm looking forward to next year already.