3 Months In: My Early Lessons as a Software Engineer at Oracle
Hey friends! Happy New Year :)
I'm officially in my 3rd month as a software engineer at Oracle, and what an amazing ride it's been so far!! From being a guest presenter for the Oracle ACE Program speaking about social media, to being apart of Oracle's incredible Global Tech Program, and let's not forget, being apart of a huge project, a rewrite of Oracle's SQL playground, LiveSQL!
I've learned so much in these first 3 months...and I want to share some nuggets of wisdom I've picked up along the way. Whether you're just starting out or looking to reflect on your journey, I hope you find these tips helpful!
1. Taking notes like a pro ๐
Whether it's a sprint meeting or a casual brainstorming session, I've learned to keep a notebook handy. Action items, objectives, and even random thoughts can turn into gold later. Plus, it helps me stay organized and focused - no more "Oh no, I forgot about that!" moments.
Here's the setup of my Daily Stand Up/Sprint Meeting notebook:
In this structure, I'll organize it like this:
before my Daily Standup meeting, I will usually summarize "What I did yesterday, what I'm going to today, and any blockers" in the Agenda section of the page
I'll add what the main objectives are for the meeting, in the Agenda section of the page (usually 'Sprint Planning', 'DSU', etc.)
for the Notes section, that is useful for taking notes mid-meeting about any feedback or crucial to-do's
for the Action Items and Due sections of the page, those are useful for tracking any notes/updates to my ticket action items, as well as corresponding due dates
(Some days I use my notebook a little differently, based upon how much I need to make note of during meetings, but that above is usually my go-to structure.)
2. Asking questions: the clarity quest
In the beginning of my full-time role at Oracle, I was a bit shy to ask questions. But, I quickly learned that's the quickest path to failure. Every question is a stepping stone to clarity. My team genuinely appreciates it when I ask, as it often leads to better solutions and avoids misunderstandings. Remember, there's no such thing as a silly question, even if you may truly believe it is a silly question!
3. Documenting the journey
Every feature I work on, every bit of research or self-learning, I make sure to jot it down. It's not just for my benefit; it's for anyone who might follow in my footsteps or work with the feature I'm developing. Sharing knowledge is a way of showing care, and there's a real sense of fulfillment when someone stumbles upon your notes (or Confluence page) and exclaims, 'This is exactly what I needed!' ๐ฎโ๐จ
4. Quick calls > endless chats
Slack and messaging are great, but when things start to get tricky, I've found it's way better to just hop on a quick call and share my screen. It saves so much time and gets straight to the point. Plus, when I need help, I make sure I've got my questions ready and really understand what's going wrong to ensure a smooth debugging process. Picking the right person or Slack channel to ask is key. They can see exactly where I'm stuck and give me the help I need right away. It's all about making things easier and getting to the solution faster.
5. Navigating the code base ๐งญ
Getting to know a new code base felt like walking into a MAZE at first. But with some patience and plenty of clicking around, I began to understand the flow and structure. Having the opportunity to work on the LiveSQL project as an intern in Summer 2023, before going full-time in September, definitely helped. But here's a tip: don't be shy to dive into different files or ask for a code base tour from a colleague! Remember, you're part of a team, and you're all there to support each other in your coding journey.
6. Time management: the art of juggling
Balancing learning with doing is crucial. I (try to) prioritize tasks based on deadlines and complexity, always making sure to carve out time for learning new things. It's all about finding that sweet spot where productivity meets continuous personal growth. I'm still mastering that art myself, but it's an essential part of developing and advancing in any career.
7. Embrace code reviews ๐ค
Code reviews sounded extremely daunting initially, but I've learned they're actually gems in disguise. Giving and receiving feedback on my code has sharpened my skills and taught me new perspectives, especially when it comes to writing clean, understandable code for my peers. Plus, reviewing others' code is like a treasure hunt for knowledge tbh!!
8. Networking inside out
Forming connections isn't just about having a chat over coffee (though that's fun too ofc). It's about building lasting relationships that enrich your career journey. I've learned soooo much just by listening to others' stories (whether that be fellow interns or Senior Directors, VP's, etc.) and experiences at Oracle, and I'm lucky to have multiple mentors that are so invested in my career. Making those genuine connections leads to so many open doors, mentorships, promotions, new job opportunities, etc. So, lean into networking as much as you can!
9. Growth mindset
The tech field never stands still- and neither should we, folks ๐ฅ Embracing a growth mindset means being open to new challenges and learning from every stumble. Remember, each mistake is a lesson, not a setback. And when it comes to constructive criticism or feedback, don't take it personally; it's a catalyst for your advancement! My perspective on feedback with a growth mindset is:
I'm committed to constant growth and improvement. Feedback is not just necessary; it's invaluable, providing crucial insights for my development journey. I always look for ways to improve consistently, understanding that every piece of feedback is a stepping stone to greater competence.
10. Wellness and boundaries ๐
All work and no play? Hail no!!! Maintaining a work-life balance is necessary, as I've discovered in my first three months as a full-time dev. Setting boundaries, taking breaks, and indulging in what makes you happy outside of work isn't just okay โ it's essential for your daily success. Make sure to cut off your workday right at 5 PM, silencing those Slack notifications as you do. Why not take a walk during lunch or read a few pages of a book to unwind after a long day? Whatever activity brings you joy, make time for it. It will not only enrich your personal life but also enhance your productivity and satisfaction at work, I assure you!!
11. Tech community: a world of support ๐
Being part of the tech community has given me a profound sense of belonging and an invaluable resource for continuous learning. Engaging in discussions, sharing experiences, and even just observing (what I like to call lurking) has enriched my understanding and expanded my skills!
Each conversation, whether deep technical debates (which JavaScript framework is the best??? lol) or casual exchanges about the latest trends, pushes me to grow and innovate. The tech community (especially on X) is a dynamic and supportive space, filled with diverse thoughts and a collective wisdom that challenges and inspires. It's more than just technology; it's about the people, the connections, and the shared journey towards innovation and growth. In this ever-evolving field, the tech community has been an integral part of my professional development and personal fulfillment! So, shout out to Tech Twitter (or X??), I love you guys.
These three months at Oracle have been an incredible start to my software engineering journey, Iโm grateful. I'm sooo excited for what's ahead in 2024, and hope these tips help you navigate your own path โฅ๏ธ
:) find me at: https://lay.codes