(My) Software Engineer Profile

The Software Engineer

Below I describe how I see my Software Engineer profile.

Don't work in the shadows

All work must be public, every time you need to align something about the tasks you're doing, ask it on public channels, so the whole team you'll be able to contribute to the discussion. DMs are the worst place to share knowledge or to align something that could be searched in the future.

The Calendar and Slack's status are your best friends, every time you need to be out of the office, but every time someone is waiting for your response or you need to skip a meeting, send them a message using your team's slack channel.

Each interaction matters

Your communication needs to be clear, direct, without bias, also treat your peers with respect and kindness, and create a supportive and blameless team environment. Don't be a jerk.

We don't have all the time in the world, so use your time and that of others responsibly. If you are facing a block, unless it is a critical bug in production, first try to resolve it async and if it continues to be blocked, schedule a call. Phrases like "Let's hop on a quick call to discuss" do not apply to you. Respect other people's focus time.

Focus

Once you pick a task, don't lose focus with other topics rather than the task itself or urgent production bugs, learn what you need to prioritize, and say no more than yes, by postponing tasks or discussions that are not relevant for the current task you picked. When you're working on the task and see some points of improvement, add a TODO or create a task and finish that task before improving it.

Create slots into your calendar to focus and some smaller slots to be creative, don't spend all your creativity doing only the task you're doing, though the task is important, we need to think in the long run, take a breath and think about what you want to deliver in the coming weeks, months or even years.

Leveling up projects

Don't be complacent about your app's lack of testing, logging, and observability. Not confident about your app? Do you think that your deployments are unpredictable and it easily breaks production with merges? Improve it, and be bold to argue the need of this and others improvements when it's required.

Ensuring high-quality deliverables, through an internal testing and reviews of the Pull Request, use the space to share and learn with your peers. Always ask for tests or to improve certain parts of the code, but don't block production deploys because of this, create an issue and align the priority with your Product Manager.

We always have space to improve the project we are working on. Experiment new tools and frameworks within internal projects. Evaluate emerging technologies that could be relevant to company goals.

Leveling up engineers

Keep learning and skill development, collaborate on cross-functional projects to learn new technologies, seek regular feedback through from your peers. Be willing to hear others' feedback.

Establish and maintain coding standards and guidelines within the team. Write internal technical documentation and guides.

Use the company's and team's meetings to share what you have learned. Create a culture of continuous learning.

Outputs

Address ambiguous, high-impact challenges. Remove the ambiguity using RFCs and Prove of Concepts also ensure critical work is prioritized and completed.

Keep coding, create a balance between coding and broader responsibilities. Identify and propose projects with strategic value for the company. Take accountability and ownership of projects.

Demonstrating best practices in coding, documentation, and project management. Inspiring others through your actions.