myself 100% of the time, and I’m not claiming to be faster than you or my team. Additionally, this list of tips is not all the tips out there. Please keep looking for and collecting them. I would love if you found some that worked for you and let me know. Perhaps this list can keep growing.
of time • Increase the density of your experience • Having the skills to do so when the time calls for it - eg production issues • Hopefully you get rewarded - bonuses etc
skipping steps, lowering the bar, compromising, shipping shit • Trying to speed run your way to burn out • Trying to make your life miserable and your fingers tired
the big picture of your task • Not just Swift UI - but more declarative languages • No just Combine - but more producers, consumers, pipes etc • Understand also the business - this can help with smaller decisions and trade offs across many units of work – and ask good questions! • Look to challenge things that could cost you time - e.g. moving a button
you’re not the first person in your company solving this problem • Keep an eye on slack channels, emails, chapter meetings, sprint reviews etc • Develop a mental map of what others are working on • When you hit that issue → you have a place to start
way forward is to slow down and learn something properly • Don’t just hack away at tasks to get them done • Take the time to fully understand what you’re doing, and you’ll move faster in the long run
can help you • Practice using them so you naturally reach for them when you need them • Give and receive recommendations • Set them up for yourself and others in your codebases https://github.com/theswiftdev/awesome-xcode-extensions
the terminal for common tasks, such as git, package management, clearing derived data…etc • Use ‘dotfiles’ to store settings you like in your OS and upload them to GitHub https://www.daytona.io/dotfiles/ultimate-guide-to-dotfiles
IDE and visual editor • Lean into it, learn how to use it and learn how to use it well • Be on the lookout for more tools that can help you save time • Ask and give recommendations for tools
spend many hours a day in Xcode, GitHub, AWS, etc • Just get good at them • Do you know multi-cursor editing? Do you how to restart Xcode? Reset state? Install new simulators? Clear out old ones? Install packages? Bump packages? Jump to definition? Use the debugger? Use lldb? Use instruments? Get to documentation fast? Know when things aren’t working right?
our best friend. Learn to do it effectively. • Don’t just blindly copy code and jam it into your codebase. Read it. Understand it. • Sometimes it’s best to copy the idea and not the code • Ask yourself: 'Surely another team has solved this' (and go look at their code) • Ask yourself: 'Surely I’m not the first person to do this' (and go to Google/StackOverflow/etc) • Being aware of your surroundings helps here
organises their Documentation • You should be able to jump to areas you want, using Cmd+F. • Slow down to speed up • Open source tools use same docs frameworks - recognise that and use them • Knowing how to get to the documentation for something from your IDE • Bookmarks, knowing the terms to google, etc • Shorten: Needing the docs → Finding the docs you need.
between writing code and seeing if it works • Eg: ◦ Using the simulator over device ◦ Using a unit test over build and run • Build your own tools - a playground file, demo app, unit test, etc • Hardcode skipping of login or typing in of login details
for you ◦ Internal packages, sample code bases, CI pipelines etc ◦ If someone asks you about code that is meant to be shared – you’ve failed • What this talk is doing for me right now – saving a 1:1 conversation with all of you
time. Additions, subtractions, and substitutions. • Small but powerful actions, like leaving comments, updating README files, and maintaining a well-structured codebase, can significantly help the next person who works on the codebase (which will likely be you). • Next time you’re in a codebase – “Read the room” – What do you notice? • Enums over if/else • Code/architecture patterns
learn something – document it • Writing helps retention and gives a reference for later (Is this what I am doing right now?) • Doesn’t have to be a talk - blog post, tweets, tiktoks, even a private diary.
the timing of when to ask for help is an art—a skill you will build over your career. • Don’t spend hours in the weeds—reach out when you’re stuck • BUT - Pushing through a challenge on your own will lead to valuable learning and potentially make you faster in the future • Continue honing your intuition of when to ask vs when to persevere • Respect the time of others
internals tools can give you more practice • The more you code - the more efficient you will become • It’s cliche - but practice makes perfect • There’s always more to be done at work - ask your leader for more work
reflect, reflect. Lock in that learning. It will accumulate. • Work + Reflection = Experience • Ask yourself (or your lead) some questions: ◦ What was different from last time? ◦ What was the same? ◦ In what other situations would this approach work? ◦ In what situations wouldn’t it work?
room • Clearly a step-change in technology and perhaps society • Has its issues around power consumption, copyright, creativity, etc • Be curious about AI • Install it in your IDE, and even try other IDEs (VS Code, Cursor) for agentic tasks • Don’t rob yourself of learning opportunities - similar of learning when to ask • Develop an intuition of when AI will be good - and when not. Revisit that every few months.
rushing—it’s about building the right habits, using the right tools, and continuously refining your process. • Start implementing these tips today , and watch your productivity soar. • Remember, the aggregate effect of all these small changes is where the magic happens. • Good luck!