My Work Journal
A journal of Programming, Technology and Management notes
Monday, May 12, 2025
Tuesday, December 24, 2024
How great leaders inspire action
Sunday, August 25, 2024
Blogs I Follow
Popular blogs I follow and read regularly
- LinkedIn Engineering
- Meta Engineering
- Netflix Engineering
- AWS Engineering
- Uber Engineering
Friday, July 5, 2024
20 Things in my 20 Years
Justin Etheredge wrote a great article in 2021 on 20 things he learned as a Software Engineer. I can relate and still find a lot of these relevant today. Hoping it can be of use to you. You can read the full article here
1. I still don’t know very much.
Lifelong learning is essential in software as there are always new areas to explore, reducing imposter syndrome by embracing the learning process.
2. The hardest part of software is building the right thing.
Designing software requires understanding complex and often irrational environments to meet user needs effectively.
3. The best software engineers think like designers.
Great engineers focus on user experience and usability in all interfaces they create.
4. The best code is no code, or code you don’t have to maintain.
Prioritize solutions that minimize new code or leverage existing, maintainable code to avoid unnecessary complexity.
5. Software is a means to an end.
Delivering value should be the primary focus, not just creating software for its own sake.
6. Sometimes you have to stop sharpening the saw, and just start cutting shit.
Avoid analysis paralysis by setting deadlines and starting to implement solutions to learn and iterate quickly.
7. If you don’t have a good grasp of the universe of what’s possible, you can’t design a good system.
Staying updated with the latest developments in the field is crucial for designing effective systems.
8. Every system eventually sucks, get over it.
Continuous improvement and creating a livable system are more important than achieving perfection.
9. Nobody asks “why” enough.
Questioning assumptions and understanding the underlying goals is critical for effective problem-solving.
10. We should be far more focused on avoiding 0.1x programmers than finding 10x programmers.
Preventing underperforming team members is more crucial than seeking mythical super-performers.
11. One of the biggest differences between a senior engineer and a junior engineer is that they’ve formed opinions about the way things should be.
Senior engineers have strong, informed opinions on tools and methodologies, driving better decision-making.
12. People don’t really want innovation.
True innovation often faces resistance, as people prefer familiar, incremental improvements.
13. Your data is the most important part of your system.
Ensuring data integrity is crucial as it will likely outlast the codebase.
14. Look for technological sharks.
Established technologies that have stood the test of time are reliable and efficient choices.
15. Don’t mistake humility for ignorance.
Quiet team members can offer valuable insights and should be actively engaged for feedback.
16. Software engineers should write regularly.
Regular writing improves communication skills and helps in better problem articulation and solution documentation.
17. Keep your processes as lean as possible.
Avoid overcomplicating processes; focus on building, learning, and iterating in small chunks.
18. Software engineers, like all humans, need to feel ownership.
Ownership over the entire process from design to delivery increases engagement and quality of work.
19. Interviews are almost worthless for telling how good of a team member someone will be.
Focus interviews on understanding the candidate’s interest and fit rather than trying to predict their team performance.
20. Always strive to build a smaller system.
Building minimal viable systems allows for better learning and iteration, leading to more effective solutions.
Monday, July 1, 2024
Art of Delegating
Delegating is a powerful tool for team development. It took me a while to accept that sometimes, "done" is better than "perfect."
Early in my career, I found it challenging to delegate tasks since I knew the systems like the back of my hand. Since then, I have adapted to be more efficient and to trust my team.
I have used delegation frameworks similar to this one (https://blog.hptbydts.com/the-delegation-diamond) to categorize tasks and identify which ones to delegate. Giving team members stretch opportunities helps them perform at a higher level and fosters growth. #Leadership #ManagementTips
Monday, June 3, 2024
Side Hustle
Side gigs offer a valuable opportunity to diversify income generation and explore passions outside of your main career path. They allow you to pursue interests on your own schedule, whether it's freelancing, creating content, or offering services. Some of my favorite side hustles if you want to earn an extra buck
- Consulting: Offer your expertise to small businesses or startups in need of technical guidance or project management assistance. You can market your services on platforms like Upwork or Toptal.
- Online Courses: Develop and sell online courses or tutorials on software development, leadership, or project management. Platforms like Udemy or Coursera are popular for hosting such courses.
- Freelance Development: Take on freelance software development projects, either independently or through platforms like Upwork or Topta or Fiverr. Another one which is easy to do is use Canva to create your own design, use Printify to put that design on a product of choice and use Etsy to sell that item.
- Mentoring/Coaching: Offer coaching or mentoring services to aspiring software engineers or tech professionals looking to advance in their careers. You can advertise your services on platforms like LinkedIn or Coach.me.
- Market Research: Sites like Secret Shopper where you can be a Mystery Shopper for businesses in your area. Secret Shopper
- Podcasting: Host a podcast discussing topics related to software development, leadership, or the tech industry, and monetize through sponsorships or listener support. Platforms like Anchor make it easy to start and distribute your podcast
Friday, May 31, 2024
Professional Associations
Joining professional affiliations can greatly enhance your career as a software development manager by providing networking opportunities, professional development, and the chance to contribute to the community. Here are some notable affiliations and organizations that can help you grow in your career and contribute to the community:
Diversity and Inclusion Focused Organizations
AfroTech:
- A community and conference that brings together Black professionals in tech for networking, learning, and career advancement.
Blacks in Technology (BIT):
- Dedicated to increasing the representation and participation of Black people in the tech industry through networking, professional development, and mentorship opportunities.
Code2040:
- Works to activate, connect, and mobilize the largest racial equity community in tech to dismantle structural barriers preventing the full participation and leadership of Black and Latinx people in the innovation economy.
Fairygodboss:
- A platform offering career connections, job reviews, and support for women in the workplace, focusing on workplace equality and career growth.
Girl Geek X:
- Organizes events and provides a community for women in tech to connect, share experiences, and advance their careers through networking and professional development.
Girls Who Code:
- Aims to close the gender gap in technology by teaching girls computing skills and fostering a passion for technology through clubs, programs, and events.
Half the Sky:
- Focuses on empowering women globally and providing career opportunities and support networks, with an emphasis on gender equality and leadership.
HBCU 20x20:
- Focuses on creating job opportunities for graduates of Historically Black Colleges and Universities (HBCUs) through career fairs, networking events, and partnerships with employers.
HSI Career Collaborative:
- Supports career development for students and graduates from Hispanic-Serving Institutions (HSIs) by providing resources, mentorship, and networking opportunities.
Latinas in Tech:
- Aims to connect, support, and empower Latina women working in tech through events, mentorship programs, and community building.
Lesbians Who Tech:
- A global community of LGBTQ women and non-binary individuals in tech, offering networking events, professional development opportunities, and a platform for visibility and advocacy.
Management Leadership for Tomorrow (MLT):
- Equips African Americans, Latinos, and Native Americans with the skills, coaching, and connections to succeed in leadership roles, with programs focusing on career advancement and leadership development.
MyGwork:
- A business community for LGBTQ+ professionals, students, and organizations, providing career development, networking opportunities, and promoting workplace equality.
National Action Council for Minorities in Engineering (NACME):
- Provides scholarships and support to minority students in engineering and promotes diversity in the engineering profession through partnerships with educational institutions and corporations.
Nextplay Events:
- Hosts networking events and career development opportunities specifically aimed at underrepresented professionals in tech, facilitating connections with industry leaders and peers.